LoadRunner 12.6 WebTours安装配置全攻略:避坑指南与性能测试环境搭建
1. 项目概述与核心价值
如果你正在学习或使用LoadRunner进行性能测试,那么WebTours这个经典的样例应用绝对是你绕不开的“第一课”。它就像是性能测试领域的“Hello World”,一个功能完整的飞机订票系统,内置了登录、搜索航班、订票、查看订单等典型业务流程。然而,就是这个看似简单的“第一课”,从获取、安装到配置,每一步都可能藏着让你耗费数小时的“坑”。特别是当你手头是LoadRunner 12.6这个版本时,情况会变得更加复杂,因为它与更早的11.x版本或社区流传的独立WebTours安装包在配置上存在显著差异。
我见过太多新手,兴致勃勃地安装好LoadRunner 12.6,却在启动WebTours时卡住,面对一堆错误提示束手无策。问题可能出在端口冲突、服务未启动、数据库连接失败,或者干脆就是历史版本的操作习惯导致了错误的配置路径。这些坑不仅打击学习热情,更浪费了宝贵的入门时间。因此,这份指南的目的非常明确:为你提供一份针对LoadRunner 12.6环境下,WebTours应用从零开始到成功运行的全流程、无坑操作手册。我会详细拆解每一步的操作意图,对比说明与历史版本的关键差异,并分享那些官方文档里不会写的排查技巧和注意事项,确保你能一次成功,把精力集中在性能测试脚本的学习与创作上。
2. 环境准备与核心组件解析
在动手安装配置之前,我们必须先理清LoadRunner 12.6与WebTours之间的关系,以及需要准备哪些“食材”。这能帮你建立一个清晰的认知框架,避免后续操作中的盲目性。
2.1 LoadRunner 12.6 架构与WebTours定位
LoadRunner 12.6是一个庞大的性能测试工具套件,主要包含VuGen(虚拟用户生成器)、Controller(控制中心)和Analysis(结果分析器)三大组件。而WebTours并不是LoadRunner的组成部分,它是一个独立的、用Perl语言编写的Web应用程序,其角色是被测系统。HP(现为Micro Focus)将它作为标准样例,预置在LoadRunner的安装目录中,方便用户在不具备真实测试环境的情况下,快速上手录制和回放脚本。
在LoadRunner 12.6中,WebTours的运行依赖于一个名为“HP Web Tours Server”的Windows服务。这个服务本质上是一个集成了Perl解释器和Apache HTTP Server的轻量级Web服务器。它与我们常说的Tomcat、Nginx类似,负责接收HTTP请求,执行对应的Perl脚本(.pl文件),并与后台的Access数据库(.mdb文件)交互,最终生成动态网页返回给浏览器。
2.2 与历史版本的关键差异认知
这是避坑的核心。如果你之前接触过LoadRunner 11或更早的版本,或者在网上搜索过独立的WebTours安装包,请务必忘记那些经验,因为它们很可能导致12.6配置失败。
服务管理方式不同:
- 历史版本(如LR11):WebTours通常通过一个
startWebTours.bat批处理文件来启动,运行的是一个独立的进程。关闭时直接关掉命令行窗口或运行stopWebTours.bat。 - LoadRunner 12.6:WebTours Server被注册为一个Windows系统服务。这意味着它可以通过Windows的“服务”管理器进行启动、停止和状态监控,具备更高的稳定性和自启动能力。试图寻找或运行
.bat文件是徒劳的。
- 历史版本(如LR11):WebTours通常通过一个
配置文件和路径不同:
- 核心配置文件
hpweb的路径和内容结构在12.6中可能有调整。盲目使用旧版本的配置文件进行替换,会导致服务无法识别正确的端口或应用根目录。
- 核心配置文件
数据库依赖:WebTours使用Microsoft Access数据库(
webs.mdb)。在Windows 10及更高版本的系统上,系统可能默认未安装Access数据库引擎(ACE),这会导致服务启动失败,报数据库连接错误。这是一个非常常见的新坑。
2.3 必要组件检查清单
开始安装前,请对照下表进行检查:
| 组件 | 作用 | 检查方法 | 备注 |
|---|---|---|---|
| LoadRunner 12.6 安装程序 | 主体工具,包含WebTours样例 | 确认安装包完整 | 建议从官方渠道获取。 |
| 操作系统 | 运行环境 | Windows 7 SP1 / 8.1 / 10 / Server 2008 R2 SP1 或更高 | 需64位系统。确保有管理员权限。 |
| Microsoft Access Database Engine | 用于连接和操作.mdb数据库 | 检查控制面板“程序和功能” | 非必需预装,但若缺失会导致服务启动失败。后文会详述安装。 |
| 端口 1080 和 1099 | WebTours默认服务端口 | 命令行运行netstat -ano | findstr :1080 | 确保这两个端口未被其他程序(如某些代理软件、旧版WebTours)占用。 |
| 管理员权限 | 安装软件、注册服务必需 | 右键点击安装程序,选择“以管理员身份运行” | 全程操作建议在管理员权限下进行。 |
提示:强烈建议在安装LoadRunner之前,重启一次电脑,确保没有残留的测试工具进程占用相关端口。
3. LoadRunner 12.6 安装与WebTours服务部署
安装LoadRunner本身的过程相对标准,但其中有几个与WebTours相关的关键选择点,一旦选错,后续配置会非常麻烦。
3.1 自定义安装中的关键选择
运行安装程序后,当进入“安装类型”选择时,务必选择“自定义安装”。
- 组件选择:在组件列表中,确保“Samples”或“样例”这一项被勾选。WebTours应用就包含在这个样例包中。如果漏选,安装目录下将没有
WebTours文件夹。 - 安装路径:建议使用默认路径(
C:\Program Files (x86)\HP\LoadRunner),避免使用包含中文或特殊字符的路径。这能最大程度减少因路径解析问题导致服务启动失败的风险。 - 许可证配置:安装过程中会要求输入许可证。对于学习和测试,可以选择“临时许可证”,它通常有50个虚拟用户的限制,但对于学习WebTours完全足够。直接跳过或输入临时许可证即可,这不会影响WebTours的安装。
安装过程完成后,不需要立即启动LoadRunner的所有组件。我们的首要任务是验证WebTours的素材是否已就位。
3.2 验证WebTours文件与目录结构
打开LoadRunner的安装目录(默认为C:\Program Files (x86)\HP\LoadRunner),找到并进入WebTours文件夹。你应该看到类似下图的目录结构:
WebTours/ │ ├── cgi-bin/ # 存放Perl脚本的核心目录 │ ├── login.pl │ ├── reservations.pl │ ├── nav.pl │ └── ... ├── htdocs/ # 存放静态资源(HTML, 图片, CSS) ├── conf/ # 配置文件目录(关键!) │ └── hpweb.conf # Apache服务器配置文件 ├── logs/ # 服务器日志目录 ├── databases/ # 数据库文件目录 │ └── webs.mdb # Access数据库文件 └── ...确认databases/webs.mdb和conf/hpweb.conf文件存在,这是后续配置的基础。
3.3 配置并启动HP Web Tours Server服务
这是整个流程的核心步骤,也是最容易出错的地方。
以管理员身份运行配置脚本:
- 导航到
C:\Program Files (x86)\HP\LoadRunner\WebTours\bin目录。 - 找到
install_webtours_server.bat文件。 - 右键点击该文件,选择“以管理员身份运行”。这是关键!普通用户权限可能无法成功注册系统服务。
- 导航到
观察执行过程:
- 会弹出一个命令行窗口,脚本会自动执行。它会做以下几件事:
- 根据
hpweb.conf配置注册一个名为“HP Web Tours Server”的Windows服务。 - 设置服务的启动类型、执行路径等参数。
- 根据
- 执行成功后,窗口会提示类似“Service ‘HP Web Tours Server’ installed successfully!”的信息,然后窗口会自动关闭。
- 会弹出一个命令行窗口,脚本会自动执行。它会做以下几件事:
手动启动服务:
- 按
Win + R,输入services.msc,打开“服务”管理器。 - 在服务列表中找到“HP Web Tours Server”。
- 右键点击该服务,选择“启动”。如果启动成功,状态会变为“正在运行”。
- 按
实操心得:很多时候,安装脚本看似执行成功,但服务却启动失败。不要慌,先别管脚本的提示,直接到服务管理器里查看该服务的状态和属性。右键服务选择“属性”,在“登录”选项卡中,可以尝试勾选“允许服务与桌面交互”(对于调试某些UI错误可能有帮助,但非必需)。更重要的是,如果启动失败,去查看“Windows事件查看器”中的应用程序日志,里面通常有更详细的错误信息。
4. 核心问题排查与故障修复实录
即使严格按照步骤操作,也可能会遇到服务启动失败的情况。下面是我总结的几个最常见的问题及其解决方案。
4.1 端口冲突问题(错误:Address already in use)
问题现象:在服务管理器中启动“HP Web Tours Server”失败,或在事件查看器中看到“Failed to open listen socket on port 1080”之类的错误。
排查与解决:
- 确认占用进程:打开命令行(管理员),运行:
netstat -ano \| findstr :1080。这会列出所有占用1080端口的进程及其PID。 - 终止冲突进程:
- 记下PID,打开任务管理器,在“详细信息”选项卡中找到对应PID的进程。
- 常见的占用者可能是:旧版未关闭的WebTours、Skype、某些VPN客户端或代理软件。
- 如果是无关紧要的进程,可以结束它。如果是
httpd.exe(Apache)且PID指向你自己的另一个WebTours服务,说明旧服务未卸载干净。
- 彻底清理旧服务(如果存在):
- 以管理员身份打开命令行,运行:
sc delete "HP Web Tours Server"。这会删除服务。 - 重新回到第3.3步,运行
install_webtours_server.bat重新注册服务。
- 以管理员身份打开命令行,运行:
- 修改默认端口(备选方案):如果1080端口必须被其他重要程序使用,可以修改WebTours的配置。
- 打开
C:\Program Files (x86)\HP\LoadRunner\WebTours\conf\hpweb.conf。 - 找到
Listen 1080这一行,将其修改为其他未占用的端口,例如Listen 8088。 - 保存文件,并重启“HP Web Tours Server”服务。
- 打开
4.2 数据库连接失败(错误:Could not open database)
问题现象:服务启动后很快停止,事件日志显示无法打开webs.mdb文件,或提示“Microsoft OLE DB Provider for ODBC Drivers”错误。
根本原因:系统缺少连接Access数据库(.mdb文件)的驱动引擎。
解决方案:安装Microsoft Access Database Engine 2010 Redistributable。
- 下载:访问微软官网,搜索“AccessDatabaseEngine.exe”进行下载。注意需要下载与系统位数(x86/x64)对应的版本。对于LoadRunner 12.6的WebTours(通常是32位进程),优先尝试安装32位(x86)版本。
- 安装:运行下载的
AccessDatabaseEngine.exe。如果电脑上已安装了更高版本的Office(如Office 2013/2016 64位),可能会报错“无法安装,因为已存在64位版本”。此时需要以静默方式安装。 - 静默安装(针对冲突情况):
- 以管理员身份打开命令行。
- 导航到
AccessDatabaseEngine.exe所在目录。 - 执行命令:
AccessDatabaseEngine.exe /quiet。 - 这样通常会安装成功。
- 验证:安装完成后,重启“HP Web Tours Server”服务。
4.3 服务启动后无法访问(404或连接拒绝)
问题现象:服务显示“正在运行”,但浏览器访问http://localhost:1080/WebTours时打不开页面。
排查步骤:
- 检查服务状态:确保服务是“正在运行”,而不是“已启动”后又立刻停止。如果自动停止,回头查看事件日志。
- 检查防火墙:Windows防火墙或第三方安全软件可能阻止了1080端口。可以尝试暂时关闭防火墙测试,或在防火墙设置中为
httpd.exe(位于WebTours的bin目录下)添加入站规则。 - 验证配置文件路径:检查
hpweb.conf中的DocumentRoot和ScriptAlias指令指向的路径是否正确。默认应指向安装目录下的htdocs和cgi-bin。例如:
确保路径中的斜杠和实际目录存在。如果安装路径有更改,这里必须同步更新。DocumentRoot "C:/Program Files (x86)/HP/LoadRunner/WebTours/htdocs" ScriptAlias /cgi-bin/ "C:/Program Files (x86)/HP/LoadRunner/WebTours/cgi-bin/" - 查看服务器日志:打开
C:\Program Files (x86)\HP\LoadRunner\WebTours\logs\error.log文件,查看Apache服务器是否有错误输出,这是最直接的排错依据。
4.4 常见问题速查表
| 问题现象 | 可能原因 | 排查步骤与解决方案 |
|---|---|---|
| 服务无法启动,提示“错误1067” | 1. 端口被占 2. 数据库驱动缺失 3. 配置文件错误 | 1.netstat -ano查端口,杀进程或改端口2. 安装Access Database Engine 3. 检查 hpweb.conf语法和路径 |
| 服务启动后自动停止 | 1. 数据库连接失败 2. Perl脚本语法错误 3. 依赖的DLL缺失 | 1. 查看Windows事件查看器应用程序日志 2. 检查 error.log文件3. 尝试以管理员CMD在bin目录手动运行 httpd.exe看报错 |
| 能访问首页但登录/操作失败 | 1. CGI执行权限问题 2. 数据库文件损坏或只读 | 1. 确认hpweb.conf中ScriptAlias和AddHandler配置正确2. 检查 webs.mdb文件是否位于正确目录,属性是否只读 |
| VuGen录制时无法捕获事件 | 1. 浏览器代理设置问题 2. 录制选项配置错误 | 1. 在VuGen中确保录制类型为“HTML-based”,并勾选“使用本地代理” 2. 确保URL地址为 http://localhost:1080/WebTours |
5. 功能验证与LoadRunner VuGen集成配置
当WebTours服务稳定运行后,我们需要从两个层面验证其可用性:一是通过浏览器直接访问,二是通过LoadRunner的VuGen进行脚本录制。
5.1 浏览器端功能验证
- 访问首页:打开浏览器,输入URL:
http://localhost:1080/WebTours/。你应该能看到WebTours的欢迎页面。 - 用户注册与登录:
- 点击页面上的“sign up now”链接,注册一个新用户(如:用户名
jojo,密码bean)。 - 注册成功后,使用新用户登录。
- 点击页面上的“sign up now”链接,注册一个新用户(如:用户名
- 执行完整业务流程:
- 登录后,尝试搜索航班(出发城市、到达城市、日期可随意填写)。
- 选择航班,继续订票流程。
- 填写支付信息(所有字段可以随意填写,如信用卡号
12345678)。 - 提交订单,确认能看到订单确认页面。
- 点击“Sign Off”退出登录。
注意事项:如果页面样式丢失(只有文字没有布局),可能是
htdocs目录下的CSS文件路径问题。检查浏览器开发者工具(F12)的“网络”选项卡,看是否有CSS文件加载失败。这通常不影响脚本录制,因为VuGen主要记录HTTP请求和响应。
5.2 VuGen录制配置与脚本生成
这是最终目标,验证WebTours可以作为被录制对象。
- 启动HP Virtual User Generator (VuGen):从开始菜单找到并启动它。
- 创建新脚本:选择“File” -> “New”。在弹出窗口中,协议选择“Web - HTTP/HTML”,这是录制基于浏览器Web应用的标准协议。
- 配置录制选项:
- 在主界面,点击顶部工具栏的“录制”按钮(红色圆点)。
- 弹出“开始录制”对话框。
- Application type:选择“Internet Applications”。
- Program to record:选择你刚用来测试的浏览器(如Chrome)。
- URL Address:输入
http://localhost:1080/WebTours/。这是最关键的一步,必须与浏览器访问的地址一致。 - Working directory:使用默认或选择一个空文件夹存放脚本。
- 开始录制:点击“OK”。VuGen会启动指定的浏览器并打开WebTours首页,同时VuGen开始捕获所有HTTP流量。
- 在浏览器中操作:重复5.1中的登录、搜索、订票、退出操作。
- 停止录制:操作完成后,回到VuGen点击“停止”按钮。VuGen会自动生成一段包含
web_url,web_submit_data,web_link等函数的脚本。 - 回放验证:不进行任何修改,直接点击“运行”按钮(蓝色三角形)回放脚本。在“回放日志”中,你应该看到一行行的“Action.c(x): web_url was successful”或类似成功信息,最后以“Vuser Terminated.”结束。这证明录制成功,WebTours环境与LoadRunner VuGen协同工作正常。
5.3 录制与回放中的高级注意事项
- 关联处理:WebTours是一个动态应用,会话ID(如
sessionID)会随着每次登录变化。在录制较复杂的业务流程后,直接回放可能会失败,因为脚本中使用了录制时固定的会话ID,而回放时服务器生成了新的。这就需要用到LoadRunner的核心功能——关联。VuGen的“Scan Script for Correlations”功能可以自动识别并处理一些常见的关联,但对于WebTours,你可能需要手动检查web_submit_data中的sessionID等动态值,并使用web_reg_save_param函数在之前请求的响应中捕获它,然后在后续请求中使用变量{sessionID}。 - 思考时间与事务:录制生成的脚本包含了操作之间的等待时间(思考时间
lr_think_time)。在调试阶段,可以暂时注释掉这些思考时间以加快回放。为了度量性能,你需要在脚本中插入事务(lr_start_transaction和lr_end_transaction),例如将“登录”、“订票”分别定义为事务。 - 检查点:为了验证业务逻辑是否正确,可以添加文本检查点(
web_reg_find)。例如,在登录后的页面检查是否出现了“Welcome”字样,以确保登录成功。
至此,你已经完成了LoadRunner 12.6环境下WebTours从安装、配置、故障排查到最终集成录制的全流程。这个环境将成为你学习性能测试脚本开发、参数化、关联、场景设计等高级技能的坚实基础。记住,搭建环境是第一步,也是最磨练耐心的一步。成功越过这些坑之后,更广阔的性能测试世界就在前方。如果在后续使用中遇到更深层次的问题,如大量虚拟用户并发时的服务器配置调优,那将是另一个值得深入探讨的话题了。
