工作中,在测试性能的时候,时常会出现各种问题,所以我总结一下工作当中所学到的知识点以及遇到的各种问题。(小白一枚)
一、性能需求
1、系统在线用户数5万
2、登录并发用户数5000
二、在线用户数5万脚本设计
1、启动jmeter,添加线程组–5万人,添加http请求,设置好参数
2、添加断言
3、添加察看结果树,聚合报告
4、执行脚本
5、分析测试结果
三、登录并发用户数5000脚本设计
1、启动jmeter,添加线程组–5000人,添加http请求,设置好登录参数(使用csv进行参数化)
2、添加定时器
3、添加断言
4、添加察看结果树,聚合报告
5、执行脚本
6、分析测试结果
四、遇到的问题
1、org.apache.http.conn.HttpHostConnectException: Connect to 124.207.211.146:8505 [/124.207.211.146] failed: Connection timed out
分析:
1、查看取样器的Load time: 77022
Response code: Non HTTP response code: org.apache.http.conn.HttpHostConnectException
原因分析:
*排查问题:查看请求,请求信息正确
**网络,jmeter与服务器之间的网络
***可能由于服务器请求太多,处理请求时间较长,jmeter连接不上服务器
2、java.net.SocketException: Connection reset
原因分析:
1、查看取样器:
Response code: Non HTTP response code: java.net.SocketException
Response message: Non HTTP response message: Connection reset
2、导致“Connection reset”的原因是服务器端因为某种原因关闭了Connection,而客户端依然在读写数据,此时服务器会返回复位标志“RST”,然后此时客户端就会提示“java.net.SocketException: Connection reset”。
另一个可能导致的“Connection reset”的原因是服务器设置了Socket.setLinger (true, 0)。
调优方法:不知
3、java.net.SocketTimeoutException: Read timed out
原因分析:
*排查问题:查看请求,请求信息正确
**网络,jmeter与服务器之间的网络
***可能由于服务器请求太多,处理请求时间较长,jmeter连接不上服务器
解决方法:
http请求:高级–客户端实现
设置较大的超时时间,结果Read timed out消失
4、Response code: 500
服务器内部错误
原因:可能是空指针异常
最好的办法就是打断点、debug调试
5、java.net.SocketException: Socket closed
聚合报告结果: