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

目录:导读

    • 前言
    • 一、Python编程入门到精通
    • 二、接口自动化项目实战
    • 三、Web自动化项目实战
    • 四、App自动化项目实战
    • 五、一线大厂简历
    • 六、测试开发DevOps体系
    • 七、常用自动化测试工具
    • 八、JMeter性能测试
    • 九、总结(尾部小惊喜)


前言

1、环境配置

1)创建jmter脚本

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

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

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工具

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

2)jstat命令

Jstat –gcutil 72800 100

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

3)jvisualvm工具

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

3、内存泄漏表现

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

Tps逐渐下降,降至0

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

Rt相应时间一直上升

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

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

Old老年代一直处于100%

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

Fugc一直上涨

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

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

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

4、判断是否为内存泄漏

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

cd /usr/src/tomcat-pinter/logs

tail -100 catalina.out

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

5、排查思路

1)可以忽略的对象

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

2)重点关注的对象

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

6、定位问题方法

1)通过jmap命令定位问题

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

Jmap –histo 72800 | head -30

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

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

2)通过jvisualvm工具定位问题

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

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

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

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

下载文件到桌面

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

通过jvisualvm打开文件

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

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

定位问题

通过大小排序查看

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

7、源码分析

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

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

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

请添加图片描述

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

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

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

4)分析源码

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

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

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

一、Python编程入门到精通

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

二、接口自动化项目实战

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

三、Web自动化项目实战

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

四、App自动化项目实战

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

五、一线大厂简历

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

六、测试开发DevOps体系

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

七、常用自动化测试工具

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

八、JMeter性能测试

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

九、总结(尾部小惊喜)

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

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

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

你可能感兴趣的:(jmeter,软件测试,性能测试,jmeter,软件测试,jmeter接口测试,性能测试,压力测试,负载测试,自动化测试)