news 2026/4/15 22:10:02

超细致的性能测试流程,你get了吗?

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
超细致的性能测试流程,你get了吗?

性能测试:利用工具模拟大量用户操作,验证系统承受的负载情况。

性能测试的目的:找到潜在的性能问题或瓶颈,分析并解决;找出性能变化趋势,为后续扩展系统提供参考。

测试监控:基准测试、配置测试、负载测试、稳定性测试,对硬件和中间件进行监控。

1、学习业务:

通过查看文档、手工操作系统对系统功能进行学习。

2、需求分析:

分析系统非功能需求(关注业务量、业务分布、用户规模、性能指标等信息),确定性能测试范围,了解性能指标。

一、系统非功能需求采集

(1)系统架构:

(2)业务流程:

(3)用户信息:

(4)系统是否与第三方系统有关,是否需要做挡板(Mock程序)。

(5)系统是否有归档机制:如果数据库有归档机制???,可以把一些无用或者过时的信息移到归档库,这样就减少当前数据库的数据,有利于提高系统性能。

(6)性能指标:吞吐率、响应时间、事务成功率,CPU、内存、磁盘、带宽使用阀值。

二、系统非功能需求分析

确定性能测试范围

明确性能指标

例如:

响应时间2-5-8原则

当用户在2秒以内得到响应时,会感觉系统的响应很快;

当用户在2-5秒之间得到响应时,会感觉系统的响应速度还可以;

当用户在5-8秒以内得到响应时,会感觉系统的速度很慢,但是还可以接受;

而当用户在超过8秒后仍然无法得到响应时,会感觉系统糟糕透了,或者认为系统已经失去响应。

CPU、内存、磁盘、网络带宽等。

系统硬件指标阀值

这些指标比较抽象,在监控分析时应该进一步细化。比如CPU的性能指标在Linux中分为用户利用率、系统利用率及平均负载等重要指标。以上指标具体数据来源于非功能需求、组织要求(公司运维总结出来的可行性指标)或者行业标准建议。

分析业务量;估算TPS与并发数活用;分析系统协议

三、性能测试从哪里获取需求?

一般需求文档中会有一部分章节用于描述系统非功能性需求,但是多数需求文档对于性能需求的说明都比较笼统抽象。在需求不明确的情况下,通常需要性能测试工程师主动向需求提供方(BA团队、产品团队等)去征询。

对于升级、优化类的老系统,可考虑是否存有历史测试方案参考,或许可以省事很多。或者我们分析原型系统业务数据即可,最直接的办法就是分析原型系统的数据、统计业务量、业务分布等信息。

3、工作评估:

工作量分解,评估工作量,计划资源投入(即需要多少人力,多少工作日来完成性能测试工作)。

4、设计模型:

圈定测试范围后,把业务模型映射成测试模型。

业务模型:业务流程,系统在某个时间段内运行的业务种类及其业务占比,即哪个业务在什么时段在运行,业务量是多少?

测试模型:从业务模型中分析整理出来的需要进行测试的业务。对业务进行拆分对象,实现这个完整的功能包含哪些流程、环节。比如“购买商品”,具体的流程环节包括“登录->搜索商品->提交订单->支付订单->退出”。接着,明确业务占比,重要程度,目的在于:

(1)明确重点测试对象,安排测试优先级

(2)建模,混合场景中,虚拟用户资源分配,针对不同业务功能施加不同的负载。

(3)明确下“需求分析-指标分析”中相关业务功能所需基础数据及数据量问题,因为那块需求分析时可能只是大致估算下,评估指标是否合理,需要认真再分析下。

性能测试场景:参照用户使用习惯设计负载场景,比如哪些业务的测试脚本一起运行,哪些业务有先后顺序,运行多少并发用户等。比如WMS系统(仓库管理系统),WMS中都会有盘点功能,此功能就不应该与日常功能混合在一起,因为盘点通常都是一个月一次。所以组织测试场景时尽量要与实际业务情况一致。

5、编写计划

在文档中明确列出测试范围、人力投入、持续时间、工作内容、风险评估、风险应对策略等。

系统概述

测试环境

需求分析

测试策略

测试场景

测试准备

时间计划

测试组织架构

交付物清单

系统风险

6、开发脚本

录制脚本或手动开发,添加固定计时器模拟ThinkTime,增加同步定时器模拟集合点,增加IF条件控制器判断逻辑,添加后置处理器获取参数。

7、测试环境准备

测试环境包括服务器和负载机。

生产环境和测试环境的硬件架构和配置需要进行估算,否则结果会有很大的偏差。了解测试环境部署和生产环境部署差异,是否按1:1的比例部署。通常建议测试时先不考虑集群,采用单机测试,测试通过后再考虑使用集群,这样有个比较,比较能说明问题。

8、测试数据准备:

准备被测系统的主数据与业务数据

我们知道数据量变会引起性能的变化。在制作测试数据时,一要注意量,需要准备足够的存量/历史业务数据,二要注意数据的分布。比如我们计算出需要并发100个虚拟用户,我们至少需要准备100个以上账号,并对账号赋予相应的权限(浏览、发帖、删除、查询)。

那么准备多少数据够用呢?

往往性能测试需求会要求我们对系统进行定容定量

数据制作方法可以使用工具、SQL或者存储过程来完成。

9、测试执行

测试执行是性能测试的关键,同样的脚本不同执行人员得出的结果可能差异较大。这些差异主要体现在场景设计与测试执行上。

场景设计;基准测试;配置测试

负载测试;稳定性测试;

测试监控;测试监控;测试执行

一般第三方性能测试会有一个测试准入条件(Checklist)。如果是项目组内的就没有这么严格了,但基本内容不变。

(1)检查网络环境

(2)检查测试数据

(3)检查监控设备

(4)脚本检查

10、缺陷管理

对性能测试过程中发现的缺陷进行管理。

11、性能分析和性能调优

性能测试工程师与开发人员一起来解决性能问题。

12、测试报告

如何由测试环境推算生产环境配置
对于报告人来说,报告的是工作,是对整个测试过程的报告。对于决策层(报告相关干系人)来说关心的是结果,决策层迫切的想知道Yes or No,系统能不能上线,如果不能上线,有什么问题,怎么能够尽快解决?

总结:

感谢每一个认真阅读我文章的人!!!

作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

视频文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片即可自行领取。

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

springboot基于vue的城中村民宿租赁管理系统_29mv7m34

目录已开发项目效果实现截图已开发项目效果实现截图开发技术系统开发工具:核心代码参考示例1.建立用户稀疏矩阵,用于用户相似度计算【相似度矩阵】2.计算目标用户与其他用户的相似度系统测试总结源码文档获取/同行可拿货,招校园代理 :文章底部…

作者头像 李华
网站建设 2026/4/16 13:29:03

龙眼识别与定位:基于Cascade-RCNN的R50-SAC模型实现_1

本数据集名为aided,版本为v2,于2024年1月3日通过qunshankj平台导出。该数据集包含288张图像,所有图像均已采用特定预处理技术,包括自动调整像素数据方向(并剥离EXIF方向信息)以及将图像拉伸调整为640640像素…

作者头像 李华
网站建设 2026/4/16 8:36:00

linux: gdb调试器

故事背景事实上,gdb调试器,是一个用于我们linux命令行式的调试工具,但是但凡接触过一些vscode或者studio这些图形化的自带图形可视化的调试工具,gdb是确实不好用我还不如自己连一些服务器到vscode呢。 但是gdb依然是功能强大&…

作者头像 李华
网站建设 2026/4/16 10:56:59

做测试还是测试开发,选职业要慎重!

突然发现好像挺多人想投测开和测试的,很多人面试的时候也会被问到这几个职位的区别,然后有测试经历或者说有系统学习过测试的人蛮少的,楼主去年投这个岗位的时候也很迷茫,中间在网上请教过好几位大佬and前辈,这里做一个…

作者头像 李华
网站建设 2026/4/15 22:32:31

COMSOL锂枝晶应力模型:直观易用,专业级仿真解决方案

comsol锂枝晶应力模型,到手就能用。打开COMSOL看到锂枝晶模型就手痒?先别急着点"计算",咱们得把应力场和电化学揉明白了。模型库里的枝晶生长模块虽然自带基础设置,但想要真实模拟SEI膜破裂和机械变形,得自己加亿点点细…

作者头像 李华