Cookie,跨執行緒組介面呼叫

2022-06-25 13:30:11 字數 1741 閱讀 8391

構成:執行緒組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 變數名 獲取全域性變數 二 ...