| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 开发测试 -> 性能测试如何定位分析性能瓶颈? -> 正文阅读 |
|
[开发测试]性能测试如何定位分析性能瓶颈? |
你好,我是小牛。 关于性能测试,这块水还是很深的。之前性能测试也写过几篇文章,作为铺垫,可以看一下 对于一般公司普通测试工程师来说,可能性能测试做的并不是很复杂,可能只是编写下脚本,做个压测,然后输出报告结果,瓶颈分析和调优的事都丢给开发去做。 在一些大厂都有专门的性能测试团队去定位分析系统性能瓶颈,并进行调优。 但是,这并不意味着对于那些不想进大厂或者限于学历暂时无法进入大厂的人学习性能测试就没有意义了。 相反,我觉得很有意义,首先,做性能测试有利于你更好的理解系统架构以及整个链路数据的流转调用情况,从而加深你对业务的理解,更好的进行手工业务测试。 其次,学好性能测试对于你跳槽找工作面试来说是一大利器。之前不止一次提过,对于想拿高薪或者想进大厂的同学来说,其实就是看你编程,自动化,性能这几块掌握的怎么样。 至于其它工具使用,测试思维说实话都比较虚,也比较基础,没什么亮点。 那么接下来详细聊聊如何定位分析性能瓶颈,并调优呢?首先,说一下相对专业一些的性能测试在压测之前一般是怎么做的? 压测之前,一般会先对各个数据流转系统做好监控,比如服务器硬件资源cpu,磁盘,网络,io以及数据库服务器,数据库连接数,是否有sql慢查询,包括线程状态,JVM,中间件redis,nginx等等做监控。 关于如何做监控就看公司性能测试这块投入成本和建设的怎么样了,比如有的公司有自己的监控平台,可以同时监控很多东西。 像一些规模不大的团队简陋一点的可以借助于现有的开源平台和工具做监控。 比如Grafana+Prometheus可以监控服务器操作系统资源和数据库。jvisualvm可以监控JVM和线程状态,包括线程阻塞,死锁等等。nmon可以监控linux服务器,cpu,磁盘,内存,网络等。 除了这些工具还可以使用一些命令来做一些简单监控,比如监控cpu可以用top命令,内存用free命令等。监控中间件redis可以用info命令,监控nginx连接数使用netstat命令等等。 为什么讲性能瓶颈分析之前要先讲监控呢? 原因很简单,监控就像是人的眼睛一样,或者说就像是做手工测试时定位分析bug需要先去看日志报什么错一样,那么一通百通,性能测试问题瓶颈定位分析也是如此。遇到问题需要结合监控来看。 下面列几个经常遇到的性能测试问题定位分析思路,抛转引玉~ 一.TPS压上不去什么原因,怎么排查? 这个原因比较多,压测整个链路上任何一个环节有瓶颈或者问题都有可能导致
这个定位分析方法其实就是结合监控一个一个去排查,查看究竟哪条链路有问题,这也是性能测试比较复杂或者难的地方,需要你对每一个组件和链路都懂,然后还需要大量经验积累,才能在最短的时间内找到问题所在。 二.响应时间过长,什么原因怎么分析? ? ? 一般响应时间过长有下面几个原因:
关于响应时间这个问题定位分析,我们还可以使用jprofiler工具去统计每个方法耗费时间定位到代码级别 三.压测过程中cpu过高或者飙升如何定位分析?
下面是定位分析过程,尽量定位到代码级别再去开发看问题。
以上,就是一些常见问题的定位分析思路,除此之外,可能还会遇到线程死锁,线程阻塞,内存溢出,内存泄露等等方面的性能问题,分析方法也是类似的,大家可以看看博客资料总结学习一波~ 面试的时候可能就会直接问你这些问题的原因和定位方式是什么,答得好的话就会非常加分~ 本人现在某世界500强某厂做测试开发,空闲时间做了个测试学习公众号叫测试小牛进阶,免费分享了简历模版,笔试题,java/python全栈自动化,性能,测开等等测试资源,扫描下方二维码或者搜索公众号测试小牛进阶关注公众号回复关键词即可领取 ? ? ? ?扫描二维码关注测试小牛进阶微信公众号 ? 小牛在B站录了视频,更为详细的讲解了,如何学习编程语言?一套完整的接口自动化测试框架包含哪些部分?分别具体使用了哪些框架,以及它们的作用是什么?欢迎前来围观 ? 功能测试如何转自动化上集: https://www.bilibili.com/video/BV1fi4y1s7ct 功能测试如何转自动化下集: https://www.bilibili.com/video/BV1hz411e7yG 自学软件测试途径有哪些? https://www.bilibili.com/video/BV1gz4y127fV 软件测试月薪有多少? https://www.bilibili.com/video/BV1wK41137q4 大厂软件测试流程是怎么样的? https://www.bilibili.com/video/BV1at4y1D72Z 如何靠自学转行软件测试? https://www.bilibili.com/video/BV1re411W7q3 软件测试如何筛选目标公司? https://www.bilibili.com/video/BV1na4y1J7eJ 软件测试如何由初级工程师进阶为中高级测试工程师? https://www.bilibili.com/video/BV1Lt4y1X7yb 最后,欢迎大家来B站围观,正在推出系列视频,主要讲解自学方法以及学习方向与知识框架,欢迎前来关注+点赞+投币!! |
|
开发测试 最新文章 |
pytest系列——allure之生成测试报告(Wind |
某大厂软件测试岗一面笔试题+二面问答题面试 |
iperf 学习笔记 |
关于Python中使用selenium八大定位方法 |
【软件测试】为什么提升不了?8年测试总结再 |
软件测试复习 |
PHP笔记-Smarty模板引擎的使用 |
C++Test使用入门 |
【Java】单元测试 |
Net core 3.x 获取客户端地址 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/18 2:39:00- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |