• 0
  • 1
分享
  • 流量复制和场景测试技术
  • 恬恬圈 2019-09-23 14:22:23 字数 1338 阅读 1753 收藏 1

当前,软件产品整体的开发测试节奏正在不断的加快。如何快速响应市场需求,在保障产品质量的同时提高软件研发效率?是摆在开发、测试人员面前的一大难题。

对软件测试人员来说,提高自动化测试的能力和效率,是应对这一难题的途径之一。通过调研学习,我们对主流自动化测试技术进行简要对比。按照人工介入程度区分,自动化测试技术主要分为两大类别:流量复制技术和场景测试技术。

1、流量复制技术

流量复制技术的原理是:复制在线Server的请求数据包(比如HTTP流量、TCP流量、链路层流量等),修改流量包头部信息,发送给测试服务器,达到欺骗测试服务器程序的目的,从而为欺骗测试服务器上面的上层应用打下基础。

技术发展现状:目前有各种开源的软件支持流量复制,比如Gor、TCPCopy等。其中,Gor是一款Golang语言编写的简单的http流量复制开源工具,它的工作流程是监听服务器捕捉http流量,把捕捉到的流量发送到重现服务器上或者保存到文件中,重现服务器再继续把流量发送到一个指定的ip地址:


1.png

图2 Gor工作流程图

TCPCopy是国内各大互联网公司广泛应用XCopy系列工具之一,XCopy是由网易主导,多家公司参与开发的具有在线Server流量复制功能的一系列开源软件的总称。XCopy系列包括TCPCopy、UDPCopy、MysqlCopy等开源软件(这些软件都集成在tcpcopy开源项目内)。TCPCopy是一种请求复制(复制基于TCP的packets)工具,通过复制在线数据包,修改TCP/IP头部信息,发送给测试服务器。

流量复制技术具有技术成熟,项目开源,对用户透明,无需用户承担额外的研发工作仅需要在生产和测试环境安装相应的软件等特点。测试流程真实仿真生产情况,测试路径真实,能放大和缩小流量,实现仿生产条件下的仿真性能测试。流量复制技术应用在对后端服务进行测试,适合人机界面交互少、后台逻辑相对单一的系统进行自动化测试,比如网捷贷、搜索引擎等相关产品。

2、场景测试技术

场景测试技术的原理是:按照真实业务场景划分,通过程序录制用户的操作行为,转化为脚本,然后在被测环境回放脚本进行测试。

技术发展现状:目前有较为成熟的软件支持,比如:QTP、Watir、Selenium等,在各行业应用较为广泛。

场景测试技术具有场景按需定制,测试针对性强,定位重现问题较为便捷的特点。适合前端测试,特别是有人机交互、有流程、步骤和环节概念的应用程序和桌面程序,能精细化覆盖所有业务分支流程,实现仿用户操作行为的测试。

针对流量复制技术和场景测试技术所采用的自动化测试软件,我们进行了对比分析,分析结果参见下表:

2.png

表1  主流自动化测试软件优劣对比


从上述分析可以看到,流量复制技术和场景测试技术实现原理不同,在市场上都具备相对成熟的软件支持,在应用中各有优势,适合于不同类型的测试应用场景。在实际产品的测试过程中,我们应根据软件系统的不同特征和场景,选用适合的自动化测试技术,以期提高测试效率和质量。


版权声明:本文出自51Testing会员投稿,51Testing软件测试网及相关内容提供者拥有内容的全部版权,未经明确的书面许可,任何人或单位不得对本网站内容复制、转载或进行镜像,否则将追究法律责任。

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   在软件测试这条道路上,大部分的职业技能发展道路都会是纯业务手工测试→自动化测试→性能测试→安全测试/测试开发。  但是却有着一部分人起初进入软件测试这一行看重的就是软件测试属于IT行业,门槛比较低,不需要代码基础。  这就导致了这一部分测试工程师在一定程度上,在职位上的进阶就比较困难了。因为现在基本绝大多数互联网公司都已经把代码编程和自动化作为必要的技能。  为了更好的解决这部分工程师的工作痛点,本文分享一款近几年非常火爆的一款自动化测试工具:Katalon Studio。  1. Katalon Studio介绍  Katalon Studio 是一款在网页应用、移动和网页服务...
            0 0 517
            分享
          •   前言  在目前互联网公司中,都会存在多个测试环境,那么当我们编写的自动化想要在多套测试环境下进行运行时,如何使用?  大多数人想到的可能是通过将我们自动化代码中的地址修改成不同环境。  但是这时候就会增加一些工作量,每次运行不同的环境,都需要在配置文件中进行地址修改,这样很不方便。  今天小编介绍一种Pytest的钩子函数,这个函数可以帮助我们很容易的解决这个问题。  pytest_addoption  pytest_addoption是Pytest的钩子函数之一,用于为Pytest添加自定义选项,并将这些选项传递给测试用例。  可以通过修改Pytest的配置文件(pytest.ini)或...
            0 0 983
            分享
          •   自动化听起来很美,但实践并不容易,许多人将其视为实际结果与需求中提供的预期结果的比较,甚至认为自动化就是一系列重复和可重复的操作。如果仅仅停留在这些肤浅的理解往往会导致自动化测试的失败。  下面我从多个角度探讨测试自动化问题,并提出了一些需要关注的主要因素:工具和技术、需求和风险、维护和安全。  工具和技术  软件测试发展至今,市面上已经有很多商业、免费和开源的测试工具。选择哪种工具取决于对产品当前形态的支持程度以及对产品未来演进持续的支持程度。  除了使用现成的自动化工具,也可以选择自研测试工具。而使用哪种技术实现自动化工具就至关重要。例如,Selenium的早期版本还不支持处理浏览器弹...
            0 0 1000
            分享
          •   与 iPhone 14 系列相比,iPhone 15 系列新增了大量值得升级的功能。苹果公司新推出的 iPhone 15 Pro 机型配备了创新的摄像头硬件,能够以可变焦距拍摄照片。另一方面,iPhone 15 机型配备了"灵动岛"(Dynamic Island)功能,使其更接近"Pro"机型。  最初有传言称,苹果将提高整个 iPhone 15 系列的价格。不过,与去年的 iPhone 14 Pro 机型相比,iPhone 15 Pro 在英国的价格反而下降了 100 多英镑。  今年的iPhone 15 和 iPhone 15 Plus 的起价与...
            0 0 1767
            分享
          •   摘要  在高性能的IO体系设计中,有几个名词概念常常会使我们感到迷惑不解,什么是IO?什么是NIO?什么是AIO?要了解这些,首先要了解同步、异步、阻塞、非阻塞,然后将其结合起来,了解IO、NIO、AIO就容易多了。  正文  同步与异步(synchronous/asynchronous):同步是一种可靠的有序运行机制,当我们进行同步操作时,后续的任务是等待当前调用返回,才会进行下一步;而异步则相反,其他任务不需要等待当前调用返回,通常依靠事件、回调等机制来实现任务间次序关系。  同步/异步:数据如果尚未就绪,是否需要等待数据结果。  阻塞/非阻塞:进程/线程需要操作的数据如果尚未就绪,是...
            0 0 1256
            分享
      • 51testing软件测试圈微信