性能测试

性能测试的概念&意义

概念:通过技术的手段模拟大量用户同时访问被测应用,观察、记录和分析系统的各项性能指标 的过程。
目标:评估系统的性能瓶颈,预测系统的最大用户负载能力

 

性能测试的意义:

1)能够有效评估系统的性能指标,用于系统的性能评估

2)能够识别系统的性能瓶颈,协助性能调优

3)能够指导突发流量承载方案的制定

4)能够用于系统运维成本的预算

 

性能指标剖析

响应时间
假设我们把响应时间分为如下几段:

用户通过客户端向服务端发出请求的时间为: T1 服务端接收到请求,处理该请求的时间为:T2 服务端返回数据给客户端时间为: T3 客户端接收到响应数据,处理数据呈现给用户时间为:T4

从系统视角来看:
系统的响应时间 Ts= T1+T2+T3。该时间没有包括客户端对数据处理并呈现的 时间 T4

从用户视角来看:
用户眼中的的响应时间:Tu = T1+T2+T3+T4。用户通过客户端发出业务请 求,到客户端展现相应的请求结果,这个过程的时间越短越好

从服务器视角来看: 服务器接收到客户端发送的请求,并给出响应,这个过程所消耗的时间为响应时 间,即服务器仅关注 T2

从不同的视角下,衡量响应时间的指标也各不相同。在实际测试过程中,要明 确以什么视角验证被测对象的性能。
大多数情况下,我们用 jmeter 做性能测试的响应时间都以用户视角去看待。

并发数(线程数)

并发用户数:简称 VU ,指的是现实系统中操作业务的用户,在性能测试工具中,一般称为虚拟 用户数(Virutal User),注意并发用户数跟注册用户数、在线用户数有很大差别,并发用户数一定 会对服务器产生压力的,而在线用户数只是 ”挂” 在系统上,对服务器不产生压力,注册用户数 一般指的是数据库中存在的用户数。

在已有系统中可选取高峰时刻,在一定时间内使用系统的人数,这些人数可认为是在线用户数。 并发用户数可以取系统用户数的 10%,例如在半个小时内,使用系统的用户数为 10 万,那么取 10%(即 1 万)作为并发用户数基本足够。

吞吐量

我们用单位时间内系统处理请求的数量来定义它。吞吐量直接体现了软件系统 的业务处理能力

衡量方式如下几种:
Rps 请求数/单位时间

Hps 点击数/单位时间

Tps 通过事物数/单位时间

Qps 查询数/单位时间

 

Rps :即每秒请求数(Request Per Second),通常用来 述施压引擎实际发出的压 力大小。

Rps 主要由并发数和服务器响应时间决定(并发数=rps*单次消耗时间)。并发数过低时可能达 不到预期的 RPS,并发数过高时可能压力过大压垮服务器。为了避免 RPS 压力过大压垮服务器, jmeter 可以通过 Constant Throughput Timer (常数吞吐量定时器)组件来限制 RPS ,或者根据 rps 线程组来自动释 放并发数,或者根据 rps 来手动计算需要的并发数,设置线程。

 

TPS:Transactions Per Second(每秒处理的事物数)。一个事务是指向服务器发送 请求然后服务器做出反应的过程

TPS 是每秒事务数,但是事务是要靠虚拟用户做出来的,假如 1 个虚拟用户在 1 秒内完成 1 笔 事务,那么 TPS 明显就是 1;如果某笔业务响应时间是 1ms,那么 1 个用户在 1 秒内能完成 1000 笔事务,TPS 就是 1000 了;如果某笔业务响应时间是 1s,那么 1 个用户在 1 秒内只能完成 1 笔 事务,要想达到 1000TPS,至少需要 1000 个用户;因此可以说 1 个用户可以产生 1000TPS, 1000 个用户也可以产生 1000TPS,由响应时间快慢决定。

 

QPS:每秒查询率系统每秒处理查询次数,单位是次/秒。它是对一个特定的查询服务 器在规定时间内所处理流量多少的衡量标准

我们对于一个页面做一次访问,就会形成一个 TPS;但一次页面访问,可能产生多次对服务器的 请求,服务器对这些请求,计为“QPS“。如果访问一个页面会请求服务器 3 次,那么一次访问产 生一个“T”,产生 3 个“Q”。对于互联网业务中,如果某些业务有且仅有一个请求连接,那 么 TPS=QPS=HPS

 

CPU 使用率

CPU 指标主要指的 CPU 利用率,包括用户态(user)、系统态(sys)、等待态(wait)、空闲态(idle)。CPU 利用率要低于业界警戒值范围之内,即小于或者等于 75%;CPU sys%小于或者等于 30%,;CPU wait%小于或者等于 5%。

如果 CPU User 非常高,需要查看消耗在哪个进程,可以用 top(linux)命令看出,接着用 top –H –p <pid>看哪个线程消耗资源高,

如果 CPU Sys 非常高,可以用 strace(linux) 看系统调用的资源消耗及时间。

如果 CPU Wait 非常高,考虑磁盘读写了,可以通过减少日志输出、异步或换速度快的硬盘

 

Cpu 瓶颈征兆: 响应时间很慢(slow response time)

CPU 空闲时间为零(zero percent idle CPU)
过高的系统占用 CPU 时间(high percent system CPU)
过高的用户占用 CPU 时间(high ercent user CPU)

长时间的有很长的运行进程队列(large run queue size sustainedover time)

 

内存利用率

内存瓶颈征兆:
1、进程进入不活动状态;

2、交换区所有磁盘的活动次数很高;

3、很高的 CPU 利用率;

4、内存溢出(out of memory errors)

 

磁盘 I/O

磁盘指标主要有每秒读写多少兆,磁盘繁忙率,磁盘队列数,平均服务时间,平均等待时间, 空间利用率。

磁盘瓶颈征兆:

过高的磁盘利用率(high disk utilization)
太长的磁盘等待队列(large disk queue length)
等待磁盘 I/O 的时间所占的百分率太高(large percentage of timewaiting for disk I/O)

太高的物理 I/O 速率:large physical I/O rate(not sufficient initself)

过低的缓存命中率(low buffer cache hit ratio(not sufficient initself))

太长的运行进程队列,但 CPU 却空闲(large run queue with idleCPU)

 

网络带宽

一般使用计数器 Bytes Total/sec 来度量,其表示为发送和接收字节的速率,包括帧字符在内;判 断网络连接速度是否是瓶颈,可以用该计数器的值和目前网络的带宽比较

 

性能测试用例

用例设计过程:

1.系统容量(数据容量、用户量、用户并发量)

2.系统并发度指标(注册用户、在线用户、并发用户)

3.响应度指标(正常压力下响应能力、峰值压力下响应能力、异常压力下的响应 能力)

4.熟悉并且理解整个系统的业务逻辑、实现原理,然行需求拆分,得到性能测试 需求点

5.多个渠道得到具体性能要求,分析评估风险,优先级,是否进行测试等

6.编写性能测试方案和用例,并进行评审通过,执行用例

测试点

a.查询 b.保存 c.统计 d.刷新 e.显示 f.传输 g.响应 h.下载

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值