用LoadRunner对SAP GUI进行压力测试,从环境准备到脚本执行需要注意。
环境准备和配置
在开始录制脚本前,需要保证SAP客户端和LoadRunner环境配置正确。
启用SAP脚本功能:这是录制和回放的基础。需要在SAP GUI客户端中启用脚本功能,同时在SAP服务器端通过事务码RZ11将参数sapgui/user_scripting设为True。
关闭SAP GUI通知:为防止干扰,需在SAP GUI客户端的 Options - Scripting 标签页中,取消勾选两个Notify选项(关于脚本附加和打开连接的通知)。
禁用不支持的组件:保证GuiXT等不被LoadRunner支持的组件处于禁用状态。
检查SAP GUI版本:最低要求为SAP GUI 6.20补丁32或更高版本。
脚本录制VuGen
操作直接影响脚本的稳定性和可维护性。
选择正确的协议:针对纯SAP GUI客户端,必须选择 SAP GUI 协议。如果业务流程中会调用浏览器控件,则需要创建 SAP GUI + SAP-Web 的多协议脚本。SAP GUI for Java客户端不受支持。
划分好脚本的Action:将登录操作放在vuser_init中,重要业务放在Action中,注销放在vuser_end中。这能保证虚拟用户(Vuser)在迭代时正确模拟用户行为。
处理登录密码:录制生成的SAPGUI_LOGON函数中的密码是加密的,必须手动替换为明文密码,否则脚本回放会失败。
处理动态数据:SAP环境充满动态数据,需要对所有动态值(如订单号、证据ID)进行参数化(Parameterization) 和关联(Correlation),以保证脚本的通用性。
注意布局变化:如果SAP中某些事务的界面布局会变化(如通过按钮切换显示),录制后可能会回放失败。可以考虑在脚本中加入检查点或界面调整的思路来保证回放稳定。
运行时设置Runtime Settings
正确的运行时设置能保证负载测试顺利、高效地进行。
禁用SAP客户端UI显示:在Replay - Runtime Settings - SAPGUI - General节点下,取消勾选Show SAP Client During Replay。这能显著节省系统资源,对于运行成百上千的Vuser非常重要。
启用64位回放(如适用):在Runtime Settings - Miscellaneous中,勾选Replay script with 64 bit。这有助于解决内存和性能问题,特别是在LoadRunner Cloud环境中。
设置思考时间(Think Time):在压测场景中,一般建议忽略思考时间(Ignore think time)以模拟最大压力。
设置迭代方式:建议选择 As soon as the previous iteration ends,让Vuser不断不断地施压。
负载生成器Load Generator配置
每台Windows服务器的Vuser数量限制:这是一个重要的容量规划点。SAP GUI协议对资源消耗较高,官方不建议在单台Windows负载生成器上运行超过50个Vuser。
水平扩展:当测试规模超过单台机器的50个Vuser限制时,需要配置多台Load Generator,并将总Vuser数分摊到各台机器上。
Remote Agent运行方式:保证LoadRunner Remote Agent以进程(Process)方式运行,服务(Service)方式不受支持。
关闭不必要的程序:在负载生成器上,必须关闭杀毒软件、屏幕保护程序、自动更新等,以避免它们干扰测试。
监控和分析
压力测试不只是跑脚本,更要注意系统和应用的各项标准。
监控SAP服务器:
利用SAP事务码ST03N分析指定时间段内的平均响应时间。注意该数据按小时统计,测试应在整点开始,并保持系统空载。
使用事务码SM66监控当前进程,ST02检查内存和Buffer配置,ST22进行系统Dump分析,SM21分析系统日志。
监控操作系统:在SAP服务器上使用nmon等工具监控CPU、内存等资源,并生成分析报告。
使用LoadRunner Analysis:测试结束后,利用LoadRunner的Analysis工具详细分析响应时间、吞吐量、事务成功率等重点标准。
常见问题解决
无法录制或回放:
检查SAP GUI脚本功能是不是已启用。
保证已关闭SAP GUI的Notify选项。
检查saplogon.ini文件是不是存是C:\Windows目录下。
回放失败:
保证已处理密码问题。
检查是不是存在界面布局变化,并相应调整脚本。
确定是不是使用了单点登录(SSO) ,该机制不被支持,需在SAP GUI高级选项中关闭Enable Secure Network Communication并重新录制脚本。
Controller挂起或Vuser数量上不去:这一般和单台负载生成器的Vuser数量限制有关。请参考上文“负载生成器配置”部分,通过增加负载生成器来水平扩展。
实施SAP GUI压力测试是准确备和巧配置。请必须进行环境准备、脚本开发规范,并严格按照运行时和负载生成器的配置建议,这将帮助您有效规避常见问题,获得准确、可靠的性能测试结果。