zoukankan      html  css  js  c++  java
  • 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。

  • 相关阅读:
    线段树
    5709 01背包
    JavaEE Tutorials (19)
    洛谷 P3385 【模板】负环
    洛谷 P3388 【模板】割点(割顶)
    洛谷 P3387 【模板】缩点
    洛谷 P3386 【模板】二分图匹配
    洛谷 P3371 【模板】单源最短路径
    洛谷 P3370 【模板】字符串哈希
    洛谷 P3366 【模板】最小生成树
  • 原文地址:https://www.cnblogs.com/testerhappy/p/11855330.html
Copyright © 2011-2022 走看看