如何用JMeter获取真实延迟、连接时间及页面渲染时间?
JMeter获取延迟、连接时间及页面渲染时间的解决方法
一、解决延迟(Latency)和连接时间(Connection Time)显示为0的问题
出现0值大多是因为请求走了缓存,或是JMeter未真实发起网络连接,按以下步骤调整:
- 禁用HTTP缓存:如果配置了HTTP Cache Manager,直接禁用它,确保每个请求都重新发起网络请求,不走本地缓存。
- 排查请求类型:如果请求的是图片、CSS这类静态资源,重复请求时JMeter会模拟浏览器缓存,不会建立新连接。可以换用动态接口请求测试,或者勾选HTTP请求的「Retrieve All Embedded Resources」,同时关闭资源缓存。
- 查看更详细的采样数据:查看结果表格的展示可能不够全面,切换到查看结果树,点开每个采样的「Sampler Result」标签,里面会显示真实的Latency和Connect Time数值;也可以用聚合报告查看整体的平均延迟和连接时间统计。
- 检查JMeter版本:旧版本可能存在时间统计bug,升级到最新稳定版试试。
二、获取页面渲染时间
JMeter默认是接口级测试工具,不模拟浏览器渲染,要获取页面渲染时间得借助浏览器模拟:
- 使用WebDriver Sampler:集成Selenium WebDriver,模拟真实Chrome/Firefox浏览器打开页面。执行页面加载后,通过JavaScript获取浏览器性能数据,比如执行这段代码获取渲染完成时间:
var renderTime = window.performance.timing.loadEventEnd - window.performance.timing.navigationStart; WDS.sampleResult.setResponseData("页面渲染时间:" + renderTime + "ms", "UTF-8"); - 提取细分性能指标:除了整体渲染时间,还可以通过
window.performance.getEntries()获取DOM解析时间、资源加载时间等细分阶段数据,按需提取即可。
内容的提问来源于stack exchange,提问作者zenitsu Agastuma
相关产品推荐
相关产品推荐

