在执行负载测试时,虚拟用户/真实用户的区别是什么?

时间:2011-11-01 23:33:11

标签: visual-studio-2010 jmeter load-testing loadrunner

任何人都可以指出虚拟用户和真实用户之间的区别吗?

3 个答案:

答案 0 :(得分:0)

有区别。

取决于你的jmeter测试,如果你是从一个盒子做,你的IO是有限的。你不能模仿用单个盒子里的jmeter用10K用户说。您可以使用一个盒子进行小型测试。如果你使用多个jmeter盒,这是另一个故事。

另外,如果有cookie,你在加载测试应用程序时存储cookie吗?这确实有所作为

答案 1 :(得分:0)

虚拟用户是真实用户浏览器和http请求的自动模拟。 因此,虚拟用户被设计为模拟真实用户。也可以配置虚拟用户来运行我们认为真实用户会做的事情,但是在获取页面和提交新页面之间没有任何延迟。 这允许我们在服务器上模拟更高的负载。

虚拟用户模拟与真实用户之间的真正关键区别在于服务器与其设备之间的网络以及真实用户在网站上执行的实际操作。

答案 2 :(得分:0)

在Web负载测试的上下文中,存在很多差异。虚拟用户是使用浏览器在网站上执行某些操作的人类模拟。一家公司提供他们所谓的“真正的浏览器用户”,但他们也是模拟 - 只是在不同的层(浏览器与HTTP)。我将假设您使用“真实用户”来引用人类。

使用人类进行负荷测试有一些优点,但充满了困难。主要的优点是真正的人类使用真正的浏览器 - 这意味着,如果他们精确地遵循脚本,模拟和实际流量之间几乎没有区别。然而,困难的清单很长:首先,它很昂贵。该过程在数量有限的位置上不能超过几十个用户。人类可能不会准确地遵循剧本......你可能无法判断他们是否这样做了。该测试可能不完全可重复。从真实浏览器收集,集成和分析指标很困难。我可以继续......

使用虚拟用户模拟真实用户的测试工具没有任何这些缺点 - 因为它们是为此任务而设计的。但是,根据工具的不同,它们可能无法执行完美的模拟。大多数负载测试工具在HTTP层工作 - 模拟浏览器和服务器之间传递的HTTP消息。如果这些消息的模拟是完美的,那么服务器无法区分真实用户和模拟用户之间的差异......因此测试结果更有效。应用程序越复杂,特别是在使用javascript / AJAX时,进行完美的模拟就越困难。这方面的工具能力差异很大。

有一小组测试工具实际上运行真实浏览器并通过将模拟鼠标和键盘事件推送到浏览器来模拟用户。这些工具更可能完美地模拟HTTP消息,但它们有一组自己的问题。大多数仅限于使用单个浏览器(即Firefox)。从真实的浏览器中获取好的指标可能很难。这种方法比使用人类更具可扩展性,但不像HTTP层模拟那样可扩展。但是,对于需要测试< 10k用户的站点,使用此方法的基于Web的解决方案可以提供所需的容量。