当前位置: 首页 > 知识库问答 >
问题:

在Behat上设置Selenium2 Mink扩展以使用多个浏览器

祁均
2023-03-14

我想使用我的selenium2网格在几个浏览器上运行我的behat测试。我已经设法使它们以不同的behat.yml配置文件在每个环境/浏览器的基础上运行,但我希望配置一个behat配置文件来触发在我的所有节点上的运行。

我的behat.yml配置文件如下所示:

  • 浏览器字段中的数组浏览器:{firefox,chrome},config parser不喜欢
  • 具有多个名称的字符串浏览器:'firefox,chrome',认为我有一个以字符串sigh
  • 命名的浏览器
  • 为我的selenium节点(例如browser)指定一个名称,出于某种原因尝试使用iexplorer节点(什么?!)
  • 将browser字段留空浏览器:“只触发firefox节点,这似乎是默认节点
  • 我甚至尝试在yaml文件中创建多个browser键,最后一个条目将覆盖其馀项

如上所述,实现这一点的唯一方法似乎是在每个环境的基础上创建一个behat.yml文件,即。behat-firefox.yml、behat-chrome.yml,并并行运行它们。如下所示(http://zalas.eu/running-behat-in-parallel-with-selenium-grid/)

还有其他建议吗?

    null

共有1个答案

贝杜吟
2023-03-14

我做了一个跨浏览器的实现,我发现的解决方案是使用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:
<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>
$ java -jar selenium-server-standalone-2.30.0.jar
ant run

本教程的来源在这里

 类似资料:
  • 每个桌面浏览器都有一套开发工具,开箱即用,您可以将他们添加到您的浏览器的扩展或插件。 以下是两个具有一些实用功能的Chrome扩展程序,可帮助您调试设计。 Emmet Re:View Emmet Re:View是一个工具,它可以让你轻松查看您的网站在每个媒体查询(media queries)中的样子,并同步所有页面的滚动。 你可以在他们的网站上看到它的演示。 Download on the Chr

  • 问题内容: 我是浏览器扩展开发的新手,我了解浏览器扩展更改页面并向其中注入代码的概念。 有没有办法可以扭转这个方向?我编写了一个扩展程序,提供了一组API,想要使用该扩展程序的网站可以检测到该扩展程序的存在,如果存在,该网站可以调用诸如这样的API方法。在Chrome,Firefox和Safari中可能吗? 例: Google创建了一个名为BeautifierExtension的新扩展。它具有一组

  • Szenario:我有两个扩展,它们用一些特定字段扩展了。在TYPO3 9之前,我必须使用以下打字脚本配置对新闻扩展的依赖关系进行配置: 模型扩展了基本扩展的模型: 在TYPO3 10中,在(中断:#87623): 只要您只有一个扩展新闻扩展名的扩展名,它就可以工作多久。如果您有第二个扩展并启用TYPO3缓存,您将得到一个错误,即在第一个扩展中添加的字段在新闻扩展的模板中不可用。奇怪的是,这个问题

  • 我试图在浏览器堆栈上运行多个浏览器上的E2E测试,我参考了在量角器中的多个/并行浏览器上的E2E测试?和Internet Explorer Selenium量角器e2e测试 但每次我试着运行测试时都会犯错- 谁能告诉我什么是我做错了这里,而且我们使用gulp ti运行规范,但我的问题是它是说,甚至没有超出认证。

  • 我正在探索硒网格,用于在多个浏览器上执行测试。我已经按照在线教程配置了集线器和节点。我已经创建了一个测试脚本。 这是测试脚本的代码: 我的目标是在多个浏览器上运行此测试,我已经添加了所需的功能,如火狐, 感谢任何帮助

  • 我正在使用GEB/Spock进行自动化测试。我正在使用Gradle作为我的构建工具。 我想调用不同的gradle任务来构建和运行一个特定的规范(测试)或一套规范。 显然,已经有了现有的构建指令,因为我可以调用,而且所有的规范都在Chrome上运行,我只是不知道如何添加更多的任务