摘自http://wangsheng14591.blog.163.com/blog/static/327797102012829101351887/
ATTENTION:
現在對於JMeter來說,一個測試計劃只能有一個cookie管理器。因爲當多個magager存在時,JMeter目前還沒有方法來指定使用那個manager。同時,一個cookie manager中的存儲的cookie也不能被其他cookie manager所引用,所以同一個計劃中不建議使用多個cookie manager
HTTP COOKIE Manager管理cookie有兩種方法:
他可以像瀏覽器一樣存儲和發送cookie,如果你要發送一個帶cookie的http請求,cookie manager會自動存儲該請求的cookies,並且後面如果發送同源站點的http請求時,都可以用這個cookies。每個JMeter線程都有自己的“cookie存儲區域”,
所以當你測試一個使用cookie來管理session信息的web站點時,每個JMeter線程都有自己的session。
注意:
以這種自動收集的方式收集到的cookie不會在cookie manager中進行展示,但是運行後,通過:查看結果樹(監 聽器)可以查看到cookie信息。
早期的JMeter版本(2.3.2或更早)對與cookie的管理是支持跨域的,也就是說不同域名的網站都可以使用cookie manager中 的cookie,2.3.2版本之後,這個就不可以了,必須同源,才能共用cookie,如果你想讓JMeter的cookie manager支持跨域, 修改JMeter.property :
CookieManager.check.cookies=false
接受到的cookie會被自動存儲在線程變量中,但是從Jmeter2.3.2版本後,默認不再存儲,如果你想要manager自動存儲收集到 的cookie,你需要修改JMeter.property
CookieManager.save.cookies=true
存儲的時候,cookie的key會以“COOKIE_”爲前綴命名(默認情況),如果你想自定義這個前綴,
修改JMeter.property :
CookieManager.name.prefix=
這個配置如果未啓用(也就是維持默認),我們可以通過一下方式獲取到cookie的值:${COOKIE_name},其 中name爲cookie的名稱
2. 除了上面說的自動收集,我們還可以手動添加cookie,這裏,筆者要給大家一個建議,儘量不要一個一個手動去填寫,我們可 以結合firefox的插件firebug,直接將cookie導入,操作如下
打開firebug,如圖
點擊紅色框中的,下拉框中有個導出本站點的cookie,就可以將cookie信息保存爲一個cookies.txt文件,接着打開jmeter 的cookie manager:
載入剛纔導出的cookies.txt文件即可。
各個參數說明:
名稱 | 描述 | 是否必填 |
Name | 自定義該cookie的描述,例如:tuan.qq.com的cookie | N |
Clear Cookies each Iteration | 每次線程組運行前,都會清楚cookie,但是如果是手動添加的cookie,不會被清除 | N |
Cookie Policy | 選擇cookie的管理策略,建議選擇compatibility,兼容性強 | |
User-Defined Cookies | 用戶自定義cookie | |
Add Button | 。。。略過 |