目录
一、前言
在日常开发过程中,我们经常需要对项目进行相应的压力测试来衡量项目的各项指标,例如QPS、运行时间等。
压测相关的一些指标:
QPS(Queries Per Second):每秒能够响应的查询次数,也即是最大吞吐能力(吞吐量)。
TPS(Transactions Per Second):每秒处理的事务数目。一个事务是指一个客户端向服务器发送请求然后服务器做出反应的过程。TPS 的过程包括:客户端请求服务端、服务端内部处理、服务端返回客户端。
例如,访问一个页面会请求服务器 3 次,那么访问这一个页面就会产生一个TPS,三个QPS。
因此,本文总结了常见的压力测试步骤,希望可以更好的帮助读者熟悉压力测试的相关操作。
二、基础知识
1. 什么是压力测试
软件压力测试是一种基本的质量保证行为,它是每个重要软件测试工作的一部分。软件压力测试的基本思路很简单:不是在常规条件下运行手动或自动测试,而是在计算机数量较少或系统资源匮乏的条件下运行测试。通常要进行软件压力测试的资源包括内部内存、CPU 可用性、磁盘空间和网络带宽。
压力测试涵盖,性能测试,负载测试,并发测试等等,这些测试点常常交织耦合在一起。
顾名思义:压力测试,就是 被测试的系统,在一定的访问压力下,看程序运行是否稳定/服务器运行是否稳定(资源占用情况)。
比如:2000个用户同时到一个购物网站购物,这些用户打开页面的速度是否会变慢,或者网站是否会奔溃。
2. 压力测试的步骤
抽象步骤
-
定义测试目标和指标:确定测试所需达到的目标和指标,例如系统吞吐量、响应时间、连接数等。
-
制定测试方案:根据测试目标和指标,制定测试方案,包括测试场景、负载模型、测试数据等。
-
准备测试环境:搭建测试环境,包括硬件、软件、网络等,确保测试环境与生产环境相似。
-
进行预热测试:在正式测试之前先进行预热测试,测试环境的稳定性和准确性。
-
进行负载测试:按照测试方案进行负载测试,记录并分析各项指标的数据。
-
分析测试结果:根据测试数据,分析系统的瓶颈和弱点,确定优化方案。
-
优化系统:针对测试分析结果,进行系统优化,包括硬件升级、软件调优等。
-
重复测试:进行多次测试,确保系统的性能稳定和可靠。
生产步骤
(1)确定存量数据的规模(用户一般会要求制造出3-5年的存量数据);
(2)确定需要进行压力测试的业务(一般是用户使用最频繁,或者业务操作复杂的业务);
(3)确定操作用户的的数量、各类操作用户的比例;
(4)峰值业务量的要求(一般是1个小时内最多要处理的笔数);
(5)对实时业务响应时间的要求(如在峰值情况下,单笔业务的处理时间(如小于60