delphi7读json的字段及数值_jmeter随笔(41)jmeter之json数据对比

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

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

一、Jmeter连接数据库

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

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

ba505d8d16ec5feedeb65fe7517117f1.png

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

cc81a47fdd7621407ff53c154836c9f6.png

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

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

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

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

- Username:数据库的用户名

- Password:数据库的密码

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

6a9b4ed54b4a32848223728e2e3b50a3.png

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

二、JmeterJson格式数据的三种处理方式

示例,若从如下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正则表达式提取器

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

44180c7cfd18cb869614afac59d74940.png

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

9920e9a78ad31edea57cb8441dab50b3.png

其中:

引用名称:定义变量名称,后续请求将要引用到的变量名,如填写的是: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

62ec9e9f03a4371c792b44b8c44ad8ec.png

2)使用方法

Variable names : 变量名称 

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

9f2facdd0edc194f82a89034cbe22125.png

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

3. 使用JMeterBeanShell PostProcessor来处理Json数据

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

8582ae0ac3a1e82e4c0ab755692ea63a.png

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

0f55ff5719f021565caf92e4d9e4a841.png

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

28a2e16194f60346d480b8450b156aa6.png

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

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

9748a218135d2a1234f00e25215091bc.png

      坚持的是分享,搬运的是知识,图的是大家的进步,没有收费的培训,没有虚度的吹水,喜欢就关注、转发(免费帮助更多伙伴)等来交流,想了解的知识请留言,给你带来更多价值,是我们期待的方向,有更多兴趣的欢迎切磋,我们微信订阅号,联系方式如下:

5961594cd95b2ea609fc196cb70d9e12.png

更多分享,敬请期待

推荐的文章

接口测试,懒人的玩法

飞测历史清单(2018.3.2)

jenkins系列(11)-自动打tag升级篇

jmeter系列(3)--接口字段校验自动化测试

jmeter系列(2)-脚本编写及规范

Jmeter系列培训(1)--开山篇

公告:《那些年,追寻Jmeter的足迹》上线

IT技术伙伴,中秋赏月(性能bug)

追求高的职业发展么,看这里:测试架构师

(续篇2)项目复盘,你也是这么做的么?

python实践--月报分析之获取jira缺陷数据

质量改进实践之质量月报

聊聊我们的缺陷分析

内建质量之路,头脑风暴笔记(1)

关于fiddler导出jmeter插件的安装问题

内建质量之路,头脑风暴笔记(2)

2013年工作回顾小感想

消息通知:fiddler导出JMeter脚本v4.4.0.6版本发布

性能测试技巧:java程序cpu耗时分析

七月份实习工作总结

头脑风暴笔记(3)--关于“事毕回复”

swagger做接口设计到jmeter脚本,一键搞定

小姐姐,2018年测试工作总结

云化平台,一个价值10万的配置项

【云桌面】性能测试--过程中遇到的问题总结

初识websocket (上)

【产品质量】如何提升需求质量

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值