jmeter之跨线程关联

04-27 1265阅读

1)_setproperty函数:将值保存成jmeter属性

2)_property函数:在其他线程组中使用property函数读取属性

 一、跨线程接口引用变量

 1. 法一:jmeter自带函数_setProperty和_property

1. 1线程组 01

  • 创建登录的【HTTP请求】,并配置接口所需参数;
  • 创建【正则表达式提取器】,用正则表达式提取token字段;

    applay to 选择“主请求和子请求” 

    jmeter之跨线程关联 

    3、创建【BeanShel后置处理器】,编写脚本,将正则表达式中的变量变成全局变量:

    利用函数助手:将需要提取的设置为全局变量

    jmeter之跨线程关联 

    jmeter之跨线程关联 

    ${__setProperty(p_csrf_token,${csrf_token},)};
    • 后面的 ${csrf_token} 是正则表达式提取器中的变量;
    • 前面的 csrf_token是新定义的全局变量,后续跨线程组使用时是使用的这个变量名。

      1.2 线程组 02

      使用上述变量处通过函数助手property参数化写入${__property(p_csrf_token,,)}即可实现跨线程组。

      Jmeter之内置函数__property和__P的区别_jmeter property函数-CSDN博客 

      jmeter之跨线程关联 

      创建并配置好【HTTP请求】

      参数调用:

      ${__property(p_csrf_token,,)}

      jmeter之跨线程关联

      2. 法二:beanshell自带方法

      String newToken = vars.get("token");//将变量token赋值给变量newToken

      props.put("newToken1",newToken);//将newToken赋值给newToken1,此时newToken1已成为全局变量,其他线程直接引用${__P(newToken1)}

      String aaa = props.get("newToken1");//获取全局变量newToken1复制给aaa

       BeanShell后置处理器

      String newToken = vars.get("token");
      props.put("newToken1",newToken);
      String aaa = props.get("newToken1");

      3. 法三:调用java方法

      import org.apache.jmeter.util.JMeterUtils;

      JMeterUtils.setProperty("newToken1","${token}");//将变量token赋值给全局变量newtoken1,其他线程直接引用${__P(newToken1)}

       BeanShell后置处理器 

      import org.apache.jmeter.util.JMeterUtils;
      JMeterUtils.setProperty("newToken1","${token}");

      二、跨线程cookie关联 (token关联)

      cookie和token都用此方法 

       1. 全局配置文件jmeter.propties

      修改bin目录下全局配置文件jmeter.propties中的【CookieManager.save.cookies=true】--注意修改后需要重启jmeter

      jmeter之跨线程关联 

      2.查看调试取样器(Debug Sampler) 

      jmeter之跨线程关联3. Cookie值设为全局变量

      从调试取样器中取得Cookie的值并且设置为全局变量

      注意:变量名不能随便取,必须响应头里面的变量名一致 

      ${__setProperty(W2S_lastvisit,COOKIE_W2S_lastvisit,)}
      ${__setProperty(W2S_visitor,COOKIE_W2S_visitor,)}
      ${__setProperty(csrf_token,COOKIE_csrf_token,)}

      jmeter之跨线程关联 

      4. 设置Http Cookie管理器

      把取得的值设置到Http Cookie管理器中

      注意:

      • cookie管理器与线程组同一级
      • cookie管理器中的域一定要填写为正确的请求地址

        jmeter之跨线程关联 

        5.跨线程组直接调用

        jmeter之跨线程关联 

         

        三、 运行设置

        让线程按顺序执行

        jmeter之跨线程关联 

        运行结果 

        jmeter之跨线程关联 

VPS购买请点击我

文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

目录[+]