我想使用我的selenium2网格在几个浏览器上运行我的behat测试。我设法让它们在每个环境/浏览器的基础上使用不同的behat.yml配置文件运行,但是我想配置一个behat配置文件来触发我所有节点上的运行。
我的behat.yml配置文件如下所示:
default:
...
extensions:
Behat\MinkExtension\Extension:
base-url: http://www.myapp.com
javascript_session: selenium2
selenium2:
browser: 'firefox'
wd_host: selenium2:4444/wd/hub
...
我没有运气就已经尝试过了:
browser: {firefox, chrome}
中的数组,配置解析器不喜欢它browser: 'firefox, chrome'
的字符串,认为我有一个以字符串叹息 browser
这样的一般名称,由于某种原因试图使用iexplorer节点(什么?!)browser: ''
,仅触发firefox节点,因为它似乎是默认节点browser
密钥,最后一个条目覆盖其余的如上所述,似乎实现这一目标的唯一方法是在每个环境的基础上创建一个behat.yml文件,即。 behat-firefox.yml,behat-chrome.yml,并行运行它们。这样的事情(http://zalas.eu/running-behat-in-parallel-with-selenium-grid/)
还有其他建议吗?
更新
我的工具版本:
答案 0 :(得分:5)
我已经完成了跨浏览器的实施,我发现的解决方案是使用Ant,如下所示
<强> Behat.yml 强>
为我们在behat.yml中创建的每个浏览器创建一个单独的配置文件,如下所示
chrome:
context:
class: 'FeatureContext'
extensions:
Behat\MinkExtension\Extension:
base-url: http://www.myapp.com
javascript_session: 'selenium'
browser_name: googlechrome
goutte: ~
selenium:
safari:
context:
class: 'FeatureContext'
extensions:
Behat\MinkExtension\Extension:
base-url: http://www.myapp.com
javascript_session: 'selenium2'
browser_name: safari
goutte: ~
selenium2:
firefox:
context:
class: 'FeatureContext'
extensions:
Behat\MinkExtension\Extension:
base-url: http://www.myapp.com
javascript_session: 'selenium2'
browser_name: firefox
goutte: ~
selenium2:
<强>在build.xml 强>
这是一个主配置,我们为每个配置文件创建单独的目标,同时为每个浏览器生成漂亮的html报告。尝试了解下面的配置
<project name="behat" basedir=".">
<target name="run">
<delete dir="${basedir}/report" />
<mkdir dir="${basedir}/report"/>
<parallel>
<antcall target="chrome"></antcall>
<antcall target="safari"></antcall>
<antcall target="firefox"></antcall>
</parallel>
</target>
<target name="chrome">
<exec dir="${basedir}" executable="php" failonerror="true">
<arg line= "bin/behat -f html --out report/chrome.html -p chrome"/>
</exec>
</target>
<target name="safari">
<exec dir="${basedir}" executable="php" failonerror="true">
<arg line= "bin/behat -f html --out report/safari.html -p safari"/>
</exec>
</target>
<target name="firefox">
<exec dir="${basedir}" executable="php" failonerror="true">
<arg line= "bin/behat -f html --out report/firefox.html -p firefox"/>
</exec>
</target>
</project>
在运行测试之前不要忘记启动selenium-server。您应该运行以下命令..
$ java -jar selenium-server-standalone-2.30.0.jar
完成配置后,您需要使用名为run
ant run
本教程的来源是here