構成:執行緒組a
----- 登入請求
執行緒組b
----- 新建請求
系統:登入生成cookie 和 token。 後面所有的請求在 cookie 的情況下,傳遞 token 來請求資料。
實現:
1. 測試計畫:配置環境變數,供後面所有介面呼叫
2. 執行緒組a, 新建登入介面,再給登入介面下 新增:
「檢視結果樹」,
"json提取器「(自定義成了 token 提取器),
"正規表示式提取器「(自定義成了cookie正規表示式提取器),
beanshell斷言
3. 執行 登入介面
4. 檢視登入的檢視樹, token 在 repsonse body的 msg,jsessionid 在 response headers 的 jsessionid
5. 提取 token 和 jsessionid,利用 json提取器 和 正規表示式。提取後,形成變數 token 和 jsessionid
注意:1)token 和 jsessionid 的表示式,需要根據 登入生成的具體字串來提取。
2)jsessionid 因為是在 登入介面的 response header裡面,所以提取 jsessionid 時選擇的時,main sample 和 header
6. 變數 token 和 jsessionid 目前僅在乙個執行緒組內可以呼叫。跨執行緒組的呼叫,需要將其設定成全域性變數,可以使用 beanshell斷言 來實現。
7. 新建另外乙個執行緒組,新建功能,並新增:
http 請求:新建功能
http cookie manager:載入前面設定的 cookie
檢視結果樹:檢視結果
8. 配置
$:從全域性變數中獲取 jsessionid;
域:一定要配置!!!,即當前請求的網域名稱或ip
9. 執行新建的http請求,檢視結果樹
如果 請求裡面的 requst body or request headers 裡面,包含了所需要的 token 和 jsessionid,那麼基本就沒什麼問題。
Jmeter之Cookie跨執行緒呼叫
為什麼要把http cookie管理器放在外面了,因為乙個測試計畫只能有乙個cookie管理器,該cookie管理器可以作用於整個測試計畫裡的請求,如果想要請求單獨用自己的cookie,則需要在請求頭單獨新增 每個執行緒組裡的cookie可以通用,如果想把乙個執行緒組裡的請求返回的cookie用在另...
Jmeter跨執行緒組呼叫token
1.正則提取token後新增 後置處理器 beanshell postprocessor 2.beanshell postprocessor寫入函式 3.執行緒2中寫入函式 呼叫,我的直接寫入資訊頭管理器 4.主要用到兩個函式 5.檢視執行結果是否調取成功 終於搞定了jmeter跨執行緒組之間傳遞引...
jmeter 跨執行緒組呼叫變數
在使用時要注意執行緒組的執行順序,需要勾選測試計畫裡的獨立執行每個執行緒組按鈕。還需要注意設定全域性變數的後置處理器應該是在第乙個執行緒組 即提取區域性變數的那個執行緒組 一 beanshell自帶方法 props.put 變數名 值 全域性變數賦值 props.get 變數名 獲取全域性變數 二 ...