【问题标题】:Load testing tools and concurrent connections per server browser simulation [closed]每个服务器浏览器模拟的负载测试工具和并发连接[关闭]
【发布时间】:2014-02-25 11:04:29
【问题描述】:

现代浏览器对每个服务器使用不同数量的连接,如here 所述。在现代网页中下载超过 100 个资源是很常见的。尤其是当服务器远离最终用户时,这可能会导致很大的性能问题。

我在使用负载测试工具(LoadRunner 和 JMeter)方面有过不好的体验,因为这些工具似乎无法正确模拟现代 Web 浏览器。我知道 JMeter 中有“使用并发池”设置,您可以在 LR 中模拟不同的浏览器,但是您的经验是,那些真的像他们应该的那样工作吗?根据这个blog post 至少JMeter 有一些问题。

我知道这些负载测试工具(LR、JMeter)的主要目的是测试服务器端,但我认为这仍然是一个很大的问题。

【问题讨论】:

  • 首先,Jmeter/loadrunner 不是 chrome(来自博客比较),它的行为应该像可以并行运行的标准浏览器(可能不是现代浏览器)。所以,在加载资源的时候,不仅要关心资源池,还要知道它是如何工作的。它只是一个http请求模拟器,它模拟请求它将被改变->基于环境约束->基于实现(你应该看到这部分,如果jmeter/loadrunner代码与相同的chrome请求处理相同,它将工作相同)跨度>
  • 人们对负载测试有一些误解,如果我们改变用户代理它会模拟单独的浏览器,它不会。它将更改浏览器的可下载资源(将告诉服务器此特定浏览器正在运行)。因此,除非它们的实现相同,否则任何负载测试工具的性能都不会与浏览器相同。我的意见:负载测试工具用于测量服务器中的负载,而不是像浏览器一样执行精确的行为。如果是这样,它将是真正模拟真实浏览器的负载测试的完美系统。

标签: performance jmeter load-testing performance-testing loadrunner


【解决方案1】:

我不能说 JMeter,但在 LoadRunner 中,我们模拟了尽可能接近所选浏览器的并发连接数。您可以在运行的回放日志中看到使用的最大并发连接数,例如:

Maximum number of concurrent connections per server: 6 [MsgId: MMSG-26000]

我们有一些预设会受到您选择的用户代理的影响,但此并发连接数会在录制期间更新(即录制将分析您使用的实际并发连接数并更改预设值)。

如果这对您来说还不够,您可以使用以下步骤手动更改允许的并发连接数:

web_set_sockets_option(“MAX_CONNECTIONS_PER_HOST”,”10”); web_set_sockets_option(“MAX_TOTAL_CONNECTIONS “,”60”);

希望这会有所帮助。

【讨论】:

  • 感谢 Buzzy 的帮助。正在寻找如何改变这些!仅供参考,版本 11.52 补丁 1 - Action.c(4):错误 -27762:为 MAX_TOTAL_CONNECTIONS 指定的值无效 (60):必须介于 1 和 50 之间 [MsgId: MERR-27762]
【解决方案2】:

JMeter 按照作者认为的方式工作。多年来,当我们尝试将 JMeter 与我们自己的负载测试工具进行比较时,我们遇到了严重的准确性问题。最近,我们尝试比较 JMeter 的页面加载时间,但对 difficulty of getting accurate or consistent results 感到沮丧。我们是一个竞争对手,所以要考虑它的价值。

【讨论】:

    【解决方案3】:

    也许How to make JMeter behave more like a real browser指南可以给你一些线索。

    我还建议使用HTTP Request Defaults 配置元素,尤其是Embedded URLs must match 输入来过滤掉任何外部嵌入资源。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-18
      • 1970-01-01
      • 1970-01-01
      • 2014-02-01
      • 2012-04-02
      相关资源
      最近更新 更多