在单个测试中运行多个Appium会话

时间:2017-12-22 18:33:41

标签: ruby automation cucumber appium

我正在使用Appium和Cucumber在真实设备上自动执行一些测试,目前我正在尝试运行2个Appium会话进行一次测试,例如:

  • 创建驱动程序的实例
  • 执行一些任务
  • 退出驱动程序
  • 创建具有不同功能的新驱动程序实例
  • 执行一些任务
  • 退出驱动程序

我想知道在 Ruby 中实现它的正确方法是什么。

有经验的人有任何提示/建议或一些代码示例吗? 或者只是将我重定向到一些好的文档或代码。

1 个答案:

答案 0 :(得分:0)

  1. 如果您希望它们同时运行,则需要使用不同的端口创建X“node appium”执行...
  2. 示例:

    node appium -p 4723 -bp 4724 -U "Device1_identifier"
    node appium -p 4725 -bp 4726 -U "Device2_identifier"
    

    之后你将不得不创建两个驱动程序

    Java代码

    DesiredCapabilities capabilities1 = new DesiredCapabilities();
    capabilities1.setCapability(...);
    driver= new AndroidDriver<WebElement>(new URL("http://127.0.0.1:4723/wd/hub"), capabilities1);
    
    DesiredCapabilities capabilities2 = new DesiredCapabilities();
    capabilities2.setCapability(...);
    driver2= new AndroidDriver<WebElement>(new URL("http://127.0.0.1:4725/wd/hub"), capabilities2);
    
    1. 您可以使用此参数创建一个appium服务器来覆盖会话:
    2. 示例:

      node appium --session-override
      

      然后在完成第一个驱动程序之后创建另一个具有其他功能的驱动程序...

      Java代码

      DesiredCapabilities capabilities1 = new DesiredCapabilities();
      capabilities1.setCapability("udid", "Device1_identifier"); //Not necessary if execution is at the same device
      capabilities1.setCapability(...);
      driver= new AndroidDriver<WebElement>(new URL("http://127.0.0.1:4723/wd/hub"), capabilities1);
      //DO THINGS WITH DRIVER HERE  
      driver.findElement...
      driver.something...
      ////////////////////////////  
      
      DesiredCapabilities capabilities2 = new DesiredCapabilities();
      capabilities2.setCapability("udid", "Device2_identifier"); //Not necessary if execution is at the same device
      capabilities2.setCapability(...);
      driver= new AndroidDriver<WebElement>(new URL("http://127.0.0.1:4723/wd/hub"), capabilities2); //This will override your first Appium driver