When:指定要执行的测试操作

Master the art of fan database management together.
Post Reply
suchona.kani.z
Posts: 263
Joined: Sat Dec 21, 2024 5:45 am

When:指定要执行的测试操作

Post by suchona.kani.z »

给出:它指定要执行的文本的上下文。


And(和):该组件指定另一个测试动作

然后:测试的预期结果可以用“Then”来表示。

示例:这个关键字有点不幸,因为这些是运行时使用的场景平面图的参数。

关键字“假定”、“如果”、“并且”、“那么”可以在场景中以任意顺序出现任意次数。

正如您所看到的,由于口语中的部分句子,即使对于非开发人员来说,这些功能也很容易阅读和编写。您可以想象这里的分工是由开发人员提供场景大纲,并由测试团队或业务分析师在“示例”部分中进行参数化。

架构说明
在讨论示例中的 Java 代码之前,我们想向您展示各个代码段如何协同工作。


序列图中代码部分的交互

该序列图显示以下内容:

TestRunner 在定义的资源路径(可能受标签限制)中查找所有功能文件并执行它们包含的步骤。
小黄瓜步骤的散文表达必 法律信息销售 须与带注释的测试相匹配。
测试使用一个或多个页面对象,它们是应用程序 HTML 页面的 Java 等效项。
Selenium 在页面对象中使用,通过其各自的 Web 驱动程序对浏览器进行寻址。
完成示例
为了完成提到的示例,我们将向您展示测试和页面对象的 Java 代码:


J

这些方法和参数都是英文的,因为代码很可能会在国际团队中进一步开发。由于德国场景,Gherkin 注释参数采用德语。您可以清楚地看到场景中步骤的半句如何与注释匹配,并且可以使用正则表达式定义参数的占位符。

我们制定了一条规则,每个注释始终以“^”开始(在行首匹配)并以“$”结束(在行尾匹配),以便匹配的唯一性步数得到更好的保证。

“@Then”方法应始终至少有一个断言。

Java 代码页对象

每个类都继承自我们自己编写的 AbstractPage,其中隐藏了许多有用的方法(例如填充文本字段或单击 HTML DOM 中的对象)。

结论
我们希望在我们的博客文章中,我们能够以简单易懂的方式向您展示如何通过使用自动化 UI 测试来显着减少端到端测试的手动工作量(尤其是在发布之前)。使用 PageObject 模式可以实现高度的可重用性和可维护性。

当然,为了通过这样的测试套件获得预期的好处,还必须考虑一些事情:

测试套件绝对应该定期运行,否则您将忙于修复许多在交付增量(也称为“冲刺结束”)之前因修改而破坏的测试。
只要有可能,您就不应该使用样式类作为选择器,而应该使用您自己的 HTML 属性,例如我们示例中的“data-testing-id”。
应用程序所基于的测试数据库必须保持稳定,或者仅当预期值同时包含在特征文件中时才可能发生变化。
总的来说,您可以说使用 Cucumber 和 Selenium 作为我们测试套件的基础节省了大量资源,并且实际上发现了否则可能不会这么快发现的错误。至少我们的测试经理很高兴——你还想要什么呢?

您想了解更多关于 adesso 世界中令人兴奋的话题吗?那么请看一下我们之前发布的博客文章。
Post Reply