一、什么是性能测试
1,定义:利用负载生成工具模拟成千上万的实际用户访问系统,对服务器造成压力或者指定压力,从而发现应用系统性能 问题或可靠性问题,然后定位系统性能瓶颈
2,包括:负载测试、压力测试、并发测试、配置测试、可靠性测试、健壮性测试、强度测试、安全性测试
3,目标:
3-1,确定应用的响应时间
3-2,确定系统将支持多少用户
3-3,确定最佳系统配置
3-4,找出系统在较重负载情况下的潜在性能问题等
2-1,负载测试
2-1-1,定义:通过逐步增加系统负载,测度系统性能的变化,并最终确定在满足系统的性能指标情况下,系统所能承受的最大负载量。无破坏性
2-1-2,目标:确定系统处理能力的极限
2-2,压力测试
2-2-1,定义:对系统不断施加压力的测试。在不断加压的过程中,找到一个极限值,超过这个值系统就不能正常工作或者瘫痪。有破坏性
2-2-2,目标:发现在什么条件下应用系统的性能会变得不可接受,系统却能刚好不瘫痪
4,压力/强度测试(Stress Testing)
在一定的软件、硬件及网络环境下,通过模拟大量的虚拟用户向服务器产生负载,使服务器的资源处于极限状态下长时间连续运行,以测试服务器在高负载情况下是否能够稳定工作
5,负载测试(Load Testing)
在一定的软件、硬件及网络环境下,通过运行一种或多种业务在不同虚拟用户数量情况下,测试服务器的性能指标是否在用户的要求范围内,用于确定系统所能承载的最大用户数、最大有效用户数以及不同用户数下的系统响应时间及服务器的资源利用率
6,配置测试(Configuration Testing)
在不同的软件、硬件以及网络环境配置下,通过运行一种或多种业务在一定的虚拟用户数量情况下,获得不同配置的性能指标,用于选择最佳的设备及参数配置
7,容量测试(Volume Testing)
在一定的软件、硬件及网络环境下,向数据库中构造不同数量级别的数据记录,通过运行一种或多种业务在一定的虚拟用户数量情况下,获取不同数据级别的服务器性能指标,以确定数据库的最佳容量
8,并发测试
定义:测试多个用户同时访问同一个模块或者数据时,是否存在内存泄漏、资源争用或者其他性能问题,几乎所有的性能测试都会涉及并发测试
目标:考察系统在多用户访问时的性能状况
9,基准测试(Benchmark Testing):
在一定的软件、硬件及网络环境下,模拟一定数量虚拟用户运行一种或多种业务,将测试结果作为基线数据,在系统评测过程中,通过运行相同的业务场景并比较测试结果,确定调优是否达到效果或者为系统的选择提供决策数据
10,强度测试
定义:检查程序对异常情况的抵抗能力,强度测试总是迫使系统在异常的资源配置下运行
目标:是找到系统在极端情况下的稳定性
11,健壮性测试
定义:侧重于程序容错能力的测试,主要是验证程序对各种异常情况下否进行正确处理
12,可靠性测试
定义:是当系统在一定的业务压力下,让系统持续运行一段时间,看系统是否达到我们要求的稳定性,这里强调在一定业务压力下持续运行的能力,一定都会有一个明确的要求,例如:持续运行多少天系统不能出现问题
13,安全性测试
定义:检查系统对于非法侵入的防范能力
二,性能测试的常见指标
1,响应时间(Reponse time)
响应时间就是客户端发生请求到客户端得到响应的整个过程所用的时间
2,吞吐量(Throughput)
2-1,“吞”进支的是请求,“吐”出来的是结果,而吞吐量反映的就是系统的处理能力
2-2,吞吐量是指单位是间内服务器处理客户请求的数量
2-3,数据库的吞吐量指的是单位时间内,不同 SQL 语句的执行数量
2-4,网络的吞吐量指的是单位时间内在网络上传输的数据流量
3,资源使用率(Resource utilzaion)
3-1,资源利用率是指服务器系统中不同硬件资源被使用的程度
3-2,CPU 占用率、内存使用率、磁盘利用率、网络利用率
4,事务成功率(Concurrent users):成功完成事务数/总事务数
5,点击率(Hitx per second)
5-1,是指每秒钟用户向服务器提交的 HTTP 请求数量
5-2,衡量 Web Server 处理能力的一个很有用的指标
5-3,点击数不是我们通常理解的用户鼠标点击次数,而是按照端向 Web Server 发起了多少次 http 请求计算的,一次鼠标可能触发多个 http 请求
6,并发用户数(Concurrent users)
6-1,并发用户数指同一时刻与服务器进行数据交互的所有用户数量
6-2,并发用户数用来度量服务器并发容量和同步协调能力
6-3,并发用户数的理解:用户不是指在线用户,也不是指所有注册用户,而是指在线并且与服务器有交互的用户
6-4,强调用户在同一时刻对服务器进行施压
三,性能测试工具:LoadRunner
1,LoadRunner 通过模拟成千上万个用户同时在应用程序中工作的环境,对应用程序进行负载测试
2,当应用程序在负载状态下运行时,LoadRunner会准确评测、监控并分析系统的性能和功能
3,使用 HP LoadRunner 可以创建模拟场景,并定义性能测试会话期间发生在场景中的事件
4,LoadRunner 会用虚拟用户(或称 Vuser)代替物理计算机上的真实用户
5,LoadRunner 工作原理与流程:

5-1,控制器是管理和监控整个压力测试的中心
5-2,数千个虚拟用户模拟真实用户对系统进行测试
5-3,控制器实时捕获系统所有层面的数据,并反馈给控制台
5-4,分析器可以对控制台收集的数据信息进行分析并生成分析报告
6,LoadRunner组件的组成
6-1,Virtual User Generator(VuGen)(虚拟用户生成器)用于创建脚本
VuGen 通过录制用户在应用程序上执行的操作来生成虚拟用户。然后 VuGen 将这些操作录制到自动化 Vuser脚本中,将其作为负载测试的基础
6-2,LoadRunner Controller(控制器)用于设计并运行场景
负责对整个负载的过程进行设置,制动负载的方式和周期,同时提供了系统监控的功能。负责设计
6-3,HP Analysis(分析器) 用于分析场景
对负载生成后的相关数据进行分析
6-4,Load Generator
负责将 VuGen 脚本复制成大量虚拟用户对系统生成负载。负责负载
7,测试流程
计划测试--创建虚拟用户脚本--创建场景--运行场景--监控场景--分析评估测试结果

7-1,创建脚本
捕获在应用程序上执行的典型最终用户业务流程
7-2,设计模拟场景
通过定义测试期间发生的事件,设置负载测试环境
7-3,运行场景
运行、管理并监控负载测试
7-4,分析结果
分析 LoadRunner 在负载测试期间生成的性能数据
浙公网安备 33010602011771号