8年资深测试,性能测试体系流程总结,从0到1性能压测(详细)

目录:导读

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


前言

1、性能测试介绍

为什么要做性能测试?

有效的性能测试能给研发,运维团队提供有效的容量规划能力,系统风险识别,系统瓶颈识别,性能调优指导。

2、性能测试流程与方法

分析现状
获取当前性能指标
定义用户场景
定义性能验收标准
测试计划/脚本
准备压力环境
执行压测
监控
搜集分析
测试报告
改进建议
持续测试

3、性能测试方法

性能测试方法:
并发模式(虚拟用户模式)并发是指虚拟并发用户数,从业务角度,也可以理解为同时在线的用户数。

如果需要从客户端的角度出发,摸底业务系统各节点能同时承载的在线用户数,可以使用该模式设置目标并发。

RPS模式(吞吐量模式)RPS(Requests Per Second)是指每秒请求数。

RPS模式即“吞吐量模式”,通过设置每秒发出的请求数,从服务端的角度出发,直接衡量系统的吞吐能力,免去并发到RPS的繁琐转化,一步到位。

4、性能测试计划

需求分析与测试设计
环境设计与搭建
测试数据准备
性能指标预期设定
发压工具配置与脚本编写
测试执行& 监控

1)测试数据准备和构造

接口请求参数:自己构造/日志获取/上下关联
数据表的数据填充
如果是多接口,则需结合业务场景设计请求比例

2)环境搭建

设计:根据需求,结合线上机器部署情况,搭建线下测试环境,要求具有一定的参考价值,一般同比1/2,1/4

环境搭建:
起压环境:压测工具的安装与调试、机器参数记录
被压环境:基础服务的搭建、web机代码部署及代码改造、机器参数记录
环境调试:查看接口是否正常

3)性能指标预期

每秒请求数(QPS)
请求响应时间(最小、最大、平均)
错误率
机器性能:cpu idle 45%、memory无剧烈抖动或者飙升
压测过程接口功能是否正常
不同性能测试方式下指标预期会有差异

4)发压时间线

测试前环境检查:记录机器参数
起压:根据被压情况,调节并发量到适合的情况
查看记录各项性能指标(1)nginx日志查看每秒请求数(2)查看nginx错误请求(3)查看机器参数:cpu idle、mem等(4)查看db、cache等数据是否写入正常(5)访问接口,查看功能是否正常

5)常用命令

查看nginx每秒请求数:tail -f access.log | awk ‘{print $4}’ | uniq -c
查看某个接口每秒请求数:tail -f access.log | grep p_getorderstatus | awk ‘{print $4}’ | uniq -c
查看cpu idle: vmstat 1
查看内存:free -m
查看nginx日志是否有错误请求:tail -f access.log | cut -d ’ ’ -f 10 |grep -v 200
查看进程:top、ps aux|grep xxx
查看nginx日志某接口访问量:cat accesss.log.xxxx|grep p_getorderstatus | wc -l

杀进程:
指定进程号:kill xxx;
指定部分进程名:pkill xxx;
自定义特征:for i in ps aux|grep xxxx|awk '{print $2}';do kill $i;done或者kill pgrep -f xxxx
查看TIME_WAIT数量:ss -s或者netstat -tnlp | grep TIME_WAIT|wc -l

6)测试结果

测试前环境检查:记录机器参数
起压:根据被压情况,调节并发量到适合的情况

查看记录各项性能指标
nginx日志查看每秒请求数
查看nginx错误请求
查看机器参数:cpu idle、mem等
查看db、cache等数据是否写入正常
访问接口,查看功能是否正常

7)测试报告

根据测试过程中记录的各项参数,结合压测工具产生的日志,对测试结果进行分析,并产出测试报告

测试完成后,及时与相关人员沟通,确认是否满足需求
发送测试报告邮件

5、性能测试报告

背景&方案
实际环境
压测过程
总结&建议

6、性能测试场景

负载测试(Load Test):负载测试是一种性能测试,指数据在超负荷环境中运行,程序是否能够承担。关注点:how much

压力测试(Stress Test):压力测试(又叫强度测试)也是一种性能测试,它在系统资源特别低的情况下软件系统运行情况,目的是找到系统在哪里失效以及如何失效的地方。

极限测试(Extreme Testing):在过量用户下的负载测试Hammer testing:连续执行所有能做的操作

容量测试(Volume Test):确定系统可处理同时在线的最大用户数。关注点:how much(how fast)容量测试,通常和数据库有关,容量和负载的区别在于:容量关注的是最大容量,而不需要关注使用中的实际表现。

7、性能测试概念

并发:并发是指虚拟并发用户数,从业务角度,也可以理解为同时在线的用户数。并行技术上提升压力的方式:

多进程:启动多个进程,每个进程虽然只有一个线程,但是多个进程可以一起执行多个任务
多线程:启动一个进程,在一个进程的内部启动多个线程,这样多个线程也可以一起执行多个任务
多进程+多线程:启动多个进程,每个进程在启动多个线程

TPS(Transaction per Second):系统每秒处理交易数,单位是笔/秒

QPS(Query per Second):系统每秒处理查询次数,单位是次/秒。对于互联网业务中,如果某些业务有且仅有一个请求连接,那么TPS=QPS,一般情况下用TPS来衡量整个业务流程,用QPS来衡量接口查询次数。

并发数 = QPS * 平均响应时间

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

一、Python编程入门到精通

8年资深测试,性能测试体系流程总结,从0到1性能压测(详细)_第1张图片

二、接口自动化项目实战

8年资深测试,性能测试体系流程总结,从0到1性能压测(详细)_第2张图片

三、Web自动化项目实战

8年资深测试,性能测试体系流程总结,从0到1性能压测(详细)_第3张图片

四、App自动化项目实战

8年资深测试,性能测试体系流程总结,从0到1性能压测(详细)_第4张图片

五、一线大厂简历

8年资深测试,性能测试体系流程总结,从0到1性能压测(详细)_第5张图片

六、测试开发DevOps体系

8年资深测试,性能测试体系流程总结,从0到1性能压测(详细)_第6张图片

七、常用自动化测试工具

8年资深测试,性能测试体系流程总结,从0到1性能压测(详细)_第7张图片

八、JMeter性能测试

8年资深测试,性能测试体系流程总结,从0到1性能压测(详细)_第8张图片

九、总结(尾部小惊喜)

每个人都拥有改变命运的力量,只要我们愿意付诸行动。勇敢面对挑战,不断提升自己,永远不要放弃希望,你一定能在人生的舞台上熠熠生辉!

成功并非一蹴而就,而是需要不断地积累和沉淀。要有耐心,有恒心,有决心,有信心,一步一步地向着目标迈进,最终你一定能品尝到成功的甜美果实!

每一个成功的背后都有无数次的失败与挫折,但只要不放弃,总有曙光会出现。坚定信念,勇敢向前,你必将战胜一切困难,创造出属于自己的辉煌!

你可能感兴趣的:(软件测试工程师,性能测试,软件测试,软件测试,软件测试工程师,性能测试,压力测试,负载测试,Jmeter,接口测试)