自动化测试工具研究

来源:互联网 发布:plc网络传输器缺点 编辑:程序博客网 时间:2024/04/30 07:20

 

 

研究了一下自动化测试工具,希望能够提高工作中系统测试的效率。对于网络产品的系统测试,如果没有自动化的测试工具,工作量会大大增加,在系统测试阶段如果修改了代码,需要反复测试某些功能,实在是枯燥,稍不小心,某些功能没有覆盖,修改就可能引入新的问题,如果有自动化测试工具帮忙就可以减轻工作量。

 

[dejagnu]

tcl + expect + dejagnu

 

主页:http://www.gnu.org/software/dejagnu/

 

原本用于测试gcc,gdb,因此该软件的开发初衷是用于非分布式环境的测试,虽然可以通过脚本登录远程设备测试,

但没有拓朴管理功能,不适合进行网络产品的大规模测试,因为无法在网络拓朴变化时进行脚本移植。

 

这个工具的优点是容易获得,使用简单,用于project/feature的自动化测试还是足够的,可以不考虑移植的问题,

准备近期在开发过程中使用这个工具。

 

 

[STAF]

这个测试framework是很有名气的,很多自动化测试工具就是基于该framework开发的,包括华为的vtp,

主页: http://staf.sourceforge.net/getstax.php

 

可以使用 http://qa.taobao.com/?p=7456 提供的方法搭建自动化测试环境:

 

       这套自动化测试解决方案包括三部分:

一、          STAF(Software Testing Automation Framework)软件测试自动化框架。这是一个开源的,支持多种平台,多种语言的测试框架,他的目的在于使软件测试更加容易,尤其更易于实现测试的自动化。

二、          Junit,一个回归测试框架,大名鼎鼎,有关他的介绍我就不赘述了,我们把用例的代码实现都放在Junit里,方便自动化回归。

三、          Linux Shell脚本。一些操作可以放在脚本里执行,比如重启网卡之类等等的。一些简单的操作也放在Shell脚本里,可以使得测试代码更加简洁清晰。

这三部分是如何协同工作的呢?我们以启动集群中指定一台服务器上的的一个进程为例。

一、首先客户端机器上Junit开始执行用例,此用例的验证点就是是否成功启动指定一台服务器上的一个指定进程。

二、在用例中调用STAF提供的方法,启动指定机器上的指定进程。

三、被指定的那台服务器上的STAF执行传递过来的启动命令启动指定进程。

四、执行启动后返回执行状态给客户端机器。

五、客户端机器上利用Junit提供的丰富断言来判断是否成功。

 

当然这种方法的缺点就是没有GUI,测试过程不可见,测试网络环境时若是出了问题只能看log了。

 


用STAF进行二次开发可以开发出很好的自动化测试环境,已经得到了广泛的应用,以后我会基于它开发一个简单的工具满足我的工作需要。

 

[SigmationTF]

链接: http://www.testingorg.net/testingtools/347.html

 

杰华科技的商业产品,一个测试用例的自动化实现需要包括如下文件:
1、xx.top(拓扑结构,网络设备测试的话就是指路由、交换等dut以及它们的连接方式)
2、xx.address (用于配置dut的IP);12两项一般放在同一文件夹下
3、xx.job  (测试人员提交给SigmationTF的东东,然后通过SigmationTF的排队等待机制,到自己所提交的job时
我们可以去查看日志,到底是fail还是pass,如果脚本有错,log中也会进行相关提示或说明)
4、xx.suite (定义一个外套,其实是来调用xx.tcl文件的)
5、xx.tcl(tcl脚本)
很遗憾的是,该测试平台现在还没有下载版,必须基于硬件实现,如有意愿使用或想进一步了解杰华科技该产品,请与杰华科技联系,

上面的设计值得借鉴,xx.address这个文件有待改进,可以定义测试床文件,描述整个测试环境的拓朴,包括IP.