获取jmeter功能测试代码覆盖率

时间:2017-10-12 13:33:49

标签: java jmeter code-coverage maven-plugin jacoco-maven-plugin

我正在尝试使用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>

1 个答案:

答案 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格式的报告。

Reference