我有5个移动设备,我想在所有设备上运行我的自动化移动应用程序测试用例,以检查兼容性。为此,我需要在所有5个设备上同时运行每个测试。因此,如果我有10个测试用例,每个测试用例都将在所有设备上运行,这将使总数达到50。
我正在动态创建一个设备池。该池将具有连接到主机的设备。因此,在运行测试用例之前,它不会事先了解设备UDID。我知道要为此创建多个Appium会话。问题是,我需要根据连接的设备数量,以某种方式为每个测试用例创建多个副本,然后在所有设备上运行每个副本。
示例:
@Test
public void test1(){
}
@Test
public void test2(){
}设备池连接了5个设备。现在,我希望在每个设备上运行test1()。类似地,它也适用于test2()。我可以创建多个Appium会话并从设备池中分配一个设备。问题是如何在TestNG中复制运行时的测试方法。
在TestNG中,我找不到任何简单的方法来做这件事。有可能实现吗?如果是,任何示例都可以。
发布于 2021-02-23 18:13:38
您必须为每个设备启动多个appium会话。另外,请点击下面的链接,详细介绍相关内容。
https://www.toolsqa.com/mobile-automation/appium/appium-parallel-execution-using-testng/
发布于 2021-03-01 01:43:21
如果您使用的是maven和TestNG,那么您应该了解.xml文件和测试套件。尝试实现IAlterSuiteListener并使用测试文件更改您的.xml。Test NG允许以各种方式分离线程:例如,对于3个设备,您可以这样运行1个相同的测试:
thread-count并在循环中添加测试。suite name="Android Compatibility Tests" parallel="tests" thread-count="3"
<test name="Android Compatibility Test-1">
<classes>
<class name="tests.android_tests.AndroidCompatibilityTest">
</class>
</classes>
</test>
<test name="Android Compatibility Test-2">
<classes>
<class name="tests.android_tests.AndroidCompatibilityTest">
</class>
</classes>
</test>
<test name="Android Compatibility Test-3">
<classes>
<class name="tests.android_tests.AndroidCompatibilityTest">
</class>
</classes>
</test>在Appium 1中阅读关于并行性的documentation:https://www.javadoc.io/doc/org.testng/testng/6.11enter代码在这里/org/testng/IAlterSuiteListener.html
https://stackoverflow.com/questions/66328743
复制相似问题