1. 请求的相应时间 对于web系统,请求的相应时间指的是从客户端发起的一个请求时间,到客户端接收到从服务器返回的相应结束。 3-5-10原则
4. TPS TPS表示服务器每秒处理的事务数
5. 资源利用率 资源利用率就是指资源的使用情况,如CPU使用率、内存使用率、网络宽带的使用情况、磁盘I/O的输入输出量等系统硬件方面的监控指标。
在性能测试中, 最简单最基本的测试就是Page Load Time 测试了.
响应时间反映完成某个业务所需要的时间。
阅读目录
- 响应时间是最主要的性能指标
- 响应时间的概念
- 响应时间的构成
响应时间是最主要的性能指标
用户讨厌等待
响应时间是用户对软件的最重要的印象和感受
响应时间的构成

响应时间 = 数据传输时间(N1+N4) +系统处理时间(A1+A3+A2) + 浏览器页面呈现时间 (R1)
数据传输时间
这个阶段用户点击页面,利用Http协议建立连接,做get请求或post请求。http连接实际上就是TCP连接和一些使用连接的规则。
系统处理时间
比如,业务逻辑处理, 数据库连接和操作。
浏览器页面呈现时间
前端页面大致包含html、图片、css、js、flash等元素,对于各种元素因为浏览器版本的不同而导致加载顺序不同。
合理的响应时间
2/5/8 原则 2秒之内用户觉得很快, 5秒之内用户觉得还可以。 8秒之外用户觉得系统慢,无法忍受
合理的响应时间 是要根据用户的需求, 而不是测试人员定的。
性能的好与坏,都是有指标的。 指标是用来衡量性能的好坏.
阅读目录
2/5/8原则
- 吞吐量
- 吞吐率
- 事务
- 资源使用率
- 每秒点击数
2/5/8原则
吞吐量(Throughput)
例子: 下载速度跟吞吐量有关系
指的是在单位时间内客户端和服务器成功传送数据的数量。 指在一次性能测试过程中网络上传输的数据量的总和。
对于交互式应用来说,吞吐量指标反映的是服务器承受的压力,在容量规划的测试中,吞吐量是一个重点关注的指标,因为它能够说明系统级别的负载能力,另外,在性能调优过程中,吞吐量指标也有重要的价值。如一个大型工厂,他们的生产效率与生产速度很快,一天生产10W吨的货物,结果工厂的运输能力不行,就两辆小型三轮车一天拉2吨的货物,比喻有些夸张,但我想说明的是这个运输能力是整个系统的瓶颈。
提示,用吞吐量来衡量一个系统的输出能力是极其不准确的,用个最简单的例子说明,一个水龙头开一天一夜,流出10吨水;10个水龙头开1秒钟,流出0.1吨水。当然是一个水龙头的吞吐量大。你能说1个水龙头的出水能力是10个水龙头的强?所以,我们要加单位时间,看谁1秒钟的出水量大。这就是吞吐率。
吞吐率
单位时间内网络上传输的数据量,也可以指单位时间内处理客户请求数量。它是衡量网络性能的重要指标,通常情况下,吞吐率用“字节数/秒”来衡量,当然,你可以用“请求数/秒”和“页面数/秒”来衡量。其实,不管是一个请求还是一个页面,它的本质都是在网络上传输的数据,那么来表示数据的单位就是字节数。
不过以不同的方式表达的吞吐量可以说明不同层次的问题。例如,以字节数/秒方式表示的吞吐量主要受网络基础设置、服务器架构、应用服务器制约;以请求数/秒方式表示的吞吐量主要受应用服务器和应用代码的制约。
但是从业务的角度看,吞吐率也可以用“业务数/小时或天”、“访问人数/小时或天”、“页面访问量/小时或天”来衡量。例如,在银行卡审批系统中,可以用“千件/小时”来衡量系统的业务处理能力。那么,从用户的角度,一个表单提交可以得到一次审批。又引出来一个概念---事务。
事务
事物是用户的一个完整操作或者几步操作的集合。比如用户对某一个页面的一次请求,用户对某系统的一次登录,淘宝用户对商品的一次确认支付过程。这些我们都可以看作一个事务。那么如何衡量服务器对事务的处理能力。又引出一个概念----TPS
TPS (Transaction Per second)
每秒钟系统能够处理事务或交易的数量,它是衡量系统处理能力的重要指标。
资源使用率 (Resource Utilization)
常见的资源有:CPU占用率, 内存使用率,磁盘I/O, 网络I/O
每秒点击数 (Hits per second)
指客户端每秒向服务器提交的请求数量,如果客户端发出的请求数量越多,与之相对平均吞吐量也应该越大.
并发用户数(Concurrent users)
指在客户端的一批用户同时执行一个操作的数量,并发数反应了软件系统的并发处理能力,
控制面板-》管理工具-》性能监视器

Window系统下的计数器比较多,主要技术器如下:

Window系统下的计数器比较多,主要技术器如下:


本系列简述的是性能测试
阅读目录
- 什么是性能测试
- 性能测试的目的
- 性能测试的类型
- 性能测试的需求
- 性能测试环境
- 测试数据
什么是性能测试
性能测试是通过自动化的测试工具模拟多钟正常,峰值,以及异常负载条件,来对系统的各项性能指标进行测试。
通常我们班压力测试,负载测试,统称为性能测试
性能测试的目的
性能测试的目的是验证软件系统,是否能够达到用户的性能指标。同时发现软件中存在的性能瓶颈。优化软件。
性能测试的类型
压力测试(Stress testing) 是通过确定一个系统的瓶颈或者不能接受的性能点,来获得系统能提供的最大服务级别的测试。
负载测试(Load testing) 确定在各种工作负载下系统的性能,目标是测试当负载逐渐增加时,系统各项性能指标的变化情况
性能测试的需求
性能测试的困难不是测试工具如何使用,也不是对测试数据进行分析和系统调优, 感到困惑的是没有明确的,量化的需求。 比如
A. 网站可以同时支撑多少用户
B. 银行系统能支付多少用户同时支付
C. 抢购活动
如何不清楚具体的性能测试需求, 那只能参考同类产品
性能测试环境
性能需求跟环境有关系。
比如一辆汽车的百公里油耗是多少升。
会取决于汽车的驾驶环境。
1. 车上坐了几个人。
2. 车是否需要开口头。
3. 路况怎么样,是堵车呢,还是走高速。
4. 驾驶习惯是怎么样的。
5. 车上带了多重的物品.
同样的道理, 不
随着软件行业的快速发展,现代的软件系统越来越复杂,功能越来越多,测试人员除了需要保证基本的功能测试质量,性能也随越来越受到人们的关注 。但是一提到性能测试,很多人就直接连想到Loadrunner。认为LR就等于性能测试,其实这是不对的。LR只是性能测试的一个工具,但性能测试不仅仅是LR。本文会从以下几个方面介绍基础的性能测试理论,后续也会持续更新相关文章,尽量理论结合实践,让性能测试学习不在是工具的学习。
目录:
一、 什么是软件性能
二、不同群体眼中的性能
三、性能测试类型
四、性能测试应用场景
五、性能测试基本概念
六、理发店模型和地铁进站模型
七、做好性能测试需要掌握的知识
正文:
一、 什么是软件性能
定义:软件的性能是软件的一种非功能特性,它关注的不是软件是否能够完成特定的功能,而是在完成该功能时展示出来的及时性。
由定义可知性能关注的是软件的非功能特性,所以一般来说性能测试介入的时机是在功能测试完成之后。另外,由定义中的及时性可知性能也是一种指标,可以用时间或其它指标来衡量,通常我们会使用某些工具或手段来检测软件的某些指标是否达到了要求,这就是性能测试。
性能测试定义:指通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。
二、不同群体眼中的性能
不同的人由于人生观、世界观、价值观以及教育背景、知识体系、人生阅历的不同,对于同一事物或问题的看法可能不同。对于软件性能也是如此,不同的人由于视角的不同,所关注的点也可能不同。下面来看看在不同的人群眼中性能分别是什么样的。
- 用户眼中的性能

- 开发眼中的性能

- 系统管理员眼中的性能

- 测试眼中的性能是什么样的呢?

测试人员通常是做为软件质量控制的一个角色,不仅仅是找bug,需要对整个软件的质量负责,性能也属于质量的一部分,因此测试人员眼中的性能应该是全面的,考虑的东西也需要全面:
1、测试人员需要考虑全面的性能,包括用户、开发、管理员等各个视角的性能。
2、测试人员在做性能测试时除开要关注表面的现象如响应时间,也需要关注本质,比如用户看不到的服务器资料利用率,架构设计是否合理?代码是否合理等言方方面面。
三、性能测试类型
- 基准测试:在给系统施加较低压力时,查看系统的运行状况并记录相关数做为基础参考
- 负载测试:是指对系统不断地增加压力或增加一定压力下的持续时间,直到系统的某项或多项性能指标达到安全临界值,例如某种资源已经达到饱和状态等 。
- 压力测试:压力测试是评估系统处于或超过预期负载时系统的运行情况,关注点在于系统在峰值负载或超出最大载荷情况下的处理能力。
- 稳定性测试:在给系统加载一定业务压力的情况下,使系统运行一段时间,以此检测系统是否稳定。
- 并发测试:测试多个用户同时访问同一个应用、同一个模块或者数据记录时是否存在死锁或者其他性能问题,
四、性能测试应用场景(领域)
1、性能测试应用场景(领域)主要有:能力验证、规划能力、性能调优、缺陷发现、性能基准比较,下表简单介绍和对比了这几个场景的各自用途和特点:
| 主要用途 | 典型场景 | 特点 |
常用性能 测试方法 |
|
| 能力验证 | 关注在给定的软硬件条件下,系统能否具有预期的能力表现 | 在要求平均响应时间小于2秒的前提下,如何判断系统是否能够支持50万用户/天的访问量? | a)要求在已确定的环境下运行 b)需要根据典型场景设计测试方案和用例,包括操作序列和并发用户量,需要明确的性能目标。 |
a)负载测试 b)压力测试 c)稳定性能测试 |
| 规划能力 | 关注如何使系统具有我们要求的性能能力 |
某某系统计划在一年内获客量在到xxx万,系统到时候是否能支持这么多用户量?如果不能需要如何调整系统的配置? | a) 它是一种探索性的测试 b) 常用于了解系统性能和获得扩展性能的方法 |
a) 负载测试 b) 压力测试 c) 配置测试 |
| 性能调优 | 主要用于对系统性能进行调优 | 某某系统上线运行一段时间后响应速度越来越慢,此时应该如何办? | 每次只改变一个配置,切忌无 休止的调优 | a) 并发测试 b) 压力测试 c) 配置测试 |
| 缺陷发现 | 发现缺陷或问题重现、定位手段 | 某些缺陷只有在高负载的情况下才能暴露出来,如线程锁、资源竞争或内存泄露。 | 做为系统测试的补充,用来发现并发问题,或是对系统已经出现的问题进行重现和定位 | a) 并发测试 b) 压力测试 |
| 性能基准比较 | 常用于敏捷开发过程中,敏捷开发流程的特点是小步快走,快速试错,迭代周期短,需求变化频繁。很难定义完善的性能测试目标,也没有时间在每个迭代开展详细的性能测试,可以通过建立性能基线,通过比较每次迭代中的性能表现变化,判断迭代是否达到了目标。 | |||
2、通常在某个性能场景(领域)中需要联合使用多种性能测试方法一起进行性能测试,下表为性能测试应用领域与测试方法关联:
|
|
能力验证 |
规划能力 |
性能调优 |
缺陷发现 |
性能基准比较 |
|
基准测试 |
√ |
|
√ |
|
|
|
负载测试 |
√ |
√ |
√ |
|
|
|
压力测试 |
√ |
√ |
√ |
√ |
√ |
|
并发测试 |
|
|
|
√ |
√ |
|
稳定性测试 |
√ |
|
|
|
|
五、性能测试基本概念
1、响应时间
a)定义:从用户发送一个请求到用户接收到服务器返回的响应数据这段时间就是响应时间
b) 关键路径:下图为一次http请求经过的路径,请求会经过网络发送到web服务器进行处理,如果需要操作DB,再由网络转发到数据库进行处理,然后返回值给web服务器,web服务器最后把结果数据通过网络返回给客户端。

c) 计算方法:Response time = (N1+N2+N3+N4)+ (A1+A2+a3),即:(网络时间 + 应用程序处理时间)
d) 响应时间-负载对应关系:

图中拐点说明:
1、响应时间突然增加
2、意味着系统的一种或多种资源利用达到的极限
3、通常可以利用拐点来进行性能测试分析与定位
2、吞吐量
a)定义:单位时间内系统处理的客户端请求的数量
b)计算单位:一般使用请求数/秒做为吞吐量的单位,出可以使用 页面数/秒表表示。
另外,从业务角度来说也可以使用 访问人数 /天 或 页面访问量/天 做为单位。
c)计算方法:Throughput = (number of requests) / (total time).
d)吞吐量-负载对应关系:
图中拐点说明:
1、吞吐量逐渐达到饱和
2、意味着系统的一种或多种资源利用达到的极限
3、通常可以利用拐点来进行性能测试分析与定位
3、并发数:
并发用户数:某一物理时刻同时向系统提交请求的用户数,提交的请求可能是同一个场景或功能,也可以是不同场景或功能。
在线用户数:某段时间内访问系统的用户数,这些用户并不一定同时向系统提交请求
系统用户数:系统注册的总用户数据
三者之间的关系:系统用户数 >= 在线用户数 >= 并发用户数
4、资源利用率
a) 定义:指的是对不同系统资源的使用程度,通常以占用最大值的百分比来衡量
b) 通常需要关注的服务器资源如下:
1、CPU:就像人的大脑,主要负责相关事情的判断以及实际处理的机制
2、内存:大脑中的记忆块区,将眼睛,皮肤等收集到的信息记录起来的地方,以供cpu进行判断,但是是临时的,访问速度快,如果关机或断电这里的数据会消失。
3、磁盘IO:大脑中的记忆区块,将重要的数据保存起来(永久保存,关机或断电不会丢失,速度慢),以便将来再次使用这些数据。
4、网络:
c)资源利用-负载对应关系:

图中拐点说明:
1、服务器某荐资源使用逐渐达到饱和
2、通常可以利用拐点来进行性能测试分析与定位
5、其它常用概念:
a) TPS:Transactions Per Second,每秒事务数
b) 思考时间:用户每个操作后的暂停时间,或者叫操作之间的间隔时间,此时间内是不对服务器产生压力的
c) 点击数:每秒钟用户向WEB服务器提交的HTTP请求数。这个指标是WEB应用特有的一个指标:WEB应用是"请求-响应"模式,用户发出一次申请,服务器就要处理一次,所以点击是WEB应用能够处理的交易的最小单位。如果把每次点击定义为一个交易,点击率和TPS就是一个概念。容易看出,点击率越大,对服务器的压力越大。点击率只是一个性能参考指标,重要的是分析点击时产生的影响。需要注意的是,这里的点击并非指鼠标的一次单击操作,因为在一次单击操作中,客户端可能向服务器发出多个HTTP请求.
d)PV:访问一个URL,产生一个PV(Page View,页面访问量),每日每个网站的总PV量是形容一个 网站规模的重要指标。
UV:作为一个独立的用户,访问站点的所有页面均算作一个UV(Unique Visitor,用户访问)
六、理发店模型和曲线拐点模型
上面介绍了很多性能测试中的基本概念,比较抽象,可以通过性能测试理发店模型 或 地铁进站模型来帮忙我们更好的理解这些概念。这里不做详细介绍了,需要的可直接查看原文。
七、做好性能测试需要掌握的知识:
- 掌握一门编程语言
- 掌握计算机原理和操作系统知识
- 良好的网络基础
- 掌握数据库知识
- 中间件(apache,tomcat)
- 常用抓包工具
- 性能测试工具
同的硬件,网络环境, 会造成性能测试结果不同。
难以得到精确的测试数据
性能测试的环境
浙公网安备 33010602011771号