jmeter的beanshell动态提取json key的方法

网上有很多教程,但是坑比较多,对于一个不懂开发的人基本无法去完善这个过程。

首先,java不支持json的解析,所以必须使用三方库,由于三方库种类要和代码对上,引入的包决定了代码的书写。

java的包都是class文件,也很难看源码是什么,最开始找了一个json的jar包,但是由于文档没给出指定下载地址,所以一直报错,当时并不清楚原因,后来发现是包里压根就没这个类,我是用的是阿里的json解析包 fastjson下载连接。

下一步是添加包的路径,并把jar包放到jmeter的lib目录下。 在测试计划中的Library中引入

对请求添加besnshell的脚本处理。

最后一步写代码,写代码也比较坑,也可能是长期不写java代码了,代码有些生疏,但是确实很多基本库没有,我也做了大量的测试,把最终的代码贴一下可以动态获取json的key:


import com.alibaba.fastjson.JSON;

import com.alibaba.fastjson.JSONObject;

String returnData = prev.getResponseDataAsString();

JSONObject jsonObject = JSONObject.parseObject(returnData);

JSONObject data = jsonObject.getJSONObject("data");

log.info(data.toJSONString().substring(2, 4));

由于迭代器不好用,具体原因没有查,后期有机会我再补上,根据我们的业务需求我就用这种比较恶心的方式把任务ID给提取出来了。

你可能感兴趣的:(jmeter的beanshell动态提取json key的方法)