【问题标题】:Queueing sessions for AppiumAppium 的排队会话
【发布时间】:2019-09-19 04:07:47
【问题描述】:

我正在尝试使用 Selenium Grid 和 Appium (v1.13.0) 创建一个简单的设备场(目前优先考虑 Android),我需要一些帮助来为 Appium 排队测试运行。

例如,我在集线器上有 2 个 Appium 节点(使用 2 个 android 模拟器运行),我希望测试运行将排队等待节点,如果有 2 个测试运行指向一个节点,那么稍后的测试运行将必须等待第一个完成才能在该节点上启动。

目前,根据我的设置,稍后的测试运行将中断第一个(强制终止)而不是等待。

下面是我的一个节点的json文件,不同的节点会有不同的deviceNameport

{
    "capabilities":
    [
        {
            "browserName":"Nexus 5X",
            "platform":"Android",
            "version":"9",
            "maxInstances":1,
            "deviceName":"Nexus 5X"
        }
    ],
    "configuration":
    {
        "cleanUpCycle":2000,
        "timeout":30000,
        "proxy":"org.openqa.grid.selenium.proxy.DefaultRemoteProxy",
        "maxSession":1,
        "url":"http://127.0.0.1:4741/wd/hub",
        "host":"127.0.0.1",
        "port":4741,
        "register":true,
        "registerCycle":5000,
        "hubPort":4444,
        "hubHost":"127.0.0.1"
    }
}

据我了解,Selenium Grid 确实支持会话排队,但 Appium 不支持(或者我不知道)。当我尝试在同一个节点上启动另一个 Appium 会话时,该会话实际上必须等待前一个 Appium 会话关闭才能启动。因此,为了实现我想要的,我必须在中间有一些东西,以便在测试运行开始时在节点上启动 Appium 会话,并在测试运行结束时关闭它。

有没有更简单的方法来做到这一点?或者是否有我不知道的支持这个的 Appium 配置?

【问题讨论】:

    标签: appium selenium-grid


    【解决方案1】:
    • 根据我的理解,你需要分两次运行两个测试用例 不同的设备,无需执行任何手动操作。
    • 为此,您需要通过以下方式管理 Appium 启停动作 以编程方式,这是一种更简单的方式,也是最常用的完整方式。
    • 通过这种方式,您可以管理两个或两个以上的设备。

    以下是通过编程方式管理 Appium 启停操作的参考代码。

    def service = AppiumDriverLocalService.buildService(new AppiumServiceBuilder() .usingDriverExecutable(new File("/Applications/Appium.app/Contents/Resources/node/bin/node")) .withAppiumJS(new File("/Applications/Appium.app/Contents/Resources/node_modules/appium/bin/appium.js")) .withIPAddress("127.0.0.1") .usingPort(port as int) .withArgument(GeneralServerFlag.ROBOT_ADDRESS, udid as String) .withArgument(AndroidServerFlag.BOOTSTRAP_PORT_NUMBER, ((port as int) + 2) as String) .withArgument(SESSION_OVERRIDE) .withLogFile(new File("build/${device}.log")));
    
    service.start();
    

    参考链接:https://www.seleniumeasy.com/appium-tutorials/how-to-start-appium-server-programmatically

    【讨论】:

      猜你喜欢
      • 2016-10-08
      • 2019-02-14
      • 2013-11-27
      • 2017-05-29
      • 1970-01-01
      • 2022-07-23
      • 2020-02-02
      • 1970-01-01
      • 2015-01-06
      相关资源
      最近更新 更多