以Jmeter为单位的页面加载时间

时间:2015-09-23 08:19:27

标签: performance time load jmeter performance-testing

我想在我的测试网络应用中测量文档的加载时间。我已经使用了JMeter,但每次运行都会得到不同的值。我在摘要报告中测量平均时间。

我不确定,该值是否合适。这种方法是正确的还是有任何插件JMeter可用?

我使用HTTP watch来获取渲染时间,但我不能将该工具用于超过1个用户(负载测试)。我正在使用JMeter 2.13。你能帮帮我吗?

3 个答案:

答案 0 :(得分:5)

  1. 借助汇总报告或csv / xml结果,您可获得有关响应时间的必要信息但

    • 在Jmeter中,响应时间=处理时间+延迟(传输数据时网络所用的时间)
    • 在浏览器中,响应时间=处理时间+延迟+渲染时间 因此,您会发现http监视响应时间和jmeter响应时间之间存在差异。
  2. 如果您还需要在响应时间中包含渲染时间,请使用工具,如loadrunner(商业),selenium(开源)等。我个人认为客户端呈现不是一个可衡量的值,除非访问该应用程序的所有用户具有相同的硬件,软件和网络访问配置。但是,当JMeter测试以高峰负载运行到系统时,使用各种浏览器手动浏览站点,并且在开发人员工具的帮助下,您可以找到渲染时间。

    1. 我为每次运行获取不同的值 - 这取决于您使用的测试数据,服务器运行状况,网络延迟等。

答案 1 :(得分:3)

我怀疑你是否能够获得2个完全相同的测试运行结果,总是会出现由底层硬件和软件实现引起的某种形式的波动。你应该收到类似的结果和一些统计噪音。

如果不是这种情况,您的JMeter测试可能配置错误。从“真实性”的角度来看,请注意以下配置:

  • 确保您已选中从HTML文件中检索所有嵌入资源框并且使用并发池。为所有采样器配置它的最简单方法是使用HTTP Request Defaults
  • HTTP Cache Manager添加到您的测试计划中。之前的设置“告诉”JMeter从页面中获取脚本,样式等嵌入式资源。真正的浏览器也可以这样做,但它们只执行一次,在后续请求中,这些资源从浏览器的缓存中返回。
  • HTTP Cookie Manager添加到您的测试计划中。它代表浏览器cookie,支持基于cookie的身份验证并维护会话。
  • 添加HTTP Header Manager以表示浏览器标头,例如用户代理,内容类型,编码等。

答案 2 :(得分:2)

当您使用直接HTTP协议层虚拟用户时,独立于工具(Jmeter,LoadRunner,SOASTA,Grinder,...),那么您将要定时的是来自服务器的请求/响应信息来自JavaScript客户端本地处理的低着色以及屏幕上的最终"绘图"这是渲染。

直到服务器因请求数量或网络限制而降级的程度,您可以调整的唯一区域是页面架构,如果您在部署之前等待最后100码,那么您就是可能有麻烦。

史蒂夫·索德斯(Steve Souders)在他的书籍和#34;高性能网站"中已经写了很多关于页面架构主题的文章。和相关的工作。简而言之,经验法则归结为更少的请求,更小的响应以及从最近的可能位置向客户端提供数据。这些具有最小化网络客户端(网络)的最昂贵的有限资源的效果。例如,浏览器精灵减少了图像调用次数,缩小和压缩减少了传输的大小,CDN将跳转到请求项目的数量更改为更靠近终端客户端的位置。

为了影响页面架构的更改,您需要向上游移动到开发周期和功能测试周期。您需要使用开发来实现硬门,其中代码/页面无法在未事先通过与设计相关的性能门的情况下提交给项目。您的开发团队和功能测试成员需要尊重这些大门。至于门应该是什么,我建议你回到Souders先生的作品,作为构建门规则的重要数据来源。

这使你达到"适用于一个人的水平:一个人的表现。"然后,您可以将其用作已知商品,以回答与服务器可伸缩性相关的问题,并且此时从请求开始的客户端服务开始降级。如果您的组织中有CDN,请确保在您的测试模型中考虑到这一点,如果不这样做,那么您将使服务器与生产重载。

至于"渲染的实际速度"或画在屏幕上?您需要购买更快的视频卡,禁止浏览器制造商进行更改。加速JavaScript?确保您的所有JavaScript尽可能小和精简。让您的功能测试团队在非常脏的浏览器上进行测试,这些浏览器包含大量插件以及低功耗硬件,以便最大限度地消除规范响应。如果您需要从客户端(浏览器/操作系统/某些硬件)查看标准硬件模型的外观,则可以处理HTTP请求日志中的数据,特别是与客户端配置信息相关的用户代理。