问答 Jmeter beanShell 中变量设置全局变量,取不到值,改怎么设置

咸吃萝卜淡操心 · 2020年09月15日 · 最后由 咸吃萝卜淡操心 回复于 2020年09月24日 · 4979 次阅读
  1. 使用 jmeter beanShel 遇到一个问题 ,通过setProperty 设置变量,在后续的步骤中通过P 取到的是变量名而不是变量值

String header_nonce = "${Random(0,1000)}";
${
setProperty(nonce,header_nonce,true)};
${__P(nonce,)} # 取到的值是 header_nonce ,而不是一个随机数


最佳回复

写法有问题,Jmeter 函数中不支持调用 Java 定义的变量
就是说 你这里想调用 Java 定义的变量是无效的,实际给属性赋值时 使用的函数中的值
${__setProperty(nonce,header_nonce,true)}; 也就是使用 header_nonce 赋值给属性 nonce,所以你获得的值 就是 header_nonce
Jmeter 函数中支持嵌套 Jmeter 自己的变量,要使用随机数赋值
将随机数函数直接放在 ${__setProperty(nonce,${__Random(0,1000)},)}即可
如果一定要用 java 变量的话,则在设置属性时,使用 props.put() 方法即可
String header_nonce = ${__Random(0,1000)} ;
props.put("nonce",header_nonce) ;

共收到 5 条回复 时间 点赞

${__setProperty(buyercontribute,${getbuyercontributionvalue},)};
写错了好么,基本语法格式请先学学

jacksboy 回复

尝试时忘了改回来,已经修改好了,但是直接在 ${__setProperty(buyercontribute,${getbuyercontributionvalue},)};这样写会 undefined variable,因为我取的是脚本中定义的变量,

写法有问题,Jmeter 函数中不支持调用 Java 定义的变量
就是说 你这里想调用 Java 定义的变量是无效的,实际给属性赋值时 使用的函数中的值
${__setProperty(nonce,header_nonce,true)}; 也就是使用 header_nonce 赋值给属性 nonce,所以你获得的值 就是 header_nonce
Jmeter 函数中支持嵌套 Jmeter 自己的变量,要使用随机数赋值
将随机数函数直接放在 ${__setProperty(nonce,${__Random(0,1000)},)}即可
如果一定要用 java 变量的话,则在设置属性时,使用 props.put() 方法即可
String header_nonce = ${__Random(0,1000)} ;
props.put("nonce",header_nonce) ;

楼上正解

Tester_谜城 回复

谢谢,明白了

咸吃萝卜淡操心 关闭了讨论 09月24日 14:10
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册