【问题标题】:Alternative to PhantomJS for Testing替代 PhantomJS 进行测试
【发布时间】:2013-02-19 17:49:54
【问题描述】:

我目前正在尝试为 CI (Hudson) 构建一个小测试套件。我编写了一个复杂的脚本,它动态调用其他脚本并填充给定的 DIV 元素。

我的 Selenium 测试适用于琐碎的示例(加载 www.google.com、搜索 q-Element 等)

但是当我尝试在我的 PhantomJS 实例中运行一个与 Firefox-Driver 一起工作的复杂测试时,它崩溃了。发生段错误。

我的问题是,如何为我的前端 JS 编写测试,该 JS 在运行(无头)的 Hudson-Server 上运行。

或者有没有办法调试导致段错误的原因?

【问题讨论】:

  • 模拟无头的一种方法是在远程网格上运行浏览器,例如 SauceLabs。这样您就不必为无头 chrome 或 phantomjs 烦恼。但是,缺点是性能较慢,并且您需要网络外部的连接(除非您在本地运行自己的 dockerized Grid hub)。

标签: javascript testing phantomjs


【解决方案1】:

Slimer.js 类似于 Phantom.js,但使用 Gecko 而不是 Webkit。

http://slimerjs.org/

【讨论】:

  • 撰写本文时。它还不是真正的无头。
  • 效果很好。它没有我在使用 PhantomJS 时遇到的错误
  • @user1079877 你遇到了什么错误?
  • 似乎并不是真正的无头。它的download page 说它需要firefox
  • @shadi 与无头无关
【解决方案2】:

使用 Xvfb 作为虚拟帧缓冲区(在托管网格节点的 Linux 机器上)时,可以进行无头安装。最终使用了这个和默认的 Firefox。

【讨论】:

    【解决方案3】:

    Phantom 是一个不断发展的产品,最近才获得与 Selenium 集成的能力,因此您可能遇到了一个错误;您是否尝试向 Phantom 开发人员报告?

    • 幻影的替代品:

      数量不多。 Zombie 是我所知道的,但 Phantom 比任何其他无头浏览器都遥遥领先。

      您也可以尝试使用无头虚拟服务器来运行任何普通的网络浏览器。 (这也将具有比 Phantom 更真实的测试的优势)

    • 硒的替代品:

      您可以使用 Sahi 作为 Selenium 的直接替代品。它可以做很多相同的事情,但工作方式却大不相同。当然,您的测试脚本需要重写。

      Phantom 是为脚本设计的,因此您实际上根本不需要使用像 Selenium 这样的驱动程序工具;你可以直接编写脚本,或者使用像CasperJS 这样的工具来编写你的测试脚本。

    【讨论】:

    • 问题不是 selenium,而是 Phantom JS(iframe 问题)。我不知道 Zombie 是否可以工作,但无论如何它都不是一个选项,因为我正在使用 Selenium Grid 并且需要插入节点的可能性,例如IE 测试。
    • 我不确定 Zombie 可以如何替换 phantomjs。将 phantomjs 安装在无头 ubuntu 服务器上后,可以使用 phantomjs 二进制文件。 Zombie 似乎没有二进制文件,例如用作硒驱动程序。不过,我的理解可能完全错误
    【解决方案4】:

    jsdom现在是一个不错的选择,已经相当成熟了。

    https://github.com/tmpvar/jsdom/

    它用于无头测试。我认为它不会像 phantomjs 那样做屏幕截图,因为它没有 webkit 或 gekko 渲染器,它的纯 JS。

    我发现这是因为 phantomjs segfaults 并且新版本将无法构建。 slimerjs 并不是真正的无头,它基于 FireFox 刚刚放弃的 XULRunner,它不适用于我当前的 FF。

    jsdom 非常酷,它最初是一个 XML 解析器,现在拥有完整的网络后端和 jQuery 支持。

    API 与 phantomjs 不同。

    【讨论】:

      猜你喜欢
      • 2015-07-31
      • 2013-05-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-10
      • 2014-08-20
      • 1970-01-01
      • 2011-12-10
      相关资源
      最近更新 更多