Сбой конвейера действий GitHub, если не удалось выполнить докеризованные тесты Jmeter

#docker #github #jmeter #devops

Вопрос:

Я надеялся получить несколько советов по следующей проблеме:

Я построил простой конвейер CI/CD в действиях GitHub и пытаюсь выполнить свои тесты Jmeter внутри контейнера Docker. Я использую изображение justb4/jmeter и, по сути, просто копирую свой файл jmx из репозитория GitHub в /opt/apache-jmeter-5.3/bin, чтобы я мог выполнять тесты в своем контейнере. Моя проблема в том, что даже если тесты Jmeter завершаются неудачно внутри контейнера, мой конвейер продолжает выполняться и не обнаруживает этот сбой.

Как я могу остановить дальнейшее выполнение конвейера, если мои тесты Jmeter не прошли в контейнере Docker?

Любая помощь будет очень признательна, Марк

Ответ №1:

Для того, чтобы выполнить шаг, на котором вам необходимо вернуть ненулевой код состояния выхода, параметры находятся в:

  1. Используйте плагин JMeter Maven, если вы добавляете jmeter-check-results такие действия, как:
     <execution>
        <id>jmeter-check-results</id>
        <goals>
            <goal>results</goal>
        </goals>
    </execution> 
     

    неудачная сборка maven будет поймана действиями Github

  2. Используйте инструмент Taurus в качестве оболочки, Taurus также может быть запущен как образ докера, и у него есть подсистема критериев прохождения/сбоя, которая имеет гибкие критерии, позволяющие условно провалить тест, в случае сбоя теста Taurus возвращает ненулевой код состояния выхода, и этого будет достаточно для провала шага конвейера
  3. Этот параметр требует минимальных изменений, но он наименее мощный. Добавьте прослушиватель JSR223 в свой план тестирования и поместите следующий код в область «Сценарий» :
     if (!prev.isSuccessful()) {
        System.exit(1)
    }     
     

    это приведет к выходу JMeter при любом сбое пробоотборника (однако в зависимости от конфигурации JMeter вы можете потерять часть результатов).

Ответ №2:

Проверьте мое действие по установке jmeter в вашем рабочем процессе.

https://github.com/marketplace/actions/setup-jmeter

 name: Test Action
on:
  push
jobs:
  test-action:
    runs-on: ubuntu-latest
    steps:
      - name: Setup Jmeter
        uses: tush-tr/setup-jmeter@v1.1.0