无法 运行 在 Android 中使用 Selenium Grid(Appium) 进行并行测试?

Unable to run parallel tests with Selenium Grid(Appium) in Android?

我想在多个设备上执行测试脚本(Android)。当我使用 JUnit 运行 我的 java class 我只能在一个设备上执行。如何同时在多个设备上执行。

如有任何建议,我们将不胜感激。

TestNG.xml 文件

<suite name="Default suite" thread-count="2" parallel="tests">
<test name="Nexus">
<Parameters>
<parameter name="platform" value="Nexus"/>
<parameter name="browsername" value="Android"/>
 <parameter name="udid"  value="xyz" />
<parameter name="remoteurl" value="http://0.0.0.0:4723/wd/hub"/>
</Parameters>
<classes>
<class name="AppiumTest">
<methods>
<include name="Test1"/>
<include name="Test2"/>
<include name="Test3"/>
</methods>
</class>
</classes>
</test>
<test name="Moto E">
<Parameters>
<parameter name="platform" value="Moto E"/>
<parameter name="browsername" value="Android"/>
<parameter name="udid"  value="abc" />
<parameter name="remoteurl" value="http://0.0.0.0:4726/wd/hub"/>
</Parameters>
<classes>
<class name="AppiumTest">
<methods>
<include name="Test1"/>
<include name="Test2"/>
<include name="Test3"/>
</methods>
</class>
</classes></suite>

在第一个测试启动后再启动另一个测试。当然每个测试必须指向不同的设备。

如果您使用 testNG 而不是 JUnit,您可以使用 testng.xml 文件创建一个测试套件,该文件应如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<suite name="Suite" parallel="tests" thread-count="2">
  <test name="Nexus 7">
    <parameter name="udid"  value="XXXX" />
    <classes>
      <class name="testNG.TestOne"/>
    </classes>
  </test> <!-- Test -->
  <test name="HTC desrire">
    <parameter name="udid"  value="XXXX" />
    <classes>
      <class name="testNG.TestOne"/>
    </classes>
  </test> <!-- Test -->
</suite> <!-- Suite --> 

声明并行测试线程数为 2 允许在不同的设备上并行完成两个测试。

从这里您需要做的就是使用每个设备的功能配置 Selenium Grid 节点,并在您的测试脚本中使用通过 testng.xml 传入的 udid 参数.

希望对您有所帮助。

尝试应用下面显示的概念 thread.It 使用 selenium 中的网格概念在 parallel.By 中启动两个 appium 会话,这样我们可以 运行 我们的脚本在两个 android 设备。

https://discuss.appium.io/t/connecting-appium-server-to-selenium-grid-for-android/804/10