Unix下自动化测试实践

发表于:2007-11-07 16:32

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

 作者:方耀    来源:51Testing投稿

分享:

【前言】
        网上看到很多关于用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文件进行解析;

版权声明:51Testing软件测试网及相关内容提供者拥有51testing.com内容的全部版权,未经明确的书面许可,任何人或单位不得对本网站内容复制、转载或进行镜像。51testing软件测试网欢迎与业内同行进行有益的合作和交流,如果有任何有关内容方面的合作事宜,请联系我们

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

精彩评论

  • hyper
    2007-12-21 11:46:33

    呵呵 思路清晰
    区别就是,windows有现成工具(QTP之类),Unix下自己编码实现

  • thefirstred
    2007-12-19 09:35:59

    例子写得很清楚,可是没看出来与其他平台有什么区别

  • cckaji
    2007-12-01 14:32:47

    hehe

关注51Testing

联系我们

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

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

沪ICP备05003035号

沪公网安备 31010102002173号