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