【发布时间】:2018-03-24 11:23:04
【问题描述】:
我正在尝试使用 maven 插件提取关于我的 jmeter 功能测试执行的代码覆盖率报告。我尝试使用 jacoco 插件将其配置为生成代码覆盖率报告,但它似乎只能通过单元和集成测试进行配置,这些测试采用 java 类的格式,例如*IT.java 或 *Test.java。但在我的情况下,功能测试执行是通过使用 jmeter 插件的 Jmeter .jmx 文件进行的。我知道获得功能测试的代码覆盖率很少见,但如果有人做过类似的事情,请分享一些细节。下面是我用于执行 Jmeter 测试的插件。
<plugin>
<groupId>com.lazerycode.jmeter</groupId>
<artifactId>jmeter-maven-plugin</artifactId>
<version>2.1.0</version>
<executions>
<execution>
<id>jmeter-tests</id>
<phase>verify</phase>
<goals>
<goal>jmeter</goal>
</goals>
</execution>
</executions>
<configuration>
<ignoreResultFailures>true</ignoreResultFailures>
<resultsDirectory>${jmeter-testresults}</resultsDirectory>
<propertiesUser>
<hostname>${jmeter-testhost}</hostname>
<hostport>${jmeter-testport}</hostport>
<testresults>${jmeter-testresults}</testresults>
</propertiesUser>
<propertiesJMeter>
<jmeter.save.saveservice.url>true</jmeter.save.saveservice.url>
<jmeter.save.saveservice.samplerData>true</jmeter.save.saveservice.samplerData>
</propertiesJMeter>
</configuration>
</plugin>
【问题讨论】:
-
使用 JMeter 进行功能测试也很不寻常。 JMeter 不是世界上最方便使用的工具,至少对于性能测试你别无选择,但为什么要使用它来进行功能测试呢?特别是如果代码覆盖率是一个目标。为什么不使用普通的测试框架——junit、testng 等,并在该框架中简单地编写功能测试?那里的代码覆盖率真的很容易......
-
这里 Jmeter 测试更多地被用作微服务的 API 测试。因此,在执行 jmeter 测试时,我需要正在测试的 API 的代码覆盖率报告。截至目前,我有报告说没有 API 被覆盖,也没有 API 未被覆盖。我需要扩展结果以在执行 API 时覆盖代码库,以获取有关缺失案例的更多深度信息。
-
由于 JMeter 对源代码的可见性为零,我不知道您将如何从 JMeter 端完成它。我认为唯一的方法是在 JMeter 运行时在微服务本身上使用一些分析工具。
标签: java jmeter code-coverage maven-plugin jacoco-maven-plugin