探索Python在数据库测试中的应用

发表于:2010-3-23 13:32

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

 作者:未知    来源:51Testing软件测试网采编

  Python(派森)语言是一种面向对象的用途非常广泛的编程语言,具有非常清晰的语法特点,适用于多种操作系统,可以在Windows和Unix这样的系统中运行。目前在国际上非常流行,正在得到越来越多的应用。Python可以完成许多任务,功能非常强大。

  对于我们的测试工作而言,Python最吸引我们的特性有如下几个方面:

  1. 具备语言粘合剂的能力

  2. 解释执行的机制

  3. 语法简单易学

  4. 相对较高的性能

  语言粘合剂是比较形象的说法,具体的说,Python支持通过引入自带的cytpes库,达到在python脚本中执行已有的动态库中的代码的目标。因此,DM对外提供的基于c/c++的接口都可以通过这个方法得到访问,如果使用Python作为接口测试的载体,得到的测试用将比使用编译型语言的测试程序更易于修改调试。

  以上是针对c/c++接口而言,对于.net平台和JAVA平台,我们可以分别使用Python for .Net 和 Jython。前者使得Python脚本可以直接调用CLR代码,而后者使得Python可以直接调用任何的JAVA类库。

  相信至此,使用Python作为跨越语言的测试工具的优越性,已经十分明显了。

  对于功能与性能测试,我们只需要自己编写一个解释器调用脚本,就可以只需要维护一套测试脚本,而同时可以在任何驱动接口上进行测试,构思大体如下图所示:

  在上面这个图中,测试工程师只需要关新最上层的Testcasen.py就可以,他们所写的用例可以是纯粹的测试逻辑而不需关心不同接口的实现方法,例如一个简单的测例脚本可以是下面这样的:

Testcase1.py:
from dbop import * #这里的dbop就是odbc版本的连接与支持类
from dmServer import * #dmServer类用于对被测试的服务器进行启动、停止、配置等操作
from ctypes import *
rc = -10;
dmserver1 = dmServer(‘d:\\dmdbms\\bin\\dmserver.exe‘,‘win‘,‘12345‘,‘service‘,0);
dmserver1.runserver();
tb1 = dbop();
rc = tb1.connect(‘127.0.0.1‘,‘SYSDBA‘,‘SYSDBA‘,‘12345‘,‘SYSTEM‘);
rc = tb1.exec_sql_ignore(“drop table aa;“);#执行drop语句而不关心是否执行成功
rc = tb1.exec_sql(“create table aa(c int);“);#执行create语句且预期成功
rc = tb1.exec_sql_failed(“create table aa(c int);“);#再次执行该语句,预期失败
k=((1,1),(1,1));
#执行select且预期结果集与上面定义的k相同
rc = tb1.exec_sql_with_result(“select top 2 name,id from systables;“,k);
rc = tb1.disconnect();
dmserver1.stopserver();

  可以看到,如上所示,编写用例的人员完全不需关心connect,exec_sql_ignore,tb1.exec_sql_failed此类的操作细节如何实现,他们只要使用并给出测试的逻辑就可以了。而测试开发人员则要实现例如上面这几个接口的odbc版本、jdbc版本、和ado.net版本。

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

关注51Testing

联系我们

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

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

沪ICP备05003035号

沪公网安备 31010102002173号