如何解决根据匹配计数值,需要将以下值捕获到变量中
我有一个要求,例如基于匹配计数值,需要将以下值捕获到变量中并将其传递给下一个请求。
<v13:uniqueTaskIdentifier><v13:taskIdentifier>${Task}</v13:taskIdentifier>
假设我在“${Task_matchNr}”中有 3 个值,我的输出应该如下所示:
<v13:uniqueTaskIdentifier><v13:taskIdentifier>**Task123**</v13:taskIdentifier><v13:uniqueTaskIdentifier><v13:taskIdentifier>**Task1234**</v13:taskIdentifier><v13:uniqueTaskIdentifier><v13:taskIdentifier>**Task1235**</v13:taskIdentifier>
我使用 JSR223 采样器:
def resultCount = ${Task_matchNr} as int
def ABC = "";
for(i=1;i<=resultCount;i++)
{
def var_name="Task_"+i
ABC = vars.get(var_name)
def result = '<v13:uniqueTaskIdentifier><v13:taskIdentifier>(vars.get(ABC))</v13:taskIdentifier>'
log.info(result);
}
但它正在捕捉
<v13:uniqueTaskIdentifier><v13:taskIdentifier>(vars.get(ABC))</v13:taskIdentifier>
解决方法
您需要连接值:
def result = '<v13:uniqueTaskIdentifier><v13:taskIdentifier>' + ABC + '</v13:taskIdentifier>'
,
-
Don't reference JMeter Functions or Variables in Groovy code as
${Task_matchNr}
作为值将被缓存并用于后续迭代 - 您需要使用 string concatenation,因为您当前的方法将始终返回硬编码值
你需要修改你的代码如下:
def resultCount = vars.get('Task_matchNr') as int
def ABC = "";
for (i = 1; i <= resultCount; i++) {
def var_name = "Task_" + i
ABC = vars.get(var_name)
def result = '<v13:uniqueTaskIdentifier><v13:taskIdentifier>' + ABC + '< /v13:taskIdentifier>'
log.info(result);
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。