在做接口並發測試的時候,才發現Jmeter中的Parameters和Body Data兩種參數格式並不是簡單的一個是xx=xx,另外一個是json格式的參數
先看一個接口
[post] /api/xx/xxxx/xxxx 通知服務端文件上傳完畢
- 1
輸入參數:
http content type: application/json 名稱 | 類型 | 是否必須 | 參數限制 | 描述 --------- | ----------- | -------- | ---------- | ---------- cid | string | 是 | cid.length==36 | id version | int | 是 | 無 | 版本
- 1
- 2
- 3
- 4
- 5
- 6
開始時在Jmeter的請求為
請求返回的結果為
{"msg":"{\"message\":\"error\",\"error_code\":4000}","ret":"error"}
- 1
查找后發現是Parameters和Body Data的使用,還有請求的參數理解有誤
仔細看看抓包中的兩種“參數”
xx=xx&xxx=xx格式
json格式
Parameters
xx=xx&xxx=xx格式的參數為GET或者POST請求中,url中帶的參數值,如:
在一個這樣的請求中/api/xx/xxx/xxxx?index=0&pagesize=100&thumb=1
?號后面的可以寫在url中,也可以寫在Parameters中
Body Data
json格式的是POST請求中的參數,POST請求參數時,看請求的格式,是否需要在請求中添加HTTP信息頭管理器,將請求的Content-Type
或者 User-Agent
等進行定義
HTTP請求的格式:
HTTP信息頭管理器: