长问题所以请耐心等待。 我有多个线程组。
在我的主题组创建用户中,我得到一个respose值,即“UserId”,这是响应。
{"CreateUserResponse":{
"Header":{"CMMHeader": {"CorrelationId":"UserJmeter1"}},
"Result":{"ResponseCode":"CM-N-0000","ResponseMessage":"Success"},
"UserId":"645d026d-95bc-4782-9ad4-c034ef5f0155-1135"}}
现在在另一个线程组中,即“AssignUsersinGroup”我想在其HTTP请求中传递 UserId 的值,即
{
"AssignUserToApplicationGroupRequest": {
"Header": {
"CMMHeader": { "CorrelationId": "123" }
},
"ClientContext": {
"OrganizationId": "1135"
},
"UserId": "${UserId}",
"ApplicationGroupId": "Jmeter1135"
}
}
现在我在创建用户线程的组中添加了一个JSON路径预处理器。
需要帮助。如何从创建用户的响应中获取UserId的值?以及如何将它传递给AssignUserInGroups的Request?
提前致谢!
答案 0 :(得分:2)
JMeter变量范围仅限于当前的线程组,因此您将无法访问另一个线程组中的变量集。解决方案是使用__setProperty() function将其转换为JMeter属性。 JMeter属性是整个JVM的全局属性,因此您可以在任何地方使用该值。设置后,您可以通过__P() function
访问媒体资源更好的想法是使用Inter-Thread Communication插件,这样你不仅可以跨线程组共享变量,还可以用于线程同步,即不启动 AssignUsersinGroup 直到 UserId 值被填充。
安装JMeter插件并使其保持最新的推荐方法是使用JMeter Plugins Manager