首先,这一切都始于我们的测试经理在项目开始时抱怨他没有足够的能力来全面测试计划用于第一个版本的软件的所有计划功能。当然,测试经理几乎总是抱怨缺乏支持。然而,在这种情况下,考虑到测试人员的角色有一半,再加上测试经理本人,我们不得不同意他的观点。
然而,我们不得不拒绝他的要求,即开发人员手动单击应用程序,并由精心构建的 HP ALM 测试计划精心策划。最终,代码应该按时交付,并且应尽可能多地实现已打包的待办事项中的故事。出于这种必要性,我们决定做出妥协:开发人员应该通过 UI 自动化大部分测试用例。其余的应该由一名半测试人员手动完成。
由于我们的项目是一个 Web 应用程序,因此我们需要一个框架:
可以远程控制不同的浏览器,
批量自动工作,
使用一种语言描述了测试用例,使得可以从 HP ALM 中逐段重新创建测试步骤并在以后识别它们,
不应产生任何许可费。
我们选择了 Cucumber 和 Selenium 这两个开源组件的组合,我们将在下面对此进行描述。首先举个例子。
介绍性例子
在每个基于 Maven 的 Cucumber 项目中,在“resources”下,项目根目 直接移动潜在客户电子邮件列表 录下有一个名为“features”的目录。所有 Cucumber 功能都存储在那里。功能文件包含用简单语言对测试场景进行的高级描述。这种简单的文本语言被称为 Gherkin。除了标准的“英语”之外,Gherkin还支持许多其他语言。在我们的项目中,选择“德语”作为语言,以便尽可能接近 HP ALM 模板。
@测试登录
场景平面图:校园登录成功
假设我在校园页面
我输入“<电子邮件>”和“<密码>”作为登录详细信息
然后我点击“登录”按钮
然后我看到校园页面的主页,上面有欢迎文字
示例:
以下是各组件的简要说明:
标签:可以选择对场景或场景平面图进行标记,启动测试套件时,可以选择传递标签来专门执行或排除部分场景。
场景或场景平面图(场景或场景模板):场景描述特定测试用例的步骤和预期结果。如果选择“场景平面图”,则可以使用数据表对场景进行参数化,从而多次执行。在我们的示例中,场景运行了两次,并测试的登录。
给出:它指定要执行的文本的上下文。
When:指定要执行的测试操作
And(和):该组件指定另一个测试动作
然后:测试的预期结果可以用“Then”来表示。
示例:这个关键字有点不幸,因为这些是运行时使用的场景平面图的参数。
关键字“假定”、“如果”、“并且”、“那么”可以在场景中以任意顺序出现任意次数。
正如您所看到的,由于口语中的部分句子,即使对于非开发人员来说,这些功能也很容易阅读和编写。您可以想象这里的分工是由开发人员提供场景大纲,并由测试团队或业务分析师在“示例”部分中进行参数化。
架构说明
在讨论示例中的 Java 代码之前,我们想向您展示各个代码片段如何协同工作。
序列图中代码部分的交互
该序列图显示以下内容:
TestRunner 在定义的资源路径(可能受标签限制)中查找所有功能文件并执行它们包含的步骤。
使用 Cucumber 和 Selenium 进行 UI 测试
-
- Posts: 261
- Joined: Sat Dec 21, 2024 5:23 am