如何使用硒进行压力测试模拟重载

Sum*_*osh 15 selenium automated-tests browser-automation stress-testing

我有一个测试系统,这是一个视频广告发布技术.我需要像1-2分钟一样加载每个视频来投放广告.这些视频在Flash客户端中播放,并像YouTube一样以FLV流形式流式传输.

我之所以需要仅通过浏览器测试它 - 以及其他所有方法都无法正常工作 - 的原因是同时对视频流服务器和广告服务器进行压力测试并实时显示广告.

我使用过Selenium,W​​atiN,Automation Anywhere和许多其他自动化工具.但是,当我尝试在我的机器上启动10000个浏览器(32GB RAM,16核CPU)时,他们都无法完成这项工作.

使用Selenium,我能够启动目前为止最大的FireFox实例,但这仍然太低:一半实例不运行测试.

有关Selenium的任何建议吗?

dig*_*oel 5

你不会在你的机器上运行 10,000 个浏览器。这将为每个浏览器实例提供 3.2MB 的物理内存,我很确定 FireFox 不会喜欢这样。

您可以创建一个 JMeter 脚本,该脚本使用多个线程访问您的服务器。它不会与 UI 交互,但会模拟许多客户端点击您告诉它的任何 URL 的负载。我相信它还包括录制会话和回放的功能,以便轻松设置会话。

  • 3.2MB 或 32MB 的内存,我怀疑 firefox 会在任何一个上窒息。可以说,如果您想向服务器抛出 1000 个线程,那么您正在测试服务器,那么谁在乎客户端在做什么呢?客户端是完全成熟的 firefox 使用媒体并用它做一些事情,还是只是一个 curl 或 wget 以与富媒体应用程序相同的时间到适当的 URL 对服务器来说应该无关紧要,是吗? (2认同)
  • 测试更多地与富媒体应用程序在压力下的行为有关,而不仅仅是负载下的服务器。我试图在这里测试可能的最近的真实世界用户场景。curl 请求不会执行富媒体客户端应用程序,因此它不会真正测试整个应用程序。 (2认同)
  • 如果您想测试客户端应用程序,那么如何创建一个性能严重不足的虚拟机并在其上启动一些实例呢?您仍然可以使用 jmeter 脚本访问服务器以在那里加载负载,然后您可以在弱虚拟机上运行您的 selenium 脚本。 (2认同)