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。

  • 相关阅读:
    .Net 加密原理,HVM核心的实现原理(八)
    .Net中的数字类型四则运算的有趣问题
    DNGuard HVM 中文版 V2.80 发布,优惠活动
    买烟(古龙版)
    .Net的混淆属性以及ildasm限制的简单解除方法
    方程式
    silverlight学习网站
    .NET精品文章系列(一)
    VS 2008 + .NET 3.5系列
    Expression Blend学习网站
  • 原文地址:https://www.cnblogs.com/testerhappy/p/11855330.html
Copyright © 2011-2022 走看看