今天在群里又看到了一个小伙伴问类似的问题,【jmeter如何实现数据库查询出来的结果与接口返回的结果进行对比判断,或者数据库两字段的相加减与接口返回进行对比】。其实都一样,因为你把运算放在查询那里就行了,运算放beanshell脚本里面会影响性能。这事其实很简单,来理一下思路:

1、从数据库中拿数据:用JDBC Request或beanshell后置处理器;

2、从接口返回中拿数据:用正则表达式提取器;

3、对比:用beanshell断言。

---------------------------------------------------------------------------------------------------------------------

一、数据库查询

  添加一个【JDBC Connection Configuration】先连接上数据库(具体可看jmeter连接Mysql),然后添加【JDBC Request】写SQL语句查询出所需要的数据,如下图:

若使用Beanshell PostProcess,可以这样写:

Value = vars.getObject("Result_variable_name").get().get("margin"); //从查询结果中取出margin列的第一行值,第一行index从0开始算get(0)
vars.put("result",Value); //将取出的值赋给变量result

二、接口返回

  从response中拿数据,使用正则表达式提取器,这里就不啰嗦了(可以看jmeter关联),直接放图,如下:

  上述两步完成之后,可以添加一个Debug Sampler或者其他方式看看取到的参数是否正确。如果和自己的预期有出入,那么仔细检查SQL,正则表达式等。

三、Beanshell断言

  beanshell中的代码其实是很简单的,就是一个if...else,如图:

if("${margin_1}".equals("${uid}")) //数据库的取值与接口正则取值比对
{
System.out.println("OK");
}
else
{
System.out.println("fail");
}

  数据库取到的值[margin_1]和接口返回的值[uid]进行对比,其中margin_1是指sql查询出来的第一个数据,具体用法请了解JDBC Request下面的参数,而${margin_1/uid}是jmeter调用动态参数值的方式。运行之后可以在jmeter的日志中看到结果,如下(我从数据库拿的是时间戳的相减值,接口是用户的uid,肯定是不相等的):

-----------------------------------------------------------------分割线----------------------------------------------------------

  至此,就没了。这里只阐述了数据对比这个操作,至于成功/失败之后怎么操作,就不继续说下去了,场景很多嘛。农历年前在上海的最后一篇博客,明天就请假回家啦,各位明年见。

___是非功过有人心,善恶斤两问阎王

jmeter数据库查询与接口返回进行对比的更多相关文章

  1. jmeter使用问题——将接口返回变量存储成csv文件

    在使用jmeter做接口测试时,一整个jmx测试计划中,存在多个线程,多个接口的测试 但是接口可以分类,比如业务接口.查询接口.更新接口等 考虑自动化接口测试一般都是一次性的,有完整的闭环链路,一般步 ...

  2. 【转载】jmeter将上一个接口返回值作为下一个接口的请求参数

    第一:通过JSON Extractor 插件来提取JSON响应结果 原文地址:http://blog.csdn.net/dreamtl/article/details/68957122 接口响应结果, ...

  3. 阶段5 3.微服务项目【学成在线】_day17 用户认证 Zuul_03-用户认证-认证服务查询数据库-查询用户接口-接口定义

    1.2.4 查询用户接口 完成用户中心根据账号查询用户信息接口功能. 在ucenter这个服务里面定义查询用户信息的接口 这个接口在auth的服务的loadUserByUserName这个方法里面被调 ...

  4. PHP简单获取数据库查询结果并返回JSON

    <?php header("Content-type:text/html;charset=utf-8"); //连接数据库 $con = mysql_connect(&quo ...

  5. jmeter将上一个接口返回值作为下一个接口的请求参数

    在jmeter中有时候会用到,将上一个接口的返回值作为下一个接口的请求参数 具体操作如下: 1.首先新建一个http请求(右键线程组--添加Sampler--http请求),同时添加好接口相应的请求参 ...

  6. 阶段5 3.微服务项目【学成在线】_day17 用户认证 Zuul_04-用户认证-认证服务查询数据库-查询用户接口-接口开发

    定义dao 权限放在授权的课程里面做,现在先不管.我们还需要查企业信息,就是用户所属的公司 公司表 对应关系在xc_company 这是一个关系 表 这个表里有唯一索引 user_id 所以根据use ...

  7. nodejs怎么同步从一个数据库查询函数中返回一个值

    var sql=require('msnodesql'); var conn_str="Driver={SQL Server Native Client 11.0};Server={127. ...

  8. Jmeter 从数据库查询多个字段,依次传给登录接口怎么实现?

    问题背景: 博文“Jmeter 如何把数据库的数据依次获取作为参数传入下一个请求?附栗子”某天有人留言如下: 看了下当时写的文章,如果从数据库查询多个字段,依次传给登录接口,确实不能合理实现,所以,特 ...

  9. mongodb基础系列——数据库查询数据返回前台JSP(二)

    上篇博客论述了,数据库查询数据返回前台JSP.博客中主要使用Ajax调用来显示JSON串,来获取其中某一个字段,赋给界面中的某一个控件. 那这篇博客中,我们讲解,把后台List传递JSP展示. Lis ...

随机推荐

  1. 3.配置Spring+SpringMvc+Mybatis(分库or读写分离)--Intellij IDAE 2016.3.5

    作者QQ:1095737364    QQ群:123300273     欢迎加入! 建立好maven多模块项目后,开始使用ssm传统的框架:http://www.cnblogs.com/yysbol ...

  2. 记一次MySQL安装出现的坑爹问题。。。

    关键词:mysql安装 msvcr100.dll缺失  vc++2010 : win10系统首次安装mysql,图方便下载了图形界面的安装包(5.6.4),本以为小事一桩:装一半失败.卸载清注册表.重 ...

  3. js 事件委托代理

    在优化网页性能的技巧当中,对DOM的优化是必不可少的.这其中就涉及到了javascript对DOM的频繁操作.比如响应用户操作的事件.一般情况下,如果是稍微初级一点的前端程序员,在拿到项目的时候,对待 ...

  4. C#反射的一些经验[转载]

    写代码的时候经常需要分析已有类型的信息例如:分析现有类型自动生成类, 或者为现有的类自动增加一些功能总结了一点点经验以ClassA  a; 为例1. 通过typeof(ClassA) 或者 a.Get ...

  5. ArcGIS Server + ArcGIS Portal 10.5

    1.安装IE11 2. 域名需要在C:\Windows\System32\drivers\etc\host文件中添加 127.0.0.1  机器名.域名 win2008.smartmap.com 19 ...

  6. idea总是编译启动报错

    使用多环境配置时候,总是会出现莫名其妙的启动报错.主要是没有多环境配置的参数,挺奇怪的,因为这个问题时现时不现.又没有什么具体规律,一直找不到原因.今天一个偶然的机会,发现会不会是这个原因?

  7. mysql Alter table设置default的问题,是bug么?

    不用不知道,用了没用? 昨天在线上创建了一个表,其中有两个列是timestamp类型的,创建语句假设是这样的: create table timetest(id int, createtime tim ...

  8. scott/tiger is locked 解决办法

    在plsql developer中要是以scott/tiger登录时提示ora-28000 the account is locked. 解决办法: 新装完Oracle10g后,用scott/tige ...

  9. CAC的Debian-8-64bit安装BBR正确打开方式

    装过三台debian 64 bit, CAC, 2欧, KVM虚拟机 做法都一样---下面说下正确安装方式   0. 有装锐速记得先删除,免得换核心后,锐速在扯后腿.   1.换4.9版kernel ...

  10. 修改Sql Server 数据库文件默认存放目录

    -- 更改数据文件存放目录   EXEC xp_instance_regwrite     @rootkey='HKEY_LOCAL_MACHINE',     @key='Software\Micr ...