Установка имени запуска вручную в ReportPortal, Java Cucumber - PullRequest
0 голосов
/ 02 октября 2019

Я использую конвейер Jenkins для параллельного запуска тестов, проблема возникает, когда тесты отправляются в ReportPortal, все они запускаются в отдельных запусках, и я пытаюсь установить имя запуска (номер запуска дляточнее) для тестов вручную, чтобы все они были в одном запуске.

Я искал здесь ответы, но нашел только некоторые для NUnit и TestNG (что мне не помогает, так как у меня есть отдельные экземплярыпрограмма). Я использую основной класс Java для запуска каждого теста в конвейере, я прочитал, что могу установить имя запуска в качестве переменной среды. К сожалению, я не смог найти никакой информации о том, как это выглядит. У меня вопрос, возможно ли даже установить имя запуска без TestNG, если это возможно с переменной среды, как я должен использовать переменную в методе runner для принудительного применения имени запуска?

 java -Dmaven.clean.skip=true -Dbrowser=firefox -Dos=linux -jar -Drun.tags=@CreateEntity target/standalone/web-tests.jar

Этомои настройки для каждого теста (тег run изменяется явно), клей для огурца и плагин для reportportal находятся в методе runner.

1 Ответ

0 голосов
/ 15 октября 2019

TestNG для него не обязателен. Здесь вы можете найти интеграционные конфигурации на основе JVM https://reportportal.io/docs/JVM-based-clients-configuration. Это означает, что если вы используете CucumberJVM (у которого есть jUnit под капотом), вы можете использовать любой связанный параметр.

Чтобы указать имязапустите, вы можете установить его в файле reportportal.properties или через командную строку, как -Drp.launch=zzz

Но это не решит проблему для многопоточности. Чтобы сообщить обо всех параллельных потоках в 1 запуске, вы можете сделать это двумя способами:

  1. Совместное использование launchID между потоками. Это означает, что вы можете начать запуск с ReportPortal (как часть вашего тестового бегуна или как предварительный шаг Jenkins + cUrl запрос). Получите launchID и поделитесь им с другими потоками / бегунами. Бегуны будут использовать этот идентификатор для публикации данных, вместо создания нового запуска для каждого потока. В конце выполните пост-шаг, чтобы завершить запуск.
  2. Объединение запускается через пользовательский интерфейс или API. Как только все исполнения завершены, вы можете объединить их через пользовательский интерфейс. ИЛИ вы можете собирать идентификаторы launchID во время параллельных сеансов, и после завершения всего выполнения просто запустите API-вызов для запуска слиянием.

Чем относится к ReportPortal v1-v4.

Для версии5+ ReportPortal мы планируем минимизировать эти усилия с помощью функции повторного запуска. https://github.com/reportportal/reportportal/issues/363

Испытательные участники по умолчанию будут использовать launchID через файл в локальном хранилище. И если в этой среде будет запущен какой-либо другой параллельный поток, то для отчетов будет автоматически использоваться launchID.

Это все равно не повлияет на случай, если у вас есть параллельное выполнение, запущенное в параллельном режиме на нескольких виртуальных машинах, но мы постараемся рассмотреть и этот случай.

...