如何將Postman API測試轉(zhuǎn)換為JMeter以進(jìn)行擴(kuò)展
許多測試工程師使用Postman進(jìn)行API測試自動化。他們發(fā)現(xiàn)端點(diǎn),發(fā)出請求,創(chuàng)建測試數(shù)據(jù),運(yùn)行回歸測試,使用Newman等實(shí)現(xiàn)API測試的持續(xù)集成。但是,Postman有一定的測試限制。希望獲得更多負(fù)載測試能力的開發(fā)人員,DevOps和QA工程師可以將其Postman測試轉(zhuǎn)換為JMeter。這篇博客文章將解釋何時建議將Postman轉(zhuǎn)換為JMeter,并逐步說明如何實(shí)現(xiàn)。
Postman API Testing Limitations
?
可擴(kuò)展性
Postman測試無法擴(kuò)展。如果您的集合中有很多請求,Postman / Newman將使用1個線程(用戶)并按順序執(zhí)行這些請求,而不是使用多個線程并發(fā)執(zhí)行。
?
性能測試能力
由于可擴(kuò)展性限制,Postman不適合API性能測試。性能測試要求同時針對多個線程(用戶)運(yùn)行測試,以確保系統(tǒng)在重負(fù)載下不會中斷。
何時將Postman測試轉(zhuǎn)換為JMeter測試
您可能希望將現(xiàn)有的Postman測試轉(zhuǎn)換為JMeter以獲得以下好處:
多線程執(zhí)行
獲取API的性能指標(biāo)
獲得高級報告,并將不斷增加的負(fù)載與響應(yīng)時間,錯誤數(shù)量等相關(guān)聯(lián)。?
查找瓶頸和最慢的API端點(diǎn)
如何將Postman API測試轉(zhuǎn)換為JMeter測試
以下是將現(xiàn)有Postman測試轉(zhuǎn)換為JMeter的步驟:
?
第1步-準(zhǔn)備JMeter進(jìn)行錄制
JMeter隨附有HTTP(S)測試腳本記錄器,該記錄器充當(dāng)瀏覽器(或使用HTTP協(xié)議并支持代理的任何其他應(yīng)用程序)的代理。因此,您可以使用它來攔截瀏覽器生成的請求。在我們的例子中,您可以使用它來攔截Postman,并將請求轉(zhuǎn)換為HTTP Request采樣器。
JMeter的配置非常簡單-尤其是在使用JMeter模板功能時:
????1.轉(zhuǎn)到JMeter主菜單,然后選擇“文件”->“模板”->“記錄” ,然后單擊“創(chuàng)建”。
?????
????2.選擇HTTP(S)測試腳本記錄器,然后單擊“開始”。
??

?????
????3.提供您的API主機(jī),以便JMeter將其置于HTTP Request Defaults下。

第2步-準(zhǔn)備Postman進(jìn)行記錄?
????????1.首先,將JMeter證書導(dǎo)入Postman。啟動JMeter的HTTP(S)測試腳本記錄器時,JMeter生成一個自簽名證書,該證書使JMeter可以解密HTTPS請求。該文件稱為ApacheJMeterTemporaryRootCA.crt ,它將在JMeter安裝的“ bin”文件夾下開始生成。?
?????????
????????2.打開Postman設(shè)置,然后轉(zhuǎn)到“證書”選項卡
?????????
????????3.切換在為“CA證書”,并找到ApacheJMeterTemporaryRootCA.crt
?????????
????????就是這樣,現(xiàn)在Postman將使用JMeter的證書,并且JMeter將能夠解密捕獲的請求
? ? ? ? ?

????????配置Postman以使用JMeter作為代理
?????????
????????現(xiàn)在,您需要“告訴”Postman通過JMeter的HTTP(S)測試腳本記錄器發(fā)送請求。
?????????
????????4.轉(zhuǎn)到Postman的設(shè)置,然后打開“代理”選項卡。
?????????
????????5.在用于發(fā)送請求的代理配置下,選中“添加自定義代理配置”框。
?????????
????????6.選擇“ HTTP”和“ HTTPS”協(xié)議。
?????????
????????7.使用“l(fā)ocalhost”作為代理服務(wù)器(如果你有不同的主機(jī)上運(yùn)行的JMeter -使用該主機(jī)的IP地址或DNS主機(jī)名代替)。
?????????
????????8.使用“ 8888”作為代理端口。

步驟3-記錄您的測試
恭喜你!Postman和JMeter終于建立了聯(lián)系。當(dāng)您開始請求或收集時,JMeter將捕獲它并為每個請求生成一個HTTP請求采樣器。如果存在任何HTTP標(biāo)頭,JMeter將添加一個HTTP標(biāo)頭管理器以將標(biāo)頭添加到請求中。
這是一個有關(guān)其工作原理的小示例:
?
將Postman轉(zhuǎn)換為JMeter時的提示,技巧和局限性
命令行記錄
如果要在Windows上記錄Newman測試,請遵循Windows操作系統(tǒng)代理設(shè)置。因此,在Internet Explorer或Chrome瀏覽器中執(zhí)行設(shè)置就足夠了。這將設(shè)置紐曼將使用的系統(tǒng)級代理。?
對于Linux / Unix / MacOS,可以通過HTTP_PROXY環(huán)境變量提供代理,例如:
HTTP_PROXY = http:// localhost:8888 && newman -c your_collection.json
?
BlazeMeter代理記錄器
代替本地JMeter代理,您可以使用基于云的BlazeMeter代理記錄器,該記錄器:
簡化證書的創(chuàng)建,尤其是在記錄移動應(yīng)用程序流量方面。
具有動態(tài)參數(shù)自動關(guān)聯(lián)的功能。
局限性
請記住,這種方法僅適用于僅記錄請求。您在“先決條件”下定義的所有腳本。或Postman中的“測試”標(biāo)簽將不被考慮。因此,如果您具有測試數(shù)據(jù)準(zhǔn)備或聲明邏輯,則需要使用JSR223測試元素和Groovy語言對其進(jìn)行復(fù)制.
