我正在尝试使用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>
答案 0 :(得分:0)
我可以使用git bash命令行获取代码覆盖率。以下是步骤。
从http://www.eclemma.org/jacoco/下载jacoco项目并在您当地提取,例如C:/ jacoco。它将包含lib文件夹中的jacocoagent.jar和jacococli.jar。
打开Git bash(您也可以使用简单的命令行)。
export MAVEN_OPTS =“ - javaagent:C:\ jacoco \ lib \ jacocoagent.jar = output = tcpserver”
mvn exec:java -Dexec.mainClass =“主类的完整包名”
上述命令将在服务器启动期间将jacocoagent注入maven jvm,以便它可以读取和捕获执行流并将taht存储在tcpserver上。我使用tcpserver作为输出,通过使用文件模式,我需要正常关闭jvm以获取执行数据。 启动服务器后,执行
mvn verify
验证命令与我的pom xml中的Jmeter执行插件集成。因此,verify命令将触发我的Jmeter测试执行。 现在由于执行数据驻留在tcp服务器上,我们需要将其转储到jacoco文件中以获取报告。执行以下命令将执行数据转储到jacoco.exec文件
java -jar C:/jacoco/lib/jacococli.jar dump --destfile“your local path / jacoco.exec”
现在您应该看到在提到的路径上生成的jacoco.exec文件。但是,该数据不是人类可读的格式。要以可读的html格式生成报告,请执行以下命令。
java -jar C:/jacoco/lib/jacococli.jar报告“jacoco文件/ jacoco.exec的路径”--classfiles“项目类文件的路径”--html“存储报告的路径\ jacoco-report” --name myReport --sourcefiles“源文件的路径”
现在,您应该能够看到以给定路径生成的html格式的报告。