最近在使用jmeter寫腳本來進行測試,最終寫了很多份腳本,,然后,,就在想,這么多腳本,,我不可能一個一個的手動去點啊,,有沒有什么辦法來批量運行Jmeter腳本呢?
這個時候,,自然而然地想到了萬能的ant,,希望它能有相應(yīng)的jmeter task。
哎,哎,,查了一下,,還真有,爽歪歪啊,。
下面簡單說明一下,,如果使用:
① 首先,,為了能夠在ant中使用jmeter task,,必須將“ant-jmeter-1.1.1.jar”這個jar包放到ant的classpath中去。這個jar包位置 jmeter的安裝目錄下的 extras 目錄中,。
PS:可直接將這個jar拷貝至ant安裝目錄下的lib目錄中去就可以了,。
② 編寫腳本
- <?xml version="1.0" encoding="UTF-8"?>
-
- <project name="ant-jmeter-test" default="all" basedir=".">
- <tstamp>
- <format property="time" pattern="yyyyMMddhhmm" />
- </tstamp>
- <!-- 需要改成自己本地的 Jmeter 目錄-->
- <property name="jmeter.home" value="F:\xxxxx\Jmeter" />
- <!-- jmeter生成jtl格式的結(jié)果報告的路徑-->
- <property name="jmeter.result.jtl.dir" value="F:\xxxxx\resultLog\jtl" />
- <!-- jmeter生成html格式的結(jié)果報告的路徑-->
- <property name="jmeter.result.html.dir" value="F:\xxxxx\resultLog\html" />
- <!-- 生成的報告的前綴->
- <property name="ReportName" value="TestReport" />
- <property name="jmeter.result.jtlName" value="${jmeter.result.jtl.dir}/${ReportName}${time}.jtl" />
- <property name="jmeter.result.htmlName" value="${jmeter.result.html.dir}/${ReportName}${time}.html" />
-
- <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:\test_case_path" includes="*.jmx" />
- </jmeter>
- </target>
-
- <target name="report">
- <xslt in="${jmeter.result.jtlName}"
- out="${jmeter.result.htmlName}"
- style="${jmeter.home}/extras/jmeter-results-detail-report_21.xsl" />
-
- <!-- 因為上面生成報告的時候,,不會將相關(guān)的圖片也一起拷貝至目標(biāo)目錄,,所以,需要手動拷貝 -->
- <copy todir="${jmeter.result.html.dir}">
- <fileset dir="${jmeter.home}/extras">
- <include name="collapse.png" />
- <include name="expand.png" />
- </fileset>
- </copy>
- </target>
- </project>
③ 生成的結(jié)果報告如下圖
④ 下面說一個,,我在使用過程中遇到的一個問題: 就是在執(zhí)行 最后生成報告的 task 時,,一直報下面這個錯:
TransformerException, Content is not allowed in prolog.
后來在ant-jmeter官網(wǎng)上查到了原因:
- Note: As of JMeter 1.9RC2(?), the default results output format is now csv. It must be changed to xml in order to use the xslt task to create the html report:
所以需要修改Jmeter的一個配置
- jmeter.save.saveservice.output_format=xml
然后就可以正常生成報告了啊
附: ant-jmeter官網(wǎng): http://www./projects/jmeter-ant-task/
|