使用Appium运行Behat测试

时间:2015-07-01 15:01:39

标签: android appium selenium-grid behat

到目前为止,我设法启动selenium grid并使用nodeconfig文件注册appium。 下一步是在beta.yml中创建配置文件以用于与appium一起运行。

我的appium nodeconfig文件是:

{
"capabilities":
[
{
"browserName":"Android",
"version":"5.1",
"maxInstances":1,
"platform":"ANDROID",
"deviceName":"emulator-5554",
"applicationName":"Nexus"
}
],
"configuration":
{
"cleanUpCycle":2000,
"nodeTimeout":120,
"timeout":30000,
"proxy":"org.openqa.grid.selenium.proxy.DefaultRemoteProxy",
"url":"http://0.0.0.0:4723/wd/hub",
"maxSession":1,
"port":4723,
"hub":"0.0.0.0:4444/grid/register",
"hubPort":"4444",
"hubHost":"0.0.0.0",
"register":true,
"registerCycle":10000,
"nodePolling":2000
}
}

请告知我应该如何在.yml文件中设置功能。到目前为止我试过了:

appium:
  extensions:
      Behat\MinkExtension\Extension:
        base_url:url_here  
        javascript_session: 'selenium2'
        selenium2:
          browser: 'android'
          wd_host: http://0.0.0.0:4723/wd/hub
          capabilities: {"platformName": "Android", "browserName": "Browser", "applicationName":"Nexus", "deviceName": "emulator-5554"}

我得到的错误是说功能不存在。 我也尝试将功能放在上下文/参数中,但它仍然不匹配。

请指教!谢谢!

1 个答案:

答案 0 :(得分:1)

这是对我有用的配置。要求是:

  • Appium服务器应已启动。我使用的是台式机版本。
  • 您还需要avd模拟设备。使用Android开发工具创建一个(给一个好名字,您需要将该名字添加到behat config中)。
  • 将此添加到您的behat配置文件(配置称为android,但您可以在默认情况下添加此配置):

android:

 String uuid=mapper.getUuid();

在此配置中,“ foo”只是一个名称,您可以使用所需的任何名称。 Appium端口/主机是默认端口。我使用chrome进行测试。我的仿真器的名称也是“ Nexus”。 “ avd”必须是创建设备时使用的确切名称(您可以使用所需的任何名称)。

如果要调试,或者要看什么通过Bedium通过Mink扩展为Appium断点支持的确切功能,可以在库“ AppiumFactory.php”中运行测试(供应商\ behat \ mink-extension \ src \ behat \ MinkExtension \ ServiceContainer \ Drivers)