自动化测试 - 重复执行测试

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了自动化测试 - 重复执行测试相关的知识,希望对你有一定的参考价值。

参考技术A

安装插件

全局安装:即安装在全局环境中,新创建的工程导入全局环境时会将该包导入,cmd 输入:pip install pytest-repeat。

局部安装:即安装在当前项目的环境下,新创建的工程不会同步该包,在 PyCharm→File→setting,搜索 pytest intrepreter,点击 “+” 号,如下图所示:

注意: pytest-repeat不能与unittest.TestCase测试类一起使用。无论--count设置多少,这些测试始终仅运行一次,并显示警告。

注: 在测试用例前添加注解@pytest.mark.repeat(value),value 表示重复的次数,来实现单条用例的重复执行。

执行效果如下:

在终端输入:

注:
-s:表示输出用例中的调式信息,比如 print 的打印信息等。

-v:表示输出用例更加详细的执行信息,比如用例所在的文件及用例名称等。

执行效果如下:

作用:可以覆盖默认的测试用例执行顺序,类似fixture的scope参数

在终端输入:

命令行参数
function:默认,范围针对每个用例重复执行,再执行下一个用例
class:以class为用例集合单位,重复执行class里面的用例,再执行下一个
module:以模块为单位,重复执行模块里面的用例,再执行下一个
session:重复整个测试会话,即所有测试用例的执行一次,然后再执行第二次

执行效果如下:

方法一:通过注解的形式实现失败重运行

注:
reruns: 表示重运行的次数
reruns_delay: 表示重运行次数之间的延迟时间,单位:秒

执行结果如下:

方法二:通过使用命令行参数,实现失败重运行

在终端输入:

执行结果如下:

将 pytest 的 -x 选项与 pytest-repeat 结合使用,可以实现在重复运行测试用例的过程中,测试用例第一次失败时就停止运行,具体实现方法如下:

在终端输入:

执行结果如下:

翻新:选择自动化测试工具

自动化测试正在逐步取代部分手动测试,因为它可以节省时间并提高测试质量。特别是在进行回归测试的情况下,自动化可以通过多种方式提高效率。手动进行重复测试是浪费时间和资源。此外,由于重复测试可能会遗漏,因此存在一定的错误范围,但是自动化中发生错误的可能性很小。但是什么是自动化测试?简单来说,自动化测试就是通过重复执行预定义的动作来执行测试用例的系统来代替人工操作。为了充分利用自动化,必须选择正确的自动化测试工具。

自动化测试工具的类型

  • 记录和重放:此类别中的工具为自动脚本提供了记录选项。屏幕上的每个交互(例如点击,滚动或键入)都将被记录并转换为自动化步骤。可以重播已录制的脚本以执行操作并验证。

  • 基于坐标的识别:此类工具在x/y坐标的帮助下与被测应用程序交互,以自动化和验证应用程序。

  • 本机对象识别:使用本机对象识别的工具可检测给定元素树上的UI或控件元素。该树由XPATH,XML或CSS构建,以标识元素,验证和自动化脚本。

  • 文字识别:文本识别:文本识别或(OCR)光学字符识别工具可根据其文本识别元素。这些工具使用可见文本来推动自动化并验证应用程序。

  • 图像识别:这些工具会获取产品中UI元素的屏幕截图,以将其添加到自动化脚本中。这些屏幕截图将帮助AUT自动执行。

许多测试自动化工具支持多种识别方法,这对于获取更强大的自动化脚本很有用。现在让我们看看选择自动化测试工具时要考虑的因素。

平台支持

您是否正在寻找针对Web应用程序或移动应用程序的自动化测试工具?如果是移动应用程序,那么它是混合的,本机的还是PWA?在许多情况下,脚本语言也是一个重要因素,因为移动自动化测试工具并不支持所有语言。因此,如果您使用JavaScript开发应用程序,则不建议使用UFT进行测试自动化。在这种情况下,请使用诸如Selenium之类的脚本语言灵活的工具。

有很多测试自动化工具都支持Selenium和Appium等免费软件框架。框架集成有助于减少测试工作量,并增加团队之间的协作。工具集成形成了一个协作努力的生态系统,可帮助对象识别,错误日志记录,测试用例管理,报告共享和共享存储库。

易于采用

可以根据使用该工具所需的技能和学习曲线来衡量采用的难易程度。如果互联网上有可用资源轻松学习该工具的功能,那么这是一个加分点。另外,社区支持应该很好,如果有一个活跃的社区对该工具的复杂性有一个大概的了解,那么这将是一个优势。我们已经观察到某些工具和框架的安装学习过程也很漫长。但是总体来说,团队应该能够凭借自己的技能或经验轻松使用该工具。

易于编写脚本

大多数自动化测试工具提供了灵活的脚本选项。它允许测试团队以首选语言编写测试脚本。良好的测试自动化工具有助于提高测试组件的可重用性,并提供可在项目间重用的脚本的灵活性。具有对象标识的脚本编写时间,脚本执行速度,对CI/CD工具(如Jenkins)的支持,通常在选择工具之前会考虑这些属性。

整合方式

如果测试团队正在使用测试用例或管理工具,则该团队将倾向于可以轻松集成到这些工具中的自动化工具。它有助于正确管理应用程序开发生命周期。关键字驱动或数据驱动的自动化框架应易于集成到任何数据源中。如果该工具轻松提供与不同数据源的连接,则非常方便。

测试分析

分析报告构成了测试自动化的基础,因为它提供了对过程的可追溯性。自动化工具必须提供可自定义的仪表板,以查看各个团队之间共享的不同类型的报告。实时报告的可追溯性确保功能验证和有效的测试覆盖率。诸如测试进度,缺陷密度和测试执行状态之类的质量指标可让您在连续测试的每个阶段都保持质量。使用良好的自动化工具来分析结果以识别错误,并进行根本原因分析非常方便。

许可证类型和费用

最好选择开源工具,但并非每个开源自动化工具都具有您可能需要的所有功能。即使您选择专有的许可工具,也需要弄清楚需要在维护上花费多少。一些公司为优质计划提供实时支持和培训。因此,您可能需要升级以利用这些服务。如果您只想在不同的计算机上执行自动化,则还有一个称为运行时许可证的东西。除此之外,还有用于单个计算机的节点锁定许可证和用于在多个系统上使用该工具的并发浮动许可证的选项。

总结一下

如果您仍然感到困惑,并且想进一步简化工具选择过程,请使用工具比较矩阵。记下您喜欢的2,3甚至5种工具,然后根据我们在本博客前面讨论的所有因素对它们进行评分。这样,根据您的要求做出决定将更加容易。就移动测试自动化工具而言,设备覆盖范围是关键。建议使用基于云的测试平台在多个设备上运行自动化测试。自动化是任何CI/CD管道的灵魂,对于成功实施DevOps,选择正确的自动化测试工具至关重要。


FunTester热文精选


以上是关于自动化测试 - 重复执行测试的主要内容,如果未能解决你的问题,请参考以下文章

翻新:选择自动化测试工具

技术干货 | 自动化测试工具Selenium

单元测试(参考阿里巴巴Java开发手册)

UI自动化测试简介及Selenium工具的介绍和环境搭建

持续测试 | 让测试更自由:在 CODING 中实践自动化执行用例

别再加端到端集成测试了,快换契约测试吧 | 洞见