无法 运行 在 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
我想在多个设备上执行测试脚本(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