LoadRunner脚本回放指南,包括主要概念、具体操作、验证方法和常见问题处理。掌握脚本回放是保证后续性能测试-结-果准确的重要一步。
理解脚本回放
脚本回放指的是通过LoadRunner的VuGen(Virtual User Generator),模拟用户操作,向服务器发送请求,并验证服务器响应是否正确的过程。这不仅能验证脚本本身的正确性,也是后续进行场景压力测试的基础。
回放操作步骤
启动回放:在VuGen中完成脚本录制或编辑后,点击工具栏上的运行按钮或通过菜单 Replay > Run 开始回放。
查看回放日志:回放过程中,重点关注Replay Log窗口。这-里-会-显-示脚本执行的详细信息,是排查问题的主要依据。
-检查-回-放-结-果:脚本回放结束后,会弹出Test Results窗口(或Replay Summ-ar-y-)--显-示-整-体结果,但不能仅凭"Pass"状态判断成功,需结合其他方式深入验证。
验证回放成功
保证脚本回放成功,需要多方面验证:
检查重要请求:在VuGen的Tree View模式下,通过 "Visual Test Results" 查看每个请求的服务器返回状态(如HTTP 200),并对比录制和回放时服务器返回内容的快照。
使用检查点验证内容:通过在脚本中添加检查点函数(如 web_reg_find),验证响应中是否包含预期重-要文本(例如"登录成功"),这是保证业务逻辑正确的重要。
确认事务状态:如果脚本中定义了事务(Transaction),回放成功后,在结果中会明确显示事务状态为 "Pass"。
排查常见回放问题
脚本回放失败常见于动态数据、参数化及运行时设置。
处理动态数据(关联)
问题根源:服务器返回的动态数据(如SessionID、Token)在回放时已失效,导致后续请求失败。
解决方案:使用关联(Correlation) 技术捕获这些动态值。
定位动态数据:在Tree View的录制和回放快照对比中,或在Response的原始数据(Raw Data)里查找变化的数值。
使用关联函数:在依赖动态数据的请求前,插入web_reg_save_param函数,并设置唯一的左、右边界(LB/RB)来精确定位和捕获该值。
替换脚本:将脚本中所有使用该硬编码动态值的地方,替换为上一步定义的参数。
关联函数示例:
c
// 在获取动态值的请求前注册关联函数
web_reg_save_param("SessionID", "LB=name=\"session\" value=\"", "RB=\"", "Search=Body", LAST);
// 接下来是具体的请求,如web_submit_data等
// 然后在后续请求中使用 {SessionID} 参数
检查参数化数据
若脚本进行了参数化,回放失败需检查:
参数文件路径是否正确,特别是在脚本移动到其他机器时。
参数文件的数据格式是否正确(如逗号分隔,无多余空格)。
参数的更新方式和数据量是否满足测试逻辑(如唯一性要求)。
调整运行时设置
通过 Run-Time Settings 调整虚拟用户行为:
日志设置:调试时可开启扩展日志(Extended Log),如记录"Parameter substitution"来观察参数替换值。
思考时间:可根据测试目标忽略思考时间(压测极限性能)或按比例调整。
错误处理:设置遇到错误时继续执行或暂停,便于问题定位。
尝试不同运行时引擎
遇到一些难以解决的关联或回放错误(如Error -26377),可以尝试在 Run-Time Settings > Internet Protocol > Preferences > Advanced 中勾选 "WinInet replay instead of sockets" 选项。这相当于更换了网络通信的实现方式,有时能解决兼容性问题。
系统化调试步骤
建议按照以下步骤,让回放调试工作更高效:
保证基础脚本可回放:录制后先不做任何增强,回放一遍确认基础脚本无误。
逐项增强并验证:每进行一项重要脚本增强(如参数化、添加检查点、处理关联),都执行回放进行验证。
仔细分析回放日志:回放后仔细查看回放日志,重点关注错误信息、参数替换值和检查点结果。
迭代和验证:重复步骤2和3,直到脚本能稳定、正确地完成所有业务逻辑。
回放和调试技巧
使用断点和单步执行:在VuGen的脚本视图中设置断点,然后使用单步执行(F10),可以观察脚本每一步的执行情况,特别有助于复杂逻辑的调试。
输出调试信息:在脚本中使用 lr_output_message 或 lr_error_message 函数输出变量或参数的值,是跟踪脚本执行和定位问题的有效手段。
按照以上方法和步骤,你应该能更加系统化、高效地完成LoadRunner脚本的回放和调试。请记住,耐心和细致是调试工作的重要。