这里我们使用的断言方式是BeanShell断言,做一个新增功能的接口测试,

1.发一个post请求,新增测试数据,然后做一个返回数据的响应断言-------大部分人都可以实现这个功能

2.如果是后台业务的话,我们的数据时会录入到后端数据库的,那么这里我们使用JDBC后置处理器,来获取数据

3.获取数据后,我们怎么来比较我们取得值是否和数据库中的一致呢----这里我们引用BeanShell断言

String name = vars.getObject("devName").get(0).get("name");      //获取SQL查询到的name,有时候会报错declaration----解决办法String改Object
log.info("name结果是:"+name);                   //打印log,方便调试
vars.put("resdevName",name.toString());               //把name值传给resdevName,方便后续使用,和正则表达式提取器一样
String nameExp = "${name}";                    //赋值,期望的name值。这里我传的是一个动态的值,用户定义的变量
log.info("nameExp结果是:"+nameExp);                
vars.put("ExpDevName",nameExp.toString());  
if(!name.equals(nameExp)) {                    //这里是比较语句,如果相等的话,断言成功-正常通过,如果不相等,断言失败-爆红色error
Failure = true; FailureMessage = "error,check error"; } else { FailureMessage = "ok,check current"; }

4.运行查看结果,这里的Debug Sampler中记录了值,故意在比较的时候加了一个“1”看一下失败的效果

扩展:

当然我们也可以多次断言,也可以获取select中的多个值

Object status = vars.getObject("status").get(0).get("status").toString();
log.info("上线状态的status是多少"+status);
String statusExp = "1";
log.info("上线状态的statusExp希望是"+statusExp); Object valid_status = vars.getObject("status").get(0).get("valid_status").toString();
log.info("上线状态的valid_status是多少"+valid_status);
String valid_statusExp = "1";
log.info("上线状态的valid_statusExp希望是"+valid_statusExp); Object name = vars.getObject("status").get(0).get("name").toString();
log.info("上线状态的name是多少"+name);
String nameExp = "${editName}"; //这里的值取得是编辑后的editName,如果是直接新增的话,应该是newName
log.info("上线状态的nameExp希望是"+nameExp); if((!valid_status.equals(valid_statusExp))||(!status.equals(statusExp))||(!name.equals(nameExp))) { //所有条件都满足才通过,否则error Failure = true; FailureMessage = "${status} != ${statusExp}"; } else { FailureMessage = "ok,check current"; } //本次有2个JDBC后置处理器需要处理,使用了2个判断;不知道有没有跟高级的写法
Object name_new = vars.getObject("name_version").get(0).get("name").toString();
log.info("上线状态后编辑的name_new是多少"+name_new);
String name_newExp = "${onlineName}";
log.info("上线状态后编辑的name_newExp希望是"+name_newExp); Object version = vars.getObject("name_version").get(0).get("version").toString();
log.info("上线状态后编辑的version是多少"+version);
String versionExp = "2";
log.info("上线状态后编辑的versionExp希望是"+versionExp); if((!valid_status.equals(valid_statusExp))||(!status.equals(statusExp))) { Failure = true; FailureMessage = "${status} != ${statusExp}"; } else { FailureMessage = "ok,check current"; }

JDBC 与 Bean Shell的使用(二)获取值,并且断言的更多相关文章

  1. JDBC 与 Bean Shell的使用(一)获取值,并且传递

    1.在使用Jmeter进行接口测试的时候,会使用到JDBC,连接数据库,操作数据库其得到的数据后续操作需要使用,这里我们使用了BeanShell的概念来获取JDBC的返回值 如下说明了联合使用的2种方 ...

  2. Jmeter之Bean shell使用(二)

    上一篇Jmeter之Bean shell使用(一)简单介绍了下Jmeter中的Bean shell,本文是对上文的一个补充,主要总结下常用的几种场景和方法,相信这些基本可以涵盖大部分的需求.本节内容如 ...

  3. (十二)Jmeter之Bean Shell的使用(一)

    一.什么是Bean Shell BeanShell是一种完全符合Java语法规范的脚本语言,并且又拥有自己的一些语法和方法; BeanShell是一种松散类型的脚本语言(这点和JS类似); BeanS ...

  4. 转 Jmeter之Bean shell使用(二)

    上一篇Jmeter之Bean shell使用(一)简单介绍了下Jmeter中的Bean shell,本文是对上文的一个补充,主要总结下常用的几种场景和方法,相信这些基本可以涵盖大部分的需求.本节内容如 ...

  5. Jmeter之Bean shell使用(二)

    上一篇Jmeter之Bean shell使用(一)简单介绍了下Jmeter中的Bean shell,本文是对上文的一个补充,主要总结下常用的几种场景和方法,相信这些基本可以涵盖大部分的需求.本节内容如 ...

  6. 转:Jmeter之Bean shell使用(二)

    上一篇Jmeter之Bean shell使用(一)简单介绍了下Jmeter中的Bean shell,本文是对上文的一个补充,主要总结下常用的几种场景和方法,相信这些基本可以涵盖大部分的需求.本节内容如 ...

  7. 【jmeter】Bean shell使用(二)

    上一篇Jmeter之Bean shell使用(一)简单介绍了下Jmeter中的Bean shell,本文是对上文的一个补充,主要总结下常用的几种场景和方法,相信这些基本可以涵盖大部分的需求.本节内容如 ...

  8. jmeter bean shell断言加密的响应信息(加密接口测试二)

    断言加密的响应信息 1.在http请求-->添加-->断言-->bean shell 断言 import com.changfu.EncryptAndDecryptInterface ...

  9. jmeter Bean Shell的使用(二)

    BeanShell的用法 在此介绍下BeanShell PreProcessor的用法,其它的beahshell可以类推.在此我们使用beahshell调用自己写的工具类,工具类实现了密码的加.解密功 ...

随机推荐

  1. mysql_connect

    in this passage, we slove the problem about Mysql_connect. first, let' see an example: resource mysq ...

  2. [转]使用C#开发ActiveX控件全攻略

    前言: 这段时间因为工作的需要,研究了一下ActiveX控件.总结如下: 先说说ActiveX的基本概念. 根据微软权威的软件开发指南MSDN(Microsoft Developer Network) ...

  3. 519. Random Flip Matrix(Fisher-Yates洗牌算法)

    1. 问题 给定一个全零矩阵的行和列,实现flip函数随机把一个0变成1并返回索引,实现rest函数将所有数归零. 2. 思路 拒绝采样 (1)先计算矩阵的元素个数(行乘以列),记作n,那么[0, n ...

  4. tortoisegit 代码的回滚方式 --两种

    TortoiseGit有两种回滚代码方式, 一种是导出指定版本代码为zip格式,不影响源代码:另一种是直接在源代码上回滚, 指定版本之后写的代码都会被删除.下面分别介绍这两种方法: 首先进入版本日志对 ...

  5. spoj1825 Free tour II

    题目链接 一道神奇的点分治 貌似有很多做法,我觉得BIT要好些一些(雾 要求经过黑点数<k就用BIT区间查询前缀 对于每个点用  BIT[0,k-经过黑点数]的最大值+路径长度 使用点分治做到O ...

  6. MATERIALIZED VIEW-物化视图

     Oracle的实体化视图提供了强大的功能,可以用在不同的环境中,实体化视图和表一样可以直接进行查询.实体化视图可以基于分区表,实体化视图本身也可以分区. 主要用于预先计算并保存表连接或聚集等耗时较多 ...

  7. TimeUnit简析

    TimeUnit是java.util.concurrent包下面的一个类,主要有两种功能: 1.提供可读性更好的线程暂停操作,通常用来替换Thread.sleep() 2.提供便捷方法用于把时间转换成 ...

  8. CF#235E. Number Challenge

    传送门 可以理解为上一道题的扩展板.. 然后我们就可以YY出这样一个式子 ${\sum_{i=1}^a\sum_{j=1}^b\sum_{k=1}^cd(ijk)=\sum_{i=1}^a\sum_{ ...

  9. 20165310_JavaExp1

    20165310_JavaExp1_Java开发环境的熟悉 一.Exp1 Exp1_1 实验目的与要求: 使用JDK编译.运行简单的Java程序: 使用Vim进行Java源代码编译: 利用Git上传代 ...

  10. gensim工具[学习笔记]

    平台信息:PC:ubuntu18.04.i5.anaconda2.cuda9.0.cudnn7.0.5.tensorflow1.10.GTX1060 一.将copy_train.csv文件的内容进行分 ...