JMeter 中使用 Gson 操作请求中的Boby参数

背景

使用org.json.JSONObject 转换,与原Body参数顺序发生变化,原因:JSONObject内部是用Hashmap来存储的,本质上是一个无序的键值对集合,不应依赖字段的添加顺序。

为解决org.json.JSONObject 输出顺序问题,采用Gson进行json格式的String转换为Json并进行数据操作,保证输出按照字段的添加顺序。

//bodyString 请求body
JSONObject dataobj = new JSONObject(bodyString);

//输出结果
{"taskSubTitle":"方案0","taskId":"1833041310154539010"}

具体实现

1、下载 Gson 对应的 Jar 包

https://mvnrepository.com/search?q=Gson

2、jar 包配置

将下载的 Jar 放到 Jmeter 安装目录 lib/ext 文件夹下,测试计划配置 jar 包位置,重启 Jmeter

3、BeanShell 中引入 Jar

import com.google.gson.*;

4、Gson 应用

//获取请求 Body
Arguments args = sampler.getArguments();
String arg = args.getArgument(0).getValue();
//使用 Gson 将 String 转换为 JsonObject(按照顺序输入)
JsonObject jsonObject = new JsonParser().parse(arg).getAsJsonObject();
//获取 key 值
jsonObject.get("taskId");
//向 Body 中添加新的字段(如果 key 已经存在则替换 value)
jsonObject.addProperty("taskId", "ajklsdhfaksdfasdf");

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值