关闭

如何开展灰盒测试[3]:接口测试实战——测试跨主机的模块接口

发表于:2010-12-29 11:28

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

 作者:编程随想(CSDNblog)    来源:51Testing软件测试网采编

  下面,俺把几种常见数据库及其对应的Python开源项目列在如下表格中。

  数据库     Python开源项目

  Oracle    cx_Oracle

  SQL Server  pymssql

  DB2      pydb2

  MySQL     MySQL-Python

  PostgreSQL  psycopg2

  SQLite    (Python内置)

  ◇ 关于Python的补充说明

  刚才介绍了多个操作数据库的Python开源项目。俺顺便补充一下:Python社区制定了一个数据库操作的规范 。那些比较靠谱的数据库操作的模块,都会遵循该规范。因此,你只要熟悉了某一个模块,也就很容易熟悉其它模块。

  ★ 基于网络文件系统的交互(NFS)

  网络文件系统存在的目的,就是把跨主机的文件操作,伪装成本机的文件操作。所以,对NFS的灰盒测试,放到后面的帖子(主机内的跨进程交互方式)一起聊。

  ★ 基于其它应用层协议的交互

  还有另外一些应用层的网络协议,其应用范围没有HTTP协议那么广,因此,Python没有把它纳入到内置的标准模块中。这时候,前面提到的 PycURL就可以派上用场了。你只要安装一个PycURL,就可以搞定十几种应用层协议(FTP,FTPS,Gopher,SCP,SFTP,TFTP,TELNET,LDAP,LDAPS,IMAP,POP3,SMTP),非常之爽!

  ★ 基于Socket的交互

  前面提到,如果软件系统自己实现了专有的应用层协议,那测试人员进行灰盒测试时,就必须了解该专有协议的格式以及传输层的知识。在这种情况下,测试人员可能需要直接和Socket打交道。

  Python内置了对socket的支持,Python官方的洋文介绍在这里 。Python的socket API和传统的伯克利套接字API很像,如果你之前写过C语言的socket程序,那搞定Python的socket程序肯定是不在话下滴。

  但你千万别高兴得太早。用脚本来模拟软件模块之间的socket通讯,主要难点往往不在于socket,而在于专有协议本身。有些专有的通讯协议格式多变且复杂,有些虽然格式不太复杂,但是通讯双方交互的逻辑很复杂。因此,在socket层面进行灰盒测试,测试人员要多花精力在这方面。

  对“跨主机的模块接口”该如何进行灰盒测试,就介绍到这里。下一个帖子介绍“主机内跨进程的模块接口”该如何搞。

相关链接:

如何开展灰盒测试[1]:灰盒测试优缺点分析

如何开展灰盒测试[2]:管理方面的准备工作

33/3<123
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

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

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

沪ICP备05003035号

沪公网安备 31010102002173号