今天跟大家一起学习如何在jmeter中做json数据对比,希望对大家有帮助。

Jmeter中JDBC Request和BeanShellPostProcessor的结合使用方法以及json数据对比;

一、Jmeter连接数据库

1. 下载对应数据库的驱动包到jmeter安装目录的lib下ext文件中,并导入到jmeter的测试计划中,本实例中使用的是mysql如下所示:

点击测试计划-->点击浏览-->选中mysql驱动jar包-->打开

2. 添加线程组,并在线程组下新建一个JDBC Connection Configuration配置元件,详细配置如下:

其中, Variable Name:testdb  定义变量名称,作用:说明哪个JDBC Request需要引用此配置,jdbc请求时需要用到此变量,变量值自定义保持一致即可;

Database Connection Configutration配置要访问的数据库信息

- Database URL:数据库连接的信息

- JDBC Driver class:com.mysql.jdbc.Driver   数据库的连接驱动名称

- Username:数据库的用户名

- Password:数据库的密码

3. 新建一个JDBC请求,测试连接数据库,详细步骤如下:

Variable Name:输入需要引用的JDBC配置(当前输入的数值与JDBCConnection Configuration相同的名称),两者的变量名称是需要一致的 ,就代表引用哪一个数据库连接Query Type:输入查询的类型(默认选择Select Statement,即只执行第一条select语句)

Restult Variable name:将所查询的结果放到此结果集中(result)

4. 添加BeanShell PostProcessor并从中取出结果集

取出结果集中的数据:

columnValue =vars.getObject(“resultObject”).get(0).get(“Column Name”);

- vars.getObject(“resultObject”):代表从哪个结果集中取数据

- get(0):取第几行

- get(“ColumnName”):取哪一列(哪一列即为JDBCRequest查询结果中的字段名)

备注:

1)columnValue= vars.getObject(“resultObject”).get(0).get(“Column Name”),返回的类型是Object类型。

2)需要将Object类型转换成String类型(取出对象的名称.toString())。

例如:columnValueResule.toString()),其中columnValueResule是取出的对象名称

3)取出来的变量放到jmeter中,用此方法:vars.put(“key”,Value)。

例如:vars.put(“xxxx”,DBclassname.toString());如果要引用此查询语句的结果,只需要引用key值就可以https://www.cnblogs.com/baoziluo/p/9099375.html

二、Jmeter对Json格式数据的三种处理方式

示例,若从如下json数据中取loginName的值:

{
    "flag":true,
    "message":"",
    "data":{
        "user":{
            "id":"0200167a-03f5-49c1-a822-886fad2e8413",
            "name":null,
            "loginName":"user",
            "passowrd":null,
            "userType":-1,
            "userTypeText":"普通用户"
        },
        "extands":[
            {
                "id":"f212abcd-7b73-4dcd-9614-81d7331d488c",
                "name":"爱好",
                "nameCode":"like"
            }
        ]
    }
}

1.    使用正则表达式提取请求响应中的值

1)  添加Jmeter正则表达式提取器

添加—>后置处理器—>正则表达式提取器

2)Jmeter正则表达式提取器控制面板

其中:

引用名称:定义变量名称,后续请求将要引用到的变量名,如填写的是:login_name,后面的引用方式是${ login_name}

正则表达式:提取内容的正则表达式,相当于lr中的关联函数

() 括起来的部分就是需要提取的,对于你要提的内容需要用小括号括起来

. 点号表示匹配任何字符串

+  一次或多次

? 在找到第一个匹配项后停止

模板:用$$引用起来,如果在正则表达式中有多个正则表达式(多个括号括起来的),则可以是$2$,$3$等,表示解析到的第几个值给login_name。例如:$1$表示匹配到的第一个值

匹配数字:0代表随机取值,-1代表所有值,此时提取结果是一个数组,其余正整数代表第几个匹配的内容提取出来。如果匹配数字选择的是-1,还可以通过${ login_name _1}的方式来取第1个匹配的内容,${ login_name _2}来取第2个匹配的内容。

缺省值:正则匹配失败时,取的值

2. 使用 JMeter 的插件JSONPath 来获取 JSON 数据中字段的数据

1)添加—>后置处理器-JSON Extractor

2)使用方法

Variable names : 变量名称

JSONPath Expression:JSON表达式 
Match Numbers:匹配哪个,可为空即默认第一个 
Default Value:未取到值的时候默认值

备注:jmeter中通过vars.get("loginName")来读取;

3. 使用JMeter的BeanShell PostProcessor来处理Json数据

1)将json-lib-2.4-jdk15.jar拷贝到 jmeter lib 文件夹下后重启 jmeter

2)在Sampler上面添加后置处理器-->BeanShell PostProcessor

3)在Sampler上面添加断言--> BeanShell断言

本文列举出了三种可用的从Json 格式的返回值中提取数据的方法。正则表达式对于简单的 Json 格式数据的处理非常快速标准化,JsonPath插件可以创建能够被维护的脚本,引入fastjson库的BeanShell 依赖于 Java 语言的灵活性可以进行进一步的开发;

本次 到此,大家自己仔细看看,体会体会,有想法,欢迎交流!

jmeter之json数据对比相关推荐

  1. jmeter发送json数据,报405、400错误解决方案

    jmeter发送json数据,报405.400错误解决方案 参考文章: (1)jmeter发送json数据,报405.400错误解决方案 (2)https://www.cnblogs.com/sunn ...

  2. Jmeter 实战json提取

    jmeter 实战json提取 测试人员在进行接口业务测试时,会遇到接口与接口之间存在依赖关系,我们就会通过关联接口来操作, 在接口测试中有这么一个场景: 用户登录以后需要去发布一个活动 分析 用户登 ...

  3. JMeter 压力測试使用函数和 CSV 文件參数化 json 数据

    在 http Load Testing 中.json 数据的提交是个让人头疼的问题.本文具体介绍怎样进行 JMeter 的 json 測试提交,以及怎样将其參数化.         Step 1 ht ...

  4. Jmeter提取响应结果中的json数据

    在之前写过提取json数据格式的文章,这次对jmeter读取json数据格式进行整理. 举例一个接口的response 格式如下: {"data" : {"device_ ...

  5. JMETER从JSON响应中提取数据

    如果你在这里,可能是因为你需要使用JMeter从Json响应中提取变量. 好消息!您正在掌握掌握JMeter Json Extractor的权威指南.作为Rest API测试指南的补充,您将学习掌握J ...

  6. js 对比json数据

    原理:利用递归遍历对比,遇到不相等就return false: /* * 对比两个json数据 * @param:obj1 * @param:obj2 * @return */ function co ...

  7. JSON数据的差异对比工具(Java版)

    目录 背景 说明 源码 源码走读 其他 背景 之前有类似接口diff对比,数据对比的测试需求,涉及到json格式的数据对比,调研了几个大神们分享的代码,选了一个最符合自己需求的研究了下.(可惜原文链接 ...

  8. Js对比常用JSON数据差异

    接到一个需求,再开发的过程中,发现有一个功能,需要对比json数据,前后的差异,找到新增的数据,删除的数据 ,以及修改的数据.一般来说,咱们只需要找到新增和删除的数据,这里就分享一下,我自己封的一个方 ...

  9. jmeter的java请求参数设置_Jmeter中json数据参数化、断言设置

    第一步:光标定位到测试计划上,右键菜单"添加" -> Threads(users) -> 线程组,如下图 第二步: 光标定位到线程组,右键菜单选择 "添加&q ...

最新文章

  1. Android Studio 在项目中引用第三方jar包
  2. 为你的水晶报表装载本地图片
  3. C中不能直接比较两个double类型
  4. 万字长文!Unix和Linux你不知道的那些历史(详解版)
  5. 我在博客园写博客的原因
  6. java学习之操作符
  7. (编译适用于ARM的linux内核并进行QEMU仿真)Compile Linux kernel 3.2 for ARM and emulate with QEMU
  8. 2020级C语言大作业 - 丛林大作战
  9. 网络攻防 第六周学习总结
  10. Shiro框架(一)-Shiro概述
  11. 千万不要点开,Cjson入门快速使用看这篇就够了(CJSON入门操作以及问题讲解,CJSON对象删除出错)
  12. python炫彩界面_用 ESP32 制造炫彩 LED 球
  13. vivo陷全国手机行业反垄断第一案
  14. 全国多地打造城市三维实景模型 给城市管理带来新利器
  15. mysql教程虫师_python使用mysql数据库 - 虫师
  16. ch340t电路_CH340T模块的程序下载电路故障及解决方法
  17. python折线图保存后是空白怎么办?
  18. cocos2d 高仿doodle jump 无源码
  19. django-celery-简单实现异步发邮件修改密码
  20. 二、Vue2.0项目结构内容及配置解析

热门文章

  1. 风险类型说明和处理建议手册
  2. axios、Vue案例、生命周期
  3. asp毕业设计——基于asp+access的在线人才招聘网设计与实现(毕业论文+程序源码)——人才招聘网
  4. prim、迪杰斯特拉与卡鲁斯卡尔算法模板
  5. 联想e550笔记本怎么样_综合性能实测 全文总结_ThinkPad E550_笔记本评测-中关村在线...
  6. [BZOJ 1095] [ZJOI2007]Hide 捉迷藏——线段树+括号序列(强..)
  7. ST(StoryTest)简单了解
  8. 债券逆回购 上海深圳市场 操作指南
  9. Epson me 打印机实现CorelDraw12中A4纸张无边距打印
  10. Django之爱鲜蜂项目开发 day01 (一)