在開始這篇文章之前,我要先為大家解答2個疑惑:
第一點,我們為什麼要在項目中進行接口自動化測試?好處是什麼?
相對於UI層面,接口的測試的收益是巨大的,能在最短的時間發現重要的問題。接口在迭代研發過程中,和UI相比變化非常少,自動化維護成本低,能在多個版本中複用。
第二點,我們為什麼要選擇Jmeter+Ant+Jenkins這套框架?好處是什麼?這套框架可以實現什麼?
選擇Jmeter +Ant+Jenkins這套框架的原因是:
①學習成本較低,普通測試上手快,適合小型測試團隊
②腳本可維護性強
接下來言歸正傳,如何用Jmeter + Ant + Jenkins 實現持續集成?
1、 Jmeter 安裝
這裡就不多說了,安裝詳情請參考我之前的文章。
2、Ant 安裝
①下載地址:https://ant.apache.org/bindownload.cgi
②解壓到指定目錄下即可
③配置環境變量
ANT_HOME
D:\\SProgram\\Ant
Path
%ANT_HOME%\\bin;
④添加jar包
將JMeter所在目錄下extras子目錄裡的ant-JMeter-1.1.1.jar複製到Ant所在目錄lib子目錄之下,這樣Ant運行時才能找到"org.programmerplanet.ant.taskdefs.jmeter.JMeterTask"這個類,從而成功觸發JMeter腳本
⑤修改配置文件
jmeter默認保存的是.csv格式的文件,所以我們先要設置一下bin/jmeter.properties文件內容,保存jmeter.save.saveservice.output_format=xml
⑥設置Jmeter工作空間
目錄結構如下
結合下面build.xml文件,其實script 是存放將要執行的jmeter腳本文件的,即.jmx 文件的ResultLog 是存放測試報告的。
⑦修改build.xml 文件
將如下代碼複製到新建build.xml文件保存即可
<project>
<tstamp>
<format>
<property>
<property>
<property>
<property>
<property>
<property>
<property>
<property>
<target>
<antcall>
<antcall>
<target>
<taskdef>
<jmeter>
<testplans>
<target>
<xslt>
<copy>
<fileset>
<include>
<include>
<target>
<mail>
<message>接口測試報告/<message>
<attachments>
<fileset>
<include>
其實至此,打開命令行,cd 切換到build.xml文件路徑下,執行ant命令,即可得到如下圖
以及得到如下測試報告
但是此時的測試報告還不完善,需要如下修改
⑧修改Jmeter 測試報告模板
文件位置在 ${jmeter.home}/extras/目錄下
查找 expand.png,以及collapse.png 修改路徑如下。這裡根據自己實際情況修改。問題在於,如果測試報告不是本地打開,會出現圖標不顯示。
注意:jmeter-results-detail-report_90Line.xsl 文件,代碼行比較多,就不放在這裡了,自己找資料下載後放到指定目錄下,即可直接使用無需修改!
⑨解決報告顯示NaN的問題
解決方案,要下載一個xalan.jar,serializer.jar包,將這兩個jar包入ant的lib包中,輸入ant查看運行結果,使用瀏覽器查看,OK,顯示了!
3、Jenkins 安裝
①下載地址:https://jenkins.io/download/
②安裝
點擊安裝,選擇安裝路徑,一路下一步即可。
安裝成功後會自動打開網頁,需要輸入管理員密碼:密碼參見如下圖文件
③新建任務
④配置參數
高級中設置工作空間,這裡是測試報告的地址,設置後,發送測試報告時,不需要再寫絕對路徑了,直接寫報告名稱即可。
舊的構建保存了你在一次構建中的所有臨時文件,如果構建沒有保留的必要,就勾選丟棄舊的構建,同時設置保持構建天使和保持構建的最大個數兩個參數。注意:三個設置必須同時設置,否則無效⑤設置定時運行間隔
這裡,設置間隔時間為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點某時構建一次。
如果天寫了值表示某月的某天構建一次,同理年和星期也是一樣。
⑥設置構建
添加 invoke ant,完成後點擊保存
構建設置build file, build 主要是為了生成測試報告。
⑦設置郵件發送
這裡使用一個sendmail.jar文件
使用WinRAR打開該文件,修改如下文件
根據實際需要 修改該配置文件
修改完自己的配置文件後,可以將自己的配置文件放到jar包中,通過RAR打開jar然後複製粘貼自己的配置文件到 jar中,然後將sendmail.jar存放到指定路徑。
設置郵件發送命令,如圖,sendmail.jar放到了lib下。其實放哪裡都行,這裡用的時候全路徑引用即可!
命令:java -jar D:\\SProgram\\tools\\sendmail.jar -s "XX測試服接口測試報告,請查收。" -t [email protected] -b "test接口測試報告,請查看附件。" -a "TestReport.html"
-a "測試報告路徑+測試報告名稱"
對於要設置多個收件人時,收件人郵箱之間用英文逗號隔開即可
最後保存配置即可。構建任務,即可自動執行測試任務,併發送郵件到指定郵箱!
總結,這套框架可以實現:
1、斷言驗證(Jmeter可以鏈接數據庫,API返回值可與數據庫中的值進行對比斷言操作)
2、Jenkins定時任務調度
3、測試數據維護性強
4、每輪執行的測試報告在Jenkins可視化展示
5、預警機制,當Jenkins構建失敗時可時時郵件提醒項目成員
接口自動化測試就分享到這裡了,如果文章中有些文件找不到下載地址,可以直接給我留言哦~~
請關注+私信回覆:“學習”就可以免費拿到軟件測試學習資料
閱讀更多 Atstudy網校 的文章