Groovy在JMeter中處理cookie
- 2020 年 4 月 3 日
- 筆記
突然發現JMeter系列寫了不少文章,乾脆整個全套的,把剩下的Demo也發一下,舊文如下:
- 用Groovy處理JMeter斷言和日誌
- 用Groovy處理JMeter變數
- 用Groovy在JMeter中執行命令行
- 用Groovy處理JMeter中的請求參數
- 用Groovy在JMeter中使用正則提取賦值
- JMeter吞吐量誤差分析
下面講講JMeter如何處理cookie
,這裡先講一個事情,cookie
只是HTTP請求header
裡面的一個欄位,但是在JMeter裡面是分開處理的,HTTP資訊頭管理器
和HTTP Cookie管理器
完全就是兩個對象,分工不重複,在源碼裡面使用的是HeaderManager
和CookieManager
兩個類。
首先講一講CookieManager
的基本使用,添加cookie
,獲取cookie
,修改cookie
。
- 首先新建一個簡單的執行緒組和一個簡單的請求:

- 然後創建一個
HTTP Cookie管理器

- 添加JSR223 預處理程式(後置處理程式需要下一次次請求)

腳本內容:
import org.apache.jmeter.protocol.http.control.* //Get cookie manager import org.apache.jmeter.protocol.http.control.* CookieManager cm = sampler.getCookieManager() def a = new Cookie("FunTester", "FunTester323323", "account.cnblogs.com", "/", false, 1557598515) cm.add(a) Cookie c = cm.get(0) log.info("-------Cookies : " + c.getName() + "----------- " + c.getValue()) c.setValue("FunTester") log.info("-------Cookies : " + c.getName() + "----------- " + c.getValue())
這裡注意一點,cookie有一個空參的構造方法,經過我驗證,只設置name
和value
是不能被正確攜帶到請求裡面去,必需把domian
和path
以及後面兩個鬼參數都設置。
- 控制台輸出:
2020-03-19 21:04:35,634 INFO o.a.j.e.StandardJMeterEngine: Running the test! 2020-03-19 21:04:35,635 INFO o.a.j.s.SampleEvent: List of sample_variables: [] 2020-03-19 21:04:35,636 INFO o.a.j.g.u.JMeterMenuBar: setRunning(true, *local*) 2020-03-19 21:04:35,949 INFO o.a.j.e.StandardJMeterEngine: Starting ThreadGroup: 1 : 執行緒組 2020-03-19 21:04:35,949 INFO o.a.j.e.StandardJMeterEngine: Starting 1 threads for group 執行緒組. 2020-03-19 21:04:35,949 INFO o.a.j.e.StandardJMeterEngine: Thread will continue on error 2020-03-19 21:04:35,950 INFO o.a.j.t.ThreadGroup: Starting thread group... number=1 threads=1 ramp-up=0 perThread=0.0 delayedStart=false 2020-03-19 21:04:35,950 INFO o.a.j.t.ThreadGroup: Started thread group number 1 2020-03-19 21:04:35,950 INFO o.a.j.e.StandardJMeterEngine: All thread groups have been started 2020-03-19 21:04:35,951 INFO o.a.j.t.JMeterThread: Thread started: 執行緒組 1-1 2020-03-19 21:04:36,026 INFO o.a.j.m.J.處理cookie: -------Cookies : fds----------- 32423 2020-03-19 21:04:36,026 INFO o.a.j.m.J.處理cookie: -------Cookies : fds----------- FunTester 2020-03-19 21:04:36,302 INFO o.a.j.t.JMeterThread: Thread is done: 執行緒組 1-1 2020-03-19 21:04:36,302 INFO o.a.j.t.JMeterThread: Thread finished: 執行緒組 1-1 2020-03-19 21:04:36,303 INFO o.a.j.e.StandardJMeterEngine: Notifying test listeners of end of test 2020-03-19 21:04:36,303 INFO o.a.j.g.u.JMeterMenuBar: setRunning(false, *local*)
- 查看結果樹

- 鄭重聲明:文章首發於公眾號「FunTester」,禁止第三方(騰訊雲除外)轉載、發表。