【问题标题】:Is PhantomJS CPU (core) bound?PhantomJS CPU(核心)是否受限?
【发布时间】:2014-06-03 14:52:44
【问题描述】:

我开始做一些基于并行浏览器的测试,想看看在达到 100% CPU 之前我可以在 EC2 大机器上并行运行多少个浏览器。

我正在使用 JMeter webdriver 插件来实际运行浏览器。

使用 FireFox,它实际上是每个 CPU 核心 1 个浏览器。 4 核机器上的 4 个浏览器大约占 CPU 的 80%。对于 5 个浏览器,它是 95%(这不利于性能测试)。

在我走上 PhatomJS 的道路之前,是否有任何基准可以将 PhantomJS 与 FireFox(甚至 Chrome)在并行运行时的 CPU 使用率方面进行比较?

知道在达到 85% CPU 之前我可以在 EC2 大盒子上并行运行多少个 PhantomJS 实例吗?

谢谢 詹姆斯。

【问题讨论】:

  • 当你开始你的努力时,不要忘记发布你自己的答案/基准。

标签: amazon-ec2 webdriver jmeter phantomjs performance-testing


【解决方案1】:

根据Web Driver Tutorial

需要注意的是,这主要用于补充 JMeter 的 HTTP 采样器。 Web Driver Sampler 旨在与 HTTP Sampler 一起运行,以便从服务器的角度来看,负载类似于生产。同时,web sampler 会模拟服务器负载时与网站/webapp 交互的用户体验,从而同时测量真实用户的体验。

因此,您运行多个浏览器(无论是完整浏览器还是无头浏览器)的想法看起来都不好。 WebDriver JMeter 插件的想法是让一个真实的浏览器实例在测试中爬取Web应用程序,以查看负载是否对JMeter设计无法覆盖的实际用户产生负面影响,例如执行JavaScript /AJAX 调用等

JMeter 中有几个配置元素可以让它看起来更像一个真正的浏览器。考虑使用:

有关更多提示和技巧,请参阅How to make JMeter behave more like a real browser 指南。

如果您的用例假设基于浏览器的负载测试,我建议查看Selenium Grid,它能够编排在不同主机上运行的多个 WebDriver 实例。

【讨论】:

  • 我知道您来自哪里,但在某些情况下,我仍然想使用 Webdriver 来创建使用 100 个线程的负载(在 20 台机器上运行,每台机器 5 个线程)。你有机会真正回答我的问题吗?谢谢。
  • 我的回答是关于不尝试将 JMeter 用于 >1 个 webdriver 线程。如果你想要 100 个真正的浏览器 - 使用 Selenium Grid code.google.com/p/selenium/wiki/Grid2 似乎是一个更好的主意。根据我之前的经验,phantomjs 对 CPU/RAM 的需求比 firefox 少 5 倍,但这取决于它需要渲染的内容的复杂性。
猜你喜欢
  • 2016-08-19
  • 1970-01-01
  • 2014-07-19
  • 1970-01-01
  • 1970-01-01
  • 2014-11-17
  • 1970-01-01
  • 1970-01-01
  • 2011-12-24
相关资源
最近更新 更多