jmeter和loadrunner测试结果差异大-web页面静态资源下载
2016-12-28 18:14
169 查看
最近有朋友性能测试时遇到Jmeter和Loadrunner测试的结果差异很大,对结果很纠结。笔者在与之一同排查的过程中发现很多老司机也总会踩到的坑-web页面静态资源下载.
问题:jmeter和loadrunner测试结果差异大
描述: 一个简单的web页面,同样50并发用户,响应时间十几毫秒,Loadrunner测试结果TPS=1500,jmeter测试结果TPS=4000+,大家怎么看这个问题?
分析:可能的原因有很多,我们从以下几个方面逐步排查
1.压力机资源情况
Loadrunner体量大,消耗的资源也比Jmeter较高,这种情况观察系统CPU、内存等资源的使用情况,特别注意有事CPU使用率还在可接受范围内,但是cpu load很高(cpu load>cpu核数,说明cpu队列存在等待情况),这种情况就是压力机资源出现瓶颈了;尽量不要用个人的pc机作为压力机,高并发下资源可能存在瓶颈。
2.脚本中等待时间
对于页面的性能测试,通常为了模拟用户的真实使用情况,或者通过录制等到的脚本里面有等待时间,如lr_think_time()函数,或者在Jmeter中添加定时器,同样会对发送的压力产生影响。
3.请求是否成功
确保Loadrunner脚本添加了检查点、Jmeter脚本添加了断言,保证请求都正确响应,避免以为错误响应影响性能。
4.web页面静态资源下载
web页面中通常包含很多静态资源(非HTML资源),如js、css、图片等,这些资源可能不会经常变化,如果每次都去服务器端加载这些资源,会浪费时间和带宽,所以浏览器会把这列不常用的静态资源缓存,在使用工具压测的时候,是否模拟浏览器缓存,是否每次下载静态资源会对性能有非常大的影响。这也是本次导致jmeter和Loadrunner测试结果差距很大的原因。
工具中对web静态资源是否下载的配置:
1.Loadrunner默认配置的是下载静态资源,每次迭代模拟新用户,清除缓存,如图:
所以为了更好的模拟用户的使用习惯,通常是不下载静态资源,即将上面三个选项取消勾选
2.Jmeter默认配置的是不下载静态资源,这点与Loadrunner正好相反,如图:
所以,在使用Loadrunner和Jmeter测试web页面的时候,如果都使用默认选项,可能导致结果差异很大。
其他:
web页面静态资源下载的配置会对web页面性能测试结果有影响,对http单个请求是没有影响的,一个http请求类似于一个接口,不存在静态资源的下载情况。
问题:jmeter和loadrunner测试结果差异大
描述: 一个简单的web页面,同样50并发用户,响应时间十几毫秒,Loadrunner测试结果TPS=1500,jmeter测试结果TPS=4000+,大家怎么看这个问题?
分析:可能的原因有很多,我们从以下几个方面逐步排查
1.压力机资源情况
Loadrunner体量大,消耗的资源也比Jmeter较高,这种情况观察系统CPU、内存等资源的使用情况,特别注意有事CPU使用率还在可接受范围内,但是cpu load很高(cpu load>cpu核数,说明cpu队列存在等待情况),这种情况就是压力机资源出现瓶颈了;尽量不要用个人的pc机作为压力机,高并发下资源可能存在瓶颈。
2.脚本中等待时间
对于页面的性能测试,通常为了模拟用户的真实使用情况,或者通过录制等到的脚本里面有等待时间,如lr_think_time()函数,或者在Jmeter中添加定时器,同样会对发送的压力产生影响。
3.请求是否成功
确保Loadrunner脚本添加了检查点、Jmeter脚本添加了断言,保证请求都正确响应,避免以为错误响应影响性能。
4.web页面静态资源下载
web页面中通常包含很多静态资源(非HTML资源),如js、css、图片等,这些资源可能不会经常变化,如果每次都去服务器端加载这些资源,会浪费时间和带宽,所以浏览器会把这列不常用的静态资源缓存,在使用工具压测的时候,是否模拟浏览器缓存,是否每次下载静态资源会对性能有非常大的影响。这也是本次导致jmeter和Loadrunner测试结果差距很大的原因。
工具中对web静态资源是否下载的配置:
1.Loadrunner默认配置的是下载静态资源,每次迭代模拟新用户,清除缓存,如图:
所以为了更好的模拟用户的使用习惯,通常是不下载静态资源,即将上面三个选项取消勾选
2.Jmeter默认配置的是不下载静态资源,这点与Loadrunner正好相反,如图:
所以,在使用Loadrunner和Jmeter测试web页面的时候,如果都使用默认选项,可能导致结果差异很大。
其他:
web页面静态资源下载的配置会对web页面性能测试结果有影响,对http单个请求是没有影响的,一个http请求类似于一个接口,不存在静态资源的下载情况。
相关文章推荐
- 静态资源(JS/CSS)存储在localStorage,适用于Web移动端H5页面制作
- 性能测试工具比较:LoadRunner vs JMeter - 测试结果数据比较
- Web前端页面的浏览器兼容性测试心得(一)搭建测试用本地静态服务器
- Djongo反向生成Web表单,页面文件上传,调用静态文件资源
- 【loadrunner】下载页面资源方式和方法汇总
- 性能测试工具比较:LoadRunner vs JMeter - 测试结果数据比较
- 关于Web的动态页面与静态页面分开的想法.
- lighttpd+web.py的一个简单测试结果:每秒可处理350个请求
- 测试的url地址是http://www.QQView.com/testweb/default.aspx, 结果如下:
- WEB页面同时实现两种打印(下载Excel,页面直接打印)
- LoadRunner测试Web的常见问题
- Mercury性能测试工具LoadRunner 8.0试用版下载
- 使用For XML与XSL(XSLT)配套快速输出查询结果到Web页面
- Web 开发;ASP;生成;模板;页面;静态;示例;mark;----BlueDestiny
- Rational Performance Tester与LoadRunner测试结果比对报告
- 高负载WEB动态页面与静态页面的分离
- 有关web页面内容文件强制下载代码
- Rational Performance Tester与LoadRunner测试结果比对报告
- WEB-ASP:返回一个ASP页面执行后的静态HTML代码
- 提供 Watir 入门 PPT 下载--有兴趣了解 Web 测试自动化的朋友可以看看