我们公司决定尝试使用 JMeter 对 Http API 进行功能测试。我发现JMeter主要是一个性能测试工具,涉及的术语有点不同,比如ThreadGroups、Test Fragment、Test Plan等等。最后,我们希望在 Jenkins 中运行这些 JMeter 测试并通过电子邮件发送报告。我想要类似的东西
TestSuite TotalTestCases PassedTestCases FailedTestCases
FuncTestSuite1 7 6 1
FuncTestSuite2 10 8 2
如何在 JMeter 中完成这种测试结果报告?我可以考虑为每个测试用例创建 jmx 文件,并将它们放在代表测试套件的文件夹中。通过这个组织,我可以编写一个实用程序来运行这些 JMeter 测试并确定每个测试的通过和失败,然后生成可以在 Jenkins 中发布的 Junit 文件。是否有另一种方法可以仅使用 JMeter 来实现此目的,还是我应该满足于这种解决方法来实现所需的报告?有没有办法让每个 ThreadGroup 通过、失败,以便 ThreadGroup 可以用作测试用例而不是整个文件?提前致谢。
最佳答案
从 JMeter 测试执行中获取 JUnit 样式报告的最简单方法是使用 Taurus 运行 JMeter工具作为包装器。
金牛座提供JUnit XML Reporter它能够将 JMeter 测试结果转换为 JUnit 格式。
最小的金牛座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
引用 test.jmx
脚本如下所示:
关于java - 如何使用JMeter作为功能测试工具?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59692364/