zoukankan      html  css  js  c++  java
  • 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";
    
    }
  • 相关阅读:
    DHCP三种配置
    Linux-9引导过程与服务控制
    Linux系统管理10-进程和计划任务管理
    Linux系统管理11-系统安全及应用
    Linux系统管理12-Linux文件系统与日志
    ---01--Lin网络基础设置
    服务器RAID及磁盘配额的配置
    Linux常见故障及修复方法
    作业5
    104 权限 sudo 解压缩
  • 原文地址:https://www.cnblogs.com/nieliangcai/p/10523719.html
Copyright © 2011-2022 走看看