简介
性能测试是软件测试的一种类型,旨在评估系统、应用程序或服务在特定负载条件下的性能表现。
它涉及模拟真实世界中的用户行为、请求和负载,以便测量系统在不同条件下的响应时间、吞吐量、并发用户数和资源利用率等性能指标。
性能测试相关概念
- 并发:并发是指虚拟并发用户数,从业务角度,也可以理解为同时在线的用户数。
- 响应时间(Response Time,RT):响应时间是系统处理用户请求的时间。
- 吞吐量(Throughput):系统在单位时间内处理的请求数量,通常以每秒请求数(Requests Per Second,RPS)或每分钟请求数(Requests Per Minute,RPM)来衡量。
- 每秒事务数(Transaction per Second,TPS):系统每秒处理事务数,单位为 事务数/秒。
- 每秒查询数(Query per Second,QPS):系统每秒处理查询次数,单位为 查询数/秒。
简写 | 英文全称 | 含义 |
---|---|---|
RT | Response Time | 响应时间。通常响应时间,都是包括了 Request Time 和 Response Time |
HPS | Hits Per Second | 每秒点击数 |
TPS | Transactions Per Second | 每秒事务数,事务可以是数据库事务、网络请求、交易等,取决于具体系统的性质。 |
QPS | Queries Per Second | 每秒钟处理的查询数量。查询可以是网络请求、API 调用、HTTP 请求等。 |
RPS | Requests Per Second | 每秒请求数 |
CPS | Codes Per Second | 在 HTTP 协议中,CPS 偶有提及,指的是 HTTP 返回每秒 |
PV | Page View | 页面浏览量 |
UV | Unique Visitor | 独立访问者 |
IP | Internet Protocol | 本意是 IP 地址,在性能中一般指独立 IP 数 |
Throughput | 吞吐量 | |
IPOS | Input/Output Operations Per Second | 通常描述磁盘 |
对于互联网业务中,如果某些业务有且仅有一个请求连接,那么 TPS=QPS, 一般情况下用 TPS 来衡量整个业务流程,用 QPS 来衡量接口查询次数。
并发数 = QPS * 平均响应时间
技术上提升压力的方式
- 多进程:启动多个进程,每个进程虽然只有一个线程,但是多个进程可以一起执行多个任务。
- 多线程:启动一个进程,在一个进程的内部启动多个线程,这样多个线程也可以一起执行多个任务。
- 多进程+多线程:启动多个进程,每个进程再启动多个线程。
维度 | 多进程 | 多线程 | 优劣 |
---|---|---|---|
数据共享、同步 | 数据是分开的:共享复杂,需要用 IPC;同步简单 | 多线程共享进程数据: 共享简单,同步复杂 | 各有优势 |
内存、CPU | 占用内存多,切换复杂,CPU 利用率低 | 占用内存少,切换简单,CPU 利用率高 | 线程占优 |
创建销毁、切换 | 创建销毁、切换复杂,速度慢 | 创建销毁、切换简单,速度快 | 线程占优 |
编程调试 | 编程简单,调试简单 | 编程复杂,调试复杂 | 进程占优 |
可靠性 | 进程间不会相互影响 | 一个线程挂掉将导致整个进程挂掉 | 进程占优 |
分布式 | 适应于多核、多机分布 ;如果一台机器不够,扩展到多台机器比较简单 | 适应于多核分布 | 进程占优 |
性能指标分位值
在性能指标中,Mean(均值)、P90、P95 和 P99 是常见的描述性分位数,用于衡量数据分布的不同方面。
- Mean(均值):也称为平均值,是将所有观测值相加并除以观测值的数量得出的结果。它表示数据的集中趋势,但容易受到离群值的影响。均值特别在数据分布对称时很有用,因为它与分布的中心位置相对应。
- P90:表示第 90 分位数,也称为百分之九十分位数。它表示 90%的观测值低于该值,仅有 10%的观测值高于该值。P90 给出了一个较高的观察到的值,可以用来评估系统在高运行负载条件下的性能。
- P95:表示第 95 分位数,也称为百分之九十五分位数。它表示 95%的观测值低于该值,仅有 5%的观测值高于该值。P95 用于衡量系统在绝大部分情况下的性能,它可以反映典型的性能水平。
- P99:表示第 99 分位数,也称为百分之九十九分位数。它表示 99%的观测值低于该值,仅有 1%的观测值高于该值。P99 用于衡量系统在高负荷或异常情况下的性能,它通常代表较高的延迟或较差的响应时间。
总之,这些分位数可用于衡量系统性能的不同方面,包括典型情况下的性能、高负载情况下的性能以及极端情况下的性能。选择使用哪些分位数取决于具体的需求和关注的性能指标。
总结
- 性能测试相关概念
- 性能指标分位值