• jmeter之跨线程关联


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

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

     一、跨线程接口引用变量

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

    1. 1线程组 01

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

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

     

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

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

     

     

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

    1.2 线程组 02

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

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

     

    创建并配置好【HTTP请求】

    参数调用:

    ${__property(p_csrf_token,,)}

    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后置处理器

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

    3. 法三:调用java方法

    import org.apache.jmeter.util.JMeterUtils;

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

     BeanShell后置处理器 

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

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

    cookie和token都用此方法 

     1. 全局配置文件jmeter.propties

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

     

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

    3. Cookie值设为全局变量

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

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

    1. ${__setProperty(W2S_lastvisit,COOKIE_W2S_lastvisit,)}
    2. ${__setProperty(W2S_visitor,COOKIE_W2S_visitor,)}
    3. ${__setProperty(csrf_token,COOKIE_csrf_token,)}

     

    4. 设置Http Cookie管理器

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

    注意:

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

     

    5.跨线程组直接调用

     

     

    三、 运行设置

    让线程按顺序执行

     

    运行结果 

     

  • 相关阅读:
    抖音小店无货源,关于疫情原因,影响地区发货和地区服务调整
    Jupyter notebook kernel 操作大全
    使用docker搭建drogon windows10,linux,mac下开发环境
    Java书签 #获取项目应用中所有Mapper接口并打印URL
    vue移动端项目渲染pdf步骤
    (转)STR 内核做了什么
    Win11打不开exe应用程序怎么办?Win11无法打开exe程序解决方法
    Oracle函数如何返回多行多列?
    内存马查杀copagent研究
    我国农业科学数据共享协议
  • 原文地址:https://blog.csdn.net/u014694915/article/details/138153875