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。

  • 相关阅读:
    linux下C++程序开发范例
    a list of compiler books — 汗牛充栋的编译器参考资料
    中国象棋将帅问题
    CPU利用率问题:操作系统原理和API
    算法性能分析
    MySQL时间分组查询
    在MongoDB的MapReduce上踩过的坑
    C++双缓冲多线程分析大文件词频
    MongoDB进行MapReduce的数据类型
    得到内网域管理员的5种常见方法<转>
  • 原文地址:https://www.cnblogs.com/testerhappy/p/11855330.html
Copyright © 2011-2022 走看看