如何解决Jmeter函数解析包含$符号的字符串
我有一个看起来像这样的字符串数组。这段代码位于安装线程的beanshell采样器中,这就是为什么我使用props.put()而不是vars.put()的原因。
String [] priceList = {"$472.56","$432.98","$200.98","$765.32","$233.98"};
props.put("price_list",priceList);
然后测试继续进行到主线程组,在该线程组中,每个用户都从beanshell采样器中的数组中分配了一个随机值:
var priceList = props.get("price_list");
var priceRandomIndex = ThreadLocalRandom.current().nextInt(0,priceList.length);
vars.put("price",priceList[priceRandomIndex]);
然后,用户以“ price”为参数发出发布请求,在采样器组件中将其称为$ {price}。结果树显示请求是使用不正确的值发出的,如下所示:
24233.98
24765.32
24472.56
当Jmeter在请求期间尝试获取$ {price}时,会发生问题。日志确认该变量在该点之前具有正确的值。 我意识到问题在于美元符号使jmeter在返回不同值的变量上调用某些函数。 jmeter调用$ {price}时如何获得原始值?
解决方法
我无法使用最新的JMeter 5.3
重现您的问题所以我建议您查看jmeter.log file中是否有可疑条目
还since JMeter 3.1 you're supposed to be JSR223 Test Elements and Groovy language用于脚本编写,因此最好迁移到Groovy,因为Beanshell具有一些性能限制,并且在高负载的情况下,这可能是意外行为的原因。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。