UML软件工程组织

 

 

Unix下自动化测试实践
 
2007-11-21 来源: 中国IT实验室
 

【前言】

网上看到很多关于用qtp、winrunner等工具来进行页面自动化测试的应用,但随着软件产业的发展,越来越多更大型的系统得到应用,随之变化的就是后台的变换,比如unix、linux、solaris、aix等。早期的很多系统都是基于windows server的应用和部署,qtp等工具很好的解决了自动化回归测试的问题,但对于unix平台下的测试,它就有点无能为力。而截止目前,还没有出现unix下的自动化回归测试工具,所以,我们工作中的自动化测试工具或脚本都是自己分析、设计、编码和测试,最终达到我们自己测试的需求,目的就是要提高在后台测试工作中的效率,让计算机帮我们完成大部分的手工劳动。笔者根据工作的过程和体会,把工作中unix平台下自动化测试应用的经验跟大家分享,希望能够起到抛砖引玉的效果。闲话少说,我们“挨踢”人喜欢直接,还是用例子来说明一下。

【举例1】

背景:

某应用系统T作为一个信息处理平台,要接收处理各种外部系统的电子单,而这种电子单是根据一定协议进行发送和接收、并处理返回的,但这种协议不是基于通用的TCP、UDP等协议,是各系统之间统一定制的特殊行业协议。而在这种电子单中,包含了各种各样的业务信息,系统会根据这些不同的信息进行不同的处理,得到的处理结果自然也是不同的。
应用系统T的前身是应用系统N,系统N所管理的外部系统比较分散,所用的协议与系统T也有差别,但有一个共同点就是,它们对于同样的业务信息所处理的结果应是一样,而且都会持久化保存数据库。下面的图是系统T的大概业务逻辑图:

工作平台:

OS:HP_UNIX
DB:Sybase
WebService:Tomcat
Develop Language:Java

测试工作场景:

1、 按照不同业务制造大量电子单,然后发送到系统T的指定端口;
2、 发送电子单后,将系统T执行的结果与系统N的结果进行对比,检查系统T的结果是否执行正确;
测试困难分析:
1、 我们没有外部系统,如何模拟外部系统发送电子单?
2、 系统T管理了7中业务类型,而每种业务类型大概有100种业务,如果全部覆盖,大概需要700多条测试数据,手工制作不太现实;
3、 大量的电子单的处理结果,难道都用肉眼比对?

需求分析:

1、 编写模拟外部系统的发单客户端(基于socket协议);
2、 使用系统N的海量电子单,然后按系统T的协议进行转换,用第一步的客户端发送(能保证覆盖所有业务);
3、 编写程序,对系统N的处理结果和系统T的处理结果进行比对,然后打印出详细的对比结果,以供开发员定位错误问题所在;

工具实现步骤:

1、 由于开发平台都是java,为了跟系统T衔接的更好,我们选用java编写自动化测试工具。当然,测试工具编写人要对Java比较熟悉;
2、 对于需求1,我们需要知道如何进行socket数据的收发(网上资源大把,可以参考);
3、 对于需求2,我们需要知道如何进行数据库的操作(JDBC资源网上也是大把)。数据库操作的目的,就是要从系统N的数据库中把旧的电子单取出来;
4、 对于需求3,在基于上面的第2和第3点上,当电子单发送后,系统T中会记录处理结果,然后就是要编写算法,对新旧结果进行比对;
5、 对于测试工具还应该实现可配置化,比如服务器IP、服务端口,旧数据库的IP、用户名、密码,新数据库的IP、用户名、密码,业务类型等,这就要求引入第三方的jar包,对xml文件进行解析;
 

组织简介 | 联系我们 |   Copyright 2002 ®  UML软件工程组织 京ICP备10020922号

京公海网安备110108001071号