【问题标题】:Appium - Parallel Execution (Grid)Appium - 并行执行(网格)
【发布时间】:2019-09-27 15:42:32
【问题描述】:

有没有办法像 selenium 网格一样在 appium 中运行并行测试? appium中如何设置不同的节点?

【问题讨论】:

    标签: selenium parallel-processing appium


    【解决方案1】:

    问题在于,appium 只使用 iosSimulator 或 Genymotion VM,并没有真正设计为在这样的一台机器上并行运行。但是,您可以设置多个运行自己的 appium 实例的虚拟机(我觉得这会很慢,但理论上是一种选择),或者使用 BrowserStack、Sauce Labs 或类似的东西来一次运行多个测试.

    【讨论】:

    • 我正在使用 Appium 和 Genymotion 并并行运行两个模拟器。它非常容易设置,并且运行多个 VM 不应该影响 appium 功能,可能会减慢系统速度。与 Genymotion 相比,酱实验室和浏览器堆栈确实非常慢。
    【解决方案2】:

    是的,我们可以像 Selenium 一样使用 GRID 概念实现并行执行。

    你需要通过在你的json文件中放置以下内容来启动节点

        { "capabilities": 
        [ 
        { "browserName": "<e.g._iPhone5_or_iPad4>",
         "version":"<version_of_iOS_e.g._7.1>",
         "maxInstances": 1, 
         "platform":"<platform_e.g._MAC_or_ANDROID>" 
        } 
        ],
         "configuration":
         { 
        "cleanUpCycle":2000, 
        "timeout":30000, 
        "proxy": "org.openqa.grid.selenium.proxy.DefaultRemoteProxy", 
        "url":"http://<host_name_appium_server_or_ip-address_appium_server>:<appium_port>/wd/hub",
       "host": <host_name_appium_server_or_ip-address_appium_server>,
       "port": <appium_port>,
       "maxSession": 1,
       "register": true, 
      "registerCycle": 5000,
      "hubPort": <grid_port>,
      "hubHost": "<Grid_host_name_or_grid_ip-address>"
         } }
    

    看这篇帖子http://qaautomationworld.blogspot.in/2014/11/appium-remote-execution-grid-execution.html

    【讨论】:

    • 你是使用junit还是testng或者cucumber来并行执行测试?
    【解决方案3】:

    我们可以使用 TestNg 来实现,也可以使用多线程来实现。

    在 selenium Grid 中需要运行一个 Hub 和不同的节点,但在这种情况下,您在不同的 2 端口运行多个 Appium 服务器

    【讨论】:

    • 这是我在上一家公司使用的方法...使用在不同端口上运行的多个 Appium 服务器并将其与 SeleniumGrid 结合使用。它可能在 Android 上(运行 appium 服务器的 Linux 或 Unix 类机器)。但在 iOS 上仍然无法做到这一点,因为 iOS 在使用真实设备或模拟器运行自动化测试时只使用一个实例 Instrument。
    【解决方案4】:

    以下命令可用于启动多个 Appium 服务器

    appium -p 10000 # server 1
    appium -p 10001 # server 2
    

    【讨论】:

      【解决方案5】:

      你可以参考这个parallel test with appium & selenium grid

      至于在 Grid 中运行 Appium 的步骤如下

      Step1: add the Appium in Environment Vairable 
      Step2: Run the Grid for Hub  
      Step3: Run the Appium through command prompt using the selective commands 
      Step4: Run you java code through Maven command 'mvn'
      

      【讨论】:

        【解决方案6】:

        为了通过 Appium 实现并行测试,我使用了 Selenium Grid 和 TestNG 以及 Appium。

        步骤:

        1. 启动 Selenium 服务器。 (这将是 Selenium Grid 的中心)
        2. 在默认端口上启动 Appium 服务器(这将是 appium 网格配置的中心)
        3. 现在在不同的端口上,使用 TestNG.xml/Properties 文件中定义的匹配功能初始化节点(Node1、Node2)。 (两个节点配置必须在单独的 json.cfg 文件中定义)
        4. 在 testNG.xml 中添加一个参数为 parallel="tests"。

        确保已连接具有匹配功能的设备/模拟器。

        【讨论】:

          猜你喜欢
          • 2021-10-18
          • 1970-01-01
          • 1970-01-01
          • 2016-09-25
          • 1970-01-01
          • 2020-09-30
          • 2019-12-13
          • 2020-03-01
          • 2023-03-31
          相关资源
          最近更新 更多