结合真实的测试实例,记录一次SQL语句辅助功能测试的场景(包含多表联查及子查询)

Posted echozhao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了结合真实的测试实例,记录一次SQL语句辅助功能测试的场景(包含多表联查及子查询)相关的知识,希望对你有一定的参考价值。

本文结合实例讲解一下 SQL 语句通过数据库辅助进行功能测试。希望阅读本文的小伙伴,能通过这个场景实例体会到SQL 语句在真实的功能测试时起到的作用

本次功能测试涉及的sql 知识点如下:

1 SELECT 查询

2 where 子句

3 count()

4 to_char()

5 group by

6 order by

7 两表联查(这里涉及left join)

8 子查询嵌套

 

实例中的需求文档 :

技术分享图片

 

 

系统的测试界面:(不好意思,写文章的时候,想去截一个好一点的图片,测试环境无法登录了)

技术分享图片

前提解释:

这个报表展示的对所有流程的延时次数和审批次数的统计结果。

由于流程数据没有办法通过前台报表统计验证, 在测试的时候要借助于数据库进行查询验证。

思路:

1  查询出按4列字段分组统计的审批次数

2 查询出按4列字段分组统计的延时次数

3 分别验证界面展示和查询结果是否一致

4 验证降序排列(用order by 语句排序验证结果顺序和界面是否一致)

 

扩展:

通过两表联查将审批次数,延时次数合并在一个结果里(left join 用法 及子查询嵌套)

(其实完成单句查询也能完成本次功能的验证,时间允许也为了强化两表查询及子查询嵌套功能的运用,增加语句扩展)

 

语句及运行结果:

审批次数:

技术分享图片

 延时次数:

技术分享图片

 

 

 

 

 

两表联查及子查询(left join)

之所以选择left join 是因为 右表 延时次数 的统计范围比 左表 审批次数 要窄,流程总表里的数据每一条都会被分组统计到 审批次数, 但是 只有 IS_TIMEOUT 这个字段为true 的才会统计

比如一个分组行中 该字段全是false 就是空所以看到延时数据 有的是null

技术分享图片

以上是关于结合真实的测试实例,记录一次SQL语句辅助功能测试的场景(包含多表联查及子查询)的主要内容,如果未能解决你的问题,请参考以下文章

sql 语句问题,关于BETWEEN AND 和DATE 的

SQL Server 2017 AlwaysOn AG 自动初始化(十四)

SQL 查询记录数的SQL语句

记录一次批量插入的优化历程

记录一次ora-01078错误的排错

php mysql insert into 结合详解及实例代码