Jmeter 使用也有很長時間了,但是一直沒有做一下知識梳理,近期會對公司同事做一下這方面的培訓,借此機會,把使用過程中應用到的知識,或是遇到的問題,整理出來,方便大家學習!
Jmeter + Ant + Jenkins 實現持續集成
1、Jmeter 安裝
安裝教程參看:Jmeter 接口測試知識梳理——環境搭建篇
2、Ant 安裝
2.1、下載 地址:https://ant.apache.org/bindownload.cgi

2.2、解壓到指定目錄下即可

2.3、配置環境變量
ANT_HOME
D:\SProgram\Ant
Path
%ANT_HOME%\bin;
2.4、添加jar包
將JMeter所在目錄下extras子目錄里的ant-JMeter-1.1.1.jar復制到Ant所在目錄lib子目錄之下,
這樣Ant運行時才能找到"org.programmerplanet.ant.taskdefs.jmeter.JMeterTask"這個類,從而成功觸發JMeter腳本
2.5、修改配置文件
jmeter默認保存的是.csv格式的文件,所以我們先要設置一下bin/jmeter.properties文件內容,保存
jmeter.save.saveservice.output_format=xml

2.6、設置Jmeter工作空間
目錄結構如下

結合下面build.xml文件,其實script 是存放將要執行的jmeter腳本文件的,即.jmx 文件的
ResultLog 即是存放測試報告的。

2.7、修改build.xml 文件
將如下代碼復制到新建build.xml文件保存即可
<?xml version="1.0" encoding="utf-8"?> <project name="JmeterTest" default="all" basedir="."> <tstamp> <format property="time" pattern="yyyyMMddhhmm" /> </tstamp> <!-- 需要改成自己本地的 Jmeter 目錄--> <property name="jmeter.home" value="D:\SProgram\jmeter" /> <!-- jmeter生成jtl格式的結果報告的路徑--> <property name="jmeter.result.jtl.dir" value="D:\JmeterSpace\ResultLog\jtl" /> <!-- jmeter生成html格式的結果報告的路徑--> <property name="jmeter.result.html.dir" value="D:\JmeterSpace\ResultLog\html" /> <!-- 生成的報告的前綴 --> <property name="ReportName" value="TestReport" /> <!-- 設置生成的.jtl文件名稱,名稱包含時間,防止覆蓋 --> <property name="jmeter.result.jtlName" value="${jmeter.result.jtl.dir}/${ReportName}${time}.jtl" /> <!-- 設置生成的.html文件名稱,不包含時間,只保留最新報告,方便郵件獲取唯一的報告 --> <property name="jmeter.result.htmlName" value="${jmeter.result.html.dir}/${ReportName}.html" /> <!-- 接收測試報告的郵箱 --> <!-- 該功能暫時沒有成功應用 --> <property name="mail_to" value="Your_mail" /> <!-- 電腦地址 --> <property name="ComputerName" value="Yyj" /> <target name="all"> <antcall target="test" /> <antcall target="report" /> </target> <target name="test"> <taskdef name="jmeter" classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask" /> <jmeter jmeterhome="${jmeter.home}" resultlog="${jmeter.result.jtlName}"> <!-- 聲明要運行的腳本。"*.jmx"指包含此目錄下的所有jmeter腳本 --> <testplans dir="D:\JmeterSpace\Script" includes="*.jmx" /> </jmeter> </target> <target name="report"> <xslt in="${jmeter.result.jtlName}" out="${jmeter.result.htmlName}" style="${jmeter.home}/extras/jmeter-results-detail-report_90Line.xsl" /> <!-- 因為上面生成報告的時候,不會將相關的圖片也一起拷貝至目標目錄,所以,需要手動拷貝 --> <copy todir="${jmeter.result.html.dir}"> <fileset dir="${jmeter.home}/extras"> <include name="collapse.png" /> <include name="expand.png" /> </fileset> </copy> </target> <!-- 發送郵件 --> <!-- 發送郵件功能暫未成功使用 --> <target name="sendEmail"> <mail from="Your_mail@163.com" tolist="Your_mail@163.com" mailhost="smtp.163.com" mailport="25" user="Your_mail@163.com" password="Your_password" subject="${ReportName}${time}"> <message>接口測試報告</message> <attachments> <fileset dir="${JMeter.home}/extras/"> <include name="${ReportName}${time}.html"/> </fileset> </attachments> </mail> </target> </project>
其實至此,打開命令行,cd 切換到build.xml文件路徑下,執行ant命令,即可得到如下圖

以及得到如下測試報告

但是此時的測試報告還不完善,需要如下修改
2.8、修改Jmeter 測試報告模板
文件位置在 ${jmeter.home}/extras/目錄下
查找 expand.png,以及collapse.png 修改路徑如下。這里根據自己實際情況修改。問題在於,如果測試報告不是本地打開,會出現圖標不顯示。

注意:jmeter-results-detail-report_90Line.xsl 文件,代碼行比較多,就不放在這里了,此文件已經放到了QQ群:193056556中 文件Jmeter目錄下,有需要的可以進群自取。
下載后放到指定目錄下,即可直接使用無需修改!
2.9、解決報告顯示NaN的問題
解決方案,要下載一個xalan.jar,serializer.jar包,將這兩個jar包入ant的lib包中,輸入ant查看運行結果,使用瀏覽器查看,OK,顯示了!
jar包已經放到群里文件中,見上面提示!
3、Jenkins 安裝
3.1、下載
下載地址:https://jenkins.io/download/

3.2、安裝

點擊安裝,選擇安裝路徑,一路下一步即可。
安裝成功后會自動打開網頁
需要輸入管理員密碼:密碼參見如下圖文件



3.3、新建任務




3.4、配置參數


高級中設置工作空間,這里是測試報告的地址,設置后,發送測試報告時,不需要再寫絕對路徑了,直接寫報告名稱即可。

舊的構建保存了你在一次構建中的所有臨時文件,如果構建沒有保留的必要,就勾選丟棄舊的構建,同時設置保持構建天使和保持構建的最大個數兩個參數。
注意:三個設置必須同時設置,否則無效
3.5、設置定時運行間隔
這里,設置間隔時間為15分鍾運行一次



日程表介紹
【 * * * * * 】 這五個 “*” 分別的定義為:分 時 天 月 星期
Minutes within the hour (0–59)
HOUR Thehour of the day (0–23)
DOM Theday of the month (1–31)
MONTH Themonth (1–12)
DOW Theday of the week (0–7) where 0 and 7 are Sunday.
*表示全部
即 下圖表示 每天 23點某時構建一次。
如果天寫了值表示某月的某天構建一次,同理 年和星期也是一樣。
3.6、設置構建
添加 invoke ant,完成后點擊保存

構建設置build file, build 主要是為了生成測試報告。
3.7、設置郵件發送

這里使用一個sendmail.jar文件
注意:該文件已經放入到群文件中,參考上面注意提示信息!
使用WinRAR打開該文件, 修改如下文件

根據實際需要 修改該配置文件

修改完自己的配置文件后,可以將自己的配置文件放到jar包中,通過RAR打開jar 然后復制粘貼自己的配置文件到 jar 中,然后將sendmail.jar 存放到指定路徑。
設置 郵件發送命令,如圖,sendmail.jar放到了lib 下。其實放哪里都行,這里用的時候全路徑引用即可!

命令:
java -jar D:\SProgram\tools\sendmail.jar -s "XX測試服接口測試報告,請查收。" -t yangyaojun@tenez.cn -b "test接口測試報告,請查看附件。" -a "TestReport.html"
-a "測試報告路徑+測試報告名稱"
對於 要設置 多個收件人時, 收件人郵箱之間用英文逗號隔開即可
最后保存配置即可。構建任務,即可自動執行測試任務,並發送郵件到指定郵箱!
