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

Dev*_*ter 1 selenium-grid appium

我想在多个设备(Android)上执行测试脚本.当我使用JUnit运行我的java类时,我只能在一个设备中执行.如何一次在多个设备中执行.

任何建议将不胜感激.

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>
Run Code Online (Sandbox Code Playgroud)

Lia*_*ris 5

如果使用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 --> 
Run Code Online (Sandbox Code Playgroud)

说明并行测试线程数为2允许在单独的设备上并行完成两个测试.

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

希望这可以帮助.