13年测试老鸟,性能测试内存泄露——案例分析(超细整理)

153 篇文章 10 订阅
26 篇文章 2 订阅


前言

1、环境配置

1)创建jmter脚本

Ip:10.196.130.103
Port:8082
url:/pinter/case/memory
query: userName=admin&password=1234

在这里插入图片描述

2)Jmeter添加监控三方插件

下载地址:http://jmeter-plugins.org/downloads/all
Jar包放jmeter中lib/ext目录

下载插件:
3 Basic Graph:windows下可用的实时tps和响应时间的插件
Custom JMeter Functions
Random CSV Data Set Config
PerfMon :服务端性能实时监控插件

2、监控工具

1)Jmeter工具

请添加图片描述

2)jstat命令

Jstat –gcutil 72800 100

请添加图片描述

3)jvisualvm工具

在这里插入图片描述

3、内存泄漏表现

1)现象一:通过jmeter插件可以看到,tps一直下降,RT一直上升

Tps逐渐下降,降至0

请添加图片描述

Rt相应时间一直上升

请添加图片描述

2)现象二:通过jstat查看,old老年代一直是100%,fgc次数一直上涨

Old老年代一直处于100%

请添加图片描述

Fugc一直上涨

请添加图片描述

3)现象三:Jvisualvm内存一直上涨,最后变成一条曲线

在这里插入图片描述

4、判断是否为内存泄漏

查看日志是否有内存溢出OutOfMemoryError的报错

cd /usr/src/tomcat-pinter/logs

tail -100 catalina.out

请添加图片描述

5、排查思路

1)可以忽略的对象

数据类型相关的不用管:[B Byte [C Char [I int
Java开头的不用管:属于底层对象

2)重点关注的对象

业务相关:一般以com/cn开头
框架相关:org开头三方框架

6、定位问题方法

1)通过jmap命令定位问题

通过jmap命令打印出暂用内存前30的对象

Jmap –histo 72800 | head -30

请添加图片描述

请添加图片描述

2)通过jvisualvm工具定位问题

点击堆dump下载到服务器显示的目录

在这里插入图片描述

在远程服务器给对应的文件授权

chmod 777 /usr/src/tomcat-pinter/temp/heapdump-1671609652793.hprof

下载文件到桌面

在这里插入图片描述

通过jvisualvm打开文件

右上角文件>装入>堆>文件

在这里插入图片描述

定位问题

通过大小排序查看

在这里插入图片描述

7、源码分析

1)根据打印的路径找到项目对应的目录

请添加图片描述

2)通过sz或者ftxp下载到本地

请添加图片描述

3)利用jd.gui工具查看源码

Jd.gui官网地址:http://java-decompiler.github.io/

在这里插入图片描述

4)分析源码

代码逻辑问题:每次有用户登录,就会去写入session,没有判断用户已经登录,存在session数据

在这里插入图片描述

下面是我整理的2023年最全的软件测试工程师学习知识架构体系图

一、Python编程入门到精通

请添加图片描述

二、接口自动化项目实战

请添加图片描述

三、Web自动化项目实战

请添加图片描述

四、App自动化项目实战

请添加图片描述

五、一线大厂简历

请添加图片描述

六、测试开发DevOps体系

请添加图片描述

七、常用自动化测试工具

请添加图片描述

八、JMeter性能测试

请添加图片描述

九、总结(尾部小惊喜)

只有经历了痛苦的耕耘,方能绽放出辉煌的花朵;只有经历了坎坷的跋涉,才能抵达成功的彼岸。相信自己,奋斗不息,未来必将光芒万丈。

困境是砥砺前行的催化剂,挫折是铸就胜利的磨刀石。不论风雨如何,我们要坚定信念,勇往直前,因为奋斗的汗水将点亮未来的星辰。

每一次努力,都是给梦想增加了一分力量;每一次坚持,都是为成功准备了一份底气。相信自己的能力,追逐心中的目标,勇往直前,终将收获辉煌。

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值