MeterSphere平台新增数据库查询校验使用手册


1.概述

MeterSphere做接口自动化测试是一件非常愉快的事情,提供的功能也是非常强大,下面我们就来说说怎么在MeterSphere平台中使用数据库做业务测试吧。

2.MeterSphere添加mysql数据源

  • 在场景中打开环境配置
    在这里插入图片描述
  • 在环境配置页面新增jdbc数据库
    在这里插入图片描述
  • 测试数据库是否可以连通
    在这里插入图片描述

3.发送SQL请求并进行业务断言

配置好数据库,我们就可以发起sql查询请求了。这里我们做个小Demo演示如何使用查询结果数据来断言我们业务测试结果的成功与失败。

3.1.发送sql查询请求

在这里插入图片描述

3.2.查询结果断言业务成功与否

我们判断查询数据库结果中t是否有一条ype字段为1的数据,如果存在则创建用户成功,如果没有则为失败。

  • 新增脚本类型断言
    在这里插入图片描述
  • 脚本完整代码
// ${type_1}表示取出type字段中第一条数据,取第几条数据角标写对应数字即可。
if(${type_1}==1){
    AssertionResult.setFailure(false);
    log.info("=====创建用户成功=====");
}else{
    AssertionResult.setFailure(true);
    log.info("=====创建用户失败=====");
}
  • 执行SQL查询结果

从断言结果中可以看到我们创建用户业务成功了。

在这里插入图片描述

3.3.引用数据库返回结果做断言遇到的问题以及解决方式
  • 1.描述下我们的需求

从查询结果中拿到type列的第一条数据,然后判断第一条数据type字段的值是否为1,如果为1就让断言成功。否则就让断言失败。

  • 2.编写查询SQL语句
SELECT * from user where phone='13700000099';
  • 3.提取type列数据作为断言变量

这里需要先说明下提取结果中存储结果和按列存储两种方式区别

在这里插入图片描述

  • 4.这里是我们执行查询返回的数据
    在这里插入图片描述
  • 5.断言脚本
    取出查询结果type为1的这条数据,然后判断是否等于1
// ${type_1}表示取出type字段中第一条数据,取第几条数据角标写对应数字即可。
if(${type_1}==1){
    AssertionResult.setFailure(false);
    log.info("=====创建用户成功=====");
}else{
    AssertionResult.setFailure(true);
    log.info("=====创建用户失败=====");
}

发现断言总是失败,然后查看日志发现${type_1}取值的时候报空指针异常。
在这里插入图片描述

这里为什么会报空指针异常错误那,我们查询返回的结果是没有问题的里面有一条数据,但是在取第一条数据type字段值的时候没有取到这个值报出了异常。通过多次尝试,原来问题的原因是对按列存储理解有错误导致上面的问题。


  • 6.按列存储正确使用方式

按列存储是根据查询返回结果字段从左到右的顺序才能取到我们需要指定字段里面的值,不是我们写个type名称就对应返回结果中type字段的数据。

示例如下:
在这里插入图片描述

上图中type列在返回结果中第三列,我们现在要取出type列的数据。按列存储填写方式如下,这样type取出的值才是查询返回结果中第三列type字段的值。

在这里插入图片描述


上面返回的查询结果列数非常多,这个时候我们要取最后一列数据,那么前面每列的名称都要写出来,那是多么麻烦的事情呀,这不符合用代码做事的风格。

  • 这个时候就可以用逗号作为占位符代替列名,只有需要提取列名称上的数据才写列名。

在这里插入图片描述

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐