在 http Load Testing 中,,json 數(shù)據(jù)的提交是個讓人頭疼的問題,。本文詳細(xì)介紹如何進(jìn)行 JMeter 的 json 測試提交,,以及如何將其參數(shù)化,。 Step 1 http json 請求采樣器的錄制 這個工具很多,,可以使用 JMeter 代理錄制,,也可以使用 Badboy,。該采樣器錄制好以后如下圖所示: Step 2 為該采樣器添加 HTTP 信息管理器 鼠標(biāo)右擊該采樣器,右鍵菜單選擇 "添加" -> 配置元件 -> HTTP 信息頭管理器,然后信息頭添加一條名稱為 Content-Type,,值為 application/json 即可: 添加好 HTTP 信息管理器之后,,選中該采樣器,編輯其 Content encoding 為 UTF-8: Step 3 為該采樣器添加響應(yīng)斷言 比如請求返還的 json 串里,,"status":0 代表處理成功,,status 值為其他表示各種處理失敗。那么鼠標(biāo)右擊該采樣器,,右鍵菜單選擇 "添加" -> 斷言 -> 響應(yīng)斷言,,要測試的響應(yīng)字段選中 "響應(yīng)文本",模式匹配規(guī)則選中 "Substring",,要測試的模式添加并編輯其內(nèi)容為 "status":0,。 Step 4 編輯采樣器的 json 格式 選中該采樣器,Parameters 葉項(xiàng)里復(fù)制該 json 串,,然后點(diǎn)擊 Body Data 葉項(xiàng),,粘貼該 json 串于其中的輸入域中(關(guān)于 json 串的提取,可以使用 Badboy 自己錄制的,,也可以使用 Chrome 瀏覽器自帶工具 "JavaScript 控制臺 - Network" 進(jìn)行捕捉),,最后調(diào)整 json 數(shù)據(jù)的展現(xiàn)格式如下圖所示: 這時可以進(jìn)行 http json 提交了,但是數(shù)據(jù)還都是寫死的,。那么怎么樣把這些 json 數(shù)據(jù)參數(shù)化呢,,就像其他非 json 提交的采樣器一樣? Step 5 使用函數(shù)將 http json 數(shù)據(jù)參數(shù)化 像其他采樣器一樣使用函數(shù)助手生成一個引用字符串,,比如 ${__Random(0,9,random_num_0_9)},,它的作用是隨機(jī)生成 0 - 9 之間的一個數(shù)字。 然后編輯 Body Data 里的 json 串里需要參數(shù)化的地方,,使用 ${__Random(0,9,random_num_0_9)} 覆蓋需要參數(shù)化的部分: Step 6 使用 CSV Data Set Config 將 json 數(shù)據(jù)參數(shù)化 右鍵單擊 Thread Group,,右鍵菜單選擇 "添加" -> 配置元件 -> CSV Data Set Config,F(xiàn)ilename 輸入 e:/defonds/work/20141105/json.txt(要使用絕對路徑),,Variable Names 輸入 cityCode,cityName,subCategoryCode,subCategoryName,,編輯 e:/defonds/work/20141105/json.txt 內(nèi)容如下圖所示: 最后編輯 Body Data 里的 json 串里需要參數(shù)化的地方,使用 ${cityCode} 等參數(shù)覆蓋需要參數(shù)化的部分: 這時候你就可以使用參數(shù)化的 json 串進(jìn)行壓力測試?yán)玻?br> 參考資料 |
|