我們平時會遇到很多JSON格式的介面返回,我們需要提取引數可以用JSON提取器,同時配合自帶的偵錯程式來進行偵錯。
JSON提取器
Name of created variables:提取的值存放的變數名稱
JSON Path expression:表示式,就是剛在在結果樹中驗證的表示式,可以同時使用多個表示式,用分號隔開
Match No:0 隨機 1第一個 -1所有
Compute concatenation var:如果匹配所有時,就將所有值存入變數名_ALL 中
Default Value:提取不到值時預設值
我們使用Dummy sampler來mock一個返回(這裡不會可以上一篇)
{ "topic":"mock_api", "data":{ "errormes":"", "response":[ { "name":"A", "age":18 }, { "name":"B", "age":30 } ] } }
現在我們來提取age這個欄位,這裡會分享不同的方法來取值
第一種:一層一層從上至下取age=18這個值
//每一層就是一個".",因為response是個列表,我們去索引為0 $.data.response[0].age
第二種:有條件的篩選name=A的age,使用表示式:[?(@.key == value)]
//$..直接去找response欄位,根據表示式去找name是A的age $..response[?(@.name=="A")].age
第三種:直接根據表示式找,並且可以一次性提取多層多變數
// Result[0]={"name":"A","age":18} $..[?(@.name=="A")].["age","name"] // Result[0]=18 $..[?(@.name=="A")].age
效果展示
然後我們設定不同的執行緒和迴圈次數來看看效果
設定執行緒1,迴圈3
設定執行緒2,迴圈3
設定執行緒2,迴圈3,勾選上方計數器中的與每使用者獨立的跟蹤計數器
設定執行緒2,迴圈3,勾選上方計數器中的與每使用者獨立的跟蹤計數器 和 在每個執行緒組迭代上重置計數器
這兩個我們放在一起,假設我們需要去判斷迴圈的次數大於5就自動跳出迴圈
while控制器
填入 ${__jexl3("${num}" != "5",)}
迴圈五次後退出,這裡需要注意的是while條件中一般只會使用javaScript或者jexl3(這兩個都是在函數助手中檢視,輔助編寫)
迴圈控制器+if控制器
勾選上永遠,這樣就會一直迴圈(這裡勾選上只要是為了和上面while控制器模擬同一個場景,一般不會勾選永遠,下面在做if判斷,這樣太麻煩了)
我們在for迴圈下面增加if控制器去判斷是否滿足我們需要的條件,if下面增加一個動作控制器,如果滿足if條件就Break,跳出迴圈
if條件填入 ${__jexl3("${num}" == "5",)}
這樣就達到和while相同的效果了
漢化過後斷言就很好理解,這裡講一下模式匹配規則:
包括(contains):包含指定的某個或多個字串,支援正規表示式
匹配(match):完全匹配指定的字串,判斷為成功,支援正規表示式
相等(equals):響應需要完全匹配指定的字串,不支援正則
字串(Substring):響應中需要包含指定字串,不支援正則
否(Not) 和 或者(or):就是對上述判斷做的邏輯運算
在設定元件中有個隨機變數簡單好用
可以理解做了一個擋板,把我們自己當做伺服器,把我們自己收到的請求原封不動的顯示出來,方便偵錯請求
設定好伺服器記得點選啟動
這時候請求的資料就會全部顯示在你面前了
JDBC連結資料庫
連結資料庫我們需要一個連結資料的jar包:https://downloads.mysql.com/archives/c-j/
步驟
1 測試計劃中新增上方下載的jar包
4把需要取得值放入變數
value=vars.getobject("resultserial_nos").get(8).get("serial_number"); vars.put(serial_number,value);
同步定時器設定了集合點,達到並行的作用
說到並行繞不開的就是並行:並行其實就是工作切換,而並行就是多個程序同時進行,Jmeter也提供了並行外掛這裡不做贅述,有興趣的可以去外掛管理內自己下載:Parallel Controller
我們需要去測試幾個介面的混合場景下的效能,就需要把幾個介面放到一個事務中
執行緒組中有個stepping thread group可以幫助我們不斷加壓增加執行緒組數量來檢視不同壓力下的tps
安裝外掛: jpgc - Standard Set這裡有jp@gc - Transactions per Second可以用這個檢視每秒事務處理
縱座標為TPS橫座標為時間
縱座標為請求響應時間
友情連結
作者: yetangjian
出處: https://www.cnblogs.com/yetangjian/p/16818697.html
關於作者: yetangjian
本文版權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須保留此段宣告,且在文章頁面明顯位置給出, 原文連結 如有問題, 可郵件([email protected])諮詢.