Jmeter - 替换 json 记录中的值
Jmeter - replace value within json record
我对 jmeter 的各个方面还是很陌生,正在尝试解决我遇到的问题。
我正在向 api 端点提交 json 记录。
json 包含许多参数,其中包括:
{"StartTime":"1487869700",
"QueryEndTime":"12345678910",
"Terms":"ThingILookFor",
"Reason":"ReasonILook"
}
I want to change this to be something like:
{"StartTime":"1487869700",
"QueryEndTime":"endTime",
"Terms":"ThingILookFor",
"Reason":"ReasonILook"
数字字符串是纪元值。
我希望 endTime 成为一个变量,我可以将其输入 Http 中的查询主体并在运行时指定。
我的问题是我需要在提交查询时将那个纪元值更改为 api 作为当前纪元值。
我试过使用 Beanshell,但没有成功。
这(可能是非常糟糕的伪代码)是我想要做的:
- 读入我的查询正文(通过 csv 数据配置获得)
- 用当前纪元时间戳替换纪元字符串(我通过用户定义变量中的函数调用生成它)
- 通过我的 http 调用提交编辑后的查询正文
显然,任何结合其中一些步骤的方法都是好的。
只需使用__time函数
"QueryEndTime":"${__time(,)}"
可能不是 'right' 解决方案,但这是我所做的并且有效:
1) 设置用户自定义变量currentEpoch
2) currentEpoch 的值为 ${__time(/1000,)}
因为我需要以秒为单位的纪元
3) 用 "replaceQueryStartTimeWithEpoch"
替换了我想在测试数据中替换的值(变量是 "Query")
4) 使用以下代码设置一个 beanshell 采样器:
vars.put("Query",vars.get("Query").replace("replaceQueryStartTimeWithEpoch", vars.get("currentEpoch")));
令人高兴的是,这似乎可以满足我的需要。
有兴趣查看更多 'elegant' 解决方案。
我对 jmeter 的各个方面还是很陌生,正在尝试解决我遇到的问题。
我正在向 api 端点提交 json 记录。 json 包含许多参数,其中包括:
{"StartTime":"1487869700", "QueryEndTime":"12345678910", "Terms":"ThingILookFor", "Reason":"ReasonILook" }
I want to change this to be something like:
{"StartTime":"1487869700", "QueryEndTime":"endTime", "Terms":"ThingILookFor", "Reason":"ReasonILook"
数字字符串是纪元值。 我希望 endTime 成为一个变量,我可以将其输入 Http 中的查询主体并在运行时指定。
我的问题是我需要在提交查询时将那个纪元值更改为 api 作为当前纪元值。
我试过使用 Beanshell,但没有成功。
这(可能是非常糟糕的伪代码)是我想要做的:
- 读入我的查询正文(通过 csv 数据配置获得)
- 用当前纪元时间戳替换纪元字符串(我通过用户定义变量中的函数调用生成它)
- 通过我的 http 调用提交编辑后的查询正文
显然,任何结合其中一些步骤的方法都是好的。
只需使用__time函数
"QueryEndTime":"${__time(,)}"
可能不是 'right' 解决方案,但这是我所做的并且有效:
1) 设置用户自定义变量currentEpoch
2) currentEpoch 的值为 ${__time(/1000,)}
因为我需要以秒为单位的纪元
3) 用 "replaceQueryStartTimeWithEpoch"
替换了我想在测试数据中替换的值(变量是 "Query")4) 使用以下代码设置一个 beanshell 采样器:
vars.put("Query",vars.get("Query").replace("replaceQueryStartTimeWithEpoch", vars.get("currentEpoch")));
令人高兴的是,这似乎可以满足我的需要。
有兴趣查看更多 'elegant' 解决方案。