注意:非原創(chuàng)!G鹩鳌今膊! 東拼西湊的總結的 用到的內容里都有鏈接
一芽突、工具
- 腳本錄制:badboy、jmeter迷帜、fiddler
- 編譯:ant
- 持續(xù)集成平臺:jenkins
這三者結合起來可以搭建一套Web HTTP接口測試的持續(xù)構建環(huán)境伯诬,實現(xiàn)接口自動化測試百新。
二帖蔓、什么是接口測試
接口測試是測試系統(tǒng)組件間接口的一種測試矮瘟。主要用于外部系統(tǒng)與系統(tǒng)之間以及內部各個子系統(tǒng)之間的交互點。測試的重點是檢查數(shù)據(jù)的切換塑娇、傳遞和控制管理的過程,以及系統(tǒng)間的相互邏輯依賴關系等劫侧。
接口測試適用于為其它系統(tǒng)提供服務的底層框架系統(tǒng)和中心服務系統(tǒng)埋酬,主要測試這些系統(tǒng)對外部提供提供的接口哨啃,驗證其正確性和穩(wěn)定性。
接口測試同樣適用于一個上層系統(tǒng)中的服務層接口写妥,越往上層拳球,其測試的難度越大。
接口測試實施在多系統(tǒng)多平臺的構架下珍特,有著極高效的成本收益比祝峻,接口測試天生為高復雜性的平臺帶來高效的缺陷檢測和質量監(jiān)督能力。平臺越復雜扎筒,系統(tǒng)越龐大莱找,接口測試的效果越明顯。
基于接口測試的重要性嗜桌,以及他比較容易自動化的特性奥溺,通過持續(xù)集成的接口監(jiān)控能夠及時的發(fā)現(xiàn)項目中存在的問題,這對持續(xù)運營的項目來說骨宠,十分重要浮定。
三、測試流程
1层亿、測試接口文檔(需求文檔)
2桦卒、根據(jù)接口文檔編寫測試用例(用例編寫可以完全按照功能用例來編寫,例如等價類劃分匿又、邊界值等方法)
3闸盔、執(zhí)行測試,查看不同的參數(shù)請求琳省,接口返回的數(shù)據(jù)是否達到預期
4迎吵、部署到持續(xù)集成的環(huán)境中
5、設定腳本運行頻率针贬、告警方式等基本參數(shù)击费,進行接口的日常監(jiān)控
6、每日進行接口腳本的運行更新桦他、接口異常的處理
四蔫巩、環(huán)境部署
1圆仔、Jmeter
Jmeter可以做接口測試,也可以做壓力測試蔫劣,是個開源軟件坪郭。純Java語言開發(fā)。
https://blog.csdn.net/wust_lh/article/details/86095924
注意:配置Jmeter環(huán)境變量時脉幢,版本為5+的lib包下沒有l(wèi)ogkit-2.0.jar歪沃,也不用配置在環(huán)境變量中嗦锐。
2、Ant
Ant是基于Java的構建工具沪曙,可以跨平臺奕污。
ant下載安裝看最上邊的鏈接就好
3、Jenkins
Jenkins是持續(xù)集成工具液走。
下載安裝(到最后一步碳默,打開initialAdminPassword文件時,如果打不開的話缘眶,就把該文件拖到電腦桌面嘱根,就能打開)
https://blog.csdn.net/qq_39720249/article/details/81264026
安裝以及離線狀態(tài)的解決辦法
https://blog.csdn.net/qq_38966361/article/details/90734163
五、jmeter編寫腳本+ant執(zhí)行腳本&生成報告(重要0跽浮6印!)
按照下方鏈接一步一步來肯定不會出錯:
https://blog.csdn.net/weixin_41948075/article/details/97894080?utm_medium=distribute.pc_relevant.none-task-blog-baidujs_baidulandingword-0&spm=1001.2101.3001.4242
將jmeter 所在 extras目錄下 的 ant-jmeter-1.1.1.jar 文件 copy 到 ant 所在lib 目錄下砸喻。這樣Ant運行時才能找到"org.programmerplanet.ant.taskdefs.jmeter.JMeterTask"這個類柔逼,從而成功觸發(fā)JMeter腳本。
修改Jmeter的bin目錄下jmeter.properties文件的配置:jmeter.save.saveservice.output_format=xml割岛,并解開注釋愉适,別的啥也別動。
作用是使Jmeter報告輸出文件格式為xml-
在jmeter安裝目錄下新建文件夾JmeterTest癣漆,在JmeterTest下新建文件夾resultLog维咸,resultLog下再新建jtl和html文件夾,html和jtl文件夾的作用:
html文件夾:用于保存html的結果報告
jtl文件夾:用于保存jmeter的測試腳本
build.xml:Ant根據(jù)該文件運行jmeter腳本(關鍵文檔惠爽,需要配置正確)
它的作用就是把生成的.jtl數(shù)據(jù)文件轉換為.html格式的報告
具體屬性的含義:
in:生成的.jtl文件的路徑
out:生成的.html文件的路徑
style:從.jtl轉換成.html所使用的樣式癌蓖,這些文件也在extras目錄下,這個是最重要的部分婚肆,如果我們想定制報告可以自行定義這個文件或者從網(wǎng)上找一些合適的文件租副。
build.xml通用模版如下:
<?xml version="1.0" encoding="UTF-8"?>
<project name="ant-jmeter-test" default="run" basedir=".">
<tstamp>
<format property="time" pattern="yyyyMMddHHmm" />
</tstamp>
<!-- 需要改成自己本地的Jmeter目錄-->
<property name="jmeter.home" value="/Applications/apache-jmeter-5.1.1" />
<!-- jmeter生成jtl格式的結果報告的路徑-->
<property name="jmeter.result.jtl.dir" value="/Applications/apache-jmeter-5.1.1/demo/report/jtl" />
<!-- jmeter生成html格式的結果報告的路徑-->
<property name="jmeter.result.html.dir" value="/Applications/apache-jmeter-5.1.1/demo/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" />
<!-- 輸出生成的報告名稱和存放路徑-->
<echo message="${jmeter.result.jtlName}"/>
<echo message="${jmeter.result.htmlName}"/>
<echo message="${jmeter.result.html.dir}"/>
<target name="run">
<antcall target="test"/>
<antcall target="report"/>
</target>
<!-- 指定ant-jmeter-1.1.1.jar 的位置 -->
<path id="jmeter.classpath">
<fileset dir="${jmeter.home}/extras">
<include name="ant-jmeter-1.1.1.jar"/>
</fileset>
</path>
<!--加載jar包,解決顯示時間問題-->
<path id="xslt.classpath">
<fileset dir="${jmeter.home}/lib" includes="xalan*.jar"/>
<fileset dir="${jmeter.home}/lib" includes="serializer*.jar"/>
</path>
<target name="test">
<taskdef name="jmeter" classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask" />
<jmeter jmeterhome="${jmeter.home}" resultlog="${jmeter.result.jtlName}">
<!-- 聲明要運行的腳本。"*.jmx"指包含此目錄下的所有jmeter腳本较性,比如test*用僧。jmx表示以test開頭的所有.jmx文件-->
<testplans dir="/Applications/apache-jmeter-5.1.1/demo" includes="*.jmx" />
<!-- 聲明ant執(zhí)行jmeter時,傳入jmeter的屬性值赞咙,可以自定義必須是xml格式 -->
<property name="jmeter.save.saveservice.output_format" value="xml"/>
</jmeter>
</target>
<target name="report">
<tstamp> <format property="report.datestamp" pattern="yyyy-MM-dd HH:mm" /></tstamp>
<xslt
classpathref="xslt.classpath"
force="true"
in="${jmeter.result.jtlName}"
out="${jmeter.result.htmlName}"
style="${jmeter.home}/extras/jmeter-results-detail-report_21.xsl">
<!--jmeter-results-detail-report_21.xsl這里的文件名可以換成你想要的報告效果-->
<!--顯示dateReport的時間-->
<param name="dateReport" expression="${report.datestamp}"/>
</xslt>
<!-- 因為上面生成報告的時候责循,不會將相關的圖片也一起拷貝至目標目錄,所以攀操,需要手動拷貝 -->
<copy todir="${jmeter.result.html.dir}">
<fileset dir="${jmeter.home}/extras">
<include name="collapse.png" />
<include name="expand.png" />
</fileset>
</copy>
</target>
</project>
需要改的地方改成自己的路徑啥的院仿,詳情看上方鏈接,原作者標注的地方崔赌。
-
準備要要運行的項目意蛀,放在demo目錄下(注意:網(wǎng)上好多人沒說這一步耸别,所以我一直build失斀“拧)
這一步就是找一個 .jmx格式的文件放在script文件夾中县钥。我是隨便找了一個,如下:
- 運行
切換到運行的目錄慈迈,在運行ant或者ant run命令若贮,然后就回運行成功。
這樣是你還不運行成功痒留,你就要找找自己的原因了谴麦。這是我在網(wǎng)上找了那么就的資料,以上鏈接都是簡單易懂且能安裝成功的伸头。該說的都說了匾效,再有問題就是笨蛋!恤磷!