性能测试工具 求问 jemeter 设置了全局变量,请求头信息,变量无效该怎么做?

zhiping.wu · 2023年12月07日 · 最后由 鲨鱼辣椒 回复于 2023年12月08日 · 5511 次阅读

问题描述

执行了登录接口,想要设置 token 为全局变量,失败。

操作步骤

  1. 登录(线程组 1--set up 线程组)
    1. 利用 jsonpath 提取变量值(线程组 1--set up 线程组)
    2. 设置为全局变量(线程组 1--set up 线程组) ${setProperty(,auth_token,${auth_token})};
      ${
      setProperty(public_key,${public_key},)};
      ${__setProperty(user_id,${user_id},)}
    3. 请求头设置引用(线程组 2-- 需要使用 token 线程组)
      ${__property(auth_token)}
      求问各位大佬这是什么原因呀

已解决。

问题原因:全局变量设置不是 beanshell 后置处理程序,而应该是 beanshell 后置取样器。

解决办法:换成 beanshell 取样器后成功获取。

共收到 9 条回复 时间 点赞

检查下全局变量的作用域是不是有问题?

变量设置没问题的话,也有可能是你线程组执行顺序问题,建议贴一下报错信息

$__{setProperty(,auth_token,${auth_token})}
$__{setProperty(auth_token,${auth_token},)}
是不是这个函数入参错了,但是看下面两个是对的
三个参数:属性名、属性值、是否返回原始值(可忽略)

检测楼上所说的,函数是否用错。检测无误,换个 jmeter 版本就行。

鲨鱼辣椒 回复

感觉是全局设置没成功,但是调试取样器是取到了值的,可以帮忙看看吗?

在线程组 2 中前置打印的值为空。

Mr.Shuo 回复

按照步骤来还是有问题😭

线程组 1

${setProperty(,auth_token,${auth_token})};
${
setProperty(public_key,${public_key},)};
${__setProperty(user_id,${user_id},)}

线程组 2

String token = props.get("auth_token");
vars.put("auth_token",token);
log.info("token is "+token);

提交结果:

9楼 已删除

信息头里一样要用下面这种获取变量

zhiping.wu 关闭了讨论 12月08日 11:10
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册