应用场景:调用某个接口像数据库中插入数据,需要在接口调用完成后查看数据更新或插入的数据是否正确的时候需要用到

分两大部分

第一部分--配置数据库

  • 配置数据库连接:右键“添加>配置元件>JDBC Connection Configuration ”                             

 

jmeter可以查询redis数据库吗 jmeter数据库查询后的值检验_右键

第二部分--举例说明查询请求的使用步骤

  1. 先添加一个用户自定义的变量,    

jmeter可以查询redis数据库吗 jmeter数据库查询后的值检验_数据库_02

  1. 然后按照下面第二图的格式填写变量,这里填写 的变量名称是“id” 变量值是“2klakzll4y181221082435273”(不传参数给sql语句,此步可忽略 )

jmeter可以查询redis数据库吗 jmeter数据库查询后的值检验_jmeter可以查询redis数据库吗_03

  1. 添加数据库请求:线程组上右键依次选择“添加>取样器>JDBC Request”  

jmeter可以查询redis数据库吗 jmeter数据库查询后的值检验_右键_04

  1. 在JDBC Request中写JDBC Request的信息,按照需要填写  (绿色方框部分比较重要,下方有说明该怎么填)

jmeter可以查询redis数据库吗 jmeter数据库查询后的值检验_右键_05

  1. Variable  Name of Pool  declared in Jdbc...:这里填写JDBC Connection Configuration配置的variable Name of Pool ,如下图所示 (上面的步骤中有这个配置的)

jmeter可以查询redis数据库吗 jmeter数据库查询后的值检验_数据库_06

  1. 例子中的查询语句是:SELECT * FROM order_info_116 WHERE id='${id}'  ,这里的${id}-- id即第一步中的自定义变量的名称,${id}表示取到这个变量的值: 2klakzll4y181221082435273
  2. Result variable name:设置用来保存从数据库获取的值的,会以key=value的字符串格式保存,这里填写的是“SQLresults”,即将查询结果保存在 SQLresults中,获取查询结果具体值的方法:Res= vars.getObject("SQLresults")                                                     
  1.  添加断言,判断数据库查询结果是否符合预期

jmeter可以查询redis数据库吗 jmeter数据库查询后的值检验_字段_07

  1. 按照需求编辑断言脚本,此处以校验数据库返回的patient_id字段的值是否等于997479571,等于则断言成功,不等于则断言失败,脚本文件如下(建议先在java编辑器中调试好,再复制过来稍作修改)                                               

           

jmeter可以查询redis数据库吗 jmeter数据库查询后的值检验_右键_08

                                                                                                                                                

          说明:

          第1行:Result=vars.getObject("SQLresults");   获取查询的所有结果,这里的SQLresults即JDBC请求中的“Result variable name”

          第2行:log.info打印出一些信息,便于调试,实际脚本中可不要

          第3行:String patientIdActual = Result.get(0).get("patient_id").toString()  取查询结果中的第1行的patient_id字段的值,转换成String类型(便于用equals方法比较),存放在patientIdActual中,即实际值

          第4行:实际值存放在String 型变量patientidExpected中

          第8-13行:根据业务比较实际值和期望值,得到相应的返回  --Failure=false,则断言为成功,Failure = true 则断言失败。