串行测试 并行测试

随着技术的进步,随着组织从手动测试转向Selenium测试自动化 ,测试解决方案变得比以往更具可扩展性。 但是,大多数组织仍在努力的领域之一是可并行运行多个测试的可伸缩性。 许多公司仍在使用顺序测试方法来提供质量保证,这会浪费大量的时间,资源和精力。 有些人不愿在Selenium中实施并行测试,而另一些人则不愿这样做,因为它们的Web应用程序足够小,可以由当前版本的窗口进行管理。 但是请记住,每个发行版本都必然会扩展Web应用程序,并且在将来某个地方,如果不采用并行测试,将会遇到很多困难。 勿忘,存在Selenium Grid的主要原因是允许测试人员并行运行测试用例。

本文是我的尝试,旨在帮助您意识到下一个发行周期中并行测试的重要性。 我将详细讨论并行测试,从定义到Selenium中并行测试的最佳实践,我们将一一讨论,以帮助您扩展测试工作。 事不宜迟,让我们开始吧!

Selenium自动化中的并行测试是什么?

Selenium中的并行测试是一个过程,您可以在不同的环境中同时运行相同的测试。 并行执行测试的主要目的是减少总体时间并减少自动浏览器测试的时间,同时通过使用Selenium Grid确保高质量的产品。

让我们来测试一下顺序执行的场景。


假设您要测试注册表单的功能,然后为该表单编写了自动化测试脚本。 如果您想对60种不同的浏览器和操作系统组合执行此测试,并且假设一次测试在2分钟内运行,则总共需要120分钟,即2个小时。 这只是注册表单,如果您要在其他模块(例如定价页面,演示计划表单,联系表单等)上运行自动化脚本,将会发生什么! 即使您自动化了Selenium测试套件,如果您一个接一个地运行它们,那么要花很长时间才能完成测试。

现在,在上述情况下,如果同时运行3个并行测试会发生什么?

你是对的! 总执行时间将从120分钟缩短到40分钟。 同样,如果您运行了4个并行测试,则总时间将仅减少到30分钟,依此类推。


为什么要并行运行Selenium测试?

有多种原因使测试人员在Selenium中采用并行测试作为他们的第一个自动浏览器测试方法变得至关重要。 一些最受欢迎的原因是:

广泛的测试范围

与顺序测试相比,并行执行测试是一种更快的方法,因为它为测试人员提供了更短的测试兼容性。 例如,如果您要测试新Web应用程序的用户界面功能,则不必针对不同的OS和浏览器组合反复运行测试,则可以通过运行测试同时测试所有组合在平行下。

减少测试时间

顺序测试的确为Web应用程序提供了全面而彻底的自动化浏览器测试,但是这非常耗时。 另一方面,并​​行测试可以通过在多台计算机上并行运行测试来减少总体测试时间。 例如,如果您要运行100个并发测试,则可以将自动浏览器测试时间减少100倍,从而帮助您更快地交付产品。

成本效益

顺序测试需要开发,维护和保持测试环境为最新,这可能会影响您的总体预算。 但是Selenium中的并行测试是在云上运行的自动化过程,因此无需维护。 此外,您不必担心更新,因为云基础架构始终处于更新状态。

优化持续集成和交付

为了持续集成和持续交付 ,您需要频繁且快速地运行功能测试。 而且,如果您并行运行测试,它不仅可以为您节省更多时间,还可以使您获得详细的测试数据报告。 开发团队以后可以使用这些报告在代码中查找问题并快速修复它们,以优化CI / CD。

连续测试

在尽可能短的时间内发布高质量产品的好方法是使用持续集成和交付方法。 连续测试需要更快的测试周期,这对于顺序自动浏览器测试是不可行的。 但是,如果您在Selenium中使用并行测试,从而允许您利用云和虚拟化以更快的速度执行更多测试,则可以更快地将产品发布到市场。

如何在像Pro这样的DevOps中实施连续测试?

什么时候应该在Selenium中执行并行测试?

现在,您知道Selenium中的并行测试如何对应用程序的持续集成和交付有所帮助,现在该了解何时以及如何在SDLC中实现它了。 您可以针对以下情况使用并行测试:

  • 新应用程序的功能是否具有最小的不确定性,尤其是在应用程序的更新版本与早期版本相似时。
  • 对于与银行部门有关的金融应用程序,其中大多数应用程序是相同的。 Selenium中的并行测试可用于验证应用程序的较早和最新版本。
  • 将旧数据从一个系统导入另一个系统,或从旧系统迁移到新系统的公司。
  • 在自动浏览器测试期间,当您需要跨浏览器,操作系统和设备的多种组合测试应用程序时。

如何处理Selenium中的并行测试用例?

我们认为并行执行测试的最佳方法是创建用于浏览器兼容性测试的不同项目,以测试Web应用程序的各个部分,并创建用于测试这些不同项目的主项目。 通常,在Selenium中有两个级别的并行测试标准。 第一个是入门级条件,另一个是退出条件。

在入门级标准中,定义了在成功并行执行测试之前应满足的特定任务,例如:

  • 在Selenium中开始并行测试之前需要测试环境设置
  • 在开始自动浏览器测试过程之前,必须先定义前提条件和方案
  • 新数据和旧数据必须成功迁移

退出级别标准描述了成功执行并行测试的步骤,包括:

  1. 针对新开发的系统运行旧系统
  2. 了解两个系统之间的差异
  3. 使用相同的输入进行完整的自动浏览器测试周期
  4. 与旧系统相比,测量新开发系统的输出
  5. 向开发团队报告错误(如果发现)

并行测试方法只有在使用最佳实践来实现时才能成功。 以下是一些可用于在Selenium中实施并行测试的有效方法。

使用TestNG在Selenium中进行更快的并行测试

Selenium中并行测试执行的最佳实践是什么?

即使使用Selenium Grid,并行运行自动化浏览器测试也不是一件容易的事,这是由于您在Selenium中执行并行测试所使用的是非结构化自动化框架。 以下是一些最佳实践,可以帮助您成功并行并行执行Selenium测试自动化。

1.生成独立的测试用例

如果您生成可以独立运行的独立测试,则并行执行它们会更容易。 简而言之,测试必须是独立的。 因此,在运行任何测试时,您不必担心运行测试套件的顺序。

有时,并行执行的测试会表现出无效的行为,例如不应该失败或不应该失败,这就是脆弱性。 独立测试可以通过减少测试中可能的断点数量来减少自动浏览器测试过程中的脆弱性。 使用独立测试的另一个重要优势是,如果一个测试失败了,它不会阻止您测试其他测试功能。

2.使用基于云的Selenium网格进行并行测试

在本地Selenium Grid上执行自动浏览器测试可能会筋疲力尽,因为您不仅必须管理和维护所有机器,还必须设置它们。 在本地Selenium网格上进行并行测试将遇到一些可伸缩性问题,因为您将无法涵盖所有​​主要的浏览器,它们的不同版本和操作系统。

使用基于云的Selenium Grid,您无需再担心设置。 使用LambdaTest Selenium Grid,您可以在2000多种真实浏览器及其不同版本上运行并行测试。 您不仅可以在建立基础结构上节省很多钱,而且还可以有足够的时间来完成重要的任务。


3.避免使用硬编码值

由于直接将硬代码嵌入源代码中,因此大多数测试人员必须按特定顺序运行测试。 这种方法不允许您有效地并行运行测试,因为它会在测试用例之间建立依赖关系。

因此,请避免在Selenium测试自动化脚本中使用硬代码值,以确保每个测试都是独立的,并可以在必要时执行。 您甚至可以在测试框架中选择数据驱动的方法来配置测试用例。

4.防止Selenium测试自动化案例之间的依赖性

由于各种测试用例之间的依赖性,许多测试人员经常发现并行执行测试具有挑战性。 当测试相互依赖时,它们需要以特定的顺序运行,这通常会影响并行测试策略。 因此,您应该专注于创建可以独立执行的独立测试和原子测试。

5.您需要有效地管理测试数据

成功进行并行Selenium测试自动化的主要关键是有效地处理测试数据。 但是要实现这一点,您需要一个有效的策略,该策略可以在需要时创建测试数据,并在必要时进行清理。 以下是一些非常有效的基本数据管理策略。

  • 持续刷新数据–这种方法允许您在测试执行期间重置源代码。
  • 使用RESTful API –这是在运行时创建和销毁数据的好方法。
  • 自私的数据生成–这种方法具有创建策略,但是不提供任何数据清理功能。

这些只是可用于有效管理测试数据的几种方法。 您甚至可以组合两种方法以获得所需的输出。

创建可以有效并行运行的测试

如果您打算在Selenium中采用并行测试,那么您肯定不想让自己失望,因为创建了多个不能在产品发布之前并行运行的测试。 因此,从一开始就要考虑并行化来开发Selenium测试自动化案例。

从头开始进行计划不仅可以使您免于最后一刻的灾难,而且还可以帮助您有效地测试所有组合中的应用程序。 我们知道这听起来很复杂,但是编写并行运行的测试用例更容易,更小巧,更快捷。

结语

Selenium中的并行测试是一种快速交付Web应用程序而又不影响质量的绝佳方法,尤其是在涉及自动跨浏览器测试时。 通过并行执行Selenium测试自动化,您可以节省质量检查费用,高精度运行测试用例,优化连续集成/交付过程以及不断改进测试脚本。 但是,实施并行化需要从一开始就采取有效的策略。 在本文中,我们讨论了并行化的不同方案,以及如何将并行化用于您的业务对您有好处。

希望您喜欢这篇文章,请在下面的评论部分中告诉我们您对这篇文章的看法。 此外,请随时转发该文章,并与希望了解有关Selenium中并行测试的更多信息的朋友共享。 目前为止就这样了。 测试愉快!


翻译自: https://www.javacodegeeks.com/2020/05/what-is-parallel-testing-and-why-to-adopt-it.html

串行测试 并行测试

串行测试 并行测试_什么是并行测试,为什么要采用它?相关推荐

  1. mysqls压力测试怎么用_阿里研究员:测试稳定性三板斧,我怎么用?

    阿里妹导读:如何治理测试稳定性问题?很多人会说:环境.流程管控.监控.工具化.加机器.专人负责.等等.这些都是对的.不过这些都是解决方案层面的,而不是方法论和理论体系层面的.今天,阿里研究员郑子颖来说 ...

  2. 计算机用并行传输还是串行,终于有人能把“串行通信和并行通信”的区别分析得清清楚楚了...

    在串行通信中,数据是二进制脉冲的形式.换句话说,我们可以说二进制1表示逻辑高电平或5伏特,零表示逻辑低电平或0伏特.串行通信可以采用多种形式,具体取决于传输模式和数据传输的类型.该传输模式被归类为单工 ...

  3. 测试框架 如何测试私有方法_高效的企业测试–测试框架(5/6)

    测试框架 如何测试私有方法 本系列文章的这一部分将介绍测试框架以及我在何时以及是否应用它们方面的想法和经验. 关于测试框架的想法 我对大多数测试框架不太满意的原因是,按照我的观点,它们大多增加了语法上 ...

  4. jmeter测试java接口测试_简单易学的测试攻略:JMeter测试Java请求示例

    JMeter是Apache组织的开放源代码项目,它是功能和性能测试的工具,100%的用java实现,大家可以到官网下载源代码和查看相关文档. 关于使用JMeter进行JDBC数据库测试.HTTP请求接 ...

  5. 测试鼠标双击_鼠标环境可靠性测试是什么

    鼠标和电脑是的组合,购买电脑时一般商家会送给用户一个配套的鼠标,鼠标和电脑一样,对环境的要求较高,极少部分的鼠标由于短路或者是环境温度过高的问题会导致鼠标出现自燃的现象,如果用户此时正在使用电脑编辑文 ...

  6. python怎么写测试脚本语言_用python编写测试脚本

    1 deff(n):2 """ 3 >>>f(1)4 1用例5 >>>f(2)6 2用例7 ......8 >>>f ...

  7. python做测试小工具_自制快速冒烟测试小工具--基于python多线程(2)

    原标题:自制快速冒烟测试小工具--基于python多线程(2) 新书 速递 文 |愈知愈无知 快速冒烟测试小工具-(1)分析及准备 三.代码实现-封装 1. 创建包和文件夹目录 Config:存放配置 ...

  8. 开关电源怎么测试文波_电源纹波测试的正确方法,值得你学习

    什么是电源纹波?应该如何测试呢?用500MHz带宽的示波器对其开关电源输出5V信号的纹波进行测试时,发现纹波和噪声的峰峰值达到了900多mV(如下图所示),而其开关电源标称的纹波的峰峰值<20m ...

  9. 微信瑞文智力测试1分_瑞文智力测试

    简介 瑞文智力测试,又称瑞文标准推理测验(Raven's Standard Progressive Matrices 简称 SPM)由英国心理学家瑞文(J.C.Raven)于1938年创制,在世界各国 ...

  10. 测试工具研发_(2)测试框架驱动之布局调整

    2.主要是界面布局的一个调整 """2.在布局方法中:细微的调整了界面布局的上下左右""" import wx # 测试框架界面类的实现cl ...

最新文章

  1. 工作流引擎--swamp
  2. 使用LaunchScreen.storyboard黑屏
  3. AD不能复制提示目标主要名称不正确
  4. document操作例题1-延迟注册与二级菜单
  5. 深度学习(四十四)——GAN的评估指标, DCGAN, WGAN-GP, CGAN, BEGAN EBGAN
  6. Dalvik虚拟机的运行过程分析
  7. CSS中可继承的属性
  8. 一个关于文件中位运算的的处理函数。
  9. 服务器CPU X86 ARM PowerPC RISC介绍
  10. 前端 JavaScript 实现一个简易计算器
  11. 兰州石化学院计算机证书领取,关于领取2019年9月全国计算机等级考试证书的通知...
  12. 简明Python docstrings
  13. FineBI使用文档
  14. Summarization 文本摘要进展
  15. oracle实验三创建视图,实验1——Oracle数据查询
  16. python官方文档学习_Python3.5.2官方文档学习备忘录
  17. java简单的正则表达式验证邮箱
  18. 下一个时代的黑产攻防,可能没有人类什么事情了
  19. 前端 不同屏幕宽度 自适应布局 解决方案
  20. Multisim14 安装包及安装教程

热门文章

  1. 开机使用脚本批处理打开软件
  2. 设计案例:iPad应用程序在Metro中新的交互模式
  3. mysql 慢sql 十几秒_sql优化之慢sql耗时排查
  4. 服务器TIME_WAIT过多
  5. TIME_WAIT状态产生的原因、过多的危害
  6. python中乘号怎么打出来_python怎么输入数字
  7. Redis命令详解:Pub/Sub
  8. 玩转Redis集群之Codis
  9. 学习Linux命令(40)
  10. 使用iPerf进行网络吞吐量测试