★ 基于数据库的交互
在现有软件系统的开发过程中,操作数据库也属于家常便饭。因此,聊完HTTP协议之后,就得来聊一下数据库的操作。眼下,大部分程序员都是远程操作数据库,所以俺把数据库的操作也归入“跨主机”交互方式。(其实本节的内容也适用于操作本机数据库)
在很多软件系统中,软件模块需要从数据库中读取数据或者把自己生成的数据存储到数据库中。因此,测试人员需要通过一些测试脚本,在数据库中制造测试数据,以作为软件模块的输入;或者在软件模块把数据保存到数据库之后,验证其输出的数据是否符合接口文档的约定。
◇ 跨数据库的接口
所谓的“跨数据库的接口”,顾名思义,就是这种编程接口可以支持多种数据库产品。如果你没有其它特殊的要求(比如性能),俺建议尽量用这种方式操作数据库。这样的好处是,万一哪天数据库平台换了,你的测试脚本可以不用大改(甚至不改)。
1、ODBC
ODBC是一种三跨(跨数据库、跨操作系统、跨编程语言)的数据库接口。大部分知名的数据库软件都支持ODBC方式访问。
Python有不止一个的ODBC开源项目,可以考虑用PyODBC 或ceODBC 。
2、JDBC
对于搞Java开发的同学,应该很熟悉JDBC。不过很多人有一个误解,以为只有Java才可以进行JDBC编程。其实不然!自从前几年JVM开始效仿DotNet,支持多种编程语言之后,很多脚本语言也可以在JVM上跑起来了。比如Python(JVM上叫Jython )、Ruby(JVM上叫JRuby )、Groovy 。作为测试人员,你也可以利用上述脚本语言,编写基于JDBC的数据库测试脚本。
3、ADO / ADO.Net
ADO / ADO.Net(以下简称ADO)是微软设计的跨数据库编程接口。既然是微软搞得,秉承其一贯风格,自然是不跨操作系统的。如果你所有的测试工作都在Windows平台上,也可以考虑用ADO来访问数据库。
如果要用Python进行ADO编程,可以考虑用PyWin32开源项目。它是专门针对Windows平台的Python扩展,让Python可以很方便地调用各种Win32的API(包括ADO的API)。
你还可以使用基于dotNet平台之上脚本语言。比如IronPython 、IronRuby 等。这些运行于DotNet之上的脚本语言,自然也就具有操作ADO的能力。
◇ 特定数据库的接口
前面已经提到“跨数据库的接口”有种种好处,那啥时候需要用特定数据库的接口捏?有时候,你需要使用某个数据库专有的某个特色功能,这时候,通用的数据库接口可能就搞不定了,你就需要用该数据库特定的编程接口来写脚本。当然,这种情况不是很多见。