1. 程式人生 > 實用技巧 >如何將Postman API測試轉換為JMeter以進行擴充套件

如何將Postman API測試轉換為JMeter以進行擴充套件

許多測試工程師使用Postman進行API測試自動化。他們發現端點,發出請求,建立測試資料,執行迴歸測試,使用Newman等實現API測試的持續整合。但是,Postman有一定的測試限制。希望獲得更多負載測試能力的開發人員,DevOps和QA工程師可以將其Postman測試轉換為JMeter。這篇部落格文章將解釋何時建議將Postman轉換為JMeter,並逐步說明如何實現。

Postman API Testing Limitations

可擴充套件性

Postman測試無法擴充套件。如果您的集合中有很多請求,Postman / Newman將使用1個執行緒(使用者)並按順序執行這些請求,而不是使用多個執行緒併發執行。

效能測試能力

由於可擴充套件性限制,Postman不適合API效能測試。效能測試要求同時針對多個執行緒(使用者)執行測試,以確保系統在重負載下不會中斷。

何時將Postman測試轉換為JMeter測試

您可能希望將現有的Postman測試轉換為JMeter以獲得以下好處:

      • 多執行緒執行

      • 獲取API的效能指標

      • 獲得高階報告,並將不斷增加的負載與響應時間,錯誤數量等相關聯。

      • 查詢瓶頸和最慢的API端點

如何將Postman API測試轉換為JMeter測試

以下是將現有Postman測試轉換為JMeter的步驟:

第1步-準備JMeter進行錄製

JMeter隨附有HTTP(S)測試指令碼記錄器,該記錄器充當瀏覽器(或使用HTTP協議並支援代理的任何其他應用程式)的代理。因此,您可以使用它來攔截瀏覽器生成的請求。在我們的例子中,您可以使用它來攔截Postman,並將請求轉換為HTTP Request取樣器。

JMeter的配置非常簡單-尤其是在使用JMeter模板功能時:

1.轉到JMeter主選單,然後選擇“檔案”->“模板”->“記錄” ,然後單擊“建立”。

2.選擇HTTP(S)測試指令碼記錄器,然後單擊“開始”。


3.提供您的API主機,以便JMeter將其置於HTTP Request Defaults下。

第2步-準備Postman進行記錄

1.首先,將JMeter證書匯入Postman。啟動JMeter的HTTP(S)測試指令碼記錄器時,JMeter生成一個自簽名證書,該證書使JMeter可以解密HTTPS請求。該檔案稱為ApacheJMeterTemporaryRootCA.crt ,它將在JMeter安裝的“ bin”資料夾下開始生成。

2.開啟Postman設定,然後轉到“證書”選項卡

3.切換在為“CA證書”,並找到ApacheJMeterTemporaryRootCA.crt

就是這樣,現在Postman將使用JMeter的證書,並且JMeter將能夠解密捕獲的請求

配置Postman以使用JMeter作為代理

現在,您需要“告訴”Postman通過JMeter的HTTP(S)測試指令碼記錄器傳送請求。

4.轉到Postman的設定,然後開啟“代理”選項卡。

5.在用於傳送請求的代理配置下,選中“新增自定義代理配置”框。

6.選擇“ HTTP”和“ HTTPS”協議。

7.使用“localhost”作為代理伺服器(如果你有不同的主機上執行的JMeter -使用該主機的IP地址或DNS主機名代替)。

8.使用“ 8888”作為代理埠。


步驟3-記錄您的測試

恭喜你!Postman和JMeter終於建立了聯絡。當您開始請求或收集時,JMeter將捕獲它併為每個請求生成一個HTTP請求取樣器。如果存在任何HTTP標頭,JMeter將新增一個HTTP標頭管理器以將標頭新增到請求中。

這是一個有關其工作原理的小示例:

將Postman轉換為JMeter時的提示,技巧和侷限性

命令列記錄

如果要在Windows上記錄Newman測試,請遵循Windows作業系統代理設定。因此,在Internet Explorer或Chrome瀏覽器中執行設定就足夠了。這將設定紐曼將使用的系統級代理。

對於Linux / Unix / MacOS,可以通過HTTP_PROXY環境變數提供代理,例如:

HTTP_PROXY = http:// localhost:8888 && newman -c your_collection.json

BlazeMeter代理記錄器

代替本地JMeter代理,您可以使用基於雲的BlazeMeter代理記錄器,該記錄器:

  • 簡化證書的建立,尤其是在記錄移動應用程式流量方面。

  • 具有動態引數自動關聯的功能。

侷限性

請記住,這種方法僅適用於僅記錄請求。您在“先決條件”下定義的所有指令碼。或Postman中的“測試”標籤將不被考慮。因此,如果您具有測試資料準備或宣告邏輯,則需要使用JSR223測試元素和Groovy語言對其進行復制.

推薦閱讀