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