2017-10-12 102 views
1

我想使用maven插件提取我的jmeter功能測試執行的代碼覆蓋率報告。我嘗試使用jacoco插件來配置它來生成代碼覆蓋率報告,但它似乎是可配置的,只有單元和集成測試是java類的格式,例如* IT.java或* Test.java。但在我的情況下,使用Jmeter插件的Jmeter .jmx文件正在執行功能測試執行。我知道它很少得到功能測試的代碼覆蓋率,但如果任何人有過類似的工作,請分享一些細節。下面是我用於Jmeter測試執行的插件。獲取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

使用JMeter的功能測試也不在少數。JMeter並不是世界上最方便的工具,至少對於你沒有選擇的性能測試來說,但爲什麼將它用於功能測試呢?特別是如果代碼覆蓋率是目標。爲什麼不使用正常的測試框架 - junit,testng等,並簡單地在該框架中編寫功能測試?代碼覆蓋率真的很簡單... –

+0

這裏Jmeter測試更多地被用作微服務的API測試。所以我需要在jmeter測試執行時測試API的代碼覆蓋率報告。到目前爲止,我已經報道過沒有API被覆蓋,沒有API沒有被覆蓋。我需要擴展結果,以便在執行API時獲取代碼庫,以獲取有關丟失案例的更多深度信息。 – Sikandar

+0

由於JMeter對源代碼的可見性爲零,所以我沒有看到如何從JMeter方面完成它。我認爲唯一的方法是在JMeter運行時使用一些分析工具,微型服務本身。 –

回答

0

我能夠使用git bash命令行獲得代碼覆蓋率。以下是步驟。從http://www.eclemma.org/jacoco/

  • 下載jacoco項目,並提取在本地例如C:/ jacoco。它將在lib文件夾中包含jacocoagent.jar和jacococli.jar。

  • 打開Git bash(您也可以使用簡單的命令行)。

    出口MAVEN_OPTS = 「 - javaagent:C:\ jacoco \ LIB \ jacocoagent.jar =輸出= tcpserver的」
    MVN高管:JAVA -Dexec.mainClass = 「全包名到你的主類」

上述命令將注入jacocoagent到行家JVM服務器啓動過程中,使得它可以讀取並捕獲執行流和taht存儲關於tcpserver的。我使用tcpserver作爲輸出,通過使用文件模式,我需要優雅地關閉jvm以獲取執行數據。 一旦服務器啓動後,執行

MVN驗證

驗證命令intgrated在我的POM XML的JMeter執行插件。所以驗證命令會觸發我的Jmeter測試執行。 現在,由於執行數據駐留在tcp服務器上,我們需要將其轉儲到jacoco文件中以獲取報告。下面執行命令轉儲在jacoco.exec文件

的Java執行數據-jar C:/jacoco/lib/jacococli.jar轉儲--destfile 「本地路徑/ jacoco.exec」

現在您應該會看到在提到的路徑中生成的jacoco.exec文件。但是,這些數據不是人類可讀的格式。要以可讀的html格式生成報告,請執行以下命令。

Java的罐子C:/jacoco/lib/jacococli.jar報告 「路徑jacoco文件/ jacoco.exec」 --classfiles 「路徑到項目類文件」 --html「路徑來存儲報告\ jacoco -report」 --name myReport --sourcefiles‘路徑源文件’

現在,你應該能夠看到在給定的路徑生成的HTML格式的報告。

Reference