Jmeter筆記(10)添加cookie管理器


轉:https://www.jianshu.com/p/91c6411398f5
 
1、自動管理,像瀏覽器一樣存儲和發送Cookie
jmeter默認不會保存cookies,需要加上cookie manager。
加一個空的cookie manager即可以自動保存cookie,並且能夠在同一個線程組之間傳遞cookie。
要把Cookies保存到線程變量中,jmeter.properties文件中定義屬性"CookieManager.save.cookies=true"。
線程組---添加---配置元件---HTTP Cookie 管理器
線程變量名為COOKIE_ + Cookie名。屬性CookieManager.name.prefix= 可以用來修改默認的COOKIE_的值。 

 

 

2、手動添加Cookie到Cookie Manager,需求注意的是這些Cookie的值被會所有線程共享
需要注意的是域、路徑必須填上,尤其是域。
JMeter會檢查收到的cookies是否對URL有效。這意味着跨域的cookie不能被存儲。如果你有竊聽行為,或者想要存儲跨域cookies,需要在jmeter.poperties中設置:“ CookieManager.check.cookies = false”。
 
3、跨線程傳遞變量
利用BeanShell PostProcessor設置全局變量,可以通過JMeterUtils.setProperty和JMeterUtils.getPropDefault方法實現。
1)在生成cookie的請求中添加beanshell postprocessor后置處理器,並添加如下腳本,把cookie保存在Jmeter屬性參數中:
import org.apache.jmeter.util.JMeterUtils;
JMeterUtils.setProperty(“cookie_name”, “cookie_value”);  //設置jmeter屬性-全局變量
其中cookie_name和cookie_value分別換成你對應的cookie名稱(不帶COOKIE_前綴)和cookie值。
2)在需要使用cookie的另一個線程組的請求中添加beanshell preprocessor前置處理器,並添加如下腳本,取出cookie的值,並存入線程變量中:
import org.apache.jmeter.util.JMeterUtils;
String value = JMeterUtils.getPropDefault(“cookie_name”); //獲取jmeter屬性
vars.put(“cookie_name”,value); //put該線程組的變量
這里的cookie_name和前面設置的名稱一樣。
然后在該線程組中就可以使用${cookie_name}來獲取cookie的值,也就是實現了跨線程組傳遞cookie。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM