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调用自己写的工具类,工具类实现了密码的加.解密功 ...
随机推荐
- HDU 2235
这题说的是给了一个 平面 然后又很多的长方体柱子 问这个 容器的 容积是什么, 排序后 然后 进行 并查集 判断是否 可以有比他小的高度依靠他算体积,通过并查集去判断他的子集的个数. #include ...
- Linux基础命令---sort
sort 以行为单位,对文本文件进行排,并输出排序结果.默认情况下,以每一行为一个单位,从首字符开始按照ASCII码向后逐个比较. 此命令的适用范围:RedHat.RHEL.Ubuntu.CentOS ...
- QPropertyAnimation 几行代码快速制作流畅的动画效果
QPropertyAnimation Class 官方英文文档[点击前往] QPropertyAnimation Class 中文译文文档[点击前往] 简介 QPropertyAnimation ...
- 由于防火墙限制无法访问linux服务器上的tomcat应用
使用的是CentOS6.4系统. 问题重现: tomcat服务是启动的, 但无法访问服务器上的tomcat应用页面. 解决办法: 在防火墙配置中设置端口: 命令: # cd /etc/sysconfi ...
- 计算概论(A)/基础编程练习2(8题)/1:求平均年龄
#include<stdio.h> int main() { // 声明与初始化 , s=, age=; // 输入学生人数 scanf("%d", &n); ...
- NFS Iptables放行服务端口
启动NFS会开启如下端口:1)portmapper 端口:111 udp/tcp:2)nfs/nfs_acl 端口:2049 udp/tcp:3)mountd 端口:"32768--6553 ...
- 立几个flag
有时候会心血来潮想学一点东西,然后搞别的东西的时候就慢慢忘了.. 这里做个备忘录: 树分块/树上莫队 广义后缀自动机(大概这辈子都不会去学了) 带花树(如果我能学的动那个线代的随机算法就放弃这个) 模 ...
- win7 64位debug解决方法
1.下载win 64位的DOSBox,如DOSBox0.74: 2.下载win 32 debug.exe,并复制到调用的目录,如d盘根目录d:\ 3.安装DOSBox,并运行:如下图: 4.键入命令: ...
- 如何替换vi的配色方案
答: 1.获取配色方案 git clone git://github.com/altercation/vim-colors-solarized.git ~/.vim/bundle/vim-colors ...
- <OFFER05> 05_ReplaceSpaces
void ReplaceBlank(char str[], int length) // length >= the real length of string { ) { return; } ...