Ant+Jmeter+Jenkins持續集成 (一)

目錄

一、下載插件

二、構建

1.ant 執行方式一

2. ant 執行方式二

三、Jenkins上添加HTML報告

四、報告中增加Throughout等列

五、把xx.jtl 結果數據生成TPS 等圖表

1. 下載插件

2. JMeterPluginCMD命令行工具生成png圖片和csv統計文件

3. 把生成的圖表在html中展示


一、下載插件

系統管理- 管理插件- 可選插件

下載所需的插件,例如:Performance plugin、HTML Publisher plugin、Ant Plugin 等

1)  配置中 添加 Jmeter插件:Performance plugin、HTML Publisher plugin

     功能:用來展示jmeter執行結果

二、構建

注意: ant方式,文件中必須創建的build.xml文件,自動加載build.xml文件

1.ant 執行方式一

a. 配置構建任務

b.查看報告,報告的位置,在build.xml文件中定義了,這個生成的默認樣式報告,可以更改報告樣式

2. ant 執行方式二

創建antShell.ant文件,添加下面的命令,直接執行文件可是可以的

echo "-----Test Begin-----"
ant -buildfile D:\Jmeter\build.xml(自己的build.xml文件路徑)

 

三、Jenkins上添加HTML報告

注意:這一步可有可無,看自己的需求,ps:樓主自己沒有用過,報告一般都是給領導看的,在這看不太方便

點擊保存之後,繼續配置測試報告

如果沒有安裝推薦的插件在這裏需要下載一個插件Public HTML reports 

系統管理----》管理插件----》可選插件   輸入Public HTML reports 進行查詢並進行安裝

接下來繼續配置報告

點擊增加構建後操作步驟  並點擊Public HTML reports 

並點擊保存按鈕  好了  現在我們報告也配置好了 

  現在進行jenkins構建下吧

好了到了這一步 已經構建成功了,Success ! 

  我們在jenkins下面看下報告

 

四、報告中增加Throughout等列

ant 執行方式一,生成的報告數據太少了,下面咱們增加,幾列

1、修改模板文件 jmeter-results-detail-report_21.xsl,在D:\apache-jmeter-3.0\extras目錄下面

參考:https://blog.51cto.com/11581141/1970134

五、把xx.jtl 結果數據生成TPS 等圖表

ant 執行方式一,運行結果只有報告數據,類似聚合報告,沒有TPS 、TransactionsPerSecond 等圖標,下面增加TPS 、TransactionsPerSecond圖表

1. 下載插件

下載插件JMeterPlugins-Extras.jar、CMDRunner.jar、JMeterPlugins-Standard.jar放到本地windows機器的jmeter的jmeter/lib/ext目錄下,插件可以去官網下載

2. JMeterPluginCMD命令行工具生成png圖片和csv統計文件

生成png圖片:

java -jar D:\ProgramFiles\jmeter\lib\cmdrunner-2.2.jar  --tool Reporter --generate-png D:\ProgramFiles\jmeter\bin\TransactionsPerSecond.png --input-jtl D:\ProgramFiles\jmeter\bin\result.jtl --plugin-type TransactionsPerSecond --width 800 --height 600

 生成csv圖片

 java -jar $CMDRunnerPath/CMDRunner.jar --tool Reporter --generate-csv ThreadsStateOverTime.csv --input-jtl 1.jtl --plugin-type ThreadsStateOverTime

示例:

當然也可以一次性生成兩個文件。下面是改命令的參數:

  • –generate-png 指定png圖片文件
  • –generate-csv 指定csv文件名
  • –input-jtl 指定要解析的jtl文件
  • –plugin-type 指定要輸出的數據類型,比如響應時間、cpu使用率、錯誤率等

插件提供解析下面這些數據的對象:

  • AggregateReport = JMeter’s native Aggregate Report, can be saved only as CSV 聚合報告
  • SynthesisReport = mix between JMeter’s native Summary Report and Aggregate Report, can be saved only as CSV
  • ThreadsStateOverTime = Active Threads Over Time 線程數隨時間的變化曲線
  • BytesThroughputOverTime 流量隨時間的變化曲線
  • HitsPerSecond 點擊率隨時間的變化曲線
  • LatenciesOverTime 延遲隨時間的變化曲線
  • PerfMon = PerfMon Metrics Collector 服務器參數隨時間變化曲線注意這個需要在jmx腳本中添加,服務器監控,要指定ip、端口、監控項,還需要指定perfMon的輸出文件,或者在命令行指定,如sh jmeter.sh -n -t HTTP請求-baidu.jmx -l 2.jtp -JforcePerfmonFile=true,這樣會輸出在當前路徑。
  • ResponseCodesPerSecond 響應碼隨時間變化曲線
  • ResponseTimesDistribution 響應時間分佈
  • ResponseTimesOverTime 響應時間隨時間變化曲線
  • ResponseTimesPercentiles 響應時間的百分比
  • ThroughputVsThreads 吞吐率隨線程變化曲線
  • TimesVsThreads = Response Times VS Threads 響應時間隨線程變化曲線
  • TransactionsPerSecond 事務隨時間變化曲線
  • PageDataExtractorOverTime
  • MergeResults

 腳本:

@echo off
set file="interface"
set jtlfile="interface_test.jtl"
f:
cd F:\apache-jmeter-3.0\apache-jmeter-3.0\lib\ext

java -jar CMDRunner.jar  --tool Reporter --generate-png %file%_ThreadsStateOverTime.png --input-jtl  %jtlfile%  --plugin-type ThreadsStateOverTime
java -jar CMDRunner.jar  --tool Reporter --generate-png %file%_BytesThroughputOverTime.png --input-jtl  %jtlfile%  --plugin-type BytesThroughputOverTime
java -jar CMDRunner.jar  --tool Reporter --generate-png %file%_HitsPerSecond.png --input-jtl  %jtlfile%  --plugin-type HitsPerSecond
java -jar CMDRunner.jar  --tool Reporter --generate-png %file%_LatenciesOverTime.png --input-jtl  %jtlfile%  --plugin-type LatenciesOverTime
java -jar CMDRunner.jar  --tool Reporter --generate-png %file%_ResponseCodesPerSecond.png --input-jtl  %jtlfile%  --plugin-type ResponseCodesPerSecond
java -jar CMDRunner.jar  --tool Reporter --generate-png %file%_ResponseTimesDistribution.png --input-jtl  %jtlfile%  --plugin-type ResponseTimesDistribution
java -jar CMDRunner.jar  --tool Reporter --generate-png %file%_ResponseTimesOverTime.png --input-jtl  %jtlfile%  --plugin-type ResponseTimesOverTime
java -jar CMDRunner.jar  --tool Reporter --generate-png %file%_ResponseTimesPercentiles.png --input-jtl  %jtlfile%  --plugin-type ResponseTimesPercentiles
java -jar CMDRunner.jar  --tool Reporter --generate-png %file%_ThroughputVsThreads.png --input-jtl  %jtlfile%  --plugin-type ThroughputVsThreads
java -jar CMDRunner.jar  --tool Reporter --generate-png %file%_TimesVsThreads.png --input-jtl  %jtlfile%  --plugin-type TimesVsThreads
java -jar CMDRunner.jar  --tool Reporter --generate-png %file%_TransactionsPerSecond.png --input-jtl  %jtlfile%  --plugin-type TransactionsPerSecond
java -jar CMDRunner.jar  --tool Reporter --generate-png %file%_PageDataExtractorOverTime.png --input-jtl  %jtlfile%  --plugin-type PageDataExtractorOverTime
java -jar CMDRunner.jar  --tool Reporter --generate-png %file%_PerfMon.png --input-jtl  %jtlfile%  --plugin-type PerfMon

雙擊該bat文件後,我們在lib\ext目錄下去看,就可以看到生成了很多png圖片

參考:

http://jmeter-plugins.org/wiki/JMeterPluginsCMD/

https://blog.csdn.net/weixin_34321753/article/details/85854626

3. 把生成的圖表在html中展示

自己編寫一個HTML文件,展示圖表


<!DOCTYPE HTML PUBLIC “-//W3C//DTD HTHL 4.0 Trangitiona1//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME= "Generator" CONTENT="EditP1us">
<META NAME= "Author" CONTENT="">
<META NAME= "Keywords" CONTENT="">
<META NAME= "Description" CONTENT="">
</HEAD>

<BODY>
    <table align = "center">
        <tr align = "center"><td><H1>Performance Test Report</H1></td></tr>
    </table>
    <table align = "center">
        <tr align = "center"><td><H2>Response Time</H2></td></tr>
        <tr align = "center"><td><IMG src="D:/ProgramFiles/jmeter/bin/tps.png" WIDTH="800" HEIGHT="600" BORDER="0" ALT="" /></td></tr>
    </table>
    <table align = "center">
        <tr align = "center"><td><H2>Response Time</H2></td></tr>
        <tr align = "center"><td><IMG src="D:/ProgramFiles/jmeter/bin/TransactionsPerSecond.png" WIDTH="800" HEIGHT="600" BORDER="0" ALT="" /></td></tr>
    </table>
</B0DY>
</HTML>

參考:https://testerhome.com/topics/13389

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章