在LoadRunner中手动编写脚本是一项重要的技能,它能让你更灵活地模拟各种测试场景。
为了帮助你快速上手,先汇总手动脚本的主要因素:
HTTP请求:web_url、 web_custom_request、 web_submit_data,分别用于GET请求、自定义请求(POST/JSON)和表单提交。
变量和参数:lr_save_string ,参数化定义变量、保存字符串为参数,以及模拟不同用户输入。
事务:lr_start_transaction, lr_end_transaction,标记业务操作起止以计算响应时间。
集合点:lr_rendezvous,让多个虚拟用户在同一时刻执行操作,模拟并发。
检查和关联:web_reg_find web_reg_save_param,验证响应内容,捕获动态数据(如SessionID)以供后续请求使用。
脚本编写详解
定义变量和参数化
在手动编写脚本时,你经常需要动态处理数据。这时,lr_save_string 函数就很有用,它可以将常量或变量保存为LoadRunner中的参数。
参数化则允许你使用多组数据测试同一操作。如,模拟多个用户登录时,可以将用户名和密码进行参数化。在LoadRunner中,你可以选择参数类型(如File、Table等)并设置参数的更新方式(顺序、随机或唯一)。
处理HTTP请求
手动脚本中最主要的部分就是正确构造和发送HTTP请求:
GET请求:使用 web_url 函数模拟。
POST请求及自定义请求:web_custom_request 函数功能强大,允许你自定义HTTP方法、请求头和请求体,特别适用于发送JSON格式的数据。在构造JSON时,注意对引号进行转义。
表单提交:web_submit_data 函数可用于模拟表单提交。
验证响应和关联
为了确保脚本的健壮性,需要:
验证响应:通过 web_reg_find 函数在服务器响应中搜索特定文本字符串,以此验证请求是否成功。
处理关联:当服务器返回动态数据(如SessionID或token)时,你需要使用 web_reg_save_param 函数捕获这些数据。这个函数是一个注册型函数,必须放在它要捕获数据的请求之前。你需要指定捕获数据的左边界(LB)和右边界(RB)。
增强脚本和调试
添加事务、集合点和思考时间
事务:通过 lr_start_transaction 和 lr_end_transaction 函数标记一个业务的开始和结束,LoadRunner会自动计算并记录该事务的响应时间。
集合点:使用 lr_rendezvous 函数设置集合点,可以模拟多个用户在同一时刻执行某个操作,从而生成并发负载。
思考时间:lr_think_time 函数用于模拟用户在不同操作之间的等待时间,使测试更贴近真实场景。
编译和调试
脚本编写完成后,务必进行编译(按F5键或点击编译按钮)以检查语法错误。你可以在脚本中添加 lr_output_message() 或 lr_error_message() 函数输出日志,帮助跟踪执行流程和排查问题。
技巧
函数位置:特别注意 web_reg_save_param、web_reg_find 这类注册型函数,它们必须位于其作用的请求之前。
转义特殊字符:在构造JSON等格式的请求体时,注意对引号等特殊字符进行转义。
帮助:LoadRunner的函数手册(按F1键调出)是学习函数用法的最佳工具。
手动编写场景:当测试非Web界面(如APP服务端接口)、或无法通过录制生成有效脚本时,手动编写脚本非常必要。