許多測試工程師使用Postman進行API測試自動化。他們發現端點,發出請求,建立測試資料,執行迴歸測試,使用Newman等實現API測試的持續整合。但是,Postman有一定的測試限制。希望獲得更多負載測試能力的開發人員,DevOps和QA工程師可以將其Postman測試轉換為JMeter。這篇部落格文章將解釋何時建議將Postman轉換為JMeter,並逐步說明如何實現。
Postman測試無法擴充套件。如果您的集合中有很多請求,Postman / Newman將使用1個執行緒(使用者)並按順序執行這些請求,而不是使用多個執行緒並行執行。
由於可延伸性限制,Postman不適合API效能測試。效能測試要求同時針對多個執行緒(使用者)執行測試,以確保系統在重負載下不會中斷。
您可能希望將現有的Postman測試轉換為JMeter以獲得以下好處:
多執行緒執行
獲取API的效能指標
獲得高階報告,並將不斷增加的負載與響應時間,錯誤數量等相關聯。
查詢瓶頸和最慢的API端點
以下是將現有Postman測試轉換為JMeter的步驟:
JMeter隨附有HTTP(S)測試指令碼記錄器,該記錄器充當瀏覽器(或使用HTTP協定並支援代理的任何其他應用程式)的代理。因此,您可以使用它來攔截瀏覽器生成的請求。在我們的例子中,您可以使用它來攔截Postman,並將請求轉換為HTTP Request取樣器。
JMeter的設定非常簡單-尤其是在使用JMeter模板功能時:
1.轉到JMeter主選單,然後選擇「檔案」->「模板」->「記錄」 ,然後單擊「建立」。
2.選擇HTTP(S)測試指令碼記錄器,然後單擊「開始」。
3.提供您的API主機,以便JMeter將其置於HTTP Request Defaults下。
2.開啟Postman設定,然後轉到「證書」索引標籤
3.切換在為「CA證書」,並找到ApacheJMeterTemporaryRootCA.crt
就是這樣,現在Postman將使用JMeter的證書,並且JMeter將能夠解密捕獲的請求
現在,您需要「告訴」Postman通過JMeter的HTTP(S)測試指令碼記錄器傳送請求。
4.轉到Postman的設定,然後開啟「代理」索引標籤。
5.在用於傳送請求的代理設定下,選中「新增自定義代理設定」框。
6.選擇「 HTTP」和「 HTTPS」協定。
7.使用「localhost」作為代理伺服器(如果你有不同的主機上執行的JMeter -使用該主機的IP地址或DNS主機名代替)。
8.使用「 8888」作為代理埠。
恭喜你!Postman和JMeter終於建立了聯絡。當您開始請求或收集時,JMeter將捕獲它併為每個請求生成一個HTTP請求取樣器。如果存在任何HTTP檔頭,JMeter將新增一個HTTP檔頭管理器以將檔頭新增到請求中。
這是一個有關其工作原理的小范例:
如果要在Windows上記錄Newman測試,請遵循Windows作業系統代理設定。因此,在Internet Explorer或Chrome瀏覽器中執行設定就足夠了。這將設定紐曼將使用的系統級代理。
對於Linux / Unix / MacOS,可以通過HTTP_PROXY環境變數提供代理,例如:
HTTP_PROXY = http:// localhost:8888 && newman -c your_collection.json
代替本地JMeter代理,您可以使用基於雲的BlazeMeter代理記錄器,該記錄器:
簡化證書的建立,尤其是在記錄移動應用程式流量方面。
具有動態引數自動關聯的功能。
請記住,這種方法僅適用於僅記錄請求。您在「先決條件」下定義的所有指令碼。或Postman中的「測試」標籤將不被考慮。因此,如果您具有測試資料準備或宣告邏輯,則需要使用JSR223測試元素和Groovy語言對其進行復制.
推薦閱讀