Selenium 与最新版本的 TestRail 集成

Selenium with TestRail Integration with latest version

我正在使用 gurock API 从 Test Rail 获取测试用例状态

下面会returnTC的状态。我会在pom.xml里提供trRunID。和 TCname 将使用方法 Name.

    public static int FetchTestRailResult(String trRunId, String TCName, String trusername, String trpassword )
                throws MalformedURLException, IOException, APIException {

            int val=0;
            APIClient client = new APIClient($testRailurl);

            client.setUser(trusername);
            client.setPassword(trpassword); 
;
            JSONArray array = (JSONArray) client.sendGet("get_tests/"+trRunId+"&status_id=1");
            
            for (int i = 0; i < array.size(); i++) {
                JSONObject c = (JSONObject) (array.get(i));
                String testrailTestCaseName=c.get("title").toString().split("_")[1];
                if (testrailTestCaseName.equals(TCName)) {
                    val=1;
                    break;
                }
            }
            return val;

        }

下面将更新结果。

public static void UpdateResultToTestRail(String trusername, String trpassword, String trRunId,String testCaseName,String status, String testStepDetails)
        throws MalformedURLException, IOException, APIException {

    APIClient client = new APIClient($testrailurl);
    
    client.setUser(trusername);
    client.setPassword(trpassword); 

    HashMap data = new HashMap();
    data.put("status_id", status);
    data.put("comment", testStepDetails);

    JSONArray array = (JSONArray) client.sendGet("get_tests/"+trRunId);
    //System.out.println(array.size());
    for (int i = 0; i < array.size(); i++) {
        JSONObject c = (JSONObject) (array.get(i));
        String testrailTestCaseName=c.get("title").toString().split("_")[1];
        if (testrailTestCaseName.equals(testCaseName)) {
            System.out.println(c.get("id"));
            client.sendPost("add_result/" + c.get("id"), data);
            break;
        }
    }

}

我现在正在迁移到 maven,现在它具有依赖性

<!-- https://mvnrepository.com/artifact/com.codepine.api/testrail-api-java-client -->
    <dependency>
      <groupId>com.codepine.api</groupId>
      <artifactId>testrail-api-java-client</artifactId>
      <version>2.0.1</version>
    </dependency>

它没有 api 方法,它有 Builder 和构建,但无法进一步检查连接是否成功。有人在 Maven 中使用过 testrail 吗?

我没用过那个库,但它看起来很容易使用,他们的 githib 项目页面上有一些文档:https://github.com/codepine/testrail-api-java-client

对于您的用例,我认为您只需执行以下操作:

TestRail testRail = TestRail.builder("https://some.testrail.net/", "username", "password");
Tests tests = testRail.tests();
List<Test> lst = tests.list(runId).execute();
//filter it based on your conditions

我没有 运行 代码 - 只是编写它,所以它可能有一些问题,但应该让您了解如何使用该库。
请注意,截至 2 月 26 日,TestRail is changing 他们对批量请求(如案例、测试、项目等)的 HTTP 响应,所以我不确定该库是否仍适用于下一个 TR 版本 - 你需要检查一下。

P.S。我们正在开发一些与 TestRail 集成的产品,因此您可能想看看它们。如果您有兴趣,请查看我们的产品:
https://www.agiletestware.com/pangolin
https://www.agiletestware.com/firefly

根据您的测试框架(TestNG 的 JUnit),尝试使用以下库之一:

他们都有关于如何通过几个步骤集成它的 Medium 文章(请参阅 README.md)