1.1 參數化
截止現在,一個http請求的配置已經完成,可使用該腳本運行點擊jmeter的運行按鈕查看。並發測試必然需要使用到參數化。參數化有以下幾種方法。
參數化的格式一般均為:
${},如¥{user}
1.1.1 CSV
可在本地新建txt,將參數存儲在txt中,以“,”隔開,保存的時候選擇utf-8的編碼格式。

內容如下:

然后在jmeter中添加配置元件CSV。


1.1.2 隨機數
隨機數可使用jmeter中的隨機函數生成,如:該APP登錄時使用的驗證碼即可用${__Random(000000,999999,)}來替代。


1.1.3 動態參數
如該APP客戶在登錄后會返回如下內容:
經過同開發通過,在登錄后很多接口都會在headers中帶着token和clentId(即登錄后返回的userID)。所以我們需要在登錄之后拿到token和userID的值。
通過抓包工具,查看返回結果,結果為json格式。如下內容。
{
"message": "登錄成功",
"result": {
……
"userId": "171",
……
},
"returnCode": 200,
"token": "b15f18b0e424eb3f603eba9166f38f65c25652808d4d4b6bb1bfaec8c04fe1ae"
}
因此我們在登錄腳本中增加后置處理器:bean shell postprocessor。

錄入如下內容。
import net.sf.json.JSONObject; //導入json解析用到的jar包
String input = prev.getResponseDataAsString();
JSONObject jsonObject = JSONObject.fromObject(input);
JSONObject result = jsonObject.getJSONObject("result");
String userid = result.getString("userId");
String token = jsonObject.getString("token");
//把獲取到的字符串,賦值給對應的變量。后續的請求中,就可以通過 ${userid}這樣的方式,讀取到這個值了。
vars.put("userid",userid);
vars.put("token",token);

因在登錄后的接口都會在headers中帶着token和clentId,所以我們需要在這些請求下增加“http信息頭管理器”,並將參數添加進去即可。


