性能测试差异性分析
1、自己的测试结果跟开发不一样,可能原因?
1)测试工具差异性
2)测试脚本差异性(如jmeter思考时间放置位置不同、事物定义不同)
3)测试版本差异性
4)测试环境(cpu、内存、io、集群、ngix配置、数据库配置)
5)人为原因:测试过程中别人也在操作你的服务器
2、测试工具差异性
1)loadrunner VS jmeter
http请求小并发时,lr TPS会比jmeter小,差10倍
http请求大并发时,lr测试结果会比jmeter大,结果更准
2)loadrunner/jmeter VS apacheab/webbench
①loadrunner、jmeter
都属于一发一收的工具,即发完请求后完整接到服务器响应结果后再发下一个请求
②Apacheab/webbench
* 都只判断服务器状态,即见到2xx状态就算成功,不接受服务器的返回结果
* TCP/IP的3次握手和4次挥手,这两个工具只有tcp的3次握手状态,不管挥手状态。挥手的过程实际就是将服务器的结果返回给客户端
3)测试工具选取
我们测试是面向客户的,用户需要接受服务器的返回结果,选择用jmeter或loadrunner,不能用Apachead、webbench
3、jmeter测试时,突然不发请求了原因
1)jmeter在GC
2)Jmeter内存溢出
4、jmeter溢出改进办法
1)改大heap值
windows在jmeter.bat里面,linux在jmeter.sh里面
2)response中是否返回大量数据,减少返回数据
* 改大堆内存,治标不治本,只是将缓存改大了,延缓了溢出。
* 产生内存溢出的主要原因是因为:申请的资源空间放满了,但是对象没有及时释放。换句话说是因为response里面的数据太多,没有及时清空。Response数据在内存里面,可以让开发减少结果集的输出。
3)取消重定向
取消重定向也可减少response返回
4)去掉多余插件
* jmeter使用了太多的插件,也有可能造成内存溢出。比如不必要的监听器,监听器的数据都会放在jvm内存中。
* 做jmeter测试的时候,除了请求外,加上断言、聚合报告就行,他的都不使用
————————————————
版权声明:本文为CSDN博主「青夜梓藤」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/yishuifengxiao/article/details/80671882
本文来自博客园,作者:up~up,转载请注明原文链接:https://www.cnblogs.com/soft-engineer/p/15670886.html