os進程取樣器
這個取樣器可以讓jmeter直接調用python寫的測試數據
?這樣就可以調用python寫的測試數據給到jmeter進行調用
注意:1建議python返回轉json格式dumps一下;2py文件中需要把結果打印出來,可以不用函數直接編寫
?傳到jmeter之后可以用json提取出來給后面的接口使用
JSON提取器與Debug Sampler
我們平時會遇到很多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這個值
1 2 |
|
?第二種:有條件的篩選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,勾選上方計數器中的與每用戶獨立的跟蹤計數器 和 在每個線程組迭代上重置計數器
?while邏輯控制器、循環控制器、if邏輯控制器和測試活動
這兩個我們放在一起,假設我們需要去判斷循環的次數大于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):就是對上述判斷做的邏輯運算
?隨機變量
在配置元件中有個隨機變量簡單好用
HTTP鏡像服務器
可以理解做了一個擋板,把我們自己當做服務器,把我們自己收到的請求原封不動的顯示出來,方便調試請求
?設置好服務器記得點擊啟動
?這時候請求的數據就會全部顯示在你面前了
JDBC
JDBC鏈接數據庫
鏈接數據庫我們需要一個鏈接數據的jar包:MySQL :: Download MySQL Connector/J (Archived Versions)
?步驟
1 測試計劃中添加上方下載的jar包
2 添加一個線程組 添加一個jdbc鏈接配置器
DataBase URL:庫名+?+ useUnicode=true&characterEncoding=utf8,加入后綴防止亂碼
3 取樣器中添加一個jdbc request
?4把需要取得值放入變量
1 2 |
|
?同步定時器
?同步定時器設置了集合點,達到并發的作用
說到并發繞不開的就是并行:并發其實就是任務切換,而并行就是多個進程同時進行,Jmeter也提供了并發插件這里不做贅述,有興趣的可以去插件管理內自己下載:Parallel Controller
事務控制器
我們需要去測試幾個接口的混合場景下的性能,就需要把幾個接口放到一個事務中
stepping Thread Group + jp@gc - Transactions per Second + jp@gc - Response Times Over Time
線程組中有個stepping thread group可以幫助我們不斷加壓增加線程組數量來查看不同壓力下的tps
?安裝插件: jpgc - Standard Set這里有jp@gc - Transactions per Second可以用這個查看每秒事務處理
縱坐標為TPS橫坐標為時間
縱坐標為請求響應時間
?
作為一個軟件測試的過來人,我想盡自己最大的努力,幫助每一個伙伴都能順利找到工作。所以我整理了下面這份資源,現在免費分享給大家,有需要的小伙伴可以關注【公眾號:開心螺螄粉】自提!
軟件測試面試文檔
我們學習必然是為了找到高薪的工作,下面這些面試題是來自阿里、騰訊、字節等一線互聯網大廠最新的面試資料,并且有字節大佬給出了權威的解答,刷完這一套面試資料相信大家都能找到滿意的工作。
行動吧,在路上總比一直觀望的要好,未來的你肯定會感謝現在拼搏的自己!如果想學習提升找不到資料,沒人答疑解惑時,請及時加入群:1150305204,里面有各種測試開發資料和技術可以一起交流哦。