news 2026/4/22 10:28:24

测试老鸟,性能测试如何做?怎么做?压力负载一篇上高速...

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
测试老鸟,性能测试如何做?怎么做?压力负载一篇上高速...

目录:导读

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

前言

1、性能测试特性?类型由易到难排序

1)性能测试属于专项测试 ==》和安全测试一样
2)性能测试具有非功能的特性,和功能测试是区分开来的
3)功能测试测完之后,介入到性能测试
测试类型由易到难排序 ==》功能测试,APP功能测试,接口测试,UI自动化测试,接口自动化测试,性能测试,安全测试

2、性能测试的测试流程

1)分析性能测试需求 ==》a.甲方提出的 b.通过线上客户反馈的 c.在测试当中发现的
2)编写性能测试方案和性能测试计划
3)编写性能测试用例或者设计性能测试场景

性能测试的类型:
a.并发测试 ==》抢优惠券,秒杀商品 ==》所有的用户在同一个时间调用同一个接口
b.负载测试》不断的对服务器施加压力,发现服务器的瓶颈点和拐点
c.压力测试(稳定性压力测试)
》用服务器100%的tps去稳定运行1H,2H,12H看看是否有内存溢出或者内存泄露等等
d.失效恢复测试 ==》tps会急剧下降掉到0,过一段时间又缓慢上升

4)搭建性能测试环境
5)通过badboy去录制性能测试脚本,准备性能测试数据
6)执行性能测试用例
7)得出性能测试报告和提出性能调优建议

3、性能测试当中的并发、负载、压力,失效恢复测试

a.并发测试 ==》抢优惠券,秒杀商品 ==》所有的用户在同一个时间调用同一个接口
b.负载测试》不断的对服务器施加压力,发现服务器的瓶颈点和拐点
c.压力测试(稳定性压力测试)
》用服务器100%的tps去稳定运行1H,2H,12H看看是否有内存溢出或者内存泄露等等
d.失效恢复测试 ==》tps会急剧下降掉到0,过一段时间又缓慢上升

4、并发测试里面用户的概念

1)注册用户数 ==》电商平台注册用户数为50000
2)在线用户数 ==》取1% ==》500个在线用户线
3)并发用户数 ==》并发度1-5% ==》5-25个

面试题:做并发测试的时候,并发用户数到底怎么取?
我们会采用阶梯式选择并发用户数,比如选择:5-20-40-80-100-150-200-300-500来进行并发测试

5、性能测试的指标

TPS是衡量服务器性能的唯一标准,TPS越高说明服务器性能越好,越低就越差
性能测试的目的:就是通过不断的增加用户数或者不断的增加请求对服务器施加压力,看服务器的处理能力

1)吞吐量 (throughput) ==》平均的tps ==》通过聚合报告里面的吞吐量来监控
博尔特跑1000米只需要95.8秒 ==》实际跑了120秒 ==》吞吐量
博尔特跑100米需要9.58秒 ==》瞬间的tps或者最高的tps

2)tps(transactions per second) 每秒处理的事务数 ==》瞬间的tps ==》jp@gc - Transactions per Second来监控
3)rps(requests per second) 每秒的请求数
4)hps(hits per second) 每秒的点击数
5)qps(queries per second) 每秒sql语句的查询数据或者每秒sql语句的执行数量

6)rt 接口的平均响应时间
客户端发送请求到服务器 T1
服务器处理请求 T2
服务器响应 T3
页面渲染 T4
我们要关注的接口响应时间就是T1+T2+T3,通常我们除了关注接口的平均响应时间,还会关注接口的90%line的时间
7)错误率 ==》事务的错误率低于0.1% ,事务成功率高于99.9%

8)事务
打开cms输入用户名和密码点击登录调用了1个登录接口就是一个事务 1TPS=1QPS
打开cms之后点击登录-添加用户-修改密码-删除用户-退出登录调用了5个接口也是一个事务 1TPS=5QPS

面试题:TPS和QPS有什么区别和有什么关系?
1)tps(transactions per second) 每秒处理的事务数
2)qps(queries per second) 每秒sql语句的查询数据或者每秒sql语句的执行数量
3)对于处理单接口的事务,TPS和QPS几乎是相等的,那么对于处理多接口的事务,TPS和QPS是不相等的。

6、并发测试

相对的并发测试:所有的请求,请求的时间会有一些差异
决定的并发测试:加入集合点Synchronizing Timer,让所有的请求在同一个时间发出

面试题:
1)项目组要求测出tps最高的对应的并发线程数 ==》20并发
2)项目组要求测试无错误率,接口90%line响应时间低于3秒,所支持的最佳并发线程数 ==》200并发线程数
3)项目组要求无报错,接口响应时间无要求所支持的最佳并发线程数 ==》400并发线程数

注意点:服务器的处理能力是有一个上限的或者说是有阈值的
关于TPS计算的公式 : TPS = 并发线程数/接口的响应时间【背诵】
1000TPS = 20/0.02秒
1000TPS = 100/0.1秒
1000TPS = 500/0.5秒
1000TPS = 2000/2秒
1000TPS = 5000/5秒

在限定的接口响应时间内比如3秒,TPS越高说明服务器性能越好 ==》并发线程数为10000,接口响应时间3秒,那么TPS=10000/3=3333.4/sec

7、单接口场景和混合场景负载测试

登录接口 ==》单接口场景 ==》1个接口就是一个事务
登录接口+查询接口 ==》多个接口叫做混合场景 ==》把2个变为1个事务 ==》在jmeter里面放在一个事务控制器里面

并发用户模型:不断的增加并发线程数对服务器施加压力,找服务器的拐点和瓶颈点 ==》站在客户端的角度去思考问题的

吞吐量rps模型:不断的增加请求对服务器施加压力,找服务器的拐点和瓶颈点 ==》站在服务器端的角度去思考问题的
吞吐量tps模型:不断的增加请求对服务器施加压力,找服务器的拐点和瓶颈点 ==》站在服务器端的角度去思考问题的

8、压力测试

1)持续运行1个小时看看tps是否有抖动或者毛刺出现 ==》有可能是堆内存空间太小》导致发生了频繁的fullGC》老年代内存的垃圾回收
2)是否有报out of memory等内存泄露和溢出 ==》多次内存泄露就会内存溢出
3)看load值
4)用dstat -tcmnd --disk-util查看CPU和内存和网络io和磁盘io的情况
5)vmstat 1 1000 主要查看process进程的情况和是否有阻塞
6)GC ==》garbage collection垃圾回收
7)GC ==》jstat -gcutil 16689 1000分析是否有fullgc、内存泄露和内存溢出

8、QPS、TPS、并发数、响应时间(RT)、吞吐率和吞吐量

1)QPS: 每秒钟处理完请求的次数,注意这里是处理完,单接口看做是一个事务的话,1TPS=1QPS

2)TPS:每秒钟处理完的事务次数,一般TPS是对整个系统来讲的。一个应用系统1s能完成多少事务处理,一个事务在分布式处理中,可能会对应多个请求,对于衡量单个接口服务的处理能力,用QPS比较多,TPS是衡量服务器性能的唯一指标

3)并发数:系统能同时处理的请求数
4)RT:响应时间,处理一次请求所需要的平均处理时间

5)吞吐率
我们一般使用单位时间内服务器处理的请求数来描述其并发处理能力。称之为吞吐率,单位是 “req/s”,吞吐率特指Web服务器单位时间内处理的请求数。

另一种描述,吞吐率是:单位时间内网络上传输的数据量,也可以指单位时间内处理客户请求数量。它是衡量网络性能的重要指标。通常情况下,吞吐率"字节数/秒"来衡量。当然你也可以用"请求数/秒"和"页面数/秒"来衡量。其实不管一个请求还是一个页面,它的本质都是在网络上传输的数据,那么用来表述数据的单位就是字节数。

6)吞吐量(Throughput)

吞吐量,是指在一次性能测试过程中网络上传输的数据量的总和(包含了TPS,QPS和RPS)

例子:单接口场景

QPS(TPS)= 并发数/平均响应时间 并发数 = QPS(TPS)*平均响应时间 throughput吞吐量 = jmeter的总共请求次数/运行的时间

一个典型的上班签到系统,早上8点上班。7点半到8点这30分钟的时间里用户会登录签到系统进行签到。公司员工为1000人,平均每一个员上登录签到系统的时长为5分钟。能够用以下的方法计算。

QPS(TPS) = 1000/(30x60) 事务/秒 = 0.56
平均响应时间为 = 5x60 秒
并发数= QPS(TPS)*平均响应时间 = 1000/(30x60) x(5x60)=166.7

意思就是说最低需要166.7个人同时登录签到系统进行签到,才能在30分钟内完成所有1000人的签到操作。

完整版!企业级性能测试实战,速通Jmeter性能测试到分布式集群压测教程

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

一、Python编程入门到精通

二、接口自动化项目实战

三、Web自动化项目实战

四、App自动化项目实战

五、一线大厂简历

六、测试开发DevOps体系

七、常用自动化测试工具

八、JMeter性能测试

九、总结(尾部小惊喜)

人生最动人的风景,往往藏在最险峻的山巅。当你觉得力竭时,请记住:每一次坚持都在重塑更强大的自己。别问路有多远,只管迈步向前;别怕山有多高,向上攀登就是答案!

你体内沉睡着改变世界的力量!每个清晨都是改写命运的新机会,每次挫折都是精心包装的礼物。当全世界都在说"不可能"时,正是你证明"可能"的最好时机!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/21 11:44:51

CPU 中的算术逻辑单元(ALU)的 状态标志

CPU 中的算术逻辑单元(ALU)的 状态标志 理解ALU状态标志不仅是理解CPU如何工作的核心,也是掌握汇编语言编程和计算机底层逻辑的关键。 本文将从概念、每个标志的解析、到实际应用和架构差异,层层递进。核心概念回顾 状态标志是CPU…

作者头像 李华
网站建设 2026/4/17 2:56:07

如何高效使用论文搜索网站获取学术资源

做科研的第一道坎,往往不是做实验,也不是写论文,而是——找文献。 很多新手科研小白会陷入一个怪圈:在知网、Google Scholar 上不断换关键词,结果要么信息过载,要么完全抓不到重点。今天分享几个长期使用的…

作者头像 李华
网站建设 2026/4/11 22:34:04

结构化输出怎么做?OpenCSG公益课实战

由特许全球金融科技师CGFT认证项目(Chartered Global FinTech) 、模速空间与OpenCSG(开放传神)联合推出《普通人的AI掘金课——6天学会,马上能用》系列直播课程,提供了一个非常工程化的视角:当AI参与到“可…

作者头像 李华
网站建设 2026/4/16 1:25:54

2026版Java面试题库及答案解析

今年的行情,让招聘面试变得雪上加霜。已经有不少大厂,如腾讯、字节跳动的招聘名额明显减少,面试门槛却一再拔高,如果不用心准备,很可能就被面试官怼得哑口无言,甚至失去了难得的机会。 现如今,…

作者头像 李华
网站建设 2026/4/13 10:20:50

计算机毕业设计springboot网络云盘系统的设计与实现 基于Spring Boot框架的网络云存储系统开发与实现 Spring Boot驱动的网络云盘系统设计与开发实践

计算机毕业设计springboot网络云盘系统的设计与实现_10f66(配套有源码 程序 mysql数据库 论文) 本套源码可以在文本联xi,先看具体系统功能演示视频领取,可分享源码参考。随着信息技术的飞速发展,网络云盘系统已成为现代信息管理的…

作者头像 李华
网站建设 2026/4/18 12:10:36

疆鸿智能ETHERCAT从站转DEVICENET主站详细解读,建议点赞收藏术语

疆鸿智能ETHERCAT从站转DEVICENET主站详细解读,建议点赞收藏 术语 DeviceNet:DeviceNet是ODVA推出基于CAN的一种通讯规范 EtherCAT:EtherCAT(以太网控制自动化技术)是一个开放架构,以以太网为基础的现场…

作者头像 李华