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

voj3qocg  于 2023-10-20  发布在  其他
关注(0)|答案(1)|浏览(144)

我使用JSON提取器从响应中提取一个大的JSON文件,并将其保存在一个变量中。我想在请求中传递这个变量,但我想在JSON中更改1个值。这个JSON包含各种客户详细信息,我想捕获LoanAmount的值,比如“LoanAmount:50000”,并将其替换为固定值1000。
这个LoanAmount值在JSON中出现多次,因此我被迫使用多个JSON提取器从响应中捕获JSON文件的不同部分,并在请求中单独传递它们。我想使用一个JSON提取器从响应中捕获整个JSON,并使用一个后处理器编写一个脚本,该脚本将使用正则表达式捕获LoanAmount值,并将其替换为固定值1000。我该怎么做?

cunj1qz1

cunj1qz11#

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

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

${replaced-values}变量将所有出现的“LoanAmount”替换为1000。
更多信息请参阅:Groovy Regular Expressions - The Definitive Guide (Part 1)
然而,完全摆脱JSON提取器并替换JSON结构中的属性值可能会更容易,它将更加可靠和可读。
更多信息请参阅:

相关问题