jmeter 修改 json GET 结果并在 PUT 中使用
jmeter modify json GET result and use in PUT
我正在使用Jmeter来自动化一些测试用例。 我有一个来自 GET 的 JSON 响应,我想更改该 JSON 响应的单个值,并在 PUT 正文中使用修改后的响应。 PUT 需要与响应相同的所有字段,我不知道它们都是什么,所以我认为 JSON 路径提取器在我的情况下不起作用。 效率在这里是一个加分项,但我会满足于一些有用的东西。
我已经在BSF后处理器中尝试过这个javascript:
var response = SampleResult.getResponseDataAsString();
var jsonOutput = JSON.parse(response);
jsonOutput.configState = "DELETED";
vars.put("json",jsonOutput);
但调试采样器将响应显示为"对象",仅此而已。 有什么想法吗? 谢谢。
我认为你在 Rhino 或 Nashorn 中没有JSON
,这就是你的脚本失败的原因。我建议考虑切换到JSR223 PostProcessor,并使用JSONBuilder和JSONSlurper,如下所示:
import groovy.json.JsonBuilder
import groovy.json.JsonSlurper
def slurped = new JsonSlurper().parseText(SampleResult.getResponseDataAsString())
def builder = new JsonBuilder(slurped)
builder.content.configState = 'DELETED'
vars.put("json", builder.toPrettyString())
请参阅 Beanshell vs JSR223 vs Java JMeter 脚本:您一直在等待的性能下降! 文章以了解
- 为什么JSR223和Groovy比JavaScript更好
- 如何向 Jmeter 添加 Groovy 引擎支持
- 脚本编写最佳实践
相关文章:
- 在Safari执行javascript之前对其进行修改
- 从客户端获取修改后的对象,并将其与服务器上的原始对象组合
- 用Javascript修改内部标记的CSS规则
- 绑定Range输入以修改样式
- 可以从Chrome扩展修改窗口对象吗
- jQuery滚动器插件修改
- 将函数从onclick修改为onload
- jQuery UI自动完成-修改问题
- Javascript日期修改
- 如何通过JQuery修改样式属性
- 使用treewalker修改表
- Angularjs:修改js中的作用域,稍后在页面中使用
- 在编译阶段后创建新的DOM树,或者继续使用原始修改的DOM
- 修改控制器AngularJS的全局值
- 修改数据后,setState不会触发重新渲染
- 通过sdk/system/events在修改请求观测器上测试http
- Angular js-尚未添加PUT请求到服务的URL
- GWT:有没有一种方法可以修改GWT在编译中使用的Cast.java文件
- 在多个元素上使用jquery插件,只需稍作修改
- jmeter 修改 json GET 结果并在 PUT 中使用