1. 程式人生 > >JMeter 壓力測試使用函式和 CSV 檔案引數化 json 資料

JMeter 壓力測試使用函式和 CSV 檔案引數化 json 資料

                        在 http Load Testing 中,json 資料的提交是個讓人頭疼的問題。本文詳細介紹如何進行 JMeter 的 json 測試提交,以及如何將其引數化。        Step 1 http json 請求取樣器的錄製        這個工具很多,可以使用 JMeter 代理錄製,也可以使用 Badboy。該取樣器錄製好以後如下圖所示:錄製好取樣器        Step 2 為該取樣器新增 HTTP 資訊管理器        滑鼠右擊該取樣器,右鍵選單選擇 "新增" -> 配置元件 -> HTTP 資訊頭管理器,然後資訊頭新增一條名稱為 Content-Type,值為 application/json 即可:HTTP資訊頭管理器        新增好 HTTP 資訊管理器之後,選中該取樣器,編輯其 Content encoding 為 UTF-8:HTTP請求的content encoding設定        Step 3 為該取樣器新增響應斷言
        比如請求返還的 json 串裡,"status":0 代表處理成功,status 值為其他表示各種處理失敗。那麼滑鼠右擊該取樣器,右鍵選單選擇 "新增" -> 斷言 -> 響應斷言,要測試的響應欄位選中 "響應文字",模式匹配規則選中 "Substring",要測試的模式新增並編輯其內容為 "status":0。響應斷言        Step 4 編輯取樣器的 json 格式        選中該取樣器,Parameters 葉項裡複製該 json 串,然後點選 Body Data 葉項,貼上該 json 串於其中的輸入域中(關於 json 串的提取,可以使用 Badboy 自己錄製的,也可以使用 Chrome 瀏覽器自帶工具 "JavaScript 控制檯 - Network" 進行捕捉),最後調整 json 資料的展現格式如下圖所示:調整json格式
        這時可以進行 http json 提交了,但是資料還都是寫死的。那麼怎麼樣把這些 json 資料引數化呢,就像其他非 json 提交的取樣器一樣?        Step 5 使用函式將 http json 資料引數化        像其他取樣器一樣使用函式助手生成一個引用字串,比如 ${__Random(0,9,random_num_0_9)},它的作用是隨機生成 0 - 9 之間的一個數字。        然後編輯 Body Data 裡的 json 串裡需要引數化的地方,使用 ${__Random(0,9,random_num_0_9)} 覆蓋需要引數化的部分:使用函式將 http json 資料引數化        Step 6 使用 CSV Data Set Config 將 json 資料引數化
        右鍵單擊 Thread Group,右鍵選單選擇 "新增" -> 配置元件 -> CSV Data Set Config,Filename 輸入 e:/defonds/work/20141105/json.txt(要使用絕對路徑),Variable Names 輸入 cityCode,cityName,subCategoryCode,subCategoryName,編輯 e:/defonds/work/20141105/json.txt 內容如下圖所示:json.txt內容        最後編輯 Body Data 裡的 json 串裡需要引數化的地方,使用 ${cityCode} 等引數覆蓋需要引數化的部分:json中覆蓋需要引數化的部分        這時候你就可以使用引數化的 json 串進行壓力測試啦:可以進行壓力測試了        參考資料