我正在努力寻求解决方案。
我做了什么:
我已经使用HTTP代理服务器记录了导航页面生成的每个文件。
添加线程组下的所有文件我运行了测试计划,一次没有缓存,一次没有缓存。
我得到的是什么:
但是我使用Firebug对该页面的响应时间比使用Jmeter [缓存和非缓存]的时间少30-40秒。
注意:该页面包含ajax。
问题:
感谢。
答案 0 :(得分:5)
Jmeter不会渲染页面,也不会执行javascript,因此它也不会执行ajax。
但是,ajax会生成请求,如果您使用它,代理将捕获这些请求。
另一个关键区别是大多数浏览器会同时执行请求,通常一次发出4到6个请求,具体取决于浏览器和设置。
Jmeter将按顺序*而不是并行地生成每个请求,因此这也可能会增加给定页面及其所有子样本的总加载时间。
如果您查看每个请求的请求时间并将其添加,它应该非常接近
对于问题二,我建议不要排除它们,因为您想要准确衡量负载,排除文件会使结果产生偏差。
答案 1 :(得分:1)
有时,负载测试和页面加载速度这两个概念会混淆不清。实际上它们完全不同,应该使用不同的工具以不同的方式进行处理。
记录加载页面所需时间的最佳工具是浏览器。如果将它与秒表和合适的样本量相结合,您将获得一些有用的数据。说真的,这是一个很好的方法,你不仅可以获得真实的结果,而且当页面被 percieved 加载时你也会停止计时,这才是最重要的。如果你想自动化这个过程以产生可重复性,或者你只想要更精细的颗粒,那么你应该看看功能自动化工具(如Seleneum)。但这是功能测试,而不是负载测试,如果你想进行负载测试,那么像JMeter这样的东西非常有效。
那就是说,我怀疑如果你看到JMeter的响应时间大40秒那么可能是因为你正在使用多个线程运行负载测试?可能是你的服务器超载,这就是响应时间更长的原因。
答案 2 :(得分:0)
正如Lee所说,JMeter连续地(一个接一个地)发出请求,而浏览器将并行请求资源,每次向EACH主机开放多达8个连接(因此可能会发生超过8个并行事务在更复杂的页面上)。简而言之,JMeter在测量总页面加载时间方面并不准确。因此,它可以将负载放在站点上或仅用于测试页面内容,但不能用于测量实际的页面加载时间或模拟实际的加载模式。为此,你需要一个更好的工具。