效能測試學習篇:Jmeter進階實錄——手把手教你實現指令碼錄製

博為峰網校發表於2021-04-28

熟悉效能測試的小夥伴對Jmeter一定都不陌生,Jmeter因其輕量、開源的特點成為了一款頗具人氣的效能測試工具。效能測試需要模擬客戶端向伺服器傳送請求,而這些請求不僅可以手動新增,也可以透過錄制指令碼的方式生成。很多讀者比較熟悉的指令碼錄製是透過Loadrunner或Jmeter+Badboy來實現的,但實際上,Jmeter自身也具有完備的指令碼錄製功能。下面,我們就來介紹如何透過Jmeter進行指令碼錄製。加我VX:atstudy-js 回覆“測試”,進入軟體測試學習交流裙~~

一、基礎篇

在開始錄製前需要進行一系列的準備工作。第一步,新增執行緒組->邏輯控制器->錄製控制器;

第二步,新增測試計劃->非測試元件->HTTP代理伺服器;

其中目標控制器選擇上一步中的錄製控制器,埠可隨意填寫,但需要保證不和其他程式的埠衝突,這裡使用預設的8888埠。

第三步,配置瀏覽器代理伺服器,埠與上一步中保持一致。

在上述步驟完成後,就可以開始錄製了~

首先,在HTTP代理伺服器中啟動錄製;

之後會彈出認證視窗,點選確認。

接下來,就可以在瀏覽器中進行錄製操作,錄製完畢後點選停止,結束錄製。

不過,在完成上述操作後,指令碼的錄製還不算最終完成。因為在錄製過程中會產生很多冗餘的請求,一部分是瀏覽器相關的請求,這一部分很容易被篩選出來(下圖中框選內容)。

根據請求內容及響應資料從剩餘項中選出目標交易請求。如果不確定其他請求是否會對目標交易請求產生影響,可透過切換請求的“禁用/啟用”狀態進行除錯,並透過“檢視結果樹”對結果進行驗證。

二、進階篇

通常,在對系統進行測試時,首先都需要進行登入,否則無法進行相關的頁面操作。大多數瀏覽器是透過token來進行身份識別的,在傳送請求後,Jmeter可以獲取伺服器的響應資料,登入請求的響應資料中包含token值,只要在指令碼中與後續操作進行關聯,就可以完成身份認證了。Jmeter中的資料提取有很多方法,這裡,我們使用JSON提取器來獲取登入token。

首先,在登入請求中新增後置處理器 -> JSON提取器,設定token變數;

接下來,在目標交易請求的HTTP資訊頭管理器中將X-Token與上一步中設定的變數進行關聯,即可動態獲取登入的token值。

到這裡我們可能會有一個疑問:關聯token雖然解決了登入的問題,但是每做一次其他操作都需要重新登入嗎?如果測試環境沒有登入超時設定,即只需要一次登入,那麼這裡需要用到的就是兩種控制器:新增邏輯控制器->僅一次控制器,邏輯控制器->迴圈控制器,把登入放入僅一次控制器中,目標交易請求放入迴圈控制器中,就能保證只進行一次登入了。加我VX:atstudy-js 回覆“測試”,進入軟體測試學習交流裙~~

然而,實際的系統往往沒有這麼簡單,當登入超過一定時間,原有的token可能會過期,需要再次獲取。舉例來說,在疲勞測試中,因為執行時間長,很可能因token過期失去訪問許可權。解決這個問題的一個方法就是讓系統定時重新登入,筆者在這裡提供一種思路:疲勞測試的吞吐量一般是比較穩定的,因此可以根據吞吐量大致估算出一段時間t內的交易數量N,將上圖中的僅一次控制器替換為迴圈控制器,迴圈次數設定為1,並將下一個迴圈控制器迴圈次數設定為N,這樣就可以保證每經過時間t重新登入一次,避免了因為登入超時導致測試中斷。

在上述的各個步驟都完成後,我們就可以新增各種監聽器,執行指令碼並檢視結果了,你學會了嗎?

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31407649/viewspace-2770368/,如需轉載,請註明出處,否則將追究法律責任。

相關文章