简介
Loadrunner是一种预测系统行为和性能的负载测试工具,它可以轻松创建虚拟用户、创建真实的负载、定位性能问题、重复测试保证系统的高性能。
LR与JM对比
组成
Vuser Generator C语言脚本开发的
Controller 指挥官的作用,控制执行场景
Analysis 收集测试数据,进行结果分析的
什么时候可以开始执行性能测试?
功能测试通过;一般需要进行性能测试的系统,都是用户量比较大、业务使用比较频繁、比较重要的功能模块。
使用Loadrunner的步骤
制定性能测试计划—>开发测试脚本—>设计测试场景—>执行测试场景—>监控测试场景—>分析测试结果
为什么用事务
事务Transaction,一般我们用来衡量一个action所消耗的时间,通过它,可以知道一个操作的消耗相应时间,它是作为度量系统性能的唯一指标
一、创建Vuser脚本—录制基本脚本
1.创建
选择File –> New菜单,或点击 按钮,打开New Virtual User对话框,显示可供选择脚本的协议。
对于常用的应用软件,我们可以根据被测应用是B/S结构还是C/S结构来选择协议。
如果是B/S结构,就要选择Web(HTTP/HTML)协议。
如果是C/S结构,则可以根据后端数据库的类型来选择,如MS SQL Server协议用于测试后台数据库为SQL Server的应用;对于没有数据库的WINDOWS应用,可以选择Windows Sockets协议。
根据选择协议的不同,Virtual User Generator 会使用不同的方式和界面引导用户完成脚本的录制。
2.录制前的设置
选择Web(HTTP/HTML),点击Create按钮,打开Start Recording对话框。选择的协议不同,打开的窗口就会不同,实例是针对Web录制的对话框。
VuGen的脚本分为三个部分:Vuser_init,Action,Vuser_end。其中Vuser_init和Vuser_end都只能存在一个,而Action可分成无数多个部分,可以通过点击旁边的【new】按钮来创建Action。在迭代执行测试脚本时,Vuser_init和Vuser_end中的内容只会执行一次,迭代的是Action部分。
3.录制选项设置
在Start Recording对话框,点击Options按钮,进入录制选项设置。一般要设置以下选项
1) HTTP/HTML level中设置脚本的显示形式:URL_based script。
建议:
1.基于浏览器的应用程序推荐使用HTML-based script。
2.不是基于浏览器的应用程序推荐使用URL-based script。
3. 基于浏览器的应用程序中包含了JavaScript,并且该脚本向服务器发送了请求,比如DataGrid的分页按钮等,推荐使用URL-based script。
4.基于浏览器的应用程序中使用了HTTPS安全协议,建议使用URL-based script。
2)Support charset中设置编码格式:UTF-8;
提示:录制Web脚本时,生成的脚本中存在乱码该如何解决?
新建脚本—>选择协议(Http)–>选项–>高级–>选择“支持字符集”并点选“UTF-8”。 在回放脚本之前:Vuser–>运行时设置–>浏览器–>浏览器仿真–>更改–>使用浏览器–>语言下来选择 “中文(中国)”。
4.点击录制
在Start Recording对话框,点击OK按钮,开始录制。系统自动弹出IE,加载XXX的登录界面。在录制的过程中,屏幕上有一个悬浮的录制工具栏,是脚本录制过程中测试人员和VuGen交互的主要平台。
在录制的过程中,可以在相应的步骤插入action、事务、检查点、集合点等信息。录制完成后单击 停止按钮,LoadRunner开始生成脚本。
熟悉两种脚本查看方式:
Script View 可以查看全部录制的脚本代码
Tree View 可以查看每个URL获取来的页面
二、增强/编辑脚本
1.插入事务
插入事务是用于把功能分为若*分,在统计性能指标时,可以对不同的事务分别作统计。如果对脚本不是太熟悉,可以在录制的时候,逐步插入。也可以在录制完成之后,在脚本中插入。
录制加入方式:
在录制时插入操作为:录制某个功能开始前单击插入事务的起始点录制,直到某个功能结束插入事务的结束点。
在脚本的插入方式为:
插入事务起始点:
单击某个功能起始前的空白处右键鼠标–> insert–> start transaction–> 命名–> OK。系统自动在脚本语句中插入如下语句:
lr_start_transaction(“登录”);
插入事务结束点:
单击某个功能结束后的空白处右键鼠标–> insert–> end transaction–> 命名(与起始点的名字一致)–>OK。系统自动在脚本语句中插入如下语句:
lr_end_transaction(“登录”,LR_AUTO);
2.参数化
参数化的作用是在进行场景执行的时候,每个不同的虚拟用户可以按照参数的读取策略读取到参数值,以模拟不同用户在提交或者读取不同的数据。
每个用户在界面上读取和提交的信息都不太相同,因此一般都需要参数化,其它与输入信息对应的比如用户id之类的信息也需要参数化;另外,录制环境绝大多数情况下与执行环境不一致,因此一般需要对IP、端口或者域名做参数化。
下面将分四部分来介绍参数化的方法和实施过程: