jmeter diff测试(调用JAR包处理)
1、准备接口数据(对比字段,即json数据中需要提取的key对应的值进行对比)
2、配置获取EXCEL数据
3、新建线程,并建两个http请求,分别用于请求新旧接口
4、提取需要对比的内容
5、赋值变量,用于对比请求时取值进行对比
6、新建beanshell取样器
7、新建beanshell断言
import mytest.java.json.*; import net.sf.json.JSONObject; String resultV1 = vars.get("oldResult"); String resultV2 = vars.get("newResult"); //log.info(resultV1); JSONObject jsonObject1=JSONObject.fromObject(resultV1); JSONObject jsonObject2=JSONObject.fromObject(resultV2); //print(jsonObject1); JsonDiff jd = new JsonDiff(); //print(jsonObject1); String result = jd.compareJsonD(jsonObject1,jsonObject2,null); if(result != null){ Failure = true; FailureMessage=result; }
准备JAR包
package mytest.java.json; import java.util.Iterator; import net.sf.json.JSONArray; import net.sf.json.JSONObject; public class JsonDiff { public static void main(String[] args) { String a = "{\"milestone\": [],\"meeting\": [{\"room_address\": \"11F\",\"start\": \"2019-05-10 00:01:00\",\"meeting_type\": \"2\",\"end\": \"2019-05-11 23:30:00\",\"type\": \"1\",\"locale\": \"\u9C81\u73ED\",\"title\": \"JYF-TEST\u6B63\u5E38\u666E\u901A\u4F1A\u8BAE\",\"meeting_compere\": \"\u53F6\u654F\",\"url\":\"\\/v0\\/WOS\\/#\\/home\\/WOS\\/boardroom\\/personal?title=JYF-TEST\u6B63\u5E38\u666E\u901A\u4F1A\u8BAE&id=45838\"},{\"room_address\": \"10F\",\"start\": \"2019-05-10 00:04:00\",\"meeting_type\":\"3\",\"end\":\"2019-05-1023:30:00\",\"type\":\"1\",\"locale\":\"\u9C81\u73ED1\",\"title\":\"JYF-TEST\u6B63\u5E38\u4F8B\u4F1A\",\"meeting_compere\":\"\u53F6\u654F\",\"url\":\"\\/v0\\/WOS\\/#\\/home\\/WOS\\/boardroom\\/personal?title=JYF-TEST\u6B63\u5E38\u4F8B\u4F1A&id=45840\"}]}"; String b = "{\"milestone\": [],\"meeting\": [{\"room_address\": \"10F\",\"start\": \"2019-05-10 00:01:00\",\"meeting_type\": \"2\",\"end\": \"2019-05-11 23:30:00\",\"type\": \"1\",\"locale\": \"\u9C81\u73ED\",\"title\": \"JYF-TEST\u6B63\u5E38\u666E\u901A\u4F1A\u8BAE\",\"meeting_compere\": \"\u53F6\u654F\",\"url\":\"\\/v0\\/WOS\\/#\\/home\\/WOS\\/boardroom\\/personal?title=JYF-TEST\u6B63\u5E38\u666E\u901A\u4F1A\u8BAE&id=45838\"},{\"room_address\": \"10F\",\"start\": \"2019-05-10 00:04:00\",\"meeting_type\":\"3\",\"end\":\"2019-05-1023:30:00\",\"type\":\"1\",\"locale\":\"\u9C81\u73ED1\",\"title\":\"JYF-TEST\u6B63\u5E38\u4F8B\u4F1A\",\"meeting_compere\":\"\u53F6\u654F\",\"url\":\"\\/v0\\/WOS\\/#\\/home\\/WOS\\/boardroom\\/personal?title=JYF-TEST\u6B63\u5E38\u4F8B\u4F1A&id=45840\"}]}"; JSONObject json1 = JSONObject.fromObject(a); JSONObject json2 = JSONObject.fromObject(b); String t = compareJsonD(json1, json2,null); // System.out.print("****"); System.out.print(tmp); /* for (int i = 0; i < 10000; i++) { if (! json1.toString().equals( json1.toString())) { System.out.println(654565); } }*/ } static String tmp = null; public static String compareJsonD(JSONObject json1, JSONObject json2,String key) { tmp = null; compareJson(json1, json2,null); return tmp; } public static String compareJson(JSONObject json1, JSONObject json2,String key) { JSONObject jsonObject1=JSONObject.fromObject(json1); JSONObject jsonObject2=JSONObject.fromObject(json2); Iterator<String> i = jsonObject1.keys(); String result1 = ""; // String tmp = ""; while (i.hasNext()) { key = i.next(); result1 = compareJson(jsonObject1.get(key), jsonObject2.get(key),key); // System.out.println(result1); if(result1 != null){ if(tmp != null){ tmp += result1; } else{ tmp = result1; } } } // System.out.println("**********"); // System.out.println(tmp); return tmp; } public static String compareJson(Object json1,Object json2,String key) { String result2 = null; if ( json1 instanceof JSONObject ) { result2 = compareJson((JSONObject) json1 ,(JSONObject) json2,key); }else if ( json1 instanceof JSONArray ) { compareJson((JSONArray) json1 ,(JSONArray) json2,key); }else if(json1 instanceof String ){ result2 = compareJson((String) json1 ,(String) json2,key); }else { result2 = compareJson(json1.toString(), json2.toString(), key); } return result2; } public static String compareJson(String str1,String str2,String key) { String result = null; if (!str1.equals(str2)) { if (result != null) { result = "\r\n"+"key:"+key+"\r\n"+"json1:"+ str1 +"\r\n"+"json2:"+str2+"\r\n\r\n"; } else { result = "key:"+key+"\r\n"+"json1:"+ str1 +"\r\n"+"json2:"+str2+"\r\n\r\n"; } } return result; } public static void compareJson(JSONArray json1,JSONArray json2,String key) { Iterator i1= json1.iterator(); Iterator i2= json2.iterator(); while ( i1.hasNext()) { compareJson(i1.next(), i2.next(),key); } } }
jmeter diff测试(调用JAR包处理)的更多相关文章
- jmeter用BeanShell调用jar包对HTTP请求中的参数进行MD5加密
前提: eclipse.JDK.Jmeter 说明: 本文分为两部分进行配置说明 第一部分:编写JavaMD5加密脚本 第二部分:使用Jmeter的BeanShell进行验证 ************ ...
- jmeter 调用jar包 本地加密
1.因为加密接口是有我们自己加密方式,所有加密包由开发提供,获得加密包后方式jmeter目录/lib/ext文件夹中 2.选择引入加密包 3.添加BeanShell Sampler和Debug Sam ...
- Unity调用Android的两个方式:其一、调用jar包
unity在Android端开发的时候,免不了要调用Java:Unity可以通过两种方式来调用Android:一是调用jar.二是调用aar. 这篇文章主要讲解怎么从无到有的生成一个jar包,然后un ...
- Loadrunner11.0调用Jar包
又好几天不写东西了,是不是意味着最近没有大的进步,时时敲打自己. 今天把loadrunner如何调用Jar包搞定了,现在把配置的过程中需要注意的东西写下来,分享给小伙伴儿,减少他们在前行路上的弯路. ...
- winform调用jar包
因为工作需要,需要做一个数据上传的程序,客户规定的是:数据接口采用http连接,采用JSON-RPC轻量级远程调用协议.所以决定用winform做一个管理界面(其中还包括其他的功能),java完成数据 ...
- (转载)Python 的 JPype 模块调用 Jar 包
Python 的 JPype 模块调用 Jar 包 背景与需求 最近学习并安装使用了HttpRunner框架去尝试做接口测试,并有后续在公司推广的打算. HttpRunner由Python开发,调用接 ...
- Python调用jar包中的方法
[本文出自天外归云的博客园] 需求 最近在后台项目代码中一段自定义的AES加解密的程序在平时的测试工作中应用频繁.因为写脚本经常会需要使用,而经过各种尝试,比如jpype等,都不尽如人意.最后转换思路 ...
- 如何制作Jar包并在android中调用jar包
android制作jar包: 新建android工程,然后右击,点击导出,选择导出类型为Java下的JAR file,在java file specification 中不要选择androidmani ...
- Unity调用Android的两种方式:其一、调用jar包
unity在Android端开发的时候,免不了要调用Java:Unity可以通过两种方式来调用Android:一是调用jar.二是调用aar. 这篇文章主要讲解怎么从无到有的生成一个jar包,然后un ...
- html实现调用jar包
整体思路:html引用URL protocol-本地注册表key,key对应某一c#写的exe可执行文件,由exe可执行文件调用cmd,cmd执行jar包. 1.添加注册表: Windows Regi ...
随机推荐
- listview 没数据内容时显示一个提示文本
listview和textview 1:1.listview无内容的时候本身是不显示的,所以textview会显示 getlistview获取系统定义的listview
- leetcode 792. Number of Matching Subsequences
Given string S and a dictionary of words words, find the number of words[i] that is a subsequence of ...
- sdut oj 1163 C语言实验——排列 (当初不会递归生成排列,这个题目现在才补上 刘汝佳给出了写法 *【模板】 当然有生成全排列的函数存在 )
C语言实验——排列 Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^ 题目描述 有4个互不相同的数字,请按序输出由其中三个不重复数字组成的排列 ...
- hdu 1004 Let the Balloon Rise 解题报告
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1004 用STL 中的 Map 写的 #include <iostream> #includ ...
- 网络抓取功能实现 将获取的结果进行过滤并写入到TXT文档中
下面是自己编写的 网络抓取功能实现 将获取的结果进行过滤并写入到TXT文档中 (以防忘记) 原创哟 import java.io.BufferedReader;import java.io.Buffe ...
- 并不对劲的loj3049:p5284:[十二省联考]字符串问题
题目大意 给出字符串\(S(|S|\leq2\times10^5)\), \(na(na\leq2\times 10^5)\)个区间\([l_i,r_i]\)表示\(S_{l_i},S_{l_i+1} ...
- [SHOI 2007] 善意的投票
[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=1934 [算法] 首先 , 选择睡觉的人和不选择睡觉的人构成两个集合 这启发我们用最小 ...
- [国家集训队]Crash的数字表格 / JZPTAB
传送门 题目要求,求: \[\sum_{i=1}^n\sum_{j=1}^mlcm(i,j)\] 先转化为gcd的形式,然后枚举gcd. \[\sum_{i=1}^n\sum_{j=1}^m\sum_ ...
- 如何找GitHub上热门的开源项目
访问:https://github.com/trending,选择时间段和关联语言就可以查看最近热门的项目. Java最近一个月热门项目如下:
- Lotus and Characters (stronger)
题意: 有n类物品,第i种物品权值为$val(i)$,有$cnt(i)$个,现在你可以选出一些物品排成一个序列(假设有m个), 记第i个物品种类为$x_i$,最大化$\sum_{i=1}^m{i * ...