測試需求:
想用一套自動化測試的框架實現(xiàn)開發(fā)的代碼完成后自動運行接口測試腳本并呈現(xiàn)。
測試設計:
Jenkins(持續(xù)集成工具)流程一般分為以下幾步:
- 獲取到被編譯的代碼(可以通過各種版本控制工具SVN或者Git等等)
- 構建整個項目,可以用到Marven也可以是Ant,甚至直接執(zhí)行windows腳本來
調(diào)用自動化測試腳本(可以是某種語言實現(xiàn)的(比如Python)萍桌,也可以是依托于某種測試框架(比如RF)的拦耐,也可以是某種工具(比如Jmeter)實現(xiàn)的) - 得到測試報告
環(huán)境配置
性能測試工具:
Jmeter 3.2 下載地址:http://jmeter.apache.org/download_jmeter.cgi
搭建過程:Jmeter3.0(一) 搭建測試環(huán)境
持續(xù)集成平臺:
Jenkins 2.68 下載地址:http://jenkins-ci.org/
Jenkins 插件 HTML Publisher pluginV1.14
Jenkins 插件 Ant1.7
打包工具:
Ant (隨便搜一下,比如:http://www.cnblogs.com/yuzhongwusan/archive/2013/03/26/2982411.html)
注意事項:
1愤炸、拷貝tools.jar
部分jdk和公司標裝的機器可能沒有tools.jar 蟆肆, 從有該 jar 包的目錄拷貝一個到對應的jdk 環(huán)境變量中矾睦,放到 JDK 的 lib 目錄下
否則可能會遇到報錯:
Unable to locate tools.jar. Expected to find it in /usr/lib/jvm/java-1.8/lib/tools.jar
2、拷貝 ant-jmeter-1.1.1.jar
為了能夠在后續(xù) ant 腳本中使用 jmeter task炎功,必須要將 ant-jmeter-1.1.1.jar 拷貝到執(zhí)行機 ant 的 classpath 中(即拷貝到 ant 的 lib 目錄中)枚冗,這個 jar 包一般可以在 jmeter 的目錄 lib/extras 中找到
否則可能出現(xiàn)報錯:
task class org.programmerplanet.ant.taskefs.jmeter.JMeterTask cannot be found
編寫Jmeter腳本
可參照 Jmeter3.0(三) 來發(fā)個帖
這次我們使用的腳本是 Script_Guest_SearchMeeting.jmx
注意事項:
jmeter執(zhí)行結果文件默認保存的不是xml格式,無法轉化成html格式
jmeter執(zhí)行結果文件默認有很多執(zhí)行數(shù)據(jù)是不保存的蛇损,而測試報告需要這些數(shù)據(jù)
在Jmeter的安裝目錄下查找\bin\user.properties文件赁温,添加一行
jmeter.save.saveservice.output_format=xml
配置Jenkins Job
- 選擇一個Freestyle的項目(可以取名 吳亦凡,我們低調(diào)點兒,這次)
- 配置Job
- Source Code Management
可選擇獲取代碼的方式(如果要選Git淤齐,前提是要裝Git的插件)
-
Build 構建
選擇windows命令執(zhí)行的方式(還有其它的方式股囊,個人感覺這個是比較好用的一種)
此處的build.xml是Ant需要的配置文件(當目錄有空格的時候,可以用Progra~1來替代Program Files)以下是 示例:
<project default="all">
<!-- ant-jmeter.jar comes with jmeter, be sure this is the release you have -->
<property name="jmeter-home" value="D:\Jmeter\apache-jmeter-3.2" />
<path id="ant.jmeter.classpath">
<pathelement
location="${jmeter-home}/extras/ant-jmeter-1.1.1.jar" />
</path>
<taskdef
name="jmeter"
classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask"
classpathref="ant.jmeter.classpath" />
<target name="clean">
<delete dir="results"/>
<delete file="jmeter.log"/>
<mkdir dir="results/jtl"/>
<mkdir dir="results/html"/>
</target>
<target name="test" depends="clean">
<jmeter
jmeterhome="${jmeter-home}"
resultlogdir="results/jtl">
<testplans dir="D:\Jmeter" includes="Script_Guest_SearchMeeting.jmx"/>
<property name="jmeter.save.saveservice.output_format" value="xml"/>
</jmeter>
</target>
<!-- This is not needed for the plugin, but it produces a nice html report
which can be saved usin jenkins's archive artifact feature -->
<target name="report" depends="test">
<xslt
basedir="results/jtl"
destdir="results/html"
includes="*.jtl"
style="${jmeter-home}/extras/jmeter-results-report_21.xsl"/>
</target>
<target name="all" depends="test, report"/>
</project>
注意點:
<property name="jmeter-home" value="D:\Jmeter\apache-jmeter-3.2" />
其中jmeter-home的目錄是測試環(huán)境上安裝jmeter的目錄更啄。
<testplans dir="D:\Jmeter" includes="Script_Guest_SearchMeeting.jmx"/>
其中testplans是指要運行的測試腳本稚疹。
Post-build Actions構建后的報告
選擇 Publish HTML reports
Jmeter的報告模板是可以在Ant的build.xml中設置:
<target name="report" depends="test">
<xslt
basedir="results/jtl"
destdir="results/html"
includes="*.jtl"
style="${jmeter-home}/extras/jmeter-results-report_21.xsl"/>
完成后點擊到Build Now。
(以下是這個實驗的構建歷史祭务,說多了都是淚)
Finally内狗,我們就可以看到一個最終的報告啦。