一、LoadRunner是什么?
LoadRunner 是一款由 Micro Focus(原 HP)开发的性能测试工具,用于模拟大量用户对应用系统的访问,从而测试系统的负载能力和性能瓶颈。
二、LoadRunner 11 主要组成模块
- VuGen(Virtual User Generator):录制和编辑脚本
- Controller:控制测试运行,管理虚拟用户
- Load Generator:生成负载的机器
- Analysis:测试结果分析和报告生成
三、基本使用流程
1. 录制脚本(VuGen)
- 选择协议(HTTP/HTML、Web Services等)
- 录制用户操作(浏览网页、登录等)
- 录制完成后对脚本进行编辑(参数化、关联、添加检查点)
2. 脚本调试
- 在 VuGen 中运行脚本,检查脚本是否能成功执行
3. 设计测试场景(Controller)
- 创建测试场景,设置虚拟用户数、测试时间
- 分配 Load Generator 机器
4. 运行测试
- 启动测试,Controller 控制负载生成
- 实时监控测试进度和性能指标
5. 分析结果(Analysis)
- 收集测试数据
- 生成报告,找出性能瓶颈(响应时间、吞吐量、错误率等)
四、常用技巧
- 参数化:用数据表替换脚本中的固定值,实现动态输入
- 关联:自动提取服务器返回的动态数据,保证脚本连续性
- 事务定义:用
lr_start_transaction
和lr_end_transaction
测量关键操作的响应时间 - 检查点:用
web_reg_find
验证页面内容正确性
五、示例代码片段(VuGen C脚本)
Action()
{
lr_start_transaction("Login");
web_url("login_page",
"URL=http://example.com/login",
"TargetFrame=",
"Resource=0",
"RecContentType=text/html",
"Mode=HTTP",
LAST);
web_submit_data("login_submit",
"Action=http://example.com/login/submit",
"Method=POST",
ITEMDATA,
"Name=username", "Value=admin", ENDITEM,
"Name=password", "Value=123456", ENDITEM,
LAST);
lr_end_transaction("Login", LR_AUTO);
return 0;
}
好的!这里给你补充一个更完整的 LoadRunner 11 C 脚本示例,包含了录制的请求、参数化、关联以及事务控制,方便你直接参考和修改使用。
LoadRunner 11 脚本示例(HTTP/HTML 协议)
Action()
{
// 开始事务 - 登录
lr_start_transaction("Login");
// 预先注册关联,捕获登录页面返回的Session ID(示例)
web_reg_save_param("SessionID",
"LB=session_id=",
"RB=;",
LAST);
// 访问登录页面,获取Session ID等动态数据
web_url("OpenLoginPage",
"URL=http://example.com/login",
"Resource=0",
"RecContentType=text/html",
"Mode=HTTP",
LAST);
// 参数化用户名和密码,使用外部数据文件
// VuGen中需先添加参数UserName和Password
// 提交登录表单
web_submit_data("SubmitLogin",
"Action=http://example.com/login/submit",
"Method=POST",
"RecContentType=text/html",
ITEMDATA,
"Name=username", "Value={UserName}", ENDITEM,
"Name=password", "Value={Password}", ENDITEM,
"Name=session_id", "Value={SessionID}", ENDITEM,
LAST);
// 结束登录事务,自动判断成功或失败
lr_end_transaction("Login", LR_AUTO);
// 添加思考时间,模拟用户等待
lr_think_time(3);
// 其他业务操作示例(访问首页)
lr_start_transaction("OpenHomePage");
web_url("HomePage",
"URL=http://example.com/home",
"Resource=0",
"RecContentType=text/html",
"Mode=HTTP",
LAST);
lr_end_transaction("OpenHomePage", LR_AUTO);
return 0;
}
说明
lr_start_transaction
和lr_end_transaction
包裹关键业务,统计性能数据。web_reg_save_param
用于捕获动态返回数据,确保会话连续。{UserName}
和{Password}
是参数化变量,需要在 VuGen 参数列表中配置对应的测试数据文件。lr_think_time
模拟用户思考等待时间,避免压力测试不自然。web_url
和web_submit_data
分别用于GET和POST请求。
发表回复