Как использовать JMeter в качестве инструмента функционального тестирования? - PullRequest
0 голосов
/ 11 января 2020

Мы в нашей компании решили попробовать JMeter для функционального тестирования наших Http API. Я вижу, что JMeter, прежде всего, является инструментом тестирования производительности, используемая терминология немного отличается, как ThreadGroups, Test Fragment, Test Plan и так далее. В конце мы захотим запустить эти тесты JMeter в Jenkins и отправить отчеты по электронной почте. Я хочу что-то вроде

TestSuite       TotalTestCases    PassedTestCases      FailedTestCases <br>
FuncTestSuite1           7                 6                    1<br>
FuncTestSuite2           10                8                    2<br>

Как я могу выполнить sh такой отчет о результатах теста в JMeter? Я могу подумать о создании файла jmx для каждого теста и поместить их в папку, которая представляет собой набор тестов. В этой организации я мог бы написать утилиту, которая запускает эти тесты JMeter и определяет пропуск и неудачу для каждого теста, а затем создать файл Junit, который можно опубликовать в Jenkins. Есть ли альтернативный способ добиться этого с помощью только JMeter, или я должен согласиться на такую ​​работу, чтобы добиться желаемой отчетности? Есть ли способ получить pass, fail для каждой ThreadGroup, чтобы ThreadGroup можно было использовать в качестве контрольного примера вместо всего файла? Заранее спасибо.

1 Ответ

1 голос
/ 13 января 2020

Самым простым способом получения отчетов в стиле JUnit из теста JMeter является запуск JMeter с использованием инструмента Taurus в качестве оболочки.

Телец предоставляет JUnit XML Reporter , который способен преобразовывать результаты теста JMeter в формат JUnit.

Минимальный файл конфигурации Taurus YAML будет выглядеть примерно так:

execution:
  - scenario: mytest

scenarios:
  mytest:
    script: test.jmx

reporting:
  - module: junit-xml
    filename: result
    data-source: sample-labels

И вы получите файл JUnit XML, например:

<?xml version='1.0' encoding='UTF-8'?>
<testsuites>
    <testsuite name="sample_labels" package_name="bzt">
        <testcase classname="bzt-11388721" name="FuncTestSuite1-Test1"/>
        <testcase classname="bzt-11388721" name="FuncTestSuite1-Test2"/>
        <testcase classname="bzt-11388721" name="FuncTestSuite1-Test3">
            <error message="OK" type="Error">OK
                (status code is 200)
                (total errors of this type: 1)</error>
        </testcase>
        <testcase classname="bzt-11388721" name="FuncTestSuite1-Test4"/>
        <testcase classname="bzt-11388721" name="FuncTestSuite1-Test5"/>
        <testcase classname="bzt-11388721" name="FuncTestSuite1-Test6"/>
        <testcase classname="bzt-11388721" name="FuncTestSuite1-Test7"/>
        <testcase classname="bzt-11388721" name="FuncTestSuite2-Test1"/>
        <testcase classname="bzt-11388721" name="FuncTestSuite2-Test10"/>
        <testcase classname="bzt-11388721" name="FuncTestSuite2-Test2"/>
        <testcase classname="bzt-11388721" name="FuncTestSuite2-Test3"/>
        <testcase classname="bzt-11388721" name="FuncTestSuite2-Test4">
            <error message="OK" type="Error">OK
                (status code is 200)
                (total errors of this type: 1)</error>
        </testcase>
        <testcase classname="bzt-11388721" name="FuncTestSuite2-Test5"/>
        <testcase classname="bzt-11388721" name="FuncTestSuite2-Test6"/>
        <testcase classname="bzt-11388721" name="FuncTestSuite2-Test7"/>
        <testcase classname="bzt-11388721" name="FuncTestSuite2-Test8">
            <error message="OK" type="Error">OK
                (status code is 200)
                (total errors of this type: 1)</error>
        </testcase>
        <testcase classname="bzt-11388721" name="FuncTestSuite2-Test9"/>
    </testsuite>
</testsuites>

Выполнение Тельца будет таким простым:

bzt test.yaml

enter image description here

И ссылки test.jmx Сценарий выглядит так:

enter image description here

Дополнительная информация: Навигация по первым шагам с помощью Тельца

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...