关键字驱动测试框架及示例

⚡ 智能摘要

关键字驱动测试通过映射将测试逻辑与自动化代码分离。ping 将简单语言关键字转换为可重用函数,以便测试人员可以通过电子表格设计、维护和扩展自动化测试套件,而不是为每个单独的测试用例编写脚本。

  • ???? 关键词基础知识: 每个操作,例如打开浏览器、点击或输入文本,都会成为一个自描述的关键字,并由一个特定的函数支持。
  • 🧩 四个基本组成部分: Excel 表格、函数库、数据表和对象库将步骤、对象、操作和数据分开存储。
  • 📊 表格驱动设计: 测试人员以带参数的关键字行形式编写测试用例,因此编写测试不需要脚本语言知识。
  • ⚙️ 驱动程序脚本执行: 驱动脚本读取每个关键字,调用映射的函数,并将结果写回表格。
  • 🧪 工具选择: HP QTP, SeleniumRobot Framework 和所有其他框架都能解释关键字表,而无需自定义解析。
  • 框架契合度: 混合设置将关键词与数据驱动的输入相结合,以扩大覆盖范围,而无需重复任何测试步骤。
  • 🚧 预留间接费用: 前期关键词设计和库维护需要花费实际时间,因此要保持词汇量精简,并在每次发布时进行审查。

什么是关键字驱动测试?

关键字驱动测试 是一种脚本技术,它使用数据文件来包含与被测试应用程序相关的关键字。这些关键字描述了执行特定步骤所需的一组操作。

关键字驱动测试由高级关键字和低级关键字(包括关键字参数)组成,用于描述测试用例的动作。它也被称为表驱动测试或基于动作词的测试。

关键字驱动框架 是围绕该技术构建的功能自动化测试框架。它将测试用例分为四个不同的部分,以便将编码与测试用例和测试步骤分离,从而更好地实现自动化:测试步骤本身、这些步骤作用的对象、对这些对象执行的操作以及提供给这些操作的数据。

在关键字驱动测试中,首先确定一组关键字,然后关联与这些关键字相关的操作(或功能)。在这里,每个测试操作(如打开或关闭浏览器、鼠标单击、按键等)都由关键字描述,例如 打开浏览器,点击,Typtext 等等。

下图展示了两个普通的业务操作如何转化为可重用的关键词。 例如:

  1. 登录 到“guru99”网站 – 关键字“login”将用于我们的自动化框架,以测试与其相关的登录功能或操作。
  2. 注销 到“guru99”网站—关键字“logout”将用于我们的自动化框架,以测试与其相关的注销功能或操作。

文章后面会有更多示例。模式始终不变:一个业务操作、一个关键词、一个函数。

关键词示例

下面列出的词汇表包含了银行应用程序的典型关键词以及每个关键词触发的业务操作。

关键词 描述
登录 登录guru99银行演示网站
电子邮件 发送邮件
登出 从 guru99 银行演示站点注销
通知 查找未读通知

💡提示: 关键词应以业务操作命名,而非技术步骤。“登录”关键词在页面重新设计后仍然有效;而“点击蓝色按钮”关键词则无效。

关键词驱动框架的组成部分

了解关键词只是成功的一半。要创建一个关键词驱动的框架,你需要组装一组小型文件,每个文件负责一个关注点。

  1. Excel表格 – 找出关键词,并将它们存储在 Excel 表格中,每行代表一个测试步骤。
  2. 函数库 – 包含业务流程所需的功能(例如任何网站的登录按钮)。执行测试时,它会从 Excel 表格中读取关键字并相应地调用函数。
  3. 数据表 – 存储应用程序中使用的测试数据,以便一个关键字可以针对多个输入运行。
  4. 对象库 – 保存关键字所涉及的每个元素的定位器,因此更改定位器只需在一个地方进行编辑。
  5. 测试脚本 你可以拥有 测试脚本 每本手册 测试用例 或者一个单独的驱动程序脚本。
  6. 驱动脚本 – 逐行遍历 Excel 表格,将每个关键字与函数库进行匹配,并记录结果。
  7. 自动化工具 – 对应用程序执行已解析的命令并提供报告层。

这七件作品共同构成了一个完整的 测试自动化框架为什么选择这种设计?

为什么进行关键字驱动测试

在软件工程中,关键字驱动测试是由于以下原因进行的

  • 标准库处理的通用组件
  • 使用这种方法,可以编写更简洁的测试用例。trac方式
  • 高度可重用
  • 脚本的细节对用户隐藏
  • 用户不必使用脚本语言
  • 测试简洁、可维护、灵活

由于关键字层会吸收应用程序的变化,因此会产生大量影响。 回归测试 通过编辑少量函数而非数百个脚本,该套件就能保持绿色运行。这种理念决定了该方法的具体应用方式。

如何进行关键字驱动测试

关键字驱动测试既可以手动进行,也可以自动化进行。但通常情况下,它与自动化测试结合使用。

自动化关键词驱动测试的目标是

  • 有助于降低维护成本
  • 避免重复规范
  • 更好地重用函数脚本
  • 更好的测试支持和可移植性
  • 用更少甚至相同的努力实现更多的测试

借助关键词驱动测试,您可以创建简单的测试用例。 功能测试 在开发初期,需要对应用程序进行分阶段测试。编写关键字驱动测试最简单的方法是录制测试过程。录制完成后,可以根据需要修改和定制测试。

每个关键字都需要与至少一个命令、测试脚本或函数关联,以实现与该关键字相关的操作。

当执行测试用例时,关键字由测试库解释,并由测试自动化框架调用。

关键词驱动测试的主要活动包括:

  • 步骤1) 识别低级和高级关键词
  • 步骤2) 将关键字实现为可执行文件
  • 步骤3) 创建测试用例
  • 步骤4) 创建驱动程序脚本
  • 步骤5) 执行自动化测试脚本

步骤 1 和 2 是一次性设计工作;步骤 3 到 5 在每个迭代周期中重复,如下示例所示。

示例测试用例

这三个场景都重复使用了前面定义的相同关键词。

  1. TC_01:登录 guru99 演示站点,查看今天进行了多少笔交易
  2. TC_02:登录 guru99 演示站点,向您的一位客户发送电子邮件,然后注销
  3. TC_03:登录 guru99 演示站点并检查是否收到任何通知

TC_02 以关键字表的形式编写,变成六行数据,任何测试人员无需打开代码即可读取或重新排序:

步骤 关键字 争论 预期结果
1 打开浏览器 铬系列 浏览器会话开始
2 登录 mngr123 / demopass 显示经理主页
3 电子邮件 customer@example.com 打开撰写窗口
4 点击 发送 “Mail 已发送”
5 登出 会议结束
6 关闭浏览器 浏览器发布

互换ping 步骤 3 中的论证将相同的六行数据转换成了不同的测试,这就是问题所在。 测试数据 管理得当终有回报。

关键字驱动测试的优点

  • 它允许功能测试人员在应用程序准备就绪之前规划测试自动化
  • 无需编程知识即可开发测试
  • 它不依赖于特定的编程语言或工具
  • 与市场上任何自动化工具兼容

这些优势解释了为什么关键词驱动测试适合长期用户。 自动化测试 套房。价格也很重要。

关键词驱动测试的局限性

腹肌trac关键字驱动测试虽然易于阅读,但也增加了构建成本。在第一次测试运行之前,必须有人识别关键字,将每个关键字实现为一个函数,连接对象库,并编写驱动脚本。对于小型项目来说,这种设置的成本甚至高于直接编写测试脚本。

维护是第二大成本。由于所有测试都共享同一个库,因此一次不慎的修改就可能导致整个测试套件崩溃。此外,库还会不断膨胀:团队会添加诸如“Login”、“SignIn”和“DoLogin”之类的几乎重复的条目。

  • 初期投资高 – 框架设计和关键字实现先于任何测试运行。
  • 灵活性降低 – 测试人员只能表达现有关键字允许的内容,因此不寻常的场景需要开发。
  • 复杂逻辑的笨拙之处 分支和环路不利于形成扁平的表格行。
  • 仍然需要技能。 – 关键字层是无代码的,而函数库则不是。

⚠️警告: Rev每次发布新版本时都要检查关键字库,并删除未使用的条目。不受控制的词汇表是关键字驱动框架被弃用的最常见原因。

以下的比较基于以下权衡取舍。

关键词驱动框架、数据驱动框架和混合框架

关键词驱动和 数据驱动测试 解决不同的问题。数据驱动框架通过改变固定脚本的输入来解决问题;关键词驱动框架则通过改变步骤来解决问题。表格中还列出了大多数企业团队采用的混合模型。

方面 关键字驱动框架 数据驱动框架 混合框架
外部化 测试步骤和操作 仅供测试数据 步骤和数据
规划工作 广泛而精确 仅限于数据和脚本 最高
维护 更轻松,更多腹肌trac离子层 更硬,腹肌trac浓度更低 规模化最容易
需要编程技能 仅适用于函数库 每个脚本都需要 核心层所需
可以在建造之前开始 没有

在实践中,这些风格是可以结合的。混合框架将步骤存储为关键字,并将输入存储在数据表中,通常会跨越多个步骤。 页面对象模型当许多测试人员编写测试时,选择关键字驱动;当一个流程需要许多输入时,选择数据驱动;当两者都适用时,选择混合驱动。

关键字驱动测试使用的工具

关键词驱动测试广泛使用多种工具,每种工具对关键词表的解释方式都不同。

  • HP QTP – 内置关键字视图,因此表格和可执行测试是一个整体。
  • Selenium – 没有原生关键字层,因此团队需要自己构建函数库和驱动脚本。
  • 机器人框架 – 一个围绕关键词设计的开源引擎,采用表格语法,并提供许多现成的关键词。
  • TestNG – 通常与 Selenium 对关键词映射方法进行排序并生成报告。

我们的名单 自动化测试工具 涵盖每种方案的许可和平台支持。

常见问题

AI助手可以根据用户故事生成关键词名称,并搭建匹配框架。 Selenium 方法,这消除了大部分设置工作。ping仍然需要人工确认业务词汇并验证生成的每个定位器,然后才能信任该套件。

它减少问题而非消除问题。自愈引擎会在定位器出错时根据周围属性重新识别元素,从而减少日常修复工作。但仍然需要存储库治理,因为即使定位器已修复,如果其匹配的元素与实际元素不匹配,也会掩盖真正的缺陷。

不。两者都将代码隐藏在易读的步骤之后,但 BDD 工具(例如) Cucumber 使用Given-When-Then语句进行需求协作。关键字驱动测试使用表格化的动作词,以便在自动化测试套件中重复使用。

尽量精简词汇表,通常每个业务流程只包含几十个底层操作和一个高级关键词。如果两个关键词描述同一个操作,请立即合并;重复的关键词会让词汇表难以维护。

是的。将关键字表与函数库一起提交到版本控制系统中,然后让构建服务器调用驱动脚本。诸如此类的运行器 TestNG 手柄组ping 并生成报告,以便将失败结果与单元测试结果一起显示在同一个构建报告中。

总结一下这篇文章: