文章目錄
[JMeter] 跨 Thread 取得變數內容 - 設定 Load Test 的前置動作
之前筆記 [JMeter] 從 Http Response Body 解密 Token 做為 Http Request Header 參數 紀錄到使用 JSR223 PostProcessor 來針對加密的 response body 做解密後再設定為 JMeter 的參數供後續其他的 Http Request 當做 header,雖然已經可以符合核心目的,但用心檢查會發現存在個大缺失:Login 與目標 Api 在相同 Thread Group 下,這就表示我們修改的 Thread 數會同時套用在 Login 與目標 Api,這樣一來就變成同時進行了 Login 與目標 Api 的壓測,如果這是實際我們想要的測試情境也就沒問題,不過若只是想單獨取得目標 Api 的效能數據就需要做些調整了
剛好趁這個機會順手紀錄一下設定方式,大致流程與設定方式會延續 [JMeter] 從 Http Response Body 解密 Token 做為 Http Request Header 參數
基本環境說明
- macOS Mojave 10.14.6
- JMeter 5.1.1
- 基本設定請參考 [JMeter] 從 Http Response Body 解密 Token 做為 Http Request Header 參數
JMeter 設定
加入 setUp Thread Group
讓目標 API 在實際測試前先執行 setUp Thread Group 的內容,進行暖機
將 Login 的相關設定移至 setUp Thread Group 中
可以將之前設定的 Logic Controller 整個移過來即可
修改 JSR223 PostProcessor 中 JMeter 參數設定方式
property 才能跨 thread 存取
將原有的 variable 設定
vars.put("token", json.getString("Token"));
修改為 property 設定
props.put("token", json.getString("Token"));
修改 HTTP Header Manager - Create User 取用
原有說定
${token}
新設定
${__property(token)}
建議將 View Results Tree 移至 Test Plan 下
可以同時顯示多個 thread 的執行結果
心得
修改前:多個 thread 執行,Login 與 Create User 都會執行多次
修改後:多個 thread 執行,僅 Create User 執行多次,Login 只有一次
設定本身很簡單,但官網上的文件我暫時還沒上手該怎麼看懂XD
參考資訊
文章作者 Yowko Tsai
上次更新 2020-12-11
授權合約
本部落格 (Yowko's Notes) 所有的文章內容(包含圖片),任何轉載行為,必須通知並獲本部落格作者 (Yowko Tsai) 的同意始得轉載,且轉載皆須註明出處與作者。
Yowko's Notes 由 Yowko Tsai 製作,以創用CC 姓名標示-非商業性-相同方式分享 3.0 台灣 授權條款 釋出。