在同執行緒組內,模擬多用戶同時登錄,token傳遞,進行自動化測驗介面、性能測驗
1、資料驅動,創建資料源檔案
新建一個txt或csv檔案,用于存放用戶引數資料
存放置在jmx腳本同目錄中(同目錄下不用寫絕對路徑)
txt檔案格式填寫要求同csv檔案,中間以英文逗號分隔
2、創建執行緒組,創建登錄介面,添加配置元件 CSV Data Set Config
請求引數的值參考自CSV檔案設定中的變數名稱
例:CSV檔案設定變數名稱為 mobile,在HTTP請求中引入方式為${mobile}


3、設定JSON提取器,提取token
請求登錄介面,Response Body 為JSON形式,因此設定JSON提取器更方便些
{"code":2,"data":{"token":"5929a993d1699bdbe2c6b4520035807826bfb3ed"},"msg":""}
Names of created variables: 接收值的變數名,為取到的token起一個新名字吧(這里我取名為app_token),方便呼叫,多個變數時用分號分隔
Json path: 填寫Json path運算式,多個運算式用分號分隔,根據介面回傳Json形式,運算式寫為$.data.token
Match No: 0為隨機;-1匹配所有,1取第1個匹配值;變數名為N 就是取第N個匹配值
Compute comcatemation var(suffix_ALL):如果發現許多結果,插件將使用" , "分隔符將它們連接起來,并將其存盤在名為<variable name>_ALL的var中
Default values: 默認值,匹配不到值的時候取該值

4、用BeanShell后置處理程式,將token設為全域變數

String token = bsh.args[0];
${__setProperty(newtoken,${app_token},)}
str = bsh.args[0],表示獲取陣列引數
${__setProperty(newtoken,${app_token},)}
${__setProperty(全域變數名,${參考值},)}
參考值為Json提取器中 Names of created variables設定的名字
雖然用BeanShell取樣器也可以實作同樣功能,但在JMeter中BeanShell取樣器是當成執行緒處理的(如添加BeanShell取樣器,在察看結果樹中可以看到),所以運行時是有一定的消耗的,而使用BeanShell前置處理器、BeanShell后置處理器總的來說比BeanShell取樣器記憶體消耗低
5、將全域變數token添加到請求頭中
參考全域變數
參考方式寫成 ${__P(newtoken)} 或${__property(newtoken)} 都可

查看請求頭,token已傳遞過來
6、如果需要測驗性能,可以修改執行緒組屬性
Ramp-Up Period(in-seconds)代表隔多長時間執行,0代表同時并發

如果業務需要,只執行一次登錄操作,多次并發執行其他后續操作,可以參考下一篇文章
JMeter模擬多用戶并發測驗,多執行緒組介面關聯_LSZZZ的博客-CSDN博客本文模擬多用戶并發操作,通過設定多個執行緒組,實作登錄一次,多次進行其他后續操作,將多用戶資訊引數化,setUp執行緒組進行一次登錄請求,請求成功后將多用戶獲取到的token資訊儲存在本地,再進行引數傳遞,完成后續操作后,通過tearDown執行緒組,銷毀本地token檔案,以便執行下次測驗計劃,同執行緒組操作可參考上篇文章下面為詳細操作步驟SetUp執行緒組模擬5個用戶,同時登錄1、新建一個txt或csv檔案,用于存放用戶引數資料存放置在jmx腳本...https://blog.csdn.net/LSZZZ/article/details/120867258
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/327964.html
標籤:其他
上一篇:vs環境——C語言實用除錯技巧
