4

我对 OpenTest 项目印象深刻。发现这个项目与我创建和从事的一些项目分享了多少想法非常有趣。就像你史诗般的架构,演员们拉着任务……还有很多其他的:)

您是否考虑过包括其他自动​​化技术来作为 Actors 的基础?我可以看到两个主要组:1 已建立测试自动化工具,如TestCafe(对非硒 gui 测试的支持可以充分利用整个解决方案) 2 特定任务所需的自定义工具。有一个具有某些特定领域能力的演员会很棒。现在,正如我所看到的,这可以通过引入另一层执行工作者来实现,该层由演员使用 rest api 调用。我的意思是使用/包含它们作为新的“演员类型”与自定义关键字相关的可能性。

4

1 回答 1

2

谢谢你的好话。我们花了很多时间思考 OpenTest 的架构和实现,看到人们理解和欣赏设计是非常有益的。

通过创建一个继承自 TestAction 基类并覆盖其 run 方法的新 Java 类,可以在不创建自定义测试参与者的情况下实现新关键字(测试操作)。举个简单的例子,你可以看一下延迟测试动作的实现。然后,您可以将新的测试操作打包到 JAR 中,并将其(连同任何依赖项)放在user-jars测试参与者工作目录的子目录中。测试参与者将动态加载它在其中找到的所有 JAR,并将找到新的测试操作类(使用反射),以便您可以在测试中使用它。一些有用的信息和需要注意的事项:

  • 您的 Java 项目将不得不定义对opentest-base项目的依赖(这是实现 TestAction 基类的地方)。
  • 当您将 JAR 复制到您的测试参与者所在的位置时,请确保将所有依赖项 JAR 连同它一起复制。请注意,您可能需要的许多依赖项已经包含在核心测试参与者二进制文件中(您可以查看POM.xml以了解它们是什么)。
  • 如果您碰巧有任何与包含在核心测试参与者二进制文件中的其他 JAR 冲突的依赖项,您可以应用一种称为着色的技术将冲突的类“隐藏”在不同的包名称下。大多数时候你不需要这个,但如果你这样做并且你被卡住了,请告诉我,我会给你一些指示。

下面的示例项目演示了如何构建一个创建几个自定义关键字的 OpenTest 扩展:https ://github.com/adrianth/opentest-extension-sample

这是一个关于创建自定义 OpenTest 关键字的广泛视频教程:https ://getopentest.org/tutorials/custom-keywords.html

于 2018-10-02T21:37:08.270 回答