数据库Diff的实现与应用

发表于:2013-8-01 11:49

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:咖喱    来源:51Testing软件测试网原创

  【摘要】

  在测试过程中,数据库的变化是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

21/212>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号