前言:apache
Jmeter是目前最流行的一種測試工具,基於此工具咱們搭建了一整套的自動化方案,包括了腳本添加配置、本地配置和運行、服務器配置等內容,完成了自動化測試閉環,經過這種快捷簡便高效的方式,但願能夠解決自動化測試上手難的痛點。下面閒言少敘,咱們直接切入實戰:json
1、準備自動化測試物料服務器
一、開發運行工具Jmeter,(下載地址: http://jmeter.apache.org/download_jmeter.cgi)多線程
二、開發環境爲已發佈ready;併發
三、測試腳本已準備ready;app
四、腳本運行環境已準備(fat或者uat);工具
2、自動化測試經過標準post
一、成功Status 返回200 ;性能
二、失敗返回40四、500等;測試
三、每一個腳本專用斷言;
3、自動化腳本存儲
腳本所有存儲在Gitlab倉庫中,(腳本的存儲規範請參考:GitLab Jmeter測試包通用設計1.0版)
項目根目錄新建文件夾,前面文件夾名和項目名保持一致,後綴加「-test」,以下圖文件夾:
4、自動化測試Script Rules
一、腳本命名爲接口名
二、存儲類型爲後綴jmx的文件
三、線程數設置爲1(冒煙測試無需多線程併發)
四、必須包含斷言判斷,狀態檢測設定爲200
5、自動化測試Script Steps
一、添加線程組,腳本命名爲接口名,點擊存儲 爲後綴jmx的文件
二、將線程數設置爲1,其餘設置爲默認(以下圖)
三、循環次數爲不循環,調度器不設置,其餘參數不設置(以下圖)
四、配置http協議選項:
a、添加http請求,線程組右鍵「添加」,選擇「Sampler」,再選擇「HTTP請求」:
b、請求爲post or get(以下圖,此處根據實際狀況設置爲POST)
c、內容編碼:UTF-8(以下圖,此處根據實際狀況設置爲UTF-8)
d、Request報文:填入Body Data(以下圖,此處根據實際狀況設置Request報文內容)
五、配置斷言選項,線程組右鍵「添加」,選擇「斷言」,此處選擇「響應斷言」。注意能夠根據實際狀況選擇其餘斷言類型:
a、添加響應斷言,以下圖所示;
b、選擇響應字段爲響應代碼,以下圖所示;
c、匹配規則選擇爲包括,以下圖;
d、測試模式填入200,以下圖(此處爲開發自定義返回碼,請根據實際狀況設置);
六、添加「HTTP信息頭管理器」 ,在測試計劃點擊右鍵「添加」菜單,選擇「配置元件」,再選擇「HTTP信息頭管理器」 (即爲HTTP Header Manager),以下圖:
可根據實際狀況添加Content-Type等內容,例如此處value設置爲:application/json,以下圖範例:
七、添加「查看結果樹」,在測試計劃點擊右鍵「添加」菜單,選擇「監聽器」,再選擇「查看結果樹」:
運行成功或失敗,分別能夠查看結果樹詳情,以下圖所示,查看響應數據,能夠看到response報文:
下圖是一個運行失敗結果的斷言,斷言失敗的信息也會有詳細說明:
八、添加"用表格查看結果",在測試計劃點擊右鍵「添加」菜單,選擇「監聽器」,選擇「用表格查看結果」:
添加後每次測試計劃運行結束,能夠查看所有線程組的運行結果,以下圖所示:
九、添加「聚合報告」,在測試計劃點擊右鍵「添加」菜單,選擇「監聽器」,選擇「聚合報告」:
聚合報告主要用來收集本次測試計劃運行的一些重要的性能指標數值,例如Average、90%Line等等,添加後每次測試計劃運行結束能夠查看到指標的有效數據,以下圖範例:
6、本地執行
一、在當前測試計劃中,根據上述範例逐一添加本次須要運行的自動化腳本,添加完成後的效果以下所示:
二、運行當前測試計劃的所有用例,而後用查看所有運行結果以下:
三、一樣在結果樹,能夠查看所有失敗用例的詳細報文:
7、服務器配置和運行(Jenkins/TFS)
因爲job最底層調度由Jenkins實現,本小節重點介紹如何配置job參數等內容。TFS方面只須要經過接口或者命令行的方式,直接調度Jenkins便可。
一、Job命名規範,定義在Jenkins中job的命名規範,以下圖所示,以「JMETER」開頭後面是服務名:
二、添加構建配置,如圖所示,其中devops是基於Python編寫的打包腳本,/sso-support-test是Jmx腳本文件地址,report_server是郵件服務,mail是報告接收人的郵箱地址:
三、構建觸發器配置:如圖所示,這裏配置每兩分鐘去輪循檢查服務器是否有更新:
四、源碼管理:添加並選擇Git倉庫,而後配置Repo地址,最後選擇分支dev(非強制)
8、服務器生產自動化報告
自動化報告目前支持兩種形式,郵件和Html報告查看。
一、郵件方式報告查看。服務器端配置響應接收人員的郵件地址後,每次自動化運行結束,會自動發送郵件報告到指定關注人,以下圖所示:
郵件Report中主要包含如下內容:
Summary欄目:包含全部請求的總結,總數,失敗數,成功率,平均時間,最小時間,最大時間等。
Pages欄目:主要包含了單個請求的詳情內容:
Failure Detail:主要是錯誤詳情相關內容:
二、Html報告查看。Html內容展現目前和郵件基本保持一致再也不展開詳述,以下圖所示: