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.msiPerl环境安装包1.2 安装Strawberry PerlStrawberry 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 servers 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密码bean3. 中文环境适配与乱码解决在中文系统环境下使用WebTours可能会遇到页面显示乱码的问题。这是因为默认配置没有正确设置字符编码。3.1 修改页面编码设置打开htdocs/WebTours/header.html在 部分添加或修改meta标签meta http-equivContent-Type contenttext/html; charsetutf-83.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 TypeHTML-based script适用于大多数Web应用UTF-8 Support勾选防止中文乱码BrowserInternet Explorer兼容性最好URL Addresshttp://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.txthtdocs/WebTours/cgi-bin/reservations.txt5.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, URLhttp://localhost:1080/WebTours/, Resource0, RecContentTypetext/html, Referer, Snapshott1.inf, ModeHTML, LAST); web_submit_data(login.pl, Actionhttp://localhost:1080/WebTours/login.pl, MethodPOST, RecContentTypetext/html, Refererhttp://localhost:1080/WebTours/nav.pl?inhome, Snapshott2.inf, ModeHTML, ITEMDATA, Nameusername, Valuejojo, ENDITEM, Namepassword, Valuebean, ENDITEM, Namelogin.x, Value0, ENDITEM, Namelogin.y, Value0, ENDITEM, LAST); // 更多操作步骤... return 0; }在实际项目中我们通常会添加事务(Transaction)、检查点(Checkpoint)和参数化(Parameterization)来增强脚本。例如将用户名和密码参数化lr_save_string(jojo, username); lr_save_string(bean, password); web_submit_data(login.pl, Actionhttp://localhost:1080/WebTours/login.pl, MethodPOST, RecContentTypetext/html, Refererhttp://localhost:1080/WebTours/nav.pl?inhome, Snapshott2.inf, ModeHTML, ITEMDATA, Nameusername, Value{username}, ENDITEM, Namepassword, Value{password}, ENDITEM, Namelogin.x, Value0, ENDITEM, Namelogin.y, Value0, ENDITEM, LAST);