阿里巴巴质量技术新人手册又更新了!本期分享的最常用的性能测试,买买买,也要服务器稳稳稳!
![6fac0685f781a7e997ee087d9c0e2e07.png](https://i-blog.csdnimg.cn/blog_migrate/1bf70c2f21275244e8173496bb5f8590.png)
概念&目的
本周分享的性能测试,主要面向的是服务端的性能测试。
性能测试是从业务中提取压测模型,然后利用压测工具按照模型制造压测流量,并对目标应用集群进行施压,在施压过程中观察应用集群的性能表现和发掘性能瓶颈的测试行为。
当前性能测试主要分为线上压测和线下压测。线上压测主要通过全链路压测执行,线下压测是单机(或者小集群)压测。全链路压测请看全链路压测章节,本节主要讨论通用性能测试方案和流程。
常用指标
![b93de17a1b077638fdf5c3afcd6474d9.png](https://i-blog.csdnimg.cn/blog_migrate/2840212340e69a42ceabad0e3286be8f.png)
1. 虚拟用户
虚拟用户,模拟真实业务逻辑步骤的虚拟用户,虚拟用户模拟的操作步骤都被记录在压测脚本里。压测脚本用于描述虚拟用户在场景中执行的操作。
2. Transaction压测事务
事务是性能测试脚本的一个重要特性。要度量服务器的性能,需要定义事务,每个事务都包含事务开始和事务结束标记。事务用来衡量脚本中一行代码或多行代码的执行所耗费的时间。可以将事务开始放置在脚本中某行或者多行代码的前面,将事务结束放置在该行或者多行代码的后面,在该脚本的虚拟用户运行时,这个事务将衡量该行或者多行代码的执行花费了多长时间。
3. TPS每秒事务数
TPS(Transaction Per Second)每秒钟系统能够处理的交易或事务的数量,它是衡量系统处理能力的重要指标。
备注:在日常工作中也会用到TPS和QPS,在应用层,所有的请求都可以用QPS或者TPS来表示;但在DB层,TPS和QPS有区别,QPS指的是select的请求量,TPS指的是insert、update和delete的请求量
4. Peak PV 高峰Page View
即PV峰值,指一天中PV数达到的最高峰。
5. Concurrency并发
并发分为狭义和广义两类。狭义的并发,即所有的用户在同一时刻做同一件事情或操作,这种操作一般针对同一类型的业务,或者所有用户进行完全一样的操作,目的是测试数据库和程序对并发操作的处理。
广义的并发,即多个用户对系统发出了请求或者进行了操作,但是这些请求或操作可以是不同的。对整个系统而言,仍然有很多用户同时进行操作。
狭义并发强调对系统的请求操作是完全相同的,多适用于性能测试、负载测试、压力测试、稳定性测试场景;广义并发不限制对系统的请求操作,多适用于混合场景、稳定性测试场景。
6. 压测场景
为了模拟真实用户的业务处理过程,从被压测业务中抽取出目标压测接口,并封装成压测脚本,该抽出出来的目标压测接口即为一个压测场景。
7. Response Time响应时间(RT)
响应时间是指从客户端发一个请求开始计时,到客户端接收到从服务器端返回的响应结果结束所经历的时间,响应时间由请求发送时间、网络传输时间和服务器处理时间三部分组成。
8. Think Time思考时间
模拟正式用户在实际操作时的停顿间隔时间。从业务的角度来讲,思考时间指的是用户在进行操作时,每个请求之间的间隔时间。在测试脚本中,思考时间体现为脚本中两个请求语句之间的间隔时间。
9. CPU资源
CPU资源是指性能测试场景运行的这个时间段内,应用服务系统的 CPU资源占用率。CPU资源是判断系统处理能力以及应用运行是否稳定的重要参数。应用服务系统可以包括应用服务器、Web服务器、数据库服务器等。
10. Load负载
系统平均负载,被定义为在特定时间间隔内运行队列中的平均进程数。如果一个进程满足以下条件则其就会位于运行队列中:
- 它没有在等待 I/O 操作的结果。
- 它没有主动进入等待状态(也就是没有调用“wait”)。
- 没有被停