【问题标题】:Using Protractor with PhantomJS将量角器与 PhantomJS 一起使用
【发布时间】:2015-05-06 20:31:57
【问题描述】:

我需要对我的 AngularJS 应用程序进行 E2E 测试,Protractor 似乎是正确的方法。设置相当简单,它就像 Chrome 中的魅力一样。但是,我需要使用无头浏览器并一直在研究如何将 Protractor 与 PhantomJS 一起使用,我发现了这一点:

注意:我们建议不要使用 PhantomJS 进行 Protractor 测试。 PhantomJS 崩溃和行为有很多报告的问题 不同于真正的浏览器。

以上来自https://github.com/angular/protractor/blob/master/docs/browser-setup.md

所以我的问题是:

  1. 这种情况是否仍然存在,Proractor 仍然对 PhantomJS 有问题?

  2. 如果是这样,它有多糟糕,有没有更好的选择?

  3. 当我的应用部署到服务器时,我将如何进行 E2E 测试?

【问题讨论】:

    标签: javascript angularjs testing protractor end-to-end


    【解决方案1】:

    情况仍然如此,Protractor 仍然存在 PhantomJS 问题吗?

    这是真的。

    如果是这样,它有多糟糕,有没有更好的选择?

    很难回答它有多糟糕,但是关于挂起 phantomjs、垂死 phantomjs、执行缓慢的 phantomjs 存在多个问题,例如:

    根据问题,您使用protractor 的主要原因是端到端测试。您应该尝试模仿真实世界的用例,模仿在您的应用程序中工作的真实用户。 真正的用户会使用什么浏览器?幻影JS?答案可能是否定的。 使用您的应用程序设计的浏览器,以及您的真实用户使用的浏览器。

    当我的应用部署到服务器时,我将如何进行 E2E 测试?

    最“自然”的方法是使用提供不同功能(浏览器和平台)的远程 selenium 服务器。您可以启动和配置自己的 selenium 服务器,也可以使用 BrowserStackSauce Labs,它们非常出色,为您提供了一种在各种不同浏览器和系统中测试应用程序的方法。

    您还可以在没有真实但虚拟显示的无头“环境”中运行量角器 (xvfb),请参阅更多 here

    【讨论】:

    • 您链接到的问题现已关闭。从 PhantomJS 2 开始,崩溃问题已得到修复。我还没有尝试过,但看起来很有希望。
    • @jsparks 哦,很好,谢谢你告诉我。我认为答案中的想法仍然有效,但我会尝试使用最新的 PhantomJS 和 Protractor 运行测试,看看效果如何。
    【解决方案2】:

    您可以在 59 及以后的版本中以无头模式使用 chrome 本身,而无需任何外部工具。

    capabilities: { 
       browserName: 'chrome', 
       chromeOptions: 
      { 
       args: [ "--headless", "--window size=800,600" ] 
      } 
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-05
      • 2015-05-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多