无脚本测试自动化框架:工具及示例
本文将以简单的术语为您提供无脚本测试自动化框架的介绍
为了便于容易理解,无脚本自动化的设计目标,实现要求,优势都给予示例进行了说明。
在本文总结处,将介绍该框架相关的“为什么”,“什么”,“何时”和“如何”问题的所有答案
在深入探讨无代码测试自动化框架之前,让我们快速看一下自动化的级别
#1)脚本/编码
顾名思义,这需要创建一个程序/软件来实现自动化测试或过程。
示例:如果必须执行特定功能或类的单元测试,则需要创建测试程序来测试功能或类。没有编码就无法自动化单元测试。
通常,如果自动化工具或框架要求测试人员创建一些代码或脚本以提供自动化测试的测试输入,执行和报告,则将此类工具归类于此级别。
#2)无脚本
在此级别,您不需要任何编码或脚本知识即可创建自动化测试。但是,作为框架,提供定制功能是一个好习惯。
对于高级用户,可以通过编写自己的代码来覆盖某些独特的测试场景来进行自定义。
#3)使用人工智能(AI)的高级自动化
这是可以实现的最高自动化水平:
l 从测试用例文档创建测试脚本(可能使用自然语言处理技术)。
l 根据应用程序的更改自动更正测试脚本,以进行有效的回归测试。
l 根据被测应用程序上的用户操作/用例,自动生成测试脚本。这是传统记录和播放功能的高级版本。
l 基于机器学习的测试结果自动验证,无需用户输入需要验证的内容和测试分析。
在本文中,我们将重点介绍无脚本的自动化。
在此之前,让我们看一些顶级的无脚本自动化工具列表
最好的无脚本测试自动化工具
下面列出了此类别下的顶级工具,以供您参考
#1)TestCraft
TestCraft是一个无脚本的Selenium测试自动化平台。其革命性的AI技术和独特的可视化建模可以更快地创建和执行测试,同时消除测试维护开销。
测试人员无需编码即可创建全自动测试场景。客户可以快速发现错误,更频繁地发布错误,与CI / CD集成,批准并提高其数字产品的整体质量。
主要特征:
l 无需编程技能。利用手动测试人员的业务知识,并允许他们创建无代码的自动化测试方案。
l 大大降低维护成本。由于我们的AI算法,脚本会自动调整以进行更改。单击几下,即可进行主要更改。
l 基于Selenium快速集成和利用社区开发的模块。
l 它提供了立即实现价值的时间。无需安装(SaaS)。容易掌握。
#2)ACCELQ
简单易用,功能强大的AI驱动的测试自动化平台。
ACCELQ是唯一基于云的连续测试平台,可以无缝地自动执行API和Web测试,而无需编写任何代码。各种规模的IT团队都使用accelQ通过自动化生命周期的关键方面(例如测试设计,计划,测试生成和执行)来加速测试。
accelQ客户通常可以节省测试变更和维护工作所涉及成本的70%以上,从而解决了行业的主要难题之一。accelQ通过AI驱动的内核使这一点成为可能,从而在其他独特功能中带来了自愈自动化。
专注于设计和用户体验是accelQ持续创新方法的核心,它不懈地努力加快测试速度并提高其客户的交付质量。
关键能力:
l 用于设计和生命周期自动化的可视化应用程序建模。
l 无代码API和UI自动化在同一流程中。
l 自动化的测试用例生成和数据计划。
l 具有多个抽象层的insprint自动化。
l 内置的测试管理和计划功能。
l 无缝的CI / CD和Jira / ALM集成,具有自然可追溯性。
l 具有运行时分析引擎的自我修复功能,可实现强大的自动化。
l 没有供应商锁,可扩展框架与开源保持一致
#3)Ranorex Studio
Ranorex Studio包括一整套用于桌面,网站和移动应用程序测试的无脚本测试自动化工具。自动化测试的时间是其他方法的一半。
主要功能包括:
l Ranorex Recorder :捕获与您的应用程序的每次交互。在捕获窗口中,暂停并继续记录,编辑步骤以及添加验证操作。
l Ranorex Spy :只需单击即可识别UI元素,然后将它们拖放到测试用例中。Ranorex Studio自动处理任何动态Web元素。
l 动作编辑器:编辑记录的步骤,添加验证,指定执行条件(IF语句)以及使用Excel文件或数据库中的数据-所有这些都无需编码。
l 内置Selenium WebDriver 。在WebDriver端点,本地Selenium Grid或基于云的提供程序上执行跨浏览器测试。
l 内置的测试运行报告和测试执行的视频报告。如果测试步骤失败,只需重播视频以查看发生了什么。单击测试报告中失败的步骤,以直接跳至测试用例并进行调试。
l 与包括Jira 和Bugzilla 在内的领先缺陷跟踪工具,包括Jenkins 和Bamboo 在内的CI / CD工具,用于测试用例管理的TestRail 集成在一起。
Ranorex Studio还具有完整的IDE,因此您可以根据需要使用代码扩展测试用例。
设计目标
下面简要介绍了一些应考虑的重要设计目标。
#1)输入驱动
运行自动化测试所需的任何输入都应超出自动化框架的“编码”部分。输入内容可以是您的测试步骤,测试条件,测试数据,预期结果等。
对于每种类型的输入,框架都应以易于使用的关键字形式提供支持,从而也可以理解上下文。
#2)允许自定义
显然,这意味着您应该提供一些选项来为高级用户自定义测试脚本的处理,以便它们可以包含独特的方案。高级用户可以将他们的测试脚本(以程序的形式)插入到框架的测试输入中。
#3)简单性
这是一个非常重要的设计目标,因为了解如何设置,配置和使用自动化框架应该比编码变得困难。
一个这样的示例将是提供一个模板,该模板具有所有必需的测试输入以及默认值(但与上下文相关)。
这样,用户将迅速了解如何根据他们的应用程序需求提供测试输入。另一种方法是在测试输入中提供高水平的抽象。
示例:让我们模拟单击按钮。在这里,作为用户,我只对称为单击按钮的简单操作感兴趣。
该框架应该能够通过内部处理标识按钮控件的不同方法来执行该操作,然后再执行该操作。实际上,这与输入驱动的目标有些相关,在该目标中,您必须定义易于理解的关键字,如本例中的ClickButton。
#4)与平台无关
必须能够在不同的PC和Mobile平台上运行。针对Web应用程序开发的无脚本自动化情况下的不同浏览器。作为此目标的一部分,您还应该考虑支持跨不同平台的通用测试输入。
#5)技术不可知
在当今的情况下,我们都知道技术是广泛的,开发应用程序有很多选择。
无论使用什么技术来开发被测应用程序(在给定的应用程序类型(例如Web或移动应用程序)下),自动化框架都应该能够测试这些应用程序,而对测试输入和框架引擎本身所做的更改很少或没有任何更改。
#6)测试环境不可知
它应该能够在云和本地虚拟环境上运行。
#7)可扩展
我们应该提供选项来插入其他软件组件,以涵盖复杂的测试方案。
让我们以包含前端应用程序和Web服务的电子商务网站为例,您想测试应用程序的功能以及性能。这项要求肯定需要使用可以测试Web服务和网站性能的工具的插件。
洞察实施要求
在研究实现细节之前,让我们首先了解无脚本自动化框架的高级体系结构组件。
我们将看到3个主要组件(当然,可以将这些组件进一步划分为较低的级别,但这不是现在的目的!),我们将看到该组件以大致了解框架:
#1)框架核心引擎:这是框架的核心组件,它完成了自动化逻辑,验证,与体系结构其余组件的接口以及第三方应用程序/脚本的所有繁重工作,用于自定义测试配置和处决。
将所有测试输入操作转发到操作处理程序,以处理AUT(被测应用程序)上的操作。对于开发此引擎,重要的是要考虑上述设计目标,选择合适的编程知识和技术。
根据明智的技术选择,您将能够满足大多数设计目标,从而为自动化框架的消费者提供最大的收益。
#2)测试输入接口:从用户的角度来看,这是前端组件,您将在其中提供所有测试输入,例如测试用例步骤,测试条件,测试数据,预期结果等。
记住简单性的设计目标,应该以一种使消费者可以快速适应并开始使用您的框架的方式设计此组件。未能达到此目标将导致框架本身的使用减少。
核心引擎的接口是解释器,通常遵循某种协议来交换测试输入上的信息。
#3)测试输出接口:该组件负责输出测试结果,测试日志,缺陷日志,报告和仪表板。框架核心引擎会将结果转发到Output logger,然后由Output接口呈现。
在上述组件中,使用者通常将与Test输入接口和Test输出接口连接。因此,我们将仅探索这两个组件。
在上述组件中,使用者通常将与Test输入接口和Test输出接口连接。因此,我们将仅探索这两个组件。
测试输入接口
可以以不同方式提供测试输入。但是,这完全取决于我们针对此框架所针对的消费者类型。
l XML,Excel等文件;诸如测试数据字段,测试步骤,数据类型之类的架构将由框架引擎定义,并且在提供测试输入时必须遵循该架构。
l 基于GUI的输入,您将在其中提供相关的测试字段,以便使用者可以提供所有测试详细信息以执行。
l 基于可视化编辑器的输入,消费者可以以流程图的形式提供这些输入(支持基本逻辑,例如条件和循环)。实际上,这是提供输入接口的最流行的方式,尽管开发这种接口比较耗时。
需要提供的典型功能集是:
l 能够根据测试类型,测试优先级等对测试用例进行分组。
l 必须能够创建自定义测试套件以运行冒烟和回归测试,选择性测试等。
l 测试与平台无关的输入。
l 能够多次执行单个测试用例。
l 我们应该能够针对不同的测试值执行单个测试用例。
l 能够针对特定的测试步骤或测试用例启动另一个可执行文件。例如,与Jenkins的接口以自动启动测试执行。
l 测试执行和输出日志记录的配置。示例:超时。
l 设置“测试脚本库”以确保在必要时可在团队和项目之间重复使用。
l 能够从过去创建的模板中导入测试数据输入。
l 准备导入测试用例文档并将其映射到测试数据输入。记住“可扩展性”设计目标。是的,这是迈向更高水平自动化的第一步!
测试输出接口
从无脚本自动化的角度来看,您还必须确保能够以无缝方式查看测试执行结果,而无需编写特殊代码。
需要提供的典型功能集是:
l 能够查看测试结果,测试日志,框架日志等。
l 生成各种测试报告和仪表板。
l 能够根据特定要求创建自定义报告。
l 必须能够在运行时通过GUI传输测试结果。
l 能够与标准测试用例管理工具对接。
l 应该能够以不同格式(例如Excel,doc,pdf等)导出测试结果,报告和仪表板。
l 能够针对特定要求(例如性能测试工程等)过滤和解析测试日志。
l 提供将所有测试数据(结果,日志,选择性数据点)推送到高级模块(例如分析)的功能。记住“可扩展性”设计目标。是的,这是迈向更高水平自动化又迈出的第一步!
关于无脚本自动化的神话
以下是有关此框架的一些误解。
#1)SAF是100%无脚本的:实际上,这不是100%正确的。尽管目标是使其100%无编码,但实际上不可能实现这一壮举。
这样做的主要原因是被测应用程序(AUT),技术和用于开发软件的编程语言中存在各种复杂性。因此,我们提到的设计目标之一是为定制提供灵活性。
#2)使用SAF,测试人员不需要任何编程或编码知识:再次,这不是100%正确。实际上,它们确实需要一些编程和逻辑技能的基本概念。
对于基于Web或移动的应用程序,测试人员还需要了解对象和类的基础知识,这些对象和类需要作为自定义脚本的一部分包含在内。
实际上,有些工具(例如TestCraft)不需要QA专业人员来拥有编码知识。它们的拖放功能以及即时运行功能使任何人都可以了解如何运行测试。
#3)SAF完全取决于记录和回放,可以依靠:否。记录和回放只会为用户提供一个工作脚本,该脚本具有输入和流的硬编码值,必须稍后对其进行自定义。
无论如何,它都不涵盖用户输入和测试步骤的所有可能情况。
无脚本示例
为了便于理解,下面给出了一些无脚本自动化的示例。
#1)这是一个测试执行示例
- 开启网页
- 在用户名字段中输入用户
- 在密码字段中输入密码
- 点击登录按钮
以上每个都是无脚本框架支持的关键字。
作为测试人员,您只需传递如下所示的值:
打开网页 “ www.linkedin.com”
Enteruser dummyuser
Enterpassword dummypwd,mask = true
单击“登录”
斜体字是接受参数以执行操作的关键字。
注意: EnterPassword接受2个参数。第二个是标志,用于指示在密码字段中键入字符时的掩码。
#2)假设您要自动执行付款交易流程:
l 选择账户类型
l 输入购买商品的金额
l 输入密码
l 打印收据
SelectAccount信用
EnterAmount INR1000
EnterPIN 1234,mask = true
PrintReceipt Customercopy = false,Merchantcopy = true
斜体字是接受参数以执行操作的关键字。
注意: EnterPIN接受2个参数。第二个是标志,指示在PIN输入字段中键入时PIN数字的掩码。PrintReceipt也有2个参数。
如果您注意到上面的流程,这就是典型的交易流程。您可以将整个流程用作各种测试用例的“事务测试模板”。这是使测试人员易于生成测试步骤和测试输入的方式。
关键字,关键字组和基于流的关键字的可重用性可以在无脚本自动化框架(SAF)中完成
结论
通过本文,您将发现开发无代码或无脚本的自动化框架是一项具有挑战性且同样有趣的任务。
您可以为任何类型的应用程序测试开发此类框架,即基于Web的,移动应用程序,Web服务,GUI,数据库,嵌入式设备应用程序等。
但是,应格外小心地开发稳定,可靠和高性能的工具。这只是警告,选择正确的技术和脚本/编程语言来开发一个奇妙而有用的框架。