【问题标题】:How to run each tests on multiple mobile device in parallel using TestNG, Java and Appium?如何使用 TestNG、Java 和 Appium 在多个移动设备上并行运行每个测试?
【发布时间】:2021-05-25 11:09:57
【问题描述】:

我有 5 台移动设备,我想在所有设备上运行我的自动化移动应用测试用例以检查兼容性。为此,我需要同时在所有 5 台设备上运行每个测试。因此,如果我有 10 个测试用例,每个测试用例都将在所有设备上运行,总计数为 50。

我正在动态创建设备池。该池将具有连接到主机的设备。因此,在运行测试用例之前,它不会对设备 UDID 有任何事先了解。我知道要为此创建多个 Appium 会话。问题是我需要根据连接的设备数量为每个测试用例创建多个副本,然后在所有设备上运行每个测试用例。

例子:

@Test
public void test1(){
}
@Test
public void test2(){
}

设备池连接了 5 台设备。现在我希望 test1() 在每台设备上运行。同样,它适用于 test2()。我可以创建多个 Appium 会话并从设备池中分配一个设备。问题是如何在 TestNG 的运行时复制测试方法。

我在 TestNG 中找不到任何直接的方法。有没有可能实现?如果是,任何示例都可以。

【问题讨论】:

    标签: java testng appium


    【解决方案1】:

    您必须为每个设备启动多个 appium 会话。 另外,请按照以下链接进行详细操作。

    https://www.toolsqa.com/mobile-automation/appium/appium-parallel-execution-using-testng/

    【讨论】:

    • 我正在动态创建一个设备池,我想将池中的设备分配给测试用例。您提供的上述链接仅在您在运行测试用例之前已经知道设备 UDID 时才有效。
    • 您使用的是哪个设备池?在运行之前,我假设您已了解有关设备池中存在的设备的所有信息。
    【解决方案2】:

    如果您使用的是 maven 和 TestNG - 那么您应该了解带有测试套件的 .xml 文件。尝试实现IAlterSuiteListener 并使用测试文件更改您的.xml。 Test NG 允许以各种方式分离线程: 例如,对于 3 台设备,您可以通过这种方式运行 1 次相同的测试:

    1. 使用测试创建 TestNG .xml 文件
    2. 在此 xml 中指定 - 实现 IAlterSuiteListener 的侦听器
    3. 在运行时使用监听器更改xml文件,可以检测连接设备的数量(等于线程数),因此您可以设置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>
    

    阅读 documentation 关于 Appium 中的并行性 1: https://www.javadoc.io/doc/org.testng/testng/6.11enter 代码在这里/org/testng/IAlterSuiteListener.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-10-21
      • 2014-10-16
      • 1970-01-01
      • 2020-03-06
      • 2020-11-06
      • 2017-07-22
      • 2015-07-10
      • 2016-07-18
      相关资源
      最近更新 更多