1、性能测试分类
(1)应用在客户端的性能测试
客户端模拟大量虚拟用户执行不同的业务操作
(2)应用在网络上的性能测试
-
应用网络故障分析
-
网络应用性能监控
-
应用网络故障故障分析测试目标监视网络带宽、延迟、负载和TCP端口变化是如何影响响应时间的
-
通过测试可以做到以下几点
a.优化性能
b.预测系统响应时间
c.定位应用程序的网络故障 -
借助网络故障分析工具的可以解决以下问题
a.使应用跨多个网段的活动过程变得清晰
b.提供有关的应用效率的统计数据
c.不同用户下响应时间,决定投产的网络环境
(3)应用在服务器上的性能测试
- 通过监控解决以下问题
a.减少故障诊断和分析时间
b.减少手工定位问题和避免误诊
c.在问题发生前定位故障
d.验证可达到性能水平和服务水平协议
e.故障诊断、恢复、自动报警
f.服务器、应用的可用性和性能报告
2、性能测试的常用术语
(1)用户数
系统用户、在线用户、并发用户(狭义并发(加集合的并发)、广义并发(不加集合链的并发))
(2)事务
事务是由一些列请求组成的
(3)请求响应时间
发出请求到返回结果所需要的时间
总响应时间=网络延时+应用服务器处理时间+数据库服务器处理时间
(4)事务响应时间
发出请求得到响应的整个过程的时间
(5)每秒通过事务数
每秒钟系统能够处理的交易或者事务数量
(6)每秒点击数(不等于每秒钟单击鼠标的次数,可能点击一次鼠标发送多个请求)
每秒钟用户向web服务器请求数
(7)每秒http响应数
每秒钟web服务器向客户端返回的http响应数
(8)吞吐量
网路上传输数据量的总和
(9)资源利用率
CPU利用率(User%、Sys%、Wait%),内存(Process%、FScache%、System%、pgin、pgout)
CPU:70%以内(好),70%-85%(坏),90%以上(坏)
磁盘(Disk%Busy、IO、Disk Write KB/s、Disk Rcard KB/s、Disk Wait Queue Time)
磁盘:30%以下(好),30%-40%(坏),50%以上(很差)
网络(KBPS、KB-in、KB-out)
(10)90%系统的性能问题均表现为吞吐量较低
3、性能测试的原理
(1)模拟用户的真实行为
- 不同用户使用不同的数据(参数化)
- 多用户并发操作(集合点)
- 用户请求之间的依赖关系(关联)
- 请求间的延时时间(think_time)
(2)监控测试结果
(3)请求响应时间(事务)
(4)LoadRunner提供了全面的计算器接口
(5)服务器的处理能力(通过事务计算吞吐量)
(6)进行性能调优
(7)通过测试结果和监控结果进行定位问题
- 分析问题
- 解决问题
- 问题验证
(8)通过模拟用户的真实行为来监控系统的性能指标最后进行调优
4、性能测试常用工具
(1)商用
HP LoadRunnner、IBM Rational Robot、Qaload、WAS(ACT)、Borland SilkPerformer
(2)开源
Jmeter、OpenSTA
(3)AB(ApacheBench)
5、系统要求
运行LoadRunner,内存最好在128M以上,LoadRunner7.8的最低要求,内存最好在512M以上,安装LoadRunner的磁盘空间至少剩余500M,操作系统最好为Windows 2000
6、思考问题
(1)并行和并发的区别?
并行:把一件事分成若干段
并发:多个用户在同一个点做同一件事情
(2)index.html中包含a.gif,请求index.html过程中,会有几次请求?
2次
(3)性能测试时应该模拟狭义并发还是广义并发?
多用户并发测试的时候模拟狭义并发,对服务器造成更大的压力,可以测试出比较复杂的业务逻辑
混合场景,比如稳定性测试应该模拟广义上的并发,因为这样更接近生产环境