什么是关键字驱动测试?
敏捷和DevOps日益增长的需求改变了传统测试的整体概念。现在,公司需要具备多种技能的测试人员,以及更多该领域的经验。团队需要操作灵活的自动化测试工具,以立即创建可维护且可扩展的UI测试。
测试人员使用一系列操作来构建自动化的UI测试。每个测试都包含关键字来模拟用户的操作,例如单击鼠标或按下键盘上的键。通过像TestComplete这样的关键字驱动测试工具,即使没有脚本编写知识,您也可以通过简单的拖放操作创建可重用的自动化测试。
什么是关键字驱动测试?
关键字驱动测试指的是一种测试方法,它允许测试人员将测试用例设计与测试开发分离。因此,它为测试自动化过程中更多专业的投入打开了大门。它是功能自动化测试框架的一部分,该框架被称为表驱动测试或基于动作词的测试。
关键字驱动的测试包含一系列可以像其他测试一样重复使用的关键字。
关键字序列是一个包含关键字组合的关键字。它允许您精确地排列测试,并以更少的精力维护它们。
简单来说,关键字指的是您可以使用各种工具和编程语言(如.NET或Java)实现的对测试对象的动作/操作的组合。
通常,每个函数的关键字或动作词都以表格格式(如电子表格)记录。关键字驱动框架的标准形式是将测试用例分为四个部分 - 测试步骤、对象、动作和数据。
测试步骤 - 它包含将在测试对象上执行的操作的简短描述。
测试对象 - 它包含网页元素的名称,例如用户名、密码等。
动作 - 它指的是动作的名称,例如点击、打开浏览器、输入等。
测试数据 - 数据包含对象执行任何操作所需的值,例如用户名字段的用户名值。
关键字驱动方法将编码与测试用例和测试步骤分离,以便即使是非技术人员也可以理解自动化过程。它也使手动测试人员更容易编写自动化脚本。关键字驱动测试也需要自动化测试人员的存在。为了使测试工作,您需要一位经验丰富的技术编码人员定期设置测试框架并在后台更新自动化代码。
通常,一个自动化团队需要两名手动测试人员和一名自动化编码人员。
数据驱动和关键字驱动框架的区别
| 关键字驱动框架 | 数据驱动框架 |
|---|---|
| 由于在测试数据、关键字、脚本等之间存在更多抽象层,因此易于管理。 | 与关键字驱动框架相比,管理起来稍微困难一些,因为抽象是测试脚本和测试数据之间唯一的要素。 |
| 开发框架需要进行精确的计划。 | 只需要测试数据和测试脚本,因此计划很容易。 |
| 测试人员可以在产品完成开发阶段之前编写测试脚本。 | 测试人员无法在完成开发过程之前编写测试用例。 |
关键字驱动框架所需的组件
Excel 表格 - 用于存储测试用例的数据
对象库 - 用于存储网页元素的定位器值
函数库 - 用于创建执行操作的函数
测试数据表 - 用于存储对象内部的数据值
Selenium - 用于设置环境。您也可以为此目的使用其他工具。
驱动脚本 - 用于与测试脚本交互
关键字驱动测试的优势
以下是关键字驱动测试过程的优势
轻松创建UI测试 - 它允许轻松创建自动化的功能UI测试,并在没有编程知识的情况下处理复杂场景。某些场景包括管理不需要的窗口、访问数据库信息等。
内置自动化框架 - 它使您可以创建易于管理且可扩展的自动化UI测试,并分离测试步骤、对象、测试数据和操作。即使您具备技术知识,也可以重复使用这些组件。
将关键字测试切换到脚本测试 - 它允许您一键将桌面、移动和Web关键字测试转换为脚本测试,这有助于快速进行GUI测试。使用像TestComplete这样的工具,您可以集成各种脚本语言,如Jscript、VB.NET、Python等。
在其他测试自动化项目中重复使用 - 您可以同时在多个项目中重复使用关键字驱动的测试。它允许您比其他方法更快地在不同的测试周期中执行自动化的UI测试。
如何执行关键字驱动测试?
您可以手动和自动进行关键字驱动测试。但是,大多数情况下它是通过自动化测试完成的。
它有助于 -
降低维护成本
重复使用函数脚本
创建更好的测试支持和可移植性
在更短的时间内进行更多测试
避免重复的规范
您可以通过关键字驱动测试创建简单的功能测试。这些测试在开发的早期阶段完成,用于逐块测试应用程序。您需要记录关键字驱动测试并根据您的要求对其进行修改或自定义。
您需要为每个关键字分配至少一个操作,其中涉及命令、测试脚本或函数。
测试自动化框架指的是在执行测试用例时解释关键字的测试库。
执行关键字驱动测试的五个步骤
步骤 1 - 识别低级和高级关键字
步骤 2 - 实现关键字
步骤 3 - 创建测试用例
步骤 4 - 创建驱动脚本
步骤 5 - 执行自动化测试脚本
结论 -
关键字驱动测试需要大量的计划,这既耗时又耗费资源。一旦完成,其余的测试过程就变得轻而易举。您可以使用 Selenium 或 HP QTP 等自动化工具来准备关键字驱动框架,即使您没有任何技术知识。
数据结构
网络
关系型数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP