【问题标题】:How to run a JUnit test for 2 different devices on Appium?如何在 Appium 上为 2 个不同的设备运行 JUnit 测试?
【发布时间】:2016-06-14 18:34:01
【问题描述】:

我想知道如何运行可以针对 2 个不同设备的 JUnit 测试?

我看到您可以将 Appium 设置为目标设备并为该 Appium 服务器设置端口,但您如何让 JUnit 测试 2 个不同的设备?

在设备上设置 Appium(32456 和 43364):

node . -p 4492 -bp 2251 -U 32456

node . -p 4491 -bp 2252 -U 43364

这将运行 2 个具有不同端口的 Appium 服务器。

在我的 JUnit 测试中,我设置了带有端口的 AndroidDriver。您如何使用相同的 junit 测试来测试 2 个不同的设备?

driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), cap);

我们无法在 JUnit 代码中将 2 组驱动程序用于不同的端口

driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), cap);

driver2 = new AndroidDriver(new URL("http://127.0.0.1:4724/wd/hub"), cap);

这是不可能的,因为我们可能并不总是知道不同的设备端口。我们基本上需要让我们可以传递给测试的可配置端口的 JUnit 测试工作(不确定这是否可能)。

是否可以将值传递给 JUnit 测试?我们正在使用 JUnitCore 进行测试。

driver = new AndroidDriver(new URL("http://127.0.0.1:"+ SOME_PASSED_IN_PORT + "/wd/hub"), cap);

【问题讨论】:

    标签: java android selenium junit appium


    【解决方案1】:

    创建多个驱动程序是解决方案之一

    driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), cap);
    

    等价于

    driver = new AndroidDriver(new URL("http://127.0.0.1:" + "4723" + /wd/hub"), cap);
    

    因此,您可以以一种天真的方式同时创建和使用两个不同的驱动程序 -

    String port1 = "4491"; //assuming this being the port number
    String port2 = "4492";
    driver1 = new AndroidDriver(new URL("http://127.0.0.1:" + port1 + "/wd/hub"), cap);
    driver2 = new AndroidDriver(new URL("http://127.0.0.1:" + port2 + "/wd/hub"), cap); //also the cap could differ in both the cases
    

    注意:您可以根据您的要求为驱动程序提供不同/相似的功能。这也是一种非常幼稚的并行执行方法,尝试使用Selenium-Grid 寻求解决方案,以获得同样有效的方法。

    【讨论】:

    • 是的,我已经尝试过了,但我应该指定这是不可能的,因为我们可能并不总是知道不同的设备端口。我们基本上需要让我们可以传递给测试的可配置端口的 JUnit 测试工作(不确定这是否可能)。也许我们需要创建另一个服务器来控制哪个 appium 实例。我会更新问题。
    【解决方案2】:

    使用 Selenium 网格

    Selenium-Grid 允许您在不同的设备上并行运行测试。也就是说,同时针对不同的设备运行多个测试。本质上,Selenium-Grid 支持分布式测试执行。它允许在分布式测试执行环境中运行您的测试。

    【讨论】:

    • Selenium Grid 是否允许您进行 Junit 测试并针对不同的设备运行它?它如何在 etst 中为具有 driver = new AndroidDriver(new URL("127.0.0.1:4723/wd/hub"), cap); 的 Appium 设置功能
    【解决方案3】:

    简单的方法是你启动两个不同端口的appium服务器并更新脚本中的端口号,但你需要复制代码,其他解决方案是使用硒网格

    【讨论】:

    • 2 个不同的端口不是问题中所述的选项。
    猜你喜欢
    • 1970-01-01
    • 2021-10-18
    • 2017-04-19
    • 2017-02-22
    • 2016-10-21
    • 2020-02-14
    • 1970-01-01
    • 1970-01-01
    • 2021-07-15
    相关资源
    最近更新 更多