【问题标题】:What are the pros and cons in using PhantomJS natively instead of Chrome through webdriver for QA functional testing?通过 webdriver 原生使用 PhantomJS 而不是 Chrome 进行 QA 功能测试的优缺点是什么?
【发布时间】:2015-04-03 02:59:09
【问题描述】:

我们正在测试一个非常依赖浏览器/耦合(chrome)的单页应用程序,它带有用于 Chrome 的 selenium webdriver。有人建议使用 PhantomJS 的速度,因为它是无头的。

这个 Web 应用程序也是一个 JavaScript 密集型的胖客户端。我想知道为此目的使用 PhantomJS 的任何优点或缺点。

【问题讨论】:

  • 您的意思是 Chrome 与 PhantomJS 都通过 webdriver 而不是 Chrome (Webdriver) vs. PhantomJS (native),对吧?
  • 其实是关于 Chrome (Webdriver) vs. PhantomJS (native) 方法。

标签: selenium-webdriver phantomjs functional-testing qa


【解决方案1】:

我认为 PhantomJS 对于大型项目来说还不是很成熟。

我非常广泛使用了 ChromeDriver, IE 来处理一个相当大的工资单应用程序。我探索了 PhantomJS 进行一些测试并探索它的好处。

使用 PhantomJS 代替真实浏览器的优缺点

优点:

  • 很多人使用 PhantomJS,因为它是无头的,并且可以避免使用真实浏览器的额外开销。

  • 您可以使用它直接在 CI 上运行测试,避免有时难以处理的 Grid Hub 关系(或其他类似机制)

缺点:

  • PhantomJS 中有大量未决问题

  • 虽然 e2e 和 UI 测试主要用于复制用户行为,但 PhantomJs 并没有完全做到这一点

  • PhantomJS 失败但其他驱动程序正常工作的情况很少。

  • Protractor 团队直接不鼓励您使用 PhantomJS,如果您打算这样做的话。

【讨论】:

    【解决方案2】:

    如果您像您所说的那样与 Chrome 耦合,那么您应该运行 Chrome。

    自 Blink 发布以来,PhantomJS 不再运行与 Chrome 相同的渲染引擎,因此从 PhantomJS 运行测试将无法准确表示您的网站在 Chrome 上的表现(它可能工作相同,但可能存在细微差别)。

    另外,PhantomJS 可以在 Webkit 上运行,但它是一个非常旧的 Webkit 版本。

    底线:Blink =/= Webkit。使用 Chrome。

    【讨论】:

    • 值得一提的是,PhantomJS 和 Chrome 曾经可以互换使用进行测试。现在已经不是这样了。
    【解决方案3】:

    PhantomJS 有许多悬而未决的问题,项目缺乏积极的开发使情况更加困难。许多网站无法在 PhantomJS 上加载。

    您可以尝试 Chrome Headless。 https://developers.google.com/web/updates/2017/04/headless-chrome

    您可以获得 PhantonJS 的无头特性和 Chrome 的主流特性。两全其美。

    【讨论】:

      猜你喜欢
      • 2019-07-22
      • 1970-01-01
      • 2016-10-08
      • 2011-07-10
      • 2010-09-15
      • 2019-05-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多