13年老鸟总结,性能测试方法汇总+性能响应很慢排查方法(详全)

目录:导读

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


前言

1、性能测试包含哪些内容?

1)负载测试

负载测试是指在特定条件下,对软件产品的性能进行测试和评估。测试人员可以通过模拟不同的用户数量、并发请求、访问频率等条件,来评估软件产品在不同条件下的性能表现。

2)强度测试

强度测试是指在资源有限的情况下,对软件产品的性能进行测试和评估。测试人员可以通过模拟资源紧张的情况,例如限制CPU使用率、内存容量等,来评估软件产品在资源受限条件下的性能表现。

3)数据库容量测试

数据库容量测试是指通过插入一定数量的数据,来评估软件产品在处理大量数据时的性能表现。测试人员可以通过模拟大量数据的插入操作,来观察软件产品的性能表现。

4)并发测试

并发测试是指在多个用户同时访问软件产品时,对软件产品的性能进行测试和评估。测试人员可以通过模拟多个用户同时访问软件产品,来观察软件产品在并发访问条件下的性能表现。

5)容量测试

容量测试是指在一定的软、硬件条件下,通过构造不同数量级的记录数量,来评估软件产品在给定虚拟用户数量下的性能表现。

测试人员可以通过模拟不同数量级别的用户数量,来观察软件产品在不同负载下的性能表现。

6)稳定性测试

稳定性测试是指在软件产品运行过程中,对其性能和稳定性进行测试和评估。测试人员可以通过模拟实际场景,如网络故障、负载峰值等,来评估软件产品在面临异常情况时的性能表现和稳定性。

7)配置测试

配置测试是指在软件产品发布前,对其配置信息进行验证和确认的测试。测试人员可以通过检查和验证软件产品的配置信息是否正确无误,来确保软件产品能够在发布后正常运行。

8)网络测试

网络测试是指对软件产品在网络环境下的性能进行测试和评估。测试人员可以通过模拟不同的网络环境,如稳定的局域网环境和繁忙的广域网环境,来评估软件产品在不同网络环境下的性能表现。

9)安全测试

安全测试是指在保障软件产品的数据安全和用户隐私的前提下,对其进行测试和评估。

在进行性能测试时,还可以通过对软件产品进行压力测试来评估其在不同条件下的性能表现。

压力测试是通过模拟大量用户同时访问软件产品或系统,来测试其在高负载情况下的性能表现。通过对软件产品进行压力测试,可以发现软件产品在高负载下的性能瓶颈,并对其进行优化。

2、性能测试响应很慢怎么排查?

大多数的性能测试工作人员分为以下三个阶段:

1)出了问题看资源,资源占用如果很高,报以窃喜的心态,恩,发现了,原理是资源瓶颈。

2)资源没有出现瓶颈,通过一些技术手段分析,发现是组件的配置文件有问题,例如:server的并发策略有问题,带宽有问题,找到了线路短板性能中的短板,到了这个阶段在我看来是比较牛的测试。

3)以上均无问题的情况下,考虑数据结构和算法我个人接触到的来说,现在大多数的人员都是在仰望第二阶段,摸索第三阶段。

希望从代码级发现出性能的问题,进行问题的发现和解决,也符合我们的bug越早发现修复的成本越低的理论。同时,也是一名性能测试工程师高薪的象征。

性能测试调优哪些方面入手,如下几点:

TPS波动较大:

原因解析:出现TPS波动较大问题的原因一般有网络波动、其他服务资源竞争以及垃圾回收问题这三种。

性能测试环境一般都是在内网或者压测机和服务在同一网段,可通过监控网络的出入流量来排查;

其他服务资源竞争也可能造成这一问题,可以通过Top命令或服务梳理方式来排查在压测时是否有其他服务运行导致资源竞争;

调优方案:
网络波动问题,可以让运维同事协助解决(比如切换网段或选择内网压测),或者等到网络较为稳定时候进行压测验证;

资源竞争问题:通过命令监控和服务梳理,找出压测时正在运行的其他服务,通过沟通协调停止该服务(或者换个没资源竞争的服务节点重新压测也可以);

垃圾回收问题:通过GC文件分析,如果发现有频繁的FGC,可以通过修改JVM的堆内存参数Xmx,然后再次压测验证(Xmx最大值不要超过服务节点内存的50%!)

高并发下大量报错:

原因解析:常见的原因有短连接导致的端口被完全占用以及线程池最大线程数配置较小及超时时间较短导致。

调优方案:
短连接问题:修改服务节点的tcp_tw_reuse参数为1,释放TIME_WAIT scoket用于新的连接;

线程池问题:修改服务节点中容器的server.xml文件中的配置参数。

集群类系统,各服务节点负载不均衡:

原因解析:出现这类问题的原因一般是SLB服务设置了会话保持,会导致请求只分发到其中一个节点。

调优方案:
可通过修改SLB服务(F5/HA/Nginx)的会话保持参数为None,然后再次压测验证;

并发数不断增加,TPS上不去,CPU使用率较低:

原因解析:SQL没有创建索引/SQL语句筛选条件不明确、代码中设有同步锁,高并发时出现锁等待;

调优方案:
SQL问题:没有索引就创建索引,SQL语句筛选条件不明确就优化SQL和业务逻辑;

同步锁问题:是否去掉同步锁,有时候不仅仅是技术问题,还涉及到业务逻辑的各种判断,是否去掉同步锁,建议和开发产品同事沟通确认;

压测过程中TPS不断下降,CPU使用率不断降低:

原因解析:出现这种问题的原因可能是因为线程block导致,当然不排除其他可能;

调优方案:
如果是线程阻塞问题,修改线程策略,然后重新验证即可;

性能测试调优应该注意的要点:

要点 1:在应用系统的设计开发过程中,应始终把性能放在考虑的范围内。
要点 2:确定清晰明确的性能调优目标是关键。
要点 3:必须保证性能调优后的程序运行正确。
要点 4:系统的性能更大程度上取决于良好的设计,调优技巧只是一个辅助手段。
要点 5:性能调优过程是迭代渐进的过程,每一次调优的结果都要反馈到后续的代码开发中去。
要点 6:性能调优不能以牺牲代码的可读性和可维护性为代码。

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

一、Python编程入门到精通

请添加图片描述

二、接口自动化项目实战

请添加图片描述

三、Web自动化项目实战

请添加图片描述

四、App自动化项目实战

请添加图片描述

五、一线大厂简历

请添加图片描述

六、测试开发DevOps体系

请添加图片描述

七、常用自动化测试工具

请添加图片描述

八、JMeter性能测试

请添加图片描述

九、总结(尾部小惊喜)

成功并不是一蹴而就的事情,它需要我们坚持不懈的努力和拼搏。只有通过不断的学习和积累,我们才能够取得实质性的进步和成功。

无论你在何处,无论你遭遇何种困境,都不应该轻易放弃。只要心中充满希望,总能找到解决问题的方法,走向成功的彼岸。

每个人都是一块金子,只是有的人在发掘中被埋没,有的人在冶炼中发光发热。所以,请勇敢展现自己的光芒,让世界看到你的独特之处。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/219465.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JsonRPC协议详解(协议介绍、请求示例、响应示例)

JsonRPC协议详解 什么是RPC? RPC(远程过程调用)是一种用于实现分布式系统中不同进程或不同计算机之间通信的技术。它允许我们像调用本地函数一样调用远程计算机上的函数,使得分布式系统的开发变得更加简单和高效。 什么是JsonRP…

<JavaEE> Java中线程有多少种状态(State)?状态之间的关系有什么关系?

目录 一、系统内核中的线程状态 二、Java中的线程状态 一、系统内核中的线程状态 状态说明就绪状态线程已经准备就绪,随时可以接受CPU的调度。阻塞状态线程处于阻塞等待,暂时无法在CPU中执行。 二、Java中的线程状态 相比于系统内核,Java…

【开源】基于Vue+SpringBoot的食品生产管理系统

项目编号: S 044 ,文末获取源码。 \color{red}{项目编号:S044,文末获取源码。} 项目编号:S044,文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 加工厂管理模块2.2 客户管理模块2.3…

基于springboot实现学生成绩管理系统项目【项目源码+论文说明】计算机毕业设计

基于springboot实现学生成绩管理系统演示 摘要 随着信息技术和网络技术的飞速发展,人类已进入全新信息化时代,传统管理技术已无法高效,便捷地管理信息。为了迎合时代需求,优化管理效率,各种各样的管理系统应运而生&am…

【Linux篇】gdb调试器的使用

gdb调试器之常用指令 前言一 . 程序的两种发布模式二 . gdb调试器的使用1> 调用调试器进入调试环境2 > 退出调试3 > gdb中常用调试指令 前言 gdb作为Linux下一款好用且强队的调试工具, 支持对 C C go Java 等多种高级编程语言进行调试.对于在Linux下进行编…

YOLOv5轻量化改进之MobileNetv3

目录 一、原理 二、代码 三、应用到YOLOv5 一、原理 我们提出了基于互补搜索技术和新颖架构设计相结合的下一代mobilenet。MobileNetV3通过硬件网络架构搜索(NAS)和NetAdapt算法的结合来调整到移动电话cpu,然后通过新的架构进步进行改进。本文开始探索自动搜索算法和网络设计…

烧烤店点餐外卖配送管理小程序作用如何

烧烤是人们爱吃的食品之一,尤其到了晚上商业小吃街,烧烤店里往往是坐满了人,甚至还有排队的,从业商家众多,足可见该餐饮细分领域在市场中的欢迎程度。 而在实际经营中,烧烤店经营痛点也不小。 随着互联网…

线性分组码的奇偶校验矩阵均匀性分析

回顾信道编解码知识,我们知道信道编码要求编码具有检纠错能力,作为FEC(forward error correction)前向纠错编码的一类,线性分组码表示校验位与信息位的关系能够线性表示。 在这篇文章中,并不是要讨论信道编…

vue3+ts 兄弟组件之间传值

父级&#xff1a; <template><div><!-- <A on-click"getFlag"></A><B :flag"Flag"></B> --><A></A><B></B></div> </template><script setup lang"ts"> i…

vivado产生报告阅读分析23-时序路径特性报告

时序路径特性报告 下图显示了在“ Timing Mode ” &#xff08; 时序模式 &#xff09; 下运行“ Report Design Analysis ” &#xff08; 设计分析报告 &#xff09; 的输出示例 &#xff0c; 其中显示了设计中 10 条最差建立路径的路径特性。在 Vivado IDE 中选中“ Repo…

飞翔的鸟小游戏

第一步是创建项目 项目名自拟 第二步创建个包名 来规范class 再创建一个包 来存储照片 如下&#xff1a; package game; import java.awt.*; import javax.swing.*; import javax.imageio.ImageIO;public class Bird {Image image;int x,y;int width,height;int size;doub…

C++ day36 贪心算法 无重叠区间 划分字母区间 合并区间

题目1&#xff1a;435 无重叠区间 题目链接&#xff1a;无重叠区间 对题目的理解 移除数组中的元素&#xff0c;使得区间互不重叠&#xff0c;保证移除的元素数量最少&#xff0c;数组中至少包含一个元素 贪心算法 局部最优&#xff0c;使得重叠区间的个数最大&#xff0c…