JMeter - 使用正则表达式捕获字符串并将其替换为另一个字符串

问题描述 投票:0回答:1

我正在使用 JSON 提取器从响应中提取大型 JSON 文件并将其保存在变量中。我想在请求中传递此变量,但想更改 JSON 中的 1 个值。该 JSON 具有各种客户详细信息,我想捕获“LoanAmount:50000”中的任何 LoanAmount 值,并将其替换为固定值 1000。

此 LoanAmount 值在 JSON 中出现多次,因此我被迫使用多个 JSON 提取器从响应中捕获 JSON 文件的不同部分,并在请求中单独传递它们。我想使用单个 JSON 提取器从响应中捕获整个 JSON,并使用后处理器编写一个脚本,该脚本将使用正则表达式捕获 LoanAmount 值并将其替换为固定值 1000。我该怎么办这个?

regex jmeter performance-testing
1个回答
0
投票

您可以使用合适的 JSR223 测试元素和 Groovy 代码,将与 JMeter 变量中的正则表达式匹配的值替换为其他值:

vars.put('replaced-values', vars.get('your-variable-here'.replaceAll(/("LoanAmount"\s*:\s*)\d+\s*,/, '\$11000')))

${replaced-values}
变量会将所有出现的“LoanAmount”替换为 1000。

更多信息:Groovy 正则表达式 - 权威指南(第 1 部分)

但是,完全摆脱 JSON Extractor 并替换 JSON 结构中的属性值可能会更容易,这将更加可靠和可读。

更多信息:

© www.soinside.com 2019 - 2024. All rights reserved.