Selenium с интеграцией TestRail с последней версией

Я использую API gurock, чтобы получить статус тестового примера от Test Rail.

Ниже будет возвращен статус TC. Я предоставлю trRunID в pom.xml. и TCname будет взято с использованием имени метода.

    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 и сборка, но в дальнейшем он не может проверить, успешно ли соединение или нет. Кто-нибудь использовал testrail в Maven?


person ChanGan    schedule 15.02.2021    source источник


Ответы (2)


Я не использовал эту библиотеку, но она выглядит довольно простой в использовании, и у них есть некоторые документы на их странице проекта gitib: 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

Я не запускал код, а просто составил его, так что у него могут быть некоторые проблемы, но он должен дать вам представление о том, как использовать библиотеку.
Обратите внимание, что по состоянию на 26 февраля TestRail меняет свой HTTP-ответ для массовых запросов (таких как кейсы, тесты, проекты и т. д.), поэтому Я не уверен, что эта библиотека будет работать со следующей версией TR - вам нужно будет это проверить.

P.S. Мы разрабатываем некоторый набор продуктов для интеграции с TestRail, поэтому вы можете взглянуть на них. Если вы заинтересованы, ознакомьтесь с нашими продуктами:
https://www.agiletestware.com/pangolin
https://www.agiletestware.com/firefly

person Sergi    schedule 19.02.2021
comment
Спасибо. попробую этот вариант.. - person ChanGan; 20.02.2021
comment
Возникла ошибка рукопожатия SSL. Отладка этого - person ChanGan; 22.02.2021
comment
Может быть, у вашего TR-сервера есть самозаверяющий сертификат? - person Sergi; 23.02.2021
comment
Сработало.. Добавлен самозаверяющий сертификат.. и ваш код отлично заработал с небольшим изменением. Большое спасибо. - person ChanGan; 23.02.2021
comment
Пожалуйста :) - person Sergi; 23.02.2021

На основе вашей среды тестирования (JUnit TestNG) попробуйте использовать одну из этих библиотек:

У обоих есть статьи Medium о том, как интегрировать его всего за несколько шагов (см. README.md там)

person Villa_7    schedule 20.02.2021
comment
Голосование. Это также выглядит прекрасным решением... но, к сожалению, у нас не было идентификатора случая, не добавленного в тестовый пример. Мы получаем идентификатор теста, сопоставляя имя тестового примера. - person ChanGan; 21.02.2021
comment
Вы можете получить идентификатор тестового примера, перейдя к соответствующему тестовому примеру и проверив URL-адрес, который должен быть примерно таким: your-testrail-link.testrail.io/index.php?/cases/view/3 — так что 3 — это идентификатор, который может сопоставляться в автотестах. - person Villa_7; 21.02.2021
comment
так как у нас есть более 300 тестовых случаев ... которые должны принять идентификатор случая ... может быть, если нет другого выбора, мы должны пойти на это ... - person ChanGan; 22.02.2021
comment
@ChanGan установка идентификатора - это одноразовая активность, которую не нужно переписывать или что-то еще, поэтому, как только вы это сделали - вам не нужно возвращаться к ней (только в случае автоматизации новых тестов), поэтому я настоятельно рекомендую эти библиотеки и самый эффективный, быстрый и простой способ. - person Villa_7; 22.02.2021
comment
Две статьи, которые вы дали, нам нужно скачать jar, что для нас невозможно, так как мы создаем зависимость от maven. - person ChanGan; 22.02.2021
comment
Извините, не понял вашей мысли. В чем проблема загрузить jar и добавить его в качестве зависимости Maven в pom.xml? - person Villa_7; 22.02.2021
comment
так как мы работаем в модели jenkins.. все, что нужно, это все, что нужно загружать только во время выполнения - person ChanGan; 22.02.2021
comment
Извините, я все еще не вижу проблемы - вы помещаете загруженный jar в корневой каталог вашего проекта, добавляете зависимость с включенным путем, и все. Дженкинс выполнит его без проблем. Также проверено в Jenkins и CircleCI. - person Villa_7; 22.02.2021
comment
мы не можем проверить файлы jar, так как это не позволит использовать битбакет из-за установленных правил ... и машина продолжает меняться в зависимости от доступности ... похоже, что нам нужно все время загружать эти статические файлы вручную, что не должно быть.. - person ChanGan; 22.02.2021