我正在研究Selenium测试自动化.我创建了我的Selenium测试套件来自动化我的测试套件.现在我想将Selenium结果与TestRail集成.我不确定如何将Selenium测试运行的结果集成到TestRail测试套件中.我用java编写了所有测试用例.我现在被困住了.用一个例子对我有所帮助.
我正在使用testng框架,Maven构建工具.
基本思想是,您需要能够在给定用户的上下文中将结果链接回TestRail中的唯一测试ID.这可以在执行每个测试并通过/失败时完成,也可以在整个运行完成后完成.
如果要在每次测试通过/失败后将结果推送到TestRail,您可以创建一个TestNG侦听器,它将侦听测试结果,然后调用API将结果提交给TestRail.这种方法比为每个测试添加一个函数要清晰得多.
如果要在运行完成后将结果推送到TestRail,则可能必须编写解析器来读取/处理整个结果文件,然后适当地调用TestRail API.
就您需要调用的API而言,您可以使用API方法"add_result"或"add_result_for_case"来执行此操作.这两种方法的主要区别在于"add_result_for_case"采用Case ID和Run ID,而"add_result"采用Test ID.根据您的自动化方法,这两种方法都很有用.
有一个Java API绑定可用于:
https://github.com/gurock/testrail-api
这在此处记录.
您通过以下方式在Java中实例化API连接:
import com.gurock.testrail.APIClient;
import com.gurock.testrail.APIException;
import java.util.Map;
import java.util.HashMap;
import org.json.simple.JSONObject;
public class Program
{
public static void main(String[] args) throws Exception
{
APIClient client = new APIClient("http://<server>/testrail/");
client.setUser("..");
client.setPassword("..");
}
}
Run Code Online (Sandbox Code Playgroud)
以下是GET请求的示例:
APIClient client = new APIClient("http://<server>/testrail/");
client.setUser("..");
client.setPassword("..");
JSONObject c = (JSONObject) client.sendGet("get_case/1");
System.out.println(c.get("title"));
Run Code Online (Sandbox Code Playgroud)
这是一个POST请求:
Map data = new HashMap();
data.put("status_id", new Integer(1));
data.put("comment", "This test worked fine!");
JSONObject r = (JSONObject) client.sendPost("add_result_for_case/1/1", data);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8197 次 |
| 最近记录: |