吐血整理,Jmeter服务端性能测试-线程阻塞问题案例分析(超细)

本文主要是介绍吐血整理,Jmeter服务端性能测试-线程阻塞问题案例分析(超细),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录:导读

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


前言

1、Jstack打印快照

1)Jmeter运行压测脚本

请添加图片描述

2)用jstack打印快照,下载到本地

jstack 112759 > log1.txtjstack 112759 > log2.txtjstack 112759 > log3.txt

请添加图片描述

在这里插入图片描述

3)在本地搜索是否有blocked关键字

在这里插入图片描述

2、分析代码

1)下载源码文件

cn.testfan.perf.beihe.pinter.http.CaseController.block(CaseController.java:60)

根据提示,找到casecontrokker的路径

/usr/src/tomcat-pinter/webapps/pinter/WEB-INF/classes/cn/testfan/perf/beihe/pinter/http

请添加图片描述

2)分析代码出错地方

打开jd-gui查看源码60行

发现没有加锁的表示:synchronized,但是此行调用了loger方法

在这里插入图片描述

3)去下载log4j的文件

路径:/usr/src/tomcat-pinter/webapps/pinter/WEB-INF/lib

请添加图片描述

下载这个文件到本地

根据提示路径:

at org.apache.log4j.Category.callAppenders(Category.java:204)

在这里插入图片描述

3、优化代码

调整log4j日志等级

1)找到log4j日志配置文件

路径:/usr/src/tomcat-pinter/webapps/pinter/WEB-INF/classes

请添加图片描述

2)调整日志等级

vi log4j.properties

提升日志等级为 ERROR

请添加图片描述

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

一、Python编程入门到精通

请添加图片描述

二、接口自动化项目实战

请添加图片描述

三、Web自动化项目实战

请添加图片描述

四、App自动化项目实战

请添加图片描述

五、一线大厂简历

请添加图片描述

六、测试开发DevOps体系

请添加图片描述

七、常用自动化测试工具

请添加图片描述

八、JMeter性能测试

请添加图片描述

九、总结(尾部小惊喜)

在生活的大舞台上,每一个人都是自己命运的编剧和主角,只有通过不懈的奋斗和坚韧的毅力,我们才能在挑战与机遇中创造出属于自己的精彩篇章。

人生就像一场马拉松,不在乎起点,只在乎终点,每一步都充满挑战,每一次跌倒都需要坚韧的毅力站起,只有不断奋斗,我们才能到达成功的彼岸,描绘出属于自己的丰富多彩的人生画卷。

生活不会因为你的困难而停止前进,同样,你也不能因为困境而停止奋斗。只有拼尽全力,我们才能在人生的海洋中航行,才能在挑战中创造出属于自己的辉煌。

这篇关于吐血整理,Jmeter服务端性能测试-线程阻塞问题案例分析(超细)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/288185

相关文章

关于MyISAM和InnoDB对比分析

《关于MyISAM和InnoDB对比分析》:本文主要介绍关于MyISAM和InnoDB对比分析,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录开篇:从交通规则看存储引擎选择理解存储引擎的基本概念技术原理对比1. 事务支持:ACID的守护者2. 锁机制:并发控制的艺

MyBatis Plus 中 update_time 字段自动填充失效的原因分析及解决方案(最新整理)

《MyBatisPlus中update_time字段自动填充失效的原因分析及解决方案(最新整理)》在使用MyBatisPlus时,通常我们会在数据库表中设置create_time和update... 目录前言一、问题现象二、原因分析三、总结:常见原因与解决方法对照表四、推荐写法前言在使用 MyBATis

六个案例搞懂mysql间隙锁

《六个案例搞懂mysql间隙锁》MySQL中的间隙是指索引中两个索引键之间的空间,间隙锁用于防止范围查询期间的幻读,本文主要介绍了六个案例搞懂mysql间隙锁,具有一定的参考价值,感兴趣的可以了解一下... 目录概念解释间隙锁详解间隙锁触发条件间隙锁加锁规则案例演示案例一:唯一索引等值锁定存在的数据案例二:

Python主动抛出异常的各种用法和场景分析

《Python主动抛出异常的各种用法和场景分析》在Python中,我们不仅可以捕获和处理异常,还可以主动抛出异常,也就是以类的方式自定义错误的类型和提示信息,这在编程中非常有用,下面我将详细解释主动抛... 目录一、为什么要主动抛出异常?二、基本语法:raise关键字基本示例三、raise的多种用法1. 抛

MySQL 设置AUTO_INCREMENT 无效的问题解决

《MySQL设置AUTO_INCREMENT无效的问题解决》本文主要介绍了MySQL设置AUTO_INCREMENT无效的问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参... 目录快速设置mysql的auto_increment参数一、修改 AUTO_INCREMENT 的值。

Java中实现线程的创建和启动的方法

《Java中实现线程的创建和启动的方法》在Java中,实现线程的创建和启动是两个不同但紧密相关的概念,理解为什么要启动线程(调用start()方法)而非直接调用run()方法,是掌握多线程编程的关键,... 目录1. 线程的生命周期2. start() vs run() 的本质区别3. 为什么必须通过 st

关于跨域无效的问题及解决(java后端方案)

《关于跨域无效的问题及解决(java后端方案)》:本文主要介绍关于跨域无效的问题及解决(java后端方案),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录通用后端跨域方法1、@CrossOrigin 注解2、springboot2.0 实现WebMvcConfig

Go语言中泄漏缓冲区的问题解决

《Go语言中泄漏缓冲区的问题解决》缓冲区是一种常见的数据结构,常被用于在不同的并发单元之间传递数据,然而,若缓冲区使用不当,就可能引发泄漏缓冲区问题,本文就来介绍一下问题的解决,感兴趣的可以了解一下... 目录引言泄漏缓冲区的基本概念代码示例:泄漏缓冲区的产生项目场景:Web 服务器中的请求缓冲场景描述代码

Java死锁问题解决方案及示例详解

《Java死锁问题解决方案及示例详解》死锁是指两个或多个线程因争夺资源而相互等待,导致所有线程都无法继续执行的一种状态,本文给大家详细介绍了Java死锁问题解决方案详解及实践样例,需要的朋友可以参考下... 目录1、简述死锁的四个必要条件:2、死锁示例代码3、如何检测死锁?3.1 使用 jstack3.2

解决JSONField、JsonProperty不生效的问题

《解决JSONField、JsonProperty不生效的问题》:本文主要介绍解决JSONField、JsonProperty不生效的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑... 目录jsONField、JsonProperty不生效javascript问题排查总结JSONField