Loadrunner 12.55 性能测试实战:从零搭建飞机订票系统测试环境
第一次接触Loadrunner性能测试工具时,最令人头疼的往往不是脚本编写本身,而是如何搭建一个可用的测试环境。许多新手在安装完Loadrunner主程序后,发现官方自带的飞机订票系统(WebTours)需要额外配置,而这个过程会遇到各种"坑"——从依赖组件缺失到配置文件错误,再到中文乱码问题。本文将带你一步步完成整个环境的搭建,避开这些常见陷阱。
1. 环境准备与组件安装
在开始性能测试前,我们需要准备好两个关键组件:WebTours应用程序和Strawberry Perl环境。WebTours是Loadrunner自带的飞机订票系统模拟应用,而Strawberry Perl则是运行WebTours所必需的Perl环境。
1.1 获取必要软件包
首先需要下载以下两个组件:
- WebTours应用程序:可以从Micro Focus官方市场获取
- Strawberry Perl:推荐使用5.10.1.0版本
提示:下载WebTours需要注册Micro Focus账号,建议使用公司邮箱注册以便后续获取更多资源。
下载完成后,你会得到两个文件:
- WebTours.zip(飞机订票系统应用包)
- strawberry-perl-5.10.1.0.msi(Perl环境安装包)
1.2 安装Strawberry Perl
Strawberry Perl的安装相对简单:
- 双击strawberry-perl-5.10.1.0.msi启动安装向导
- 接受许可协议,选择安装路径(建议保持默认)
- 点击"Install"开始安装
- 安装完成后,建议重启系统以确保环境变量生效
验证Perl是否安装成功:
perl -v如果看到Perl版本信息,说明安装成功。
2. WebTours部署与配置
2.1 解压与初步启动
将WebTours.zip解压到你选择的目录(建议路径不要包含中文或空格)。解压后目录结构应包含:
- StartServer.bat(启动脚本)
- StopServer.bat(停止脚本)
- conf/(配置文件目录)
- htdocs/(网页文件目录)
- logs/(日志目录)
尝试直接运行StartServer.bat,很可能会遇到第一个错误——Apache服务无法启动。
2.2 解决Apache启动报错
最常见的错误是"Could not reliably determine the server's fully qualified domain name"。这是因为httpd.conf中缺少ServerName配置。
解决方法:
- 打开conf/httpd.conf文件
- 搜索"ServerName"
- 找到被注释掉的
#ServerName www.example.com:80 - 修改为
ServerName localhost:1080并取消注释 - 保存文件后重新启动服务
修改后的配置片段应如下:
ServerName localhost:10802.3 验证WebTours运行
成功启动服务后,在浏览器访问:
http://localhost:1080/WebTours/你应该能看到飞机订票系统的登录页面。默认测试账号:
- 用户名:jojo
- 密码:bean
3. 中文环境适配与乱码解决
在中文系统环境下使用WebTours,可能会遇到页面显示乱码的问题。这是因为默认配置没有正确设置字符编码。
3.1 修改页面编码设置
- 打开htdocs/WebTours/header.html
- 在 部分添加或修改meta标签:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">3.2 配置Apache支持UTF-8
在httpd.conf中添加以下配置:
AddDefaultCharset utf-83.3 解决表单提交乱码
对于表单提交的数据,还需要修改CGI脚本的编码设置。编辑htdocs/WebTours/cgi-bin目录下的相关.pl文件,在文件开头添加:
binmode(STDIN, ":encoding(utf8)"); binmode(STDOUT, ":encoding(utf8)"); binmode(STDERR, ":encoding(utf8)");4. Loadrunner连接配置
环境搭建完成后,需要在Loadrunner中正确配置以连接WebTours进行测试。
4.1 创建新脚本
- 打开Loadrunner 12.55
- 选择File > New Script and Solution
- 选择"Web - HTTP/HTML"协议
- 设置脚本名称和保存位置
4.2 录制设置关键参数
在开始录制前,有几个关键设置需要注意:
| 设置项 | 推荐值 | 说明 |
|---|---|---|
| Recording Type | HTML-based script | 适用于大多数Web应用 |
| UTF-8 Support | 勾选 | 防止中文乱码 |
| Browser | Internet Explorer | 兼容性最好 |
| URL Address | http://localhost:1080/WebTours/ | WebTours访问地址 |
4.3 解决常见录制问题
问题1:无法启动浏览器
- 确保没有其他程序占用1080端口
- 临时关闭杀毒软件和防火墙测试
问题2:录制无动作
- 检查浏览器代理设置是否正确
- 确认Loadrunner代理设置与浏览器匹配
问题3:中文乱码
- 确保按照前文配置了UTF-8支持
- 检查系统区域设置是否为中文(简体,中国)
5. 进阶配置与优化
基础环境搭建完成后,可以考虑以下优化措施提升测试体验。
5.1 自动化启动脚本
创建一个批处理文件自动启动所有必要服务:
@echo off start "" "C:\path\to\WebTours\StartServer.bat" timeout /t 5 start "" "C:\Program Files\Internet Explorer\iexplore.exe" http://localhost:1080/WebTours/5.2 数据库重置配置
WebTours使用简单的文件数据库,测试过程中可能需要重置数据。可以定期备份和恢复以下文件:
- htdocs/WebTours/cgi-bin/accounts.txt
- htdocs/WebTours/cgi-bin/reservations.txt
5.3 性能监控配置
在httpd.conf中启用状态监控模块:
LoadModule status_module modules/mod_status.so <Location /server-status> SetHandler server-status Require all granted </Location>然后可以通过http://localhost:1080/server-status监控Apache状态。
6. 测试脚本开发基础
环境就绪后,可以开始开发第一个测试脚本。以下是基础录制流程:
- 在Loadrunner中点击"Start Recording"
- 选择"Web Browser"作为录制类型
- 指定浏览器路径(建议使用IE)
- 设置URL为WebTours地址
- 点击"Start Recording"开始录制
- 在浏览器中完成典型用户操作(登录、查询、订票、退出)
- 返回Loadrunner停止录制
录制完成后,你会看到生成的脚本结构:
Action() { web_url("WebTours", "URL=http://localhost:1080/WebTours/", "Resource=0", "RecContentType=text/html", "Referer=", "Snapshot=t1.inf", "Mode=HTML", LAST); web_submit_data("login.pl", "Action=http://localhost:1080/WebTours/login.pl", "Method=POST", "RecContentType=text/html", "Referer=http://localhost:1080/WebTours/nav.pl?in=home", "Snapshot=t2.inf", "Mode=HTML", ITEMDATA, "Name=username", "Value=jojo", ENDITEM, "Name=password", "Value=bean", ENDITEM, "Name=login.x", "Value=0", ENDITEM, "Name=login.y", "Value=0", ENDITEM, LAST); // 更多操作步骤... return 0; }在实际项目中,我们通常会添加事务(Transaction)、检查点(Checkpoint)和参数化(Parameterization)来增强脚本。例如,将用户名和密码参数化:
lr_save_string("jojo", "username"); lr_save_string("bean", "password"); web_submit_data("login.pl", "Action=http://localhost:1080/WebTours/login.pl", "Method=POST", "RecContentType=text/html", "Referer=http://localhost:1080/WebTours/nav.pl?in=home", "Snapshot=t2.inf", "Mode=HTML", ITEMDATA, "Name=username", "Value={username}", ENDITEM, "Name=password", "Value={password}", ENDITEM, "Name=login.x", "Value=0", ENDITEM, "Name=login.y", "Value=0", ENDITEM, LAST);