jmeter 如何替换来自CSV数据配置的变量中的字符串?

bxfogqkk  于 2022-11-09  发布在  其他
关注(0)|答案(2)|浏览(444)

在我的JMeter测试计划中,我有两个CSV Data Config元素。

  • CSV数据配置-元素-请求主体:此CSV数据配置元素有一个名为“requestBody”的变量。在相应的CSV文件中,每行都有一个带占位符字符串的XML请求。
  • CSV数据配置元素主题:这个CSV数据配置元素有一个变量名“subjectDn”。在相应的CSV文件中,每一行都有一个用户的可分辨名称(DN)。

“requestBody”变量将包含一个来自CSV文件的XML请求,该文件包含请求正文和一个占位符字符串,我希望将该占位符替换为“subjectDn”变量的内容,然后在HTTP请求元素中使用修改后的“requestBody”变量。
换句话说就是:
1.将${requestBody}中的占位符字符串替换为${subjectDn}中的值,然后
1.在HTTP请求中使用修改后的${requestBody}
我该怎么做?最简单/开销最少的方法是什么?
我已经尝试使用“__evalVar”函数(请参阅https://am.net/lib/tools/NetworkManagement/apache-jmeter-2.8/printable_docs/usermanual/functions.html),但当字符串来自CSV文件时,它似乎无法进行替换?
提前感谢!

xqkwcwgp

xqkwcwgp1#

将您的${requestBody} Package 到__eval()函数中,它将允许JMeter将CSV文件中作为“占位符”出现的JMeter Functions and Variables解析为它们各自的值。

${__eval(${requestBody})}

此外,如果您考虑编写脚本来满足您的需求,请注意,从JMeter 3.1开始,建议使用JSR223测试元素和Groovy语言。更多信息:Apache Groovy: What Is Groovy Used For?

qnakjoqk

qnakjoqk2#

我能够通过使用Beanshell预处理器和一些执行var.get()、JavaString replaceall()和var.put()的Java代码来完成这个工作。

相关问题