JMeter是一個軟件,使負載測試或業績爲導向的業務(功能)測試不一樣的協議或技術。 Apache軟件基金會的Stefano Mazzocchi JMeter的最初的開發。他寫道:它主要對 Apache JServphp
(如今稱爲如Apache Tomcat項目)的性能進行測試。Apache後來從新設計JMeter 加強的圖形用戶界面和添加功能測試能力。Jmeter最初使用到性能測試,後來通過修改,能夠對軟件的不
僅僅進行性能測試,還能夠進行接口測試與功能,本文章在這裏要詳細介紹的就是,使用Jmeter測試一個產品的接口測試,並把Jmeter與ant,Jenkins結合起來,自動化的去執行,而且生成
給予html的測試報告。關於jmeter的其餘詳細信息,建議看官方的文檔,解釋的比較詳細和權威。
加壓後,到biin目錄下,點擊jmeter.bat啓動jmeter(若是是linux環境,給jmeter.sh可執行的權限,而後執行jmeter.sh就能夠啓動jmeter),見啓動後的界面,見以下的截圖:
這裏已m.cyw.com爲案例,測試網易郵箱登陸,彈出的接口,見建立後的項目(這裏重點介紹與ant,jenkins的整合,不詳細介紹jmeter的使用方法),見建立後的項目計劃截圖:
下來來看m.cyw.com爲案例,跳轉到西安市的接口爲:http://m.cyw.com/index.php?m=api&c=cookie&a=setcity,請求爲post請求,具體見以下postman對該接口的請求截圖:
見如上,該接口在postman中調用,返回的json字符串,完善jmeter,見完善後的jmeter截圖以及附件:
在jmeter中,點擊run,能夠看到執行的結果,見截圖:
依據結果中,能夠看到執行的結果,是經過的,下來把jmeter與ant進行整合,實現自動化的執行,而不是每次執行,得打開jmeter的界面,點擊run去執行,ant的下載地址爲:
而後在path環境變量中加入%ANT_HOME%\bin,配置完成後,打開cmd命令提示符,輸入ant -v ,出現以下截圖,說明ant環境配置OK,見截圖:
想要實現jmeter使用ant去執行,須要作以下幾個操做:
一、修改jmeter配置文件jmeter.properties,把jmeter.save.saveservice.output_format=csv修改成jmeter.save.saveservice.output_format=xml,並
不要註釋,見截圖:
二、在jmeter的extras目錄下,把ant-jmeter-1.1.1.jar文件複製到ant的lib目錄下,見截圖;
三、在jmeter當前目錄下建立TestCase文件夾,並把wap.jmx複製到TestCase目錄下,見截圖:
四、編寫build.xml文件,ant執行時候,會使用到該文件,見build.xml文件的源碼:
<?xml version="1.0" encoding="UTF8"?>
<project name="Jmeter-TestCase" default="run" basedir=".">
<tstamp>
<format property="time" pattern="yyyyMMddhhmm" />
</tstamp>
<!--jmeter的目錄-->
<property name="jmeter.home" value="D:\git\cyw\cyw_jmeter\apache-jmeter-2.12" />
<property name="jmeter.result.jtl.dir" value="D:\git\cyw\cyw_jmeter\apache-jmeter-2.12\TestCaset\report\jtl" />
<property name="jmeter.result.html.dir" value="Q:\tools\apache-jmeter\test\report\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="run">
<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}">
<testplans dir="D:\git\cyw\cyw_jmeter\apache-jmeter-2.12\TestCase" includes="wap.jmx" />
<property name="jmeter.save.saveservice.output_format" value="xml"/>
</jmeter>
</target>
<target name="report">
<xslt in="${jmeter.result.jtlName}"
out="${jmeter.result.htmlName}"
<!--jmeter的xml模板-->
style="${jmeter.home}/extras/jmeter-results-detail-report_21.xsl" />
<copy todir="${jmeter.result.html.dir}">
<fileset dir="${jmeter.home}/extras">
<include name="collapse.png" />
<include name="expand.png" />
</fileset>
</copy>
</target>
</project>
五、到D:\git\cyw\cyw_jmeter\apache-jmeter-2.12\TestCase目錄下,執行ant命令,就會執行接口測試用例,生成給予html的測試報告,見ant執行的命令:
從命令行中,能夠看到執行已成功,到Report目錄下,能夠看到生成的html與jtl,到html目錄下,能夠看到html的報告,見截圖:
打開html,能夠看到詳細的執行結果,見截圖:
OK,已生成想要的結果報告,特別說明,apache-jmeter-2.12\extras目錄下的xml文件能夠自定義,你看到的html報告可能和我截圖的不一致,不過,你也能夠根據本身的愛好修改xml文件。
新建立工程,能夠把jmeter,ant,jenkins結合起來,實現接口自動化或者性能測試的自動化測試平臺,見jenmins截圖:
在Jenkins點擊當即構建,就能夠執行了。