Appium 运行 可以跨多个设备同时进行多个不同的测试吗?

Can Appium run multiple different tests concurrently across multiple devices?

我是 Appium/Selenium 并行测试的新手,我想知道是否可以 运行 在多个设备上同时进行不同的测试?我的团队需要减少我们 UI 测试的总 运行 时间,并且不关心影响这些特定测试的应用程序行为的不同 OS 版本。我一直在阅读许多帖子并试图寻找答案,但我在互联网上似乎只能找到关于如何 运行 在多个设备上并行进行相同测试的文章、教程和论坛。

我可以 运行 在多个设备上同时进行不同的测试而无需手动启动不同的测试吗,或者这是 Appium 的限制?理想情况下,这将使用开源解决方案来实现。

(由于其他工具的特定限制,目前我们正在尝试使用 JUnit 方法进行测试。所有测试都在 Java 中编写。)

感谢您的宝贵时间。

你问的,基本上是不可能的。

您不能 运行 在不同的设备上使用不同的测试用例。

尽管您可以使用 Hive 或 Browserstack 或 AWS device farm 运行 在广泛的设备上使用相同的测试用例。

希望对您有所帮助。

根据您的设置,您可以完成此操作。但是,您或您的团队自定义需要设置很多构建自动化和设备管理,因此您将无法使用开箱即用的解决方案来执行此操作。

我已经用 Selenium 和 Appium 完成了相同的工作——您将需要一个允许使用参数执行测试的测试框架,并且您的设备将需要连接到单独的 USB 集线器,每个集线器都有自己的虚拟集线器服务器已连接。

使用 NUnit,这是我的方法:

  • 为我想要的每组不同的测试生成 .txt 文件 运行 -- test_list_1.txt, test_list_2.txt,等等。每个列表包含一组不同的测试用例 运行。
  • 编写构建脚本以从头开始清理和构建您的项目 -- 对于 C#,我使用 Cake。
  • 在 Jenkins 中设置一个作业来执行您的构建脚本并调用 NUnit 的控制台 运行ner,它采用 test_list 作为参数。这将启动针对测试用例列表的测试执行

您应该能够针对您想要的任何测试列表构建您的 Jenkins 作业,因此您现在能够运行您的自动化针对不同的测试,如您的问题描述中所述。

将您的虚拟机(连接到您的 Appium 设备)连接到 Jenkins,并将它们添加为您作业的执行者。现在你有多台机器来 运行 你的工作。

通过此设置,您可以 运行 拥有多少台机器就可以完成多少作业 -- 4 个虚拟机意味着 4 个作业,这意味着您可以同时 运行 4 组不同的测试用例。

我的设置完全是自定义的——我使用了某些工具来完成各个步骤,但它满足了我们的需要,我们确实完成了针对不同测试用例集的并发执行。

您可以 运行 通过创建多个 appium 服务器实例在多个设备上进行本地测试。每个 Appium 服务器都应该 运行ning 在不同的 ip 和代理地址上。因此,您应该相应地为每个实例设置您的功能。 但也有另一种解决方案,但这有点昂贵。即 AWS Device Farm。 AWS 提供了多个托管在服务器上的真实设备,您可以使用这些设备来执行您的定制测试服。他们最初提供 1000 分钟的免费测试时间。您必须为您的测试脚本创建一个 Maven 项目。我更喜欢使用 testng 而不是 Junit。