jmeter随笔(12)--定制json响应结果断言
来源:互联网 发布:希望有鬼知乎 编辑:程序博客网 时间:2024/06/05 08:38
故事背景
之前飞测群里有同学问,对于响应结果是json格式字符串,如何遍历其中所有对象的某个key的value是否和期望结果相同。正好又看到沈大爷(帅哥同事)在写json断言,手一痒,然后也动手写了一下。
响应结果
响应结果分析
1、value的类型包含JSONArray,JSONObject和string;
2、遇到JSONArray或者JSONObject,进行递归
3、通过fastjson工具遍历所有的value(完成这一步之后,jmeter针对某个key做断言,相对很容易了)
解决思路代码
public static void getJson(String abc) { JSONObject jsonObj = JSON.parseObject(abc); for (Map.Entry<String, Object> entry : jsonObj.entrySet()) { if ("JSONArray".equals(entry.getValue().getClass().getSimpleName())) { JSONArray jsonArray = JSON.parseArray(entry.getValue() .toString()); for (int i = 0; i < jsonArray.size(); i++) { getJson(jsonArray.get(i).toString()); } } else if ("JSONObject".equals(entry.getValue().getClass() .getSimpleName())) { getJson(entry.getValue().toString()); } else { System.out.print(entry.getKey().toString() + " : "); System.out.println(entry.getValue().toString()); } } }
编写代码遇到的问题
Jmeter的BeanShell PostProcessor语法是类java语法,暂时不支持泛型,就是上面代码中涉及到的 Map.Entry
我是这样解决的
1、把写好的java代码,通过eclipse导出一个jar包,放到jmeter的lib\ext目录下
2、重启jmeter
3、编写后置BeanShell PostProcessor,导入打的jar包的包名+类名,引用已经定义的方法
1 0
- jmeter随笔(12)--定制json响应结果断言
- <续>jmeter随笔(12)--定制json响应结果断言
- JMeter 测试过程中的响应断言以及断言结果
- Jmeter断言-响应断言
- Jmeter响应断言详解
- JMeter响应断言心得
- Jmeter--响应断言
- Jmeter之响应断言
- Jmeter断言之响应断言-响应断言名词详细解释
- Jmeter笔记:响应断言详解
- Jmeter响应断言的使用
- JMeter 通过JSON Extractor 插件来提取响应结果
- Jmeter 接口测试中使用Beanshell断言: 将接口响应报文与数据库结果对比
- JMeter学习-007-JMeter 断言实例之一 - 响应断言
- Jmeter 快速入门教程(三)--添加响应断言
- jmeter断言加密的响应信息(转)
- jmeter响应结果乱码问题
- jmeter实现返回json串的断言
- String类详解(浅拷贝,深拷贝,引用计数,写时拷贝)
- 导入表编程-枚举导入表
- 【分享】360云盘不限速-达峰值v7.5.4.1240版
- Python实现图片转字符画
- 83. Remove Duplicates from Sorted List
- jmeter随笔(12)--定制json响应结果断言
- Effective C++读书笔记---将文件间的编译依存关系降至最低
- 树的子结构
- Linux下chrome的adblock扩展不起作用的问题
- Code signing is required for product type 'Application' in SDK 'iOS 10.0'
- python学习(2)安装与第一个实例
- 移动端常见的文本框输入样式
- Python从模块导入函数
- 二叉搜索树的实现