man*_*_cc 1 grid behat mink selenium-webdriver
我想使用我的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在yaml文件中创建多个密钥,最后一个条目覆盖了其余的密钥如上所述,似乎实现这一目标的唯一方法是在每个环境的基础上创建一个behat.yml文件,即.behat-firefox.yml,behat-chrome.yml,并行运行它们.像这样的东西(http://zalas.eu/running-behat-in-parallel-with-selenium-grid/)
还有其他建议吗?
更新
我的工具版本:
小智 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:
Run Code Online (Sandbox Code Playgroud)
在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>
Run Code Online (Sandbox Code Playgroud)
不要忘记在运行测试之前启动selenium-server.您应该运行以下命令..
$ java -jar selenium-server-standalone-2.30.0.jar
Run Code Online (Sandbox Code Playgroud)
完成配置后,需要运行带有主目标的ANT run
ant run
Run Code Online (Sandbox Code Playgroud)
本教程的源代码在这里
| 归档时间: |
|
| 查看次数: |
3717 次 |
| 最近记录: |