一、LoadRunner术语
1.场景:场景是一种文件,用于根据性能要求在每一个测试会话运行期间发生的事件。
2.Vuser:在场景中,LoadRunner 用虚拟用户或 Vuser 代替实际用户。Vuser 模拟实际用户的操作来使用应用程序。一个场景可以包含几十、几百甚至几千个 Vuser。
3.Vuser脚本:Vuser 脚本用于描述 Vuser 在场景中执行的操作。
4.事务:要度量服务器的性能,需要定义事务。事务表示要度量的最终用户业务流程。
二、测试流程:
负载测试通常由五个阶段组成:计划、脚本创建、场景定义、场景执行和结果分析。
计划负载测试:定义性能测试要求,例如并发用户的数量、典型业务流程和所需响应时间。
创建 Vuser 脚本:将最终用户活动捕获到自动脚本中。
定义场景:使用 LoadRunner Controller 设置负载测试环境。
运行场景:通过 LoadRunner Controller 驱动、管理和监控负载测试。
分析结果:使用 LoadRunner Analysis 创建图和报告并评估性能
三、loadrunner结果分析
1.第一步应查看分析综述(Analysis Summary)。其包括统计综述(statistics Summary),事务综述(Transaction Summary),http响应综述(http Reponses Summary).
在统计综述中查看Total Errors的数量,HTTP 响应综述中查看HTTP 404数量,若数值相对较大(HTTP 404则相对于HTTP 200),则说明系统测试中出错较多,系统系能有问题;另外查看事务的平均响应时间和其90%的事务平均响应时间,若时间过长,超过测试计划中的要求值,则说明系统的性能不满足我们的要求。
2.第二步对LoadRunner测试结果图进行分析,首先对事务综述(Transaction Summary)进行分析,该图可以直观地看出在测试时间内事务的成功与失败情况,所以比第一步更容易判断出被测系统运行是否正常。
3.接着分析事务平均响应时间(Average Transaciton Response Time),若事务平均响应时间曲线趋高,则说明被测系统处理事务的速度开始逐渐变慢,即被测系统随着运行时间的变化,整体性能不断下降。当系统性能存在问题时,该曲线的走向一般表现为开始缓慢上升,然后趋于平稳,最后缓慢下降。原因是:被测系统处理事务能力下降,事务平均响应时间变长,在曲线上表现为缓慢上升;而并发事务达到一定数量时,被测系统无法处理多余的事务,此时曲线变现为趋于平稳;当一段时间后,事务不断被处理,其数量减少,在曲线上表现为下降。如果被测系统没有等待机制,那么事务响应时间会越来越长,最后系统崩溃。
4.再分析每秒通过事务数(Transactions per Second/TPS),该曲线表示被测系统在运行的任意时刻,每个事务通过、失败的情况,其是考查系统性能的一个重要参数。若随着压力的增加,曲线如果开始变化缓慢或有平稳的趋势,则有可能是服务器开始出现瓶颈。
5.分析每秒通过事务总数(Total Transactions per Second),该曲线显示在任意时刻被测系统通过的事务总数、失败的事务总数。该曲线走向和TPS曲线走向一致。
6.事务性能摘要(Transaction Performance Sunmmary)该曲线表示被测系统中所有事务的最小、最大和平均事务响应时间。
7.事务在负载情况下的响应时间(Transaction Response Time Under Load),该曲线表示在不同数量的虚拟用户情况下的事务响应时间情况。该图对分析具有渐变负载的测试场景比较有用。
8.事务响应时间(百分比)(Transaction Response Time(Percentile)),该曲线可以容易地分析出在给定的响应时间范围内事务量的百分比重。
9.事务响应时间(分布)(Transaction Response Time(Distribution)),该图可以容易地分析出在给定响应时间范围内的事务量情况
其实,若并不是十分详细地分析测试结果,第4步与第5步选其一分析,第6步、第7步、第8步为可选项,因为在第1步就在一定程度上分析了,而第9步又与第8步功能相识。LoadRunner生成测试结果图在很大的程度上具有一定的重复性,只不过是在不同情况下的具体显示。
四、软件性能测试的基本指标
1.性能指标
1.计算性能
2.资源的利用和回收
3.启动时间
4.伸缩性
5.稳定性
2.参数指标
1.响应时间(Response Time)
细分为:
1)服务器端响应时间——服务器完成交易请求执行的时间,不包括客户端到服务器端的反应(即通信时间)。可以度量服务器的处理能力。
2)网络响应时间——通信时间
3)客户端响应时间——客户端在构建请求和展现交易结果所耗费的时间。
2.吞吐量(Throughput)
吞——请求。吐——结果。吞吐量反应的事软件系统的处理能力。一般指软件系统在每单位时间内能处理多少个事务/请求/单位数据。吞吐量的大小由负载或行为方式决定,例如下载文件比浏览需要更高的吞吐量。
3.资源使用率(Resource utilization)
常见资源有:cpu占用率,内存使用率,磁盘I/O,网络I/O;
4.点击量(Hits per Second)
点击数可用来衡量WebServer服务器处理能力的指标。指客户端向web sever发起了多少次http请求,点击一次鼠标可能会向服务器发起多次http请求。
5.并发用户(Concurrent users)
并发用户用来度量服务器并发容量和同步协调能力,在客户端指一批用户同时执行一个操作。并发数体现了软件系统的并发处理能力。
五、测试的种类:
1.负载测试——功能测试为主
2.压力测试——以出现错误为预期
3.并发测试——验证系统的并发能力
4.基准测试——再添加新模块时进行测试。在关闭模块时(模块未添加)的性能指标为基准,与添加模块后的性能指标作对比,以判断新模块对系统的影像。
5.稳定性测试——长期测试。
6.可恢复测试——测试系统能否快速从错误状态中恢复到正常。
六、常规性能测试目标
1)度量用户最终响应时间
2)定义最优的硬件配置
3)检查可靠性——确定系统在连续高工作负载下的稳定级别。
4)查看硬件或软件升级
5)确定瓶颈
6)度量系统容量——确定系统在不降低性能的前提下能提供多少额外容量。
七、度量(Metrics)
1)场景的定义,pass/fail的标准
2)事务(Transaction)的定义,pass/fail的标准
3)虚拟用户pass/fail的标准
八、Loadrunner入门
1步骤:
创建脚本——完善/ 编辑脚本——场景的指定——独立运行脚本——场景中运行脚本
2.在录制脚本时要遵循以下录制原则:
1.提高脚本执行效率
所录制的脚本内容要精练,而且是用户的真实操作,不可增加多余或重复性的操作,这
样的脚本执行起来更能准确地模拟用户的真实行为,减少了执行时间,执行结果更准确。
2.录制具有代表性的功能
在一个软件中有很多不同的功能,但要录制所有的功能几乎是不可能的,所以要选择常用的、使用频率较高的业务功能来进行测试。
3.选择具有影响的事务
测试人员要对被测功能具有一定的认识和了解,选择一些对于整个测试过程中有影响的事务来测试,否则测试结果是无意义的。 3.事务插入:
选择新的Transaction开始点,在度量脚本段之前插入Lr_start_transaction
选择新的Transaction结束点,在度量脚本段之后插入Lr_end_transaction.
4.参数替换类型:
1)Data files——最常用的数据类型,该文件可以手工添加,也可以利用Loadrunner的DataWizard从数据库中导出。2)User-defined Function——调用外部DLL生成数据3)Internal Data——虚拟用户内部产生数据