java - 我如何从 Jmeter 中的另一个线程接收变量
问题描述
在第一个线程中,我收到了 JSON(格式 - {"id":6054,"name":"Jmeter created chat","description":"jmeter created test"})
我想在第二个线程变量'6054'中使用它
我将 BeanShell 断言与代码一起使用:
${__setProperty(("id":"(.+?)"), ${chat_id)};
但它当然不起作用,请告诉我正确的方法..
非常感谢
解决方案
- 它不起作用,因为您的__setProperty()函数调用根本没有意义,而且它在语法上不正确
- 从 JMeter 3.1 开始,您应该使用 JSR223 测试元素和 Groovy 语言编写脚本
所以
删除你的 Beanshell 断言
添加JSR223 PostProcessor作为返回上述响应的请求的子项
将以下代码放入“脚本”区域:
props.put('chat_id', new groovy.json.JsonSlurper().parse(prev.getResponseData()).id as String)
在第二个线程组中,使用__P() 函数访问该值:
${__P(chat_id,)}
演示:
有关这些prev
和这些props
人的意思的更多信息,请参阅您应该与 Groovy 一起使用的前 8 个 JMeter Java 类文章
PS您可能会发现线程间通信插件更易于使用
推荐阅读
- vue.js - Vue.js 和 VueRouter 性能缓慢
- spring-boot - 如果@Scheduled 注解的方法在两台不同的机器上运行,它会被调用两次吗?
- sql - json字段上的PosgtreSQL连接表
- mongodb - 日期标准不适用于使用spring数据的mongodb
- php - 写入 .csv 文件时 PHP 的编码问题
- flutter - 我们应该记住闭包吗?
- wordpress - 按角色向用户隐藏 Wordpress 类别
- google-chrome - 如何从电子应用程序调试“无法验证第一个证书”?
- java - 尝试使用 @Value 注释作为函数参数访问时无法从属性文件中解析变量
- javascript - 使用 nockjs 和 jest 进行承诺/异步单元测试的代码覆盖率问题