性能测试差异性分析

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

posted @ 2021-12-10 11:23  up~up  阅读(422)  评论(0编辑  收藏  举报