1. 程式人生 > >基於Jmeter的自動化測試實施方案設計

基於Jmeter的自動化測試實施方案設計

方式 最大 cgi 監聽 load failure ops 郵件 amp

前言:

Jmeter是目前最流行的一種測試工具,基於此工具我們搭建了一整套的自動化方案,包括了腳本添加配置、本地配置和運行、服務器配置等內容,完成了自動化測試閉環,通過這種快捷簡便高效的方式,希望可以解決自動化測試上手難的痛點。下面閑言少敘,我們直接切入實戰:

一、準備自動化測試物料

1、開發運行工具Jmeter,(下載地址: http://jmeter.apache.org/download_jmeter.cgi)

技術分享圖片

2、開發環境為已發布ready;

3、測試腳本已準備ready;

4、腳本運行環境已準備(fat或者uat);

二、自動化測試通過標準

1、成功Status 返回200 ;

2、失敗返回404、500等;

3、每個腳本專用斷言;

三、自動化腳本存儲

腳本全部存儲在Gitlab倉庫中,(腳本的存儲規範請參考:GitLab Jmeter測試包通用設計1.0版)

項目根目錄新建文件夾,前面文件夾名和項目名保持一致,後綴加“-test”,如下圖文件夾:

技術分享圖片

四、自動化測試Script Rules

1、腳本命名為接口名

2、存儲類型為後綴jmx的文件

3、線程數設置為1(冒煙測試無需多線程並發)

4、必須包含斷言判斷,狀態檢測設定為200

五、自動化測試Script Steps

1、添加線程組,腳本命名為接口名,點擊存儲 為後綴jmx的文件

2、將線程數設置為1,其他設置為默認(如下圖)

3、循環次數為不循環,調度器不設置,其他參數不設置(如下圖)

技術分享圖片

4、配置http協議選項:

a、添加http請求,線程組右鍵“添加”,選擇“Sampler”,再選擇“HTTP請求”:

技術分享圖片

b、請求為post or get(如下圖,此處根據實際情況設置為POST)

c、內容編碼:UTF-8(如下圖,此處根據實際情況設置為UTF-8)

d、Request報文:填入Body Data(如下圖,此處根據實際情況設置Request報文內容)

技術分享圖片

5、配置斷言選項,線程組右鍵“添加”,選擇“斷言”,此處選擇“響應斷言”。註意可以根據實際情況選擇其他斷言類型:

a、添加響應斷言,如下圖所示;

技術分享圖片

b、選擇響應字段為響應代碼,如下圖所示;

c、匹配規則選擇為包括,如下圖;

d、測試模式填入200,如下圖(此處為開發自定義返回碼,請根據實際情況設置);

技術分享圖片

6、添加“HTTP信息頭管理器” ,在測試計劃點擊右鍵“添加”菜單,選擇“配置元件”,再選擇“HTTP信息頭管理器” (即為HTTP Header Manager),如下圖:

技術分享圖片

可根據實際情況添加Content-Type等內容,例如此處value設置為:application/json,如下圖範例:

技術分享圖片

7、添加“查看結果樹”,在測試計劃點擊右鍵“添加”菜單,選擇“監聽器”,再選擇“查看結果樹”:

技術分享圖片

運行成功或失敗,分別可以查看結果樹詳情,如下圖所示,查看響應數據,可以看到response報文:

技術分享圖片

下圖是一個運行失敗結果的斷言,斷言失敗的信息也會有詳細說明:

技術分享圖片

8、添加"用表格查看結果",在測試計劃點擊右鍵“添加”菜單,選擇“監聽器”,選擇“用表格查看結果”:

技術分享圖片

添加後每次測試計劃運行結束,可以查看全部線程組的運行結果,如下圖所示:

技術分享圖片

9、添加“聚合報告”,在測試計劃點擊右鍵“添加”菜單,選擇“監聽器”,選擇“聚合報告”:

技術分享圖片

聚合報告主要用來收集本次測試計劃運行的一些重要的性能指標數值,例如Average、90%Line等等,添加後每次測試計劃運行結束可以查看到指標的有效數據,如下圖範例:

技術分享圖片

六、本地執行

1、在當前測試計劃中,根據上述範例逐一添加本次需要運行的自動化腳本,添加完成後的效果如下所示:

技術分享圖片

2、運行當前測試計劃的全部用例,然後用查看全部運行結果如下:

技術分享圖片

3、同樣在結果樹,可以查看全部失敗用例的詳細報文:

技術分享圖片

七、服務器配置和運行(Jenkins/TFS)

由於job最底層調度由Jenkins實現,本小節重點介紹如何配置job參數等內容。TFS方面只需要通過接口或者命令行的方式,直接調度Jenkins即可。

1、Job命名規範,定義在Jenkins中job的命名規範,如下圖所示,以“JMETER”開頭後面是服務名:

技術分享圖片

2、添加構建配置,如圖所示,其中devops是基於Python編寫的打包腳本,/sso-support-test是Jmx腳本文件地址,report_server是郵件服務,mail是報告接收人的郵箱地址:

技術分享圖片

3、構建觸發器配置:如圖所示,這裏配置每兩分鐘去輪循檢查服務器是否有更新:

技術分享圖片

4、源碼管理:添加並選擇Git倉庫,然後配置Repo地址,最後選擇分支dev(非強制)

技術分享圖片

八、服務器生產自動化報告

自動化報告目前支持兩種形式,郵件和Html報告查看。

1、郵件方式報告查看。服務器端配置響應接收人員的郵件地址後,每次自動化運行結束,會自動發送郵件報告到指定關註人,如下圖所示:

技術分享圖片

郵件Report中主要包含以下內容:

Summary欄目:包含所有請求的總結,總數,失敗數,成功率,平均時間,最小時間,最大時間等。

技術分享圖片

Pages欄目:主要包含了單個請求的詳情內容:

技術分享圖片

Failure Detail:主要是錯誤詳情相關內容:

技術分享圖片

2、Html報告查看。Html內容展示目前和郵件基本保持一致不再展開詳述,如下圖所示:

技術分享圖片

基於Jmeter的自動化測試實施方案設計