您的当前位置:首页正文

Loadrunner性能测试

来源:帮我找美食网
LoadRunner11性能测试

1. 概要介绍

1.1. 软件性能介绍

性能是一种指标,表明软件系统或构件对于其及时性要求的符合程度;同时也是产品的特性,可以用时间来进行度量。

表现为:对用户操作的响应时间;系统可扩展性;并发能力;持续稳定运行等。

1.2. 软件性能的主要技术指标

Average Transaction Response Time:事务平均响应时间; Tps:每秒事务处理量(TransactionPerSecond); 响应时间:响应时间=呈现时间+系统响应时间;

吞吐量:单位时间内系统处理的客户请求数量(请求数/秒,页面数/秒,访问人数/秒);

并发用户数:业务并发用户数。

1.3. LoadRunner介绍

LoadRunner是HP公司(原MERCURY公司)推出的一种预测系统行为和性能的负载测试工具。通过以模拟上千万用户实施并发负载及实时性能监测的方式来确认和查找问题,LoadRunner能够对整个企业架构进行测试。通过使用LoadRunner,企业能最大限度地缩短测试时间,优化性能和加速应用系统的发布周期。LoadRunner是一种适用于各种体系架构的自动负载测试工具,它能预测系统行为并优化系统性能。LoadRunner的测试对象是整个企业的系统,它通过模拟实际用户的操作行为和实行实时性能监测,来帮助您更快的查找和发现问题。此外,LoadRunner能支持广泛的协议和技术,为您的特殊环境提供特殊的解决方案。

1.4. LoadRunner工具组成

虚拟用户脚本生成器:捕获最终用户业务流程和创建自动性能测试脚本,即我们在以后说的产生测试脚本;

压力产生器:通过运行虚拟用户产生实际的负载;

用户代理:协调不同负载机上虚拟用户,产生步调一致的虚拟用户; 压力调度:根据用户对场景的设置,设置不同脚本的虚拟用户数量; 监视系统:监控主要的性能计数器;

压力结果分析工具:本身不能代替分析人员,但是可以辅助测试结果的分析。

1.5. LoadRunner工具原理

代理(Proxy)是客户端和服务器端之间的中介人,LoadRunner就是通过代理方式截获客户端和服务器之间交互的数据流。

a) 虚拟用户脚本生成器通过代理方式接收客户端发送的数据包,记录并将其转发给服务器端;接收到从服务器端返回的数据流,记录并返回给客户端。这样服务器端和客户端都以为在一个真实运行环境中,虚拟脚本生成器能通过这种方式截获数据流;虚拟用户脚本生成器在截获数据流后对其进行了协议层上的处理,最终用脚本函数将数据流交互过程体现为我们容易看懂的脚本语句。

b) 压力生成器则是根据脚本内容,产生实际的负载,扮演产生负载的角色。 c) 用户代理是运行在负载机上的进程,该进程与产生负载压力的进程或是线程协作,接受调度系统的命令,调度产生负载压力的进程或线程。 d) 压力调度是根据用户的场景要求,设置各种不同脚本的虚拟用户数量,设置同步点等。

e) 监控系统则可以对数据库、应用服务器、服务器的主要性能计数器进行监控。

f) 压力结果分析工具是辅助测试结果分析。

2. LoadRunner测试过程

2.1. 计划测试

定义性能测试要求,例如并发用户的数量、典型业务流程和所需响应时间等。

2.2. 创建Vuser脚本

将最终用户活动捕获(录制、编写)到脚本中,并对脚本进行修改,调试等。  协议类型:取决于服务器端和客户端之间的通信协议;

 脚本类型:init(初始部分),Action(事务部分),end(退出结束);  脚本录制:捕获应用程序所执行的操作;  验证回放:检查是否准确模拟了录制的会话;  事务:表示要度量的最终用户业务流程;  参数化:将录制的一些常来替换为参数;

 内容检查:LR只检测到网页的响应,就认为是pass而不管当前网页的正确

性,所以设置检查点,确保在测试时结果的正确性;  迭代次数:action部分的循环次数。

2.3. 创建场景

对Vuser脚本进行场景设置和负载环境设置。 场景类型:

 手动场景:通过定义Vuser组,Vuser脚本和运行脚本的负载生成器来创建

场景;

 百分比模式:定义场景中要使用的Vuser总数,负载生成器计算机以及要

分配给每个Vuser脚本的Vuser占总数的百分比。

 面向目标的场景;定义你希望的测试目标,LR会根据这些目标自动构建场

景。

编辑计划:设置加压方式、压力持续时间和减压方式等。 场景组:选择组/脚本,虚拟用户数量以及负载生成器等。 运行时设置:对脚本进行运行时属性设置。

3. LoadRunner测试实例

注:本文档的编写主要是针对Web (HTTP/HTML)协议类的接口进行压力测试,因此文档中的测试实例以Web (HTTP/HTML)协议的测试用例作为测试实例,使用的LoadRunner版本为LoadRunner11。

3.1. 录制脚本

1) 安装好LoadRunner后双击LoadRunner应用图标打开Loadrunner 11,如图3.1所示:

图3.1

2) 打开后进入Loadrunner首页,如图3.2所示:

图3.2

3) 点击“Create/Edit Scripts”,进入脚本编辑界面,如图3.3所示:

图3.3

4) 点击新建一个用户脚本,新建时在如下界面选择协议类型并点击“create”

按钮新建,如图3.4所示:

图3.4

注:这里我们选择Web (HTTP/HTML)

5) 在弹出如下界面后,在“URL Address”填入要测试页面地址,这里以

“http://dev-tsp.qhzinger.com”为例,点击“OK”按钮录制脚本,如图3.5所示:

图3.5

6) 在录制好脚本后点击“”按钮结束录制并生成脚本代码,如图3.6所示:

图3.6

 Vuserinit是录制脚本的起始点;  Action 是录制脚本的活动;

 Vuser end 是录制脚本的终止点。

3.2. 编辑脚本

生成后的脚本代码可以根据需要手动修改,脚本代码也可以不通过录制直接手写,脚本中的相关方法的含义与使用方法可以参考LoadRunner相关API文档(在编辑界面可以按F1键调用自带的LoadRunner API文档)。

3.3. 性能测试场景设置

1) 创建性能测试场景

编辑并保存脚本后,点击Tools工具栏下的“Create Controller Scenario…”选项新建性能测试场景,如图3.7所示:

图3.7

注:

Number of Vusers:虚拟用户数量(具体值根据性能测试需要来设置,这里以100个虚拟用户为例);

Result Directory:运行结果保存路径。

2) 设置性能测试场景

在图3.7界面点击“OK”按钮创建好性能测试场景后进入如下界面设置性能测试场景,如图3.8所示:

图3.8

在design界面的“Global Schedule”下双击任何要修改的地方设置相关场景值,如图3.9所示:

图3.9

注:

Initialize:脚本运行前的初始化操作(直接默认设置);

Start Vuser:脚本运行后每段时间增加的脚本运行数(即每段时间增加的虚拟用户数,从0开始),这里还需要设置最大开启脚本数(即最大同事运行的虚拟用户数);

Duration:达到目标峰值脚本数后持续运行时间;

Stop Vusers:停止运行脚本每段时间结束脚本数(即每段时间退出的虚拟用户数量)。

3.4. 运行性能测试场景

1) 开启性能测试场景

在“Run”界面点击“示:

”开启性能测试场景,如图3.10所

图3.10

2) 性能测试场景状态分析

如图3.11所示为性能测试场景状态:

图3.11

注:

Running Vuser:运行的虚拟用户数; Elapsed Time:总运行时间;

Hits/Second:每秒点击,即当前负载重对系统所产生的点击量记录,每一次点击相当于对服务器发出了一次请求;

Passed Transactions:事务通过的个数; Failed Transactions:执行事务失败个数; Errors:错误个数。

3) 中断性能测试

在“Run”界面点击“

”中断性能测试,如图3.12所示:

图3.12

4. 结果分析

在场景执行完毕的界面点击“Tools”菜单下的“Analysis”或成默认显示界面如图3.13所示:

图标完成收集,收集完

图3.13

4.1. Summary Report

4.1.1. Analysis Summary

图3.14

该部分主要是场景名称、分析结果存储路径、整个场景执行时间这3个信息。

4.1.2. Statistics Summary

图3.15

该部分的信息主要包括Maximum Running Vusers(最大虚拟用户数)是100,这个数值同时也看出来场景中数值的100虚拟用户完全都参与本次场景的执行;本次场景Total Throught(bytes) (总共吞吐量)是316,234,947字节;Average Throught(bytes/second)(平均吞吐量)是588,892字节/秒,在相同的被测试系统,不同的软件与硬件配置下,该值越大表示性能越好;Total Hits(总共点击数)是20,224次;Average Hits per Sencond(平均点击数)是37.661;本次场景测试总共出现的错误数是181。

注:View HTTP Responses Summary是HTTP请求概述。

4.1.3. Transaction Summary

图3.16

该部分是对事务信息的概述,总通过552个事务,失败事务181个,停止事务13个。 图3.16中有3个事务,表中字段名称分别是事务名称、SLA(性能测试的目标和度量性能)状态、响应时间的最小值、平均值、最大值、方差值、百分之90、事务的通过个数、失败个数、停止个数。

注:这里的方差(Std,Deviation)值越小代表程序越稳定。百分之90(90 Percent)表示100个虚拟用户百分之90的虚拟用户。

4.1.4. HTTP Responses Summary

图3.17

HTTP 200(正常)总次数19,812,每秒钟36.894次,HTTP 404(404错误)总次数412,每秒钟0.767次。

4.2. Running Vusers

图3.18

这里显示的是脚本执行时每个时间段加载的虚拟用户数量与状态,图3.18中的表格是对整个状态图的简单说明。

4.3. His per Second

图3.19

图3.19显示的是每个时间段虚拟用户对服务器的访问次数。

4.4. Throughput

图3.20

图3.20显示的是在测试场景的每个时间段的吞吐量(字节)。

4.5. Transaction Summary

图3.21

图3.21显示的是事务概况(每种事务的通过、失败、停止数量)。

4.6. Average Transaction Response Time

图3.22

图3.22显示的是运行测试场景时每个时间段的事务的平均响应时间。

4.7. Transaction per Second

图3.23

图3.23显示的是每个事务在每个时间段每秒处理的事务数量。

因篇幅问题不能全部显示,请点此查看更多更全内容

Top