编辑更改:问题不再寻求针对特定工具的建议
我目前正在就如何模拟多个虚拟用户的实际浏览器级操作并生成报告进行一些研究。另外,由于目标网页不可公开访问,因此我希望能够在本地计算机上运行这些测试。似乎大多数工具(免费和商业)都在协议级别运行。如果我正确理解,这意味着不执行任何JS,不应用CSS等。-对吗?这是一个主要的缺点,因为前端编写不当会对应用程序的性能(某些元素的长时间渲染等)产生巨大影响。我想模拟实际的最终用户体验。
例如,JMETER在官方网站上明确声明:
JMeter不是浏览器,它在协议级别工作。就Web服务和远程服务而言,JMeter看起来像一个浏览器(或更确切地说,多个浏览器);但是JMeter不执行浏览器支持的所有操作。特别是JMeter不执行HTML页面中的Javascript。也没有像浏览器一样呈现HTML页面
类似加特林:
但是,加特林不是浏览器:它不会运行Javascript,不会应用CSS样式并触发CSS背景图片下载,不会对UI事件等做出反应。加特林在HTTP协议级别工作。 LINK
[NeoLoad和其他一些流行工具也是如此。
NeoLoad在协议级别工作。这意味着他将重播您的HTTP请求,但在测试过程中不会像客户端浏览器那样呈现HTML页面。LINK
我只遇到了3-4个程序,这些程序提供了我正在寻找的那种功能,它们主要是基于Web的应用程序(例如LoadNinja,Flood.IO,LoadView以及可能使用TrueClient协议的LoadRunner)
浏览器级别的负载测试不常见,还是我缺少某些东西?也许与进行此类测试所需的资源有关?我了解,从服务器端来看,只要执行相同的请求并下载特定的数据,负载不会改变,但是如何处理:
有关此主题的任何建议和见解,将不胜感激。
[编辑更改:问题不再寻求针对特定工具的建议,我目前正在就如何模拟多个虚拟用户的实际浏览器级操作...]进行一些研究。
基于真实的浏览器,即使是无头的浏览器,要实现巨大的负载也会消耗大量的CPU和内存。您将不得不使用很多实例。这就是负载测试工具在网络级别上运行的原因,因此它们不必加载DOM,执行JavaScript并相应地修改DOM。