【摘要】
在测试过程中,数据库的变化是Case检查环节一个很重要的检查点。目前常用的直接查询数据库的方式有两个弊端:1、编写case检查点工作量大。2、检查字段不全导致漏测。本文提出数据库前后状态Diff的方式进行结果检查,并实现了diff脚本接口,最后给出调用方式案例,希望能给大家带来启发。
【关键词】
数据库检查,Case结果检查,diff,数据库diff
【正文】
一、背景与预期:
测试人员编写Case的过程中(不管是人肉测试还是自动化测试),数据库的变化值是一个很重要的检查点。目前最常用的检查方式就是直接查询数据库中相关字段的值,一般通过直接写sql或者调用一些封装好的查库接口。这种方式有两个弊端:第一、写Case时工作量较大,由于每个被测对象或者说测试用例要校验的字段不同,需要编写不同数据库Check接口。第二、容易漏测,这种方式仅能保证测试人员关心的字段,若发生被测对象新增、删除、修改了一些不该变化的地方,这种方式是肯定发现不了的。
本文提出一个数据库Diff脚本,该脚本实现了将Case执行前后,数据库所有变化,以数组Array的形式返回给调用者。测试人员通过调用该脚本,能够有效提高编写测试Case的速度,并且能避免上述类型的漏测。
Diff命令在大家看来并不陌生,diff fileA fileB >fileC,linux命令中,就是将两个文件的不同点表示出来。数据库diff,linux系统并没有相关命令,本文受原Diff命令启发,编写了该脚本DataBaseDiff,希望能给读者带来帮助。
……………………
查看全文请点击下载:http://www.51testing.com/html/73/n-849173.html
1、dumpBefore接口:
定义该接口,主要是为了限定dump后sql文件的格式问题。若让外部调用程序自己直接调用mysqldump命令产生sql文件,由于每个程序员习惯不同,喜欢的mysqldump的参数也不尽相同,产生的文件格式不同,会影响DBD对dump后文件的解析,本脚本使用下面的命令来dump文件:
./mysqldump -uroot -p123456 'DataBaseA' --no-create-info --complete-insert=true >./Before.sql |