添加->Threads(Users)->線程組,新建一個線程組,線程組命名為根據(jù)單品編碼查詢上架狀態(tài)的單品詳情。">
以getObjectByCode接口為例,用jmeter2.13來進行接口測試。
測試前準備:
測試工具及版本:jmeter 2.13 r1665067(須包含__MD5函數(shù))
示例接口:8.1根據(jù)單品編碼查詢上架狀態(tài)的單品詳情
接口方法:/single/v1/getObjectByCode
1.準備jmeter免安裝包,把...injmeter.bat添加到桌面快捷方式。
2.點擊電腦桌面jmeter快捷方式,進入jmeter界面。界面默認會有一個測試計劃和一個工作臺,測試計劃下默認會有一個線程組。
3.測試計劃命名為商品服務,右擊測試計劃->添加->Threads(Users)->線程組,新建一個線程組,線程組命名為根據(jù)單品編碼查詢上架狀態(tài)的單品詳情。
4.在線程組下添加HTTP請求,路徑為右擊“根據(jù)單品編碼查詢上架狀態(tài)的單品詳情”->添加->Sampler->HTTP請求。
5.根據(jù)wiki的“根據(jù)單品編碼查詢上架狀態(tài)的單品詳情”接口文檔和環(huán)境文檔在HTTP請求界面填寫詳細信息。
5.1在Web服務器填寫
服務器名稱或IP:172.18.0.120 端口號:7989
5.2在HTTP請求填寫
Implementation:HttpClient4 方法:POST
路徑:/single/v1/getObjectByCode
5.3在請求參數(shù)區(qū)域,點擊“添加”按鈕添加請求參數(shù)
請求參數(shù)列表如下:
名稱 值
appId ${appId}
channel ${channel}
channelIp ${channelIp}
code ${code}
t ${time}
terminalType ${terminalType}
h ${__MD5(appId=${appId}&channel=${channel}&channelIp=${channelIp}&code=${code}&t=${time}&terminalType=${terminalType}&appKey=b320de0549a24ff6995dc0e2c38ff491,h)}
注意:
請求的所有參數(shù),需要根據(jù)參數(shù)名=參數(shù)值的格式,按照字符字典順序(asscii值大小)排序,若遇到相同首字符,則判斷第二個字符,以此類推,待簽名字符串需要以“參數(shù)名1=參數(shù)值1&參數(shù)名2=參數(shù)值2&..&參數(shù)名N=參數(shù)值N”的規(guī)則進行拼接。
在對請求的參數(shù)做簽名時,對于請求參數(shù)列表中那些可空的參數(shù),如果選擇使用它們,那么這些參數(shù)的參數(shù)值必須不能為空或空值。否則請從參數(shù)列表中移除參數(shù)值為空的參數(shù)鍵值對。
在對請求的參數(shù)做簽名時,這些參數(shù)必須來源于請求參數(shù)列表,并且去除列表中的參數(shù)h。
用簽名密鑰(appKey)對請求參數(shù)字符串MD5算法進行簽名后,將得到的摘要添加到請求參數(shù)字符尾部,簽名字符串與請求參數(shù)字符串之間用&分隔。
6.在線程組下添加用戶參數(shù),路徑為右擊“根據(jù)單品編碼查詢上架狀態(tài)的單品詳情”->添加->前置處理器->用戶參數(shù)。
7.把time參數(shù)化,在用戶參數(shù)界面點擊添加變量,在“名稱”填寫time,在“用戶_1”內填寫${__time(/1000,)}。
這樣做的目的是保證請求參數(shù)中的t的值與MD5加密的t值保持一致。