Митап Testify #8: Качество вопреки хаосу 5 декабря в 18:00

Интеграция автотестов с Test IT через командную строку: шаг за шагом

533 10 min

Test IT CLI может стать полезным инструментом для автоматизированного тестирования, если вы работаете в системе Test IT. Это утилита командной строки, которая позволяет быстро загружать результаты тестов в TMS — в модуль прогонов или конкретный тестран.  

Почему это удобно? 

В отличие от узконаправленных адаптеров, Test IT CLI поддерживает большое количество фреймворков и работает на любых платформах, что делает ее универсальным проводником к системе Test IT любой поставки: Enterprise, и Cloud. 

Преимущества Test IT CLI

  • Расширяемость. Функциональность утилиты можно расширить, добавив возможность тестирования конкретных аспектов вашего продукта.

  • Гибкость. Утилиту можно использовать с любым тестовым фреймворком, который поддерживает формат Junit XML

  • Автоматизация. Тесты можно запускать автоматически при каждом изменении кода, что позволяет обнаруживать ошибки и проблемы на ранних стадиях разработки.

  • User Friendly. Легко устанавливается на любую платформу, включая Linux, Windows и macOS, а также интегрируется в различные окружения: отдельные серверы, контейнеры Docker и CI/CD системы

  • Параллельность. Поддерживает параллельную загрузку результатов тестов.

Как установить и запустить Test IT CLI

Test IT CLI распространяется в виде пакета Python, его необходимо установить из официального репозитория Python. Для этого выполните команду:

После установки можно проверить, какие доступны команды для использования:

Теперь можете приступать к загрузке результатов автотестов в TMS. Для этого их понадобится запустить с опцией экспортирования отчета в формате Junit XML — это стандартный формат для обмена результатами между утилитами тестирования и CI/CD системами. Примеры экспорта для различных тестовых фреймворков — по ссылке

После получения отчета используйте Test IT CLI с нужными вам параметрами. Например:

В Test IT CLI имеются следующие параметры:

  • --mode, -m: задает режим работы утилиты. По умолчанию используется import.

  • --url, -u: задает адрес вашей системы Test IT (например, https://tms.testit.software/).

  • --token, -t: задает приватный токен, сгенерированный в вашем профиле Test IT. Можно указывать как параметр или переменная окружения TMS_TOKEN.

  • --project-id, -pi: задает id проекта, в который будут загружены тесты.

  • --configuration-id, -ci: задает id конфигурации, на которой выполнялись тесты.

  • --testrun-id, -ti: задает id тест-рана, в который будут загружены результаты или который необходимо будет отметить как завершенный.

  • --testrun-name, -tn: задает название тест-рана.

  • --separator, -s: разделяет classname на namespace и classname по указанной строке.

  • --namespace, -ns: задает название namespace по умолчанию.

  • --results, -r: задает путь до директории или файла с результатами выполнения тестов.

  • --output, -o: задает путь до файла, в который будет сохранен id созданного тест-рана.

  • --debug, -d: включает расширенный режим логирования.

Режимы работы

Test IT CLI работает в двух режимах: стандартный запуск и параллельный. 

Режим стандартного запуска стоит по умолчанию, он позволяет загрузить результаты выполнения тестов одной командой. Данный процесс включает в себя несколько этапов:

  1. Извлечение информации из отчета JUnit XML о пройденных тестах.

  2. Если testrun_id не указан, то создается новый тест-ран.

  3. В тест-ран загружаются все результаты.

  4. После загрузки результатов тест-ран помечается как завершенный.

Режим параллельного запуска позволяет загружать результаты тестов одновременно, что может значительно ускорить процесс тестирования. Процесс параллельного запуска включает в себя следующие шаги:

1. Создание нового тест-рана

2. Загрузка результатов из различных потоков

3. Завершение тест-рана

Примеры использования Test IT CLI

Утилита может быть полезна для решения многих задач. Например:

  • Интеграция с CI/CD. Вы можете загружать результаты выполнения тестов автоматически после каждого коммита в репозиторий, используя различные инструменты CI/CD, такие как Jenkins, GitLab CI, CircleCI и другие.

  • Тестирование различных платформ и устройств. Test IT CLI можно использовать для публикации результатов тестирования  на различных платформах и устройствах: в десктопных, мобильных или веб-приложениях.

  • Использование любого тестового фреймворка. Это дает возможность выбрать тот, который лучше всего подходит для вашего проекта, а Test IT CLI обеспечит интеграцию и управление тестами. 

  • Быстрый доступ к результатам тестирования. Test IT CLI предоставляет удобный способ для публикации результатов тестирования в TMS Test IT для последующего отслеживания трендов в динамике, что поможет быстро идентифицировать проблемы и исправить их.

Практическая часть

Чтобы экспортировать результат автотеста в TMS Test IT, нам потребуется:

1. Получить отчет в формате Junit XML. Для этого: 

    1.1. Установим CLI Plugin.

    1.2. Подготовим автотест. Пример проекта для выгрузки — на GitHub. Пример автотеста, который мы будем публиковать:

public class TestCli {
   @Test
   public void ExportResultTestToTestRunByCliTestItPlugin() {
       assertEquals("a", "a");
   }
}

После его выполнения будет сформирован отчет Junit XML: ...\cli-testIt\target\surefire-reports\TEST-TestCli.xml

2. Выполним подготовку для экспорта результатов автотестов. Для этого нам потребуется получить project id и configuration id:

2.1. Авторизуйтесь в Test IT Cloud. При необходимости зарегистрируйтесь.

2.2. Создайте тестовое пространство. Если пространство создано, то пропустите шаг. 

2.3. Создайте тестовый проект. Например, TestProject. Если пространство создано, то пропустите шаг. 

2.4. Запомните номер проекта: в нашем примере — номер 1.

2.5. Создайте тестовую конфигурацию. Например, Any:

2.6. Далее, чтобы получить project id и configuration id, потребуется перейти в Swagger Test IT. Пример: https://[Тестовое пространство].testit.software/swagger/index.htm

2.7. Выполните запрос GET /api/v2/projects/{id} Get project by ID с вставкой номера проекта для получения project id. 

Скопируйте project id, в примере ниже это id: f98e9426-7d59-4171-86d1-c1ec9f1d7f26

2.8 Выполните запрос GET /api/v2/projects/{id}/configurations Get project configurations для получения configuration id c project id.

Скопируйте configuration id, в примере ниже это id: e117d5ac-2f84-463c-9080-888fe56f8a6e

3. Выполним выгрузку результатов выполнения автотеста в TMS Test IT:

3.1. Перейдите в папку с результатом выполненного теста в cmd.exe или terminal IDE: cd [path]\cli-testIt\target\surefire-reports

3.2. Выполните команду:

testit --url https://[ссылка на ваше пространство] --token VHV2QkRwZU1nWUNWVHdkRkxL --project-id f98e9426-7d59-4171-86d1-c1ec9f1d7f26 --configuration-id e117d5ac-2f84-463c-9080-888fe56f8a6e --results TEST-TestCli.xml

4. После выполнения команды проверьте выгрузку результатов в Test IT Cloud. Пример успешного экспорта результатов теста:

Кому может быть полезен Test IT CLI

Например, компаниям или проектам, которые имеют множество клиентов и сталкиваются с различными ситуациями, включая невозможность использования узконаправленных адаптеров Test IT в своих проектах. В таких случаях Test IT CLI придет на помощь, обеспечивая простой и гибкий подход к публикации результатов тестирования в TMS.

Была ли статья полезной?