性能测试基础知识

常用名词


并发

1.同一请求在同一时间段发起多次。

2.不同请求在同一时间发起多次。

实际场景:

同一用户短时间内不断执行多次同一操作,如提交表单。这时我们可以对统一会话增加幂等、防抖等方式做限制。

不同用户在短时间内不断执行多次同一操作,如抢火车票。这时我们需要在服务层面做一些分流、限流、队列等方式降低服务的压力激增。

线程数

以jmeter为例,线程组中的线程数就相当于并发的用户数量。这个数值依赖于压测机本身的cpu线程数,比如我有一台8核16线程的设备,那么他最多能同时并发16个请求(实际情况要比这个小,系统本身还需要占用一些线程数),及时你填写的数量大于16,也不可能超过这个数值。

事务

一个事务可以包含多个请求,我们可以以事务的维度看查看一个完整的业务场景的性能指标,例如访问单一页面初始化需要的多个请求,那么将这些这个事务聚合成一个事务,我们就可以统计出当前页面整体的加载时长(当然这里还需要考虑前端的渲染时间)。jmeter 提供了事务控制器(Generate parent sample来帮我们实现这一测试场景。

性能拐点

一般服务都有性能临界点。当超过临界点时,吞吐量非线性下降,响应时间指数级增加,成功率降低。

找到出现性能拐点的主要原因:基于性能拐点主要原因设置高危性能报警线。此为高风险注意事项,因为一旦达到性能拐点,有可能会出现雪崩现象,造成极其严重的事故。

观察超过性能拐点后,系统是否会出现假死、崩溃等高风险事件。


性能指标

response time

响应时间

包括一个请求从发出到接收到反馈之前的时间差。

response time = 发起请求网络传输时间 + 服务器处理时间 + 数据库系统处理时间 + 返回响应网络传输时间

response time + 前端页面渲染时间就是用户侧的感知的”响应时间“。

Average Latency 

平均等待时间

相当于response time 除去网络传输过程的时间(服务器处理时间 + 数据库系统处理时间)

TPS

Transactions per second ,每秒执行事务数

jmeter实际每秒发出的请求数量,可以是一个请求也可以是多个请求。

QPS

Queries per second,每秒请求数量

服务端实际每秒接收的请求数量 。

有的时候也可以翻译成:每秒查询率,即在数据库中每秒执行 SQL 数量

PS: 一个请求可能会执行多条 SQL

OPS

operation per second,每秒执行次数

在不同的系统中有不同的含义,在DB中就相当于每秒执行的sql数量。

Throughput

吞吐量

吞吐量是指系统在单位时间内处理请求的数量。

网络没有瓶颈时,吞吐量≈TPS

成功率

请求成功的次数占总请求数的比例。

如果 QPS 和响应时间都满足性能要求时,请求成功率只有 50%,用户也是不会接受的。

资源利用率

服务器资源的使用程度,比如服务器(应用、服务器)的CPU利用率,内存利用率,磁盘利用率,网络带宽利用率

一般不超过80%



©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容