说明:本文档操作过程及截图均基于 LoadRunner 9.5 版本,其他版本操作过程类似
1. 生成测试脚本
1.1. Virtual User Generator 界面介绍
- 主界面
- 录制选项介绍
a) 菜单 Tools-Recording Options ,或 Ctrl+F7 ,进入录制设置界面
b) 在录制前,一般需要进行录制设置, Smartbi 脚本录制一般保留默认设置即可,但 Correlation 设置有助于自动生成关联规则,下面会进行说明
- 运行时设置介绍
a) 菜单 V u ser-RunTime Settings ,或 F4 ,进入设置界面
b)
Run Logic
(运行逻辑):如迭代次数、
Action
间先后顺序、是否顺序执行或随机执行
c)
Pacing
(步进):设置用什么方式启动新的迭代
d)
Log
(日志):是否启用日志、以及日志的输出级别,便于调试
e)
Think Time
(思考时间):对于脚本中
lr_think_time
语句,是否启用。在
VUGen
的调试模式通常忽略
Thinktime
,而
Controller
中则启用
f)
Miscellaneous
(杂项):包括错误处理、多线程、自动事务度量方式
g)
Speed Simulation
(网络速度模拟):可方便的模拟各种网络环境进行测试
h)
Browser Emulation
(浏览器模拟):包括
IE
版本、缓存等设置
i)
Proxy
(代理):方便进行问题诊断,如将代理设为
Charles
,则可通过
Charles
查看测试脚本发送的请求、以及服务器的响应是否正确
j)
Preferences
k)
ContentCheck
(内容检查):设置内容检查规则后,可自动对每个
HTTP
返回进行监测
1.2. 录制脚本
-
启动脚本生成器
Virtual User Generator
点击开始菜单 -LoadRunner-Applicationos-Virtual User Generator -
新建脚本
点击 File-New ,新建脚本,并选择 Web ( HTTP/HTML )协议
- 进行录制设置
a) 进入 Recording-Options -> Genenal -> Recording ,选择 HTTP/HTML levle 为 URL-based script
b) 进入 Recording-Options -> HTTP Properties > Advanced ,在 Preferences 中勾选 support charest,utf-8 。(防止录制时出现乱码)
c)
进行应用程序类型、
URL
地址等设置,参考下图
注意 URL 必需 加上 参数 “debug=true” 。
d)
如果是首次录制,需要进行关联规则设置。请点击
Options
按钮,进行设置。其他设置项保留默认设置,在
Correlation
(关联)选项,取消其它关联规则,再点击
Import
按钮,导入
Smartbi
的关联规则(
BI52_CorrelationRule.cor
),最终结果如图所示
e) 点击确定,再次点击确定,开始录制
-
测试工具自动调用
IE
访问
URL
地址,同时悬浮工具栏出现悬浮工具栏
- 在登录界面,输入用户名、密码,进行登录进入主界面,这时所有脚本都录制到 vuser_init 部分
- 插入事务(可选)
f) 在录制过程中,若需要测量某项事务并发操作的时间,则需要插入事务。下面以打开报表为例进行说明
g) 在打开报表之前,先点击悬浮工具栏中的插入开始事务按钮
h)
填写要度量的事务名称
i)
双击打开报表,等报表完全打开,悬浮工具栏上事务数不再增加时,点击悬浮工具栏中的插入结束事务按钮,并选择上一步输入的事务
j)
在脚本生成后,可以看到脚本中相应的语句
- 在悬浮工具栏中将 Active Action 从 vuser_init 切换到 Action ,并进行 Smartbi 业务场景操作(如打开报表、刷新数据、切换参数等),这时所有脚本都录制到 Action 部分
- 在悬浮工具栏中将 Active Action 从 Action 切换到 vuser_end ,并点击注销按钮,这时所有脚本都录制到 vuser_end 部分
- 点击停止录制,并保存脚本
注意:
- 使用 LoadRunner 8.0 版本录制 Smartbi 时,录制过程中有时会出现 IE 无响应的情况(通常出现在登录过程)。对于这种现象,可先在 IE 的代理服务器上随便输入一个不存在的代理,然后再用 VUGen 进行录制,通常可解决此问题;或者先开 Charles ,再进行录制,效果同上。对于 LoadRunner8.1 及以上版本,无此问题。
1.3. 修改脚本
- 设置运行时设置
按
F4
进入运行时设置界面,在
ContentCheck
选项中,导入
BI52_ContentCheck.xml
,并点击
Set as Default
,设为默认后以后就不用进行此项设置了。此检查规则的意思是,当返回内容包含
","stackTrace":"
这个字符串时,意味着服务器端返回异常错误,这时将测试结果设为失败
- 关联
a) 什么是关联:在 Smartbi 版本中,进行某项操作(如打开灵活分析)时,服务器会动态生成一个临时 ID ,并将这个 ID 返回给客户端,客户端进行后续操作时(如刷新报表数据、关闭报表等),都是基于这个临时 ID 来操作的,而不是原来的报表 ID ,这样,需要将这个临时 ID 放到后续操作的 HTTP 请求中发给服务器。将服务器返回的临时 ID 保存起来,并将这个临时 ID 放到在后续操作的 HTTP 请求中的这个过程,叫做关联
b) 识别录制的脚本中需要关联的内容。在 Smartbi 中,有多个操作的请求需要进行关联处理,如果脚本中包含这些操作的请求,则需要进行处理,否则会运行失败。需要关联的操作有:打开报表的 Clientid 、打开图表的 Chartid 、(仪表盘或报表中带有的)参数面板 PanelID 、(仪表盘或报表中带有的)参数 id 。如果你的录制过程包含有这些资源,则需要进行相应的关联
c)
识别关联的左右边界:在
Charles
记录操作的
HTTP
请求内容,在相关操作(如打开报表)的返回内容中查看临时
ID
,并识别如何通过左右边界获取该
ID
。
d) 以上列出的关联类型均已包含在 BI52_CorrelationRule.cor 关联规则中。如果录制之前已经启用了该关联规则,则生成的脚本已经自动关联好了
e) 对于 LoadRunner 8.1 及以上版本:如果录制前没有启用该关联规则,则可以在生成脚本之后导入并启用关联规则,同时在 Tools 菜单 -Regenerate Script 重新生成脚本, LoadRunner 会根据新的关联规则设置生成新的脚本
f) 对于 LoadRunner 8.0 版本没有上面的功能,只能进行手工关联
g)
生成的关联规则脚本如下所示:
h) 脚本正确性校验,参考下面说明
- 插入事务(可选)
a) 如果在录制过程中没有插入事务,则可以在生成脚本之后才插入事务,效果是一致的
b) 插入事务之前,需要知道事务对应有哪些请求,如登录操作,对应有哪些请求,可以通过 Charles 查看
c) 在第一个请求之前,通过工具栏的插入开始事务按钮,插入开始事务
d) 在最后一个请求之后,通过工具栏的插入结束事务按钮,插入结束事务
- 参数化(可选)
a) 对于脚本中的确定值,可以通过参数化的方式改为动态变化值(如参数化登录用户名)。但是, Smartbi 服务器对同一个用户的同时登录没有特别处理,因此用相同用户、不同用户登录对服务器来说是一样的,因此,参数化意义不大
b) 选中需要参数化的内容,右键 Replace with a parameter ,输入参数名称,参数类型为 File ,点击属性按钮
c) 在参数属性界面,点击 Create Table ,生成参数文件
d) 点击 Edit with Notepad ,编辑参数内容
e) 设置参数取值规则:顺序、随机、唯一
f) 设置参数值更新规则:每个场景更新、每次出现更新、一次(整个场景中只更新一次)
g)
参数属性结果最终结果如下所示
h)
参数化之后,原有内容自动修改为参数,如下所示
- 脚本运行与调试技巧
a) 点击 Run 按钮运行脚本,在 Replay Log 窗口中查看回放日志
b) 可以通过 F9 设置断点、 F10 单步运行方式,进行脚本调试
c) 在运行时设置中,设置日志输出级别,便于诊断问题
d) 利用代理,设置 charles 为代理并运行脚本,全面问题诊断
- 其它脚本问题
a)
注意打开报表后是否进行了释放。例如,对于灵活分析,在一个会话中系统会保留一个报表实例,因此当第一次打开再关闭报表时,是不会进行报表释放的(
removeFromSession
),只有当打开第二张报表时,才会释放前一张报表。因此,对于录制的脚本,需要手工添加上关闭报表的操作。可以通过
Charles
协助进行。脚本示例如下:
- 脚本正确性验证
a) 通过菜单 Vuser-Complie 或 Shift+F5 进行脚本编译,确认脚本没有语法错误
b) 在运行时设置中,设置 charles 为代理并运行脚本,在 Charles 中查看关键步骤(如刷新数据)的返回数据是否正确。如果返回数据与手工操作数据不同,或者返回内容有错,则需要进一步确认脚本是否正确
2. 场景设置及运行
2.1. 场景设置及运行
-
启动场景设置
Controller
点击开始菜单 -LoadRunner-Applicationos-Controller -
新建场景
点击菜单 File-New ,在界面上添加要运行的脚本
-
在
Scenario Schedule
面板中,设置场景模式(
Schedule by
)为
Schedule
,运行模式(
Run Mode
)为
Real-world schedule
- 在 Global Schedule 面板中,设置用户运行策略
a)
双击
Start Vusers
,在
Edit Action
界面设置要加载用户数,以及加载用户的时间间隔
b)
双击
Duration
,设置场景的持续运行时间,可以是一次性,或持续运行一段时间
c) 双击 Stop Vusers ,设置用户退出模式
d)
设置完加载策略后,右方图形自动显示加载模式,最终效果示例
- 在 Scenario Groups 面板中,设置 Run-Time Settings ,确保运行设置中的各项设置均符合测试需要。需要注意的是,这里的设置会自动继承 VUGen 中的设置,如果在 VUGen 中由于调试需要进行了临时修改,这里要修改回来,免得影响测试正确性。重要的设置如 Log 、 Think Time 、 Proxy 等。
-
设置测试结果存放路径。点击菜单
Results-Results Settings
,设置测试结果名称和存放路径
- 添加监控指标(可选)。以添加 Windows 资源监控为例进行说明,其他类型资源监控参见附录
a) 在 Controller 下面的两个 Tab 页中,切换到 Run 页面
b) 选中四个监控区域中的任一个,在左边可选图形树上,双击 Windows Resources ,则 Windows 资源监控自动替换原有区域的监控内容
c) 通过网上邻居方式,以管理员身份访问要监控的服务器( Windows 资源监控需要以管理员身份登录目标服务器)
d) 在 Windows Resourses 区域,右键菜单 Add Measurements
e) 点击 Add 按钮,添加目标服务器的 IP 地址和操作平台,确定
f) LoadRunner 自动添加默认的监控指标,如果需要其他监控指标,点击下面的 Add 按钮添加
g)
点击确定,
Windows
资源监控设置完成,在下面显示监控的指标值
- 点击 Start Scenario 进行测试,测试结果自动输出到 Results Settings 设置的目录下
- 测试运行完成后,可以通过菜单 Results-Analyzer Results ,直接查看当前测试结果,也可以在 Analysis 中打开查看
2.2. 错误监控
- 查看错误情况
a)
测试过程中可以在
Scenario Status
区域查看测试运行情况
b)
当有
Fail
、
Error
时,可以点击
Errors
查看详细错误信息,定位是在脚本中的哪个
Action
、哪一行出现的错误
- 查看错误详细信息
a)
BI.Offcie log
日志
当出现运行错误后,通常在
Smartbi
的
log
中都会打印详细的错误信息,可以通过该
log
定位问题
b)
LR Vuser log
点击
Vusers
按钮,选择某个错误的用户,并点击工具栏中的
show Vuser log
查看
LR
的错误信息
如果需要查看更详细的日志
,
可以在
Scenario Groups
面板中
,
点击
Run-Time Settings
,
设置
Log
输出级别,并重新运行测试
3. Analysis 结果分析
-
启动测试结果分析工具
Analysis
点击开始菜单 -LoadRunner-Applicationos-Analysis - 点击 New ,并选择测试结果目录,确定后自动生成测试结果
- 测试结果中一些关键内容如下
a)
Summary Report
:测试结果摘要,包括运行时间、吞吐量、点击率、事务的详细信息、
HTTP
状态
b) Average Transaction Respone Time (平均时间响应时间图)、 Throughput (吞吐量图)、 Hits per Second (每秒点击率)
c)
Windows Resources
4. 附录
4.1. AIX 平台资源监控
- 以 root 身份 telent 到 AIX 服务器
- 开启 rstatd 服务:编辑 /etc/inetd.conf 文件,删除 rstatd 前面的 # ,保存文件
- 重新启动服务: refresh – s inetd
- 在 LR 的 Unix Resources 监控窗口,右键 Add Measurements ,添加 AIX 机器的 IP 地址