效能測試學習篇:Jmeter進階實錄——手把手教你實現指令碼錄製
熟悉效能測試的小夥伴對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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 效能測試進階實踐篇:10分鐘教你使用JMeter進行websocket測試!JMeterWeb
- 軟體測試學習教程—【效能測試】Webtour系統Jmeter指令碼錄製及編輯WebJMeter指令碼
- Jmeter —— 錄製指令碼JMeter指令碼
- JMeter錄製指令碼JMeter指令碼
- 使用jmeter錄製web指令碼JMeterWeb指令碼
- Jmeter BlazeMeter實現web錄製JMeterWeb
- 『動善時』JMeter基礎 — 48、使用JMeter自身代理錄製測試指令碼JMeter指令碼
- jmeter利用自身代理錄製指令碼JMeter指令碼
- 『動善時』JMeter基礎 — 49、使用JMeter自身代理錄製APP測試指令碼JMeterAPP指令碼
- 使用Jmeter進行效能測試實戰:詳解HTTP請求和JDBC request進階篇JMeterHTTPJDBC
- 《JMeter實戰》第二章 效能測試初體驗 摘錄JMeter
- Jmeter效能測試實戰JMeter
- 測試開發之自動化篇-使用Selenium IDE錄製指令碼IDE指令碼
- 如何用 JMeter 編寫效能測試指令碼?JMeter指令碼
- 用 Cloud Performance Test 怎麼錄製測試指令碼CloudORM指令碼
- 用 Cloud Performance Test怎麼錄製測試指令碼CloudORM指令碼
- 『動善時』JMeter基礎 — 46、使用Badboy工具錄製JMeter指令碼JMeter指令碼
- Jmeter 本身能錄製指令碼,為什麼還要用 Fiddler 生成指令碼?JMeter指令碼
- 記錄一下效能測試實戰
- 開始你的第一個JMeter指令碼:利用Jmeter錄製指令碼的2種方法彙總JMeter指令碼
- Jmeter實現 Dubbo介面測試JMeter
- 使用 Playwright 指令碼錄製簡化自動化測試:完全指南指令碼
- Chrome實現自動化測試:錄製回放網頁動作Chrome網頁
- 測試開發之效能篇-JMeter介面測試JMeter
- 『動善時』JMeter基礎 — 45、指令碼錄製工具Badboy介紹JMeter指令碼
- JMeter做效能測試(1)-效能壓測指令碼的生成以及完善和增強JMeter指令碼
- iOS 螢幕錄製實現iOS
- Android 音視訊錄製硬編碼實現Android
- 學點高階測試工程師才懂的技術:手把手教你進行越權測試工程師
- jmeter 介面自動化連載 (12) - 代理伺服器錄製指令碼JMeter伺服器指令碼
- 滲透測試學習記錄
- 《最新出爐》系列入門篇-Python+Playwright自動化測試-40-錄製生成指令碼Python指令碼
- Jmeter(二十七) - 從入門到精通 - Jmeter Http協議錄製指令碼(詳解教程)JMeterHTTP協議指令碼
- (一)《SQL進階教程》學習記錄--CASESQL
- 介面測試(apipost、jmeter和python指令碼)——測試工具APIJMeterPython指令碼
- JMeter效能測試JMeter
- 介面測試 (apipost、jmeter 和 python 指令碼)APIJMeterPython指令碼
- 介面測試(apipost、jmeter和python指令碼)APIJMeterPython指令碼