谁能指出虚拟用户和真实用户之间的区别?
3 回答
它们是有区别的。
取决于你的 jmeter 测试,如果你是从一个盒子做的,你的 IO 是有限的。您无法模仿单个盒子中使用 jmeter 的 10K 用户。你可以用一个盒子做一些小测试。如果您使用多个 jmeter 框,那就另当别论了。
另外,cookie 怎么样,你在负载测试应用程序时是否存储 cookie?这确实有所作为
虚拟用户是真实用户浏览器和 http 请求的自动模拟。因此,虚拟用户旨在模拟真实用户。也可以配置虚拟用户来运行我们认为真实用户会做的事情,但不会在获取页面和提交新页面之间存在所有延迟。这使我们能够在我们的服务器上模拟更高的负载。
虚拟用户模拟和真实用户之间的真正关键区别在于服务器和他们的设备之间的网络以及真实用户在网站上执行的实际操作。
在 Web 负载测试的上下文中,存在很多差异。虚拟用户是模拟人使用浏览器在网站上执行某些操作。一家公司提供他们所谓的“真正的浏览器用户”,但它们也是模拟的——只是在不同的层(浏览器与 HTTP)。我将假设您使用“真实用户”来指代人类。
使用人工进行负载测试有一些优势,但也充满了困难。主要优点是真实的人使用真实的浏览器——这意味着,如果他们精确地遵循脚本,模拟和真实流量之间几乎没有区别。然而,困难的清单很长:首先,它很昂贵。该过程无法扩展到有限数量的位置中的几十个用户之外。人类可能无法准确地遵循脚本......你可能无法判断他们是否这样做。该测试可能不是完全可重复的。收集、整合和分析来自真实浏览器的指标是很困难的。我可以继续...
使用虚拟用户来模拟真实用户的测试工具没有任何这些缺点——因为它们是为这项任务而设计的。但是,根据工具的不同,它们可能无法执行完美的模拟。大多数负载测试工具都工作在 HTTP 层——模拟在浏览器和服务器之间传递的 HTTP 消息。如果这些消息的模拟是完美的,那么服务器就无法区分真实用户和模拟用户......因此测试结果更有效。应用程序越复杂,尤其是在使用 javascript/AJAX 时,就越难做出完美的模拟。工具在这方面的能力差异很大。
有一小部分测试工具实际运行真实的浏览器并通过将模拟的鼠标和键盘事件推送到浏览器来模拟用户。这些工具更有可能完美地模拟 HTTP 消息,但它们也有自己的问题。大多数仅限于使用单个浏览器(即 Firefox)。很难从真实的浏览器中获得好的指标。这种方法比使用人类的可扩展性要好得多,但不如 HTTP 层模拟那样可扩展。但是,对于需要测试 <10k 用户的站点,使用这种方法的基于 Web 的解决方案可以提供所需的容量。