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

时间:2019-10-17 14:01:24

标签: selenium appium selenium-grid appium-android appium-ios

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

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

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

感谢您的时间。

3 个答案:

答案 0 :(得分:0)

您要问的是,基本上不可能。

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

尽管您可以使用Hive或Browserstack或AWS设备场在各种设备上运行相同的测试用例。

希望这会有所帮助。

答案 1 :(得分:0)

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

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

使用NUnit,这是我的方法:

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

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

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

通过此设置,您可以运行与计算机数量一样多的作业-4个VM意味着4个作业,这意味着您可以同时运行4组不同的测试用例。

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

答案 2 :(得分:0)

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

相关问题