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.mzph.cn/news/171256.shtml

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

相关文章

windows的bat文件(学习笔记)

简介 通过windows的cmd执行的批处理,扩展名可以是.bat或.cmd(类似linux的shell脚本) 所有语句符号不区分大小写 帮助提示信息:命令 /? 1 基本语法 (1) 注释:rem 注释文本不执行 (2) 关闭盘符输出:e…

Java实现-数据结构 2.时间和空间复杂度

.如何衡量一个算法的好坏:时间复杂度和空间复杂度 算法效率分为时间效率和空间效率,时间效率称为时间复杂度,空间效率称为空间复杂度 时间复杂度 算法的时间复杂度是一个数学函数,它描述了算法的运行时间,一个算法执…

读书笔记:《宽客人生:依曼纽尔·德曼》

金融工程,也叫数量金融,洞察了证券价值与不确定性之间的关系。 布莱克-斯科尔斯模型可以告诉我们如何利用标的股票来复制期权,以及复制期权的成本,做市商利用此来复制期权,以规避无法从其他人那里购买合适价格的期权的…

vim+xxd编辑十六进制的一个大坑:自动添加0x0a

问题描述 今天在做一个ctf题,它给了一个elf文件,我要做的事情是修复这个elf文件,最后执行它,这个可执行文件会计算它自身的md5作为这道题的flag。我把所有需要修复的地方都修复了,程序也能成功运行,但是fl…

奇怪的问题 a==1 a==2 a==3

a 1 && a 2 && a 3 题目很简单,只要让if语句中的判断条件成立即可。 if (a 1 && a 2 && a 3) {console.log(win!!!); }首先分析题目,题目的意思只要我们能够让a同时与1,2,3相等的话,那么此时就成功了…

【电路笔记】-快速了电阻

电阻类型 文章目录 电阻类型1、概述2、电阻器的组成类型2.1 碳电阻器2.2 薄膜电阻器2.3 绕线电阻器 3、总结 电阻器是所有电子元件中最基本、最常用的元件,人们几乎认为电阻器是理所当然的,但它们在电路中起着至关重要的作用。 1、概述 有许多不同类型的…

SpringCloud之Gateway(统一网关)

文章目录 前言一、搭建网关服务1、导入依赖2、在application.yml中写配置 二、路由断言工厂Route Predicate Factory三、路由过滤器 GatewayFilter案例1给所有进入userservice的请求添加一个请求头总结 四、全局过滤器 GlobalFilter定义全局过滤器,拦截并判断用户身…

深入解析:如何开发抖音票务小程序

当下,开发抖音票务小程序成为了吸引年轻用户群体的一种创新方式。本文将深入解析如何开发抖音票务小程序,探讨关键步骤和技术要点。 1.确定需求和功能 考虑到抖音的用户特点,可以加入与短视频相关的票务功能,如在线购票、观影记录…

[网络] 3. HTTP 3 与 HTTP 2 有什么区别

协议不同 HTTP2 是基于 TCP 协议实现的 HTTP3 是基于 UDP 协议实现的QUIC HTTP3 新增了 QUIC 协议来实现可靠性的传输握手次数 HTTP2 是基于 HTTPS 实现的,建立连接需要先进行 TCP 3次握手,然后再进行 TLS 3次握手,总共6次握手。 HTTP3 只需要…

IDEA中的Postman?完全免费!

Postman是大家最常用的API调试工具,那么有没有一种方法可以不用手动写入接口到Postman,即可进行接口调试操作?今天给大家推荐一款IDEA插件:Apipost Helper,写完代码就可以调试接口并一键生成接口文档!而且还…

Jenkins用126邮箱发邮件为什么发不出去

1、检查 Jenkins Location中的邮件地址配置与发邮件的地址配置是否一致 Manage Jenkins -》 system 2、检查地址和端口号 3、检查邮箱的登录配置是否正确(这个地方的配置方式网上一抓一大把,自己搜一下就好) 4、126邮箱发邮件不需要勾选ssl协…

在浏览器中直接打开PDF

1 使用iframe标签 <iframe src"./test.pdf" height"900px;" width"800px"></iframe> 如果PDF是base64参考如下 <iframe id"pdfView" width"100%" height"100%" allow"fullscreen" typ…

Blender学习--模型贴图傻瓜级教程

Blender 官方文档 1. Blender快捷键&#xff1a; 快捷键说明 按住鼠标滚轮&#xff1a;移动视角Tab&#xff1a;切换编辑模式和物体模式鼠标右键&#xff1a; 编辑模式&#xff1a; 物体模式&#xff1a; 其他&#xff1a; 2. 下面做一个球体贴一张纹理的操作 2.1 效果如下…

A-莲子的软件工程学【算法必会题目】(JavaPythonC++实现)

文章目录 A-莲子的软件工程学题目背景解题思路Python题解代码Java题解代码C++题解代码代码OJ评判结果代码讲解Python 代码解释:Java 代码解释:C++ 代码解释:寄语A-莲子的软件工程学 题目背景 在宇宙射线的轰击下,莲子电脑里的一些她自己预定义的函数被损坏了。 对于一名…

VM虚拟机中Ubuntu14.04安装VM tools后仍不能全屏显示

1、查看Ubuntu所支持的分辨率大小。 在终端处输入&#xff1a; xrandr&#xff0c;回车 2、输入你想设置的分辨率参数。 我设置的为1360x768&#xff0c;大家可以根据自己的具体设备设置。 在终端输入&#xff1a;xrandr -s 1360x768 注意&#xff1a;这里1360后边是字母 x 且…

Selenium-介绍下其他骚操作

Chrome DevTools 简介 Chrome DevTools 是一组直接内置在基于 Chromium 的浏览器&#xff08;如 Chrome、Opera 和 Microsoft Edge&#xff09;中的工具&#xff0c;用于帮助开发人员调试和研究网站。 借助 Chrome DevTools&#xff0c;开发人员可以更深入地访问网站&#xf…

交叉编译 和 软硬链接 的初识(面试重点)

目录 交叉编译的初认识Q&A Q1: 编译是什么&#xff1f; Q2: 交叉编译是什么&#xff1f; Q3: 为什么要交叉编译 Q3.1&#xff1a;树莓派相对于C51大得多&#xff0c;可以集成编译器比如gcc&#xff0c;那么树莓派就不需要交叉编译了吗&#xff1f; Q4: 什么是宿主机和…

鸿蒙HarmonyOS 编辑器 下载 安装

好 各位 之前的文章 注册并实名认证华为开发者账号 我们基实名注册了华为的开发者账号 我们可以访问官网 https://developer.harmonyos.com/cn/develop/deveco-studio 在这里 直接就有我们编辑器的下载按钮 我们直接点击立即下载 这里 我们根据自己的系统选择要下载的系统 例…

Android:Google三方库之集成应用内评价详细步骤

1、集成依赖 implementation("com.google.android.play:review:2.0.1")implementation("com.google.android.play:review-ktx:2.0.1") 2、创建 ReviewManager 请遵循有关何时请求应用内评价的指南&#xff0c;以确定在应用的用户流的哪些阶段适合提示用户…

Unsupervised MVS论文笔记(2019年)

Unsupervised MVS论文笔记&#xff08;2019年&#xff09; 摘要1 引言2 相关工作3 实现方法3.1 网络架构3.2 通过光度一致性学习3.3 MVS的鲁棒光度一致性3.4 学习设置和实施的细节3.5.预测每幅图像的深度图 4 实验4.1 在DTU上的结果4.2 消融实验4.3 在ETH3D数据集上的微调4.4 在…