当前,软件产品整体的开发测试节奏正在不断的加快。如何快速响应市场需求,在保障产品质量的同时提高软件研发效率?是摆在开发、测试人员面前的一大难题。
对软件测试人员来说,提高自动化测试的能力和效率,是应对这一难题的途径之一。通过调研学习,我们对主流自动化测试技术进行简要对比。按照人工介入程度区分,自动化测试技术主要分为两大类别:流量复制技术和场景测试技术。
1、流量复制技术
流量复制技术的原理是:复制在线Server的请求数据包(比如HTTP流量、TCP流量、链路层流量等),修改流量包头部信息,发送给测试服务器,达到欺骗测试服务器程序的目的,从而为欺骗测试服务器上面的上层应用打下基础。
技术发展现状:目前有各种开源的软件支持流量复制,比如Gor、TCPCopy等。其中,Gor是一款Golang语言编写的简单的http流量复制开源工具,它的工作流程是监听服务器捕捉http流量,把捕捉到的流量发送到重现服务器上或者保存到文件中,重现服务器再继续把流量发送到一个指定的ip地址:
图2 Gor工作流程图
TCPCopy是国内各大互联网公司广泛应用XCopy系列工具之一,XCopy是由网易主导,多家公司参与开发的具有在线Server流量复制功能的一系列开源软件的总称。XCopy系列包括TCPCopy、UDPCopy、MysqlCopy等开源软件(这些软件都集成在tcpcopy开源项目内)。TCPCopy是一种请求复制(复制基于TCP的packets)工具,通过复制在线数据包,修改TCP/IP头部信息,发送给测试服务器。
流量复制技术具有技术成熟,项目开源,对用户透明,无需用户承担额外的研发工作仅需要在生产和测试环境安装相应的软件等特点。测试流程真实仿真生产情况,测试路径真实,能放大和缩小流量,实现仿生产条件下的仿真性能测试。流量复制技术应用在对后端服务进行测试,适合人机界面交互少、后台逻辑相对单一的系统进行自动化测试,比如网捷贷、搜索引擎等相关产品。
2、场景测试技术
场景测试技术的原理是:按照真实业务场景划分,通过程序录制用户的操作行为,转化为脚本,然后在被测环境回放脚本进行测试。
技术发展现状:目前有较为成熟的软件支持,比如:QTP、Watir、Selenium等,在各行业应用较为广泛。
场景测试技术具有场景按需定制,测试针对性强,定位重现问题较为便捷的特点。适合前端测试,特别是有人机交互、有流程、步骤和环节概念的应用程序和桌面程序,能精细化覆盖所有业务分支流程,实现仿用户操作行为的测试。
针对流量复制技术和场景测试技术所采用的自动化测试软件,我们进行了对比分析,分析结果参见下表:
表1 主流自动化测试软件优劣对比
从上述分析可以看到,流量复制技术和场景测试技术实现原理不同,在市场上都具备相对成熟的软件支持,在应用中各有优势,适合于不同类型的测试应用场景。在实际产品的测试过程中,我们应根据软件系统的不同特征和场景,选用适合的自动化测试技术,以期提高测试效率和质量。
版权声明:本文出自51Testing会员投稿,51Testing软件测试网及相关内容提供者拥有内容的全部版权,未经明确的书面许可,任何人或单位不得对本网站内容复制、转载或进行镜像,否则将追究法律责任。