Performance 为什么JMeter结果和用户体验结果不同?

Performance 为什么JMeter结果和用户体验结果不同?,performance,jmeter,performance-testing,blazemeter,Performance,Jmeter,Performance Testing,Blazemeter,我们目前正在对现有的两个web应用程序进行性能测试,一个在专用网络中运行,另一个可供所有人访问。对于这两个应用程序,登录页或初始页的单页加载在用户POV上只需要2-3秒,但当我们使用blaze和JMeter时,结果是15-20秒。我错过什么了吗?15-20秒的结果来自加载时间/采样时间,单位为JMeter,如果提取到.csv,则以“已用时间”列表示。我卡住了,请帮帮我 我们已经尝试在办公场所内的多台电脑上进行测试,同时在另一个站点上远程访问一台电脑,我们仍然得到相同的结果。线程数和爬升周期都设置

我们目前正在对现有的两个web应用程序进行性能测试,一个在专用网络中运行,另一个可供所有人访问。对于这两个应用程序,登录页或初始页的单页加载在用户POV上只需要2-3秒,但当我们使用blaze和JMeter时,结果是15-20秒。我错过什么了吗?15-20秒的结果来自加载时间/采样时间,单位为JMeter,如果提取到.csv,则以“已用时间”列表示。我卡住了,请帮帮我


我们已经尝试在办公场所内的多台电脑上进行测试,同时在另一个站点上远程访问一台电脑,我们仍然得到相同的结果。线程数和爬升周期都设置为1,以仅模拟单个用户。

如果存在增量,则肯定意味着两个不同的项目正在计时。这将有助于了解您的前端是否正在按照标准指标计时,例如w3c domComplete、交互时间、第一个内容绘画、其他位置,然后在chrome的“性能”选项卡上的深入分析中比较这一点。Jmeter很有可能捕捉到许多不可见的事件


您还可以在这里寻找其他关于jmeter与“真正的浏览器”相比如何运行的线程。有一些差异可能会影响您的页面比较,特别是当您需要下载几十/数百个元素来完成页面时。另外,请注意您无权测试其服务器的第三方组件。

我可以想到两种可能的原因:

  • 清除浏览器历史记录,尤其是浏览器历史记录。这可能是浏览器中所有请求的情况,因为响应是从浏览器缓存返回的,并且在JMeter始终使用“干净”会话时不会发出任何实际请求
  • 请注意
    连接时间
    延迟
    指标,因为服务器响应时间可能较低,但网络数据包来回传输的时间非常长

    • 连接时间。JMeter测量建立连接所需的时间,包括SSL握手。请注意,连接时间不会自动从延迟中减去。在连接错误的情况下,度量值将等于它面对错误所花费的时间,例如在超时的情况下,它应该等于连接超时

    • 延迟。JMeter测量从发送请求前到接收到第一个响应后的延迟。因此,时间包括组装请求以及组装响应的第一部分所需的所有处理,这通常会超过一个字节。协议分析器(如Wireshark)测量通过接口实际发送/接收字节的时间。JMeter时间应该更接近浏览器或其他应用程序客户端所经历的时间

    所以基本上是“运行时间=连接时间+延迟+服务器处理时间”

  • 一般来说:

    • 同一台机器

    对于同一个页面,您应该会得到类似或相等的时间安排

    我尝试了您的建议,加上其他论坛和帖子的建议,与实际页面负载相比,我仍然得到相同的结果。我注意到当在jmeter中打开时,blazemeter采集了很多采样器,我的意思是很多,即31。每个都有自己的采样时间,如果加起来就是总采样时间。这与实际负载不相等。是否有任何可能的方法来并行运行这些采样器?