JDBC 与 Bean Shell的使用(二)获取值,并且断言
这里我们使用的断言方式是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的使用(二)获取值,并且断言的更多相关文章
- JDBC 与 Bean Shell的使用(一)获取值,并且传递
1.在使用Jmeter进行接口测试的时候,会使用到JDBC,连接数据库,操作数据库其得到的数据后续操作需要使用,这里我们使用了BeanShell的概念来获取JDBC的返回值 如下说明了联合使用的2种方 ...
- Jmeter之Bean shell使用(二)
上一篇Jmeter之Bean shell使用(一)简单介绍了下Jmeter中的Bean shell,本文是对上文的一个补充,主要总结下常用的几种场景和方法,相信这些基本可以涵盖大部分的需求.本节内容如 ...
- (十二)Jmeter之Bean Shell的使用(一)
一.什么是Bean Shell BeanShell是一种完全符合Java语法规范的脚本语言,并且又拥有自己的一些语法和方法; BeanShell是一种松散类型的脚本语言(这点和JS类似); BeanS ...
- 转 Jmeter之Bean shell使用(二)
上一篇Jmeter之Bean shell使用(一)简单介绍了下Jmeter中的Bean shell,本文是对上文的一个补充,主要总结下常用的几种场景和方法,相信这些基本可以涵盖大部分的需求.本节内容如 ...
- Jmeter之Bean shell使用(二)
上一篇Jmeter之Bean shell使用(一)简单介绍了下Jmeter中的Bean shell,本文是对上文的一个补充,主要总结下常用的几种场景和方法,相信这些基本可以涵盖大部分的需求.本节内容如 ...
- 转:Jmeter之Bean shell使用(二)
上一篇Jmeter之Bean shell使用(一)简单介绍了下Jmeter中的Bean shell,本文是对上文的一个补充,主要总结下常用的几种场景和方法,相信这些基本可以涵盖大部分的需求.本节内容如 ...
- 【jmeter】Bean shell使用(二)
上一篇Jmeter之Bean shell使用(一)简单介绍了下Jmeter中的Bean shell,本文是对上文的一个补充,主要总结下常用的几种场景和方法,相信这些基本可以涵盖大部分的需求.本节内容如 ...
- jmeter bean shell断言加密的响应信息(加密接口测试二)
断言加密的响应信息 1.在http请求-->添加-->断言-->bean shell 断言 import com.changfu.EncryptAndDecryptInterface ...
- jmeter Bean Shell的使用(二)
BeanShell的用法 在此介绍下BeanShell PreProcessor的用法,其它的beahshell可以类推.在此我们使用beahshell调用自己写的工具类,工具类实现了密码的加.解密功 ...
随机推荐
- FastJson(阿里巴巴)基础
一.所需jar包: fastjson-x.x.xx.jar(本例使用fastjson-1.1.36.jar). 二.解析转化: 1.json字符串 < ------ > js trin ...
- Linux基础命令---mktemp
mktemp 创建临时文件或者目录,这样的创建方式是安全的.此命令的适用范围:RedHat.RHEL.Ubuntu.CentOS.SUSE.openSUSE.Fedora. 1.语法 mk ...
- (一)github之基础概念篇
1.github: 一项为开发者提供git仓库的托管服务, 开发者间共享代码的场所.github上公开的软件源代码全都由git进行管理. 2.git: 开发者将源代码存入名为git仓库的资料库中,而g ...
- 一篇关于Redis的好文章
Redis作为缓存使用,在值大小为1k的情况下,可以支持到每秒近十万次的set操作,可见redis的运行效率是非常的高的.但是为什么我们还会有的时候会遇到redis的瓶颈呢?一般来说,都是因为我们没有 ...
- java service wrapper日志参数设置及优化
一般在容器比如tomcat/weblogic中运行时,我们都是通过log4j控制日志输出的,因为我们现在很多服务端使用java service wrapper(至于为什么使用jsw,原先是比较排斥使用 ...
- 20145307陈俊达《网络对抗》Exp5 MSF基础应用
20145307陈俊达<网络对抗>Exp5 MSF基础应用 基础问题回答 用自己的话解释什么是exploit,payload,encode? exploit就相当于是载具,各式各样的漏洞在 ...
- static理解
static 修饰的变量称为类变量或全局变量或成员变量,在类被加载的时候成员变量即被初始化,与类关联,只要类存在,static变量就存在. 一个static变量单独划分一块存储空间,不与具体的对象绑定 ...
- CMD运行后关闭CMD 的窗口命令
在命令前加上Start 例(打开服务管理):start services.msc
- Python3基础 dict items 以元组的形式打印出字典的每一个项
Python : 3.7.0 OS : Ubuntu 18.04.1 LTS IDE : PyCharm 2018.2.4 Conda ...
- linux下kermit工具的使用
1.环境: ubuntu16.04 2.背景: 想更换下位机内核 3.使用kermit进行串口传输 举例:传输文件到下位机 2.1首先进入下位机的uboot 2.2 使用uboot自带的命令从串口接收 ...