宝子们(尤其是冰糖炖雪梨),先看一下这个学习指南让自己对该性能测试软件有个大致的宏观的概念,我下载保存到阿里云了,因为在线链接有时候访问很慢。
阿里学习指南云盘(永久分享):
https://www.alipan.com/s/nke2L9LbePF
在线学习指南链接:
本文主要解决win11系统下的Virtual User Generator录制为空问题,录制的时候到第三行或第十一行就不会再增加脚本了。
其他两个组件Controller和Analysis都是之后操作的,只要Virtual User Generator脚本录制好编译通过就可以进行下一步。
三个组件简介(具体看官网):
Virtual User Generator (VuGen): 捕获最终用户业务流程并创建自动性能测试脚本,也称为 Vuser 脚本。
Controller: 组织、驱动、管理并监控负载测试。
Analysis: 用于查看、剖析和比较负载测试结果。
踩坑较多,会把所有遇到的坑全放在本文档,会有点冗余,耐心一下吧。
1.安装
从网上找安装包汉化包,这里不贴链接了,一大堆。
无脑解压下一步,到证书的时候,不勾选,跳过就行。然后程序提示安装个win的环境,安装就可以,那个最后有个web controller安装的时候会提示你网址已失效,这个web controller最后的也不用安装。
汉化就下载汉化包根据网上教程汉化一下就可以,英语不好的,汉化下,主要是Analysis分析的时候英语单词较多,Virtual User Generator,Controller用的英语不多。
2.踩坑
2.0 win关闭防火墙
关闭win的防火墙,虽然可能没啥用,但是先关了就行。
2.1 坑 webtours附带一般测试网站URL路径
webtours是perl语言写的网站(apache作web服务),是随HP loadrunnner12.02软件附带的测试网站。webtours有两个快捷方式Start HP Web Tours Server(启动服务) HP Web Tours Application(启动web页面,默认有个用户jojo,密码bean)
用这个start hp web tours server启动起网站来。
初始默认用户 账户名:jojo 密码:bean,webtours的账号配置都在一开始的学习指南pdf里有说明,这里不会放学习指南账号配置截图了
这里为什么说踩坑呢,因为之前学习东西平常都是这样访问http://localhost:1080/,能访问到页面。他这个不能这样访问,会提示你如下图 Forbidden,然后我就去各种搜索阿帕奇web服务为啥会提示这个错误,普遍是linux权限问题,但这个是win系统,你去给相关路径文件夹设置各种权限是没有用的。要访问http://localhost:1080/WebTours/ 这个才可以,直接打开HP Web Tours Application快捷方式启动web页面也可以。
2.2 坑 安装了Perl环境的会报如下错
webtours是perl语言编写的。然后因为apache web服务去找寻ctime.pl的时候只会去按顺序搜索前三个perl的路径,按图我的D:\HP\LoadRunner\strawberry-perl\perl\bin是第四个位置。
解决该perl路径问题就是将该路径(D:\HP\LoadRunner\strawberry-perl\perl\bin)移动到处于前三个位置,如下图,我移动到了第一个顺序,保存再启动就能正常启动了,因为他要找这个perl目录下的ctime.pl文件。
2.3 apache的web配置 HP\LoadRunner\WebTours\conf\httpd.conf
正常来说是不需要修改
如果命令行提示你httpd.exe: Could not reliably determine the server’s fully qualified domain name, using 192.168.x.x for ServerName 能正常访问的话不用管
如果你将httpd.conf的
# ServerName localhost:1080
这一行去掉注释#的话,就会出现不能用192.168.X访问的情况,只能用localhost:1080去访问。
有个bug是,你能启动页面,但是页面报错,你需要将里注释去掉#,然后启动正常之后,在把#注释,注释了#就可以用192.168.*访问,局域网其他主机就可以访问,对其进行性能压力测试。
为什么会有这个坑呢,我直接用localhost访问不行吗,这个非常相关,是本文解决录制为空的问题,这边留一个铺垫,后文慢慢讲。
还有端口号1080最好别改,因为一般不会有这个端口占用,改的话改listen ip:1080。
2.4 vmware虚拟机
vmware虚拟机采用16.2.5,高了不行,低了也不行,高于这个版本17.0啥的做物理磁盘分区映射(在做封装系统或PE的时候需要经常用物理磁盘分区映射功能,否则来回传文件是非常慢的,封装系统是纯净为主,所以也不会装vmtools这些软件,所以该功能特别重要)的时候会报错,低了的话会和ensp的vitualbox 5.2虚拟机冲突,和wsl的hyper冲突,这个版本刚刚好,不高不低,正好能用。16.1也不行,就这个版本刚刚好。
虚拟机这个网络,你有时候卸载再重新安装网卡有点问题,尤其是vmnet8,会出现虚拟机访问vmnet8网关可以,主机不行,主机获取不了vmnet8网关,为什么呢,因为只有一个网关,你在上网肯定是走你家wifi的网关,来回设置网关太麻烦了,直接采用桥接模式,和主机在同一个网络下。相关虚拟机网络知识vmnet1 vmnet8 桥接网卡去上网搜。
为什么我要说这个虚拟机呢,看下文
2.5 各大edge ie 谷歌chrome,firefox浏览器
chrome2024年7月23日目前稳定最新版是126,开发版本是128。
firefox edge IE
测试了下本机的话,win启动的apache服务器运行webtours网站,然后loadrunnner也运行在本机,使用上面所有的浏览器(含IE)录制代码都为空,firefox和chrome录制有时不会为空,不过请求的是他们firefox和chrome的相关url,而不是你要测试的webtours网站。
不论你选择UTF-8,使用代理,socket还是winnet都不行的。
3.解决webtours录制为空
只有本机的话,win启动的apache服务器运行webtours网站,然后loadrunnner也运行在本机,使用各种浏览器(含IE)录制代码都为空。
所以只能虚拟机同网段(桥接模式)下去运行webtours网站,然后severname要注释掉,否则无法通过192.168.*去访问。形成c/s客户端。
用我们的win主机客户端,去运行loadrunner,然后去测试这个虚拟机的webtours服务,形成一个C/S客户端服务端。 为啥要这样,因为这一点上面说过在本地同时启用webtours网站服务和loadrunnner软件测试,所有的浏览器含IE录制不论你怎么设置选择UTF-8,使用代理,socket还是winnet都不行的。 搜到的相关这个教程都是比较老的,可能那个时候的win系统是可以的,就是老系统,现在的win10 win11不行了。
loadrunner步骤如下
0.设置浏览器为IE模式,打开的网址要是IE
其他浏览器没试,用ie最好,firefox,谷歌还有他跟他的相关url请求(上面2.5章节有图)。
打开IE兼容性,把要测试的网址添加上去,我的是http://192.168.1.133:1080/WebTours,保存关闭
1.新建工程
2.录制脚本 菜单栏record-record
3.打开录制设置
4.URL-based script
5. urf-8支持和启动loadrunnner代理
loadrunner代理要启动,要不还是录制为空
这个代理也有一个坑,因为这个托盘不能隐藏,7月21号发表的那个自启动帖子,我给把这个托盘给关了我就找不到了,我在虚拟机用进程黑客找到了路径,你要运行一下这个 loadrunner agent,不运行我没试过,这个的程序名叫magentproc.exe路径是D:\HP\LoadRunner\launch_service\bin,那个自启动帖子的进程名不一定是magentproc.exe,可能识别的,你点该进程,然后右键找他的文件位置就行,就能找到magentproc.exe。你用进程黑客也行,everything文件搜索也可以。
6. 捕获这里选择wininet level data
这个也是根据程序网络编程来的,现在也没有从零纯写socket的了,都是用库。
7.然后启动录制,操作,结束录制
然后会有代理一些警告,忽略即可,捕获按照学习指南,去当用户操作那个航班网站,学习指南里有。
模拟用户操作完,退出网站,关闭浏览器,停止录制就可以。
8.结束后生成代码
就会生成脚本,有代码,在步骤记录器就可以查看某步骤
这个脚本录制完之后,编译通过,运行脚本可以,就可以进行Controller,模拟多少个用户去向web服务去请求,进行性能压力测试,这个测试完后,analysis会生成一个分析报表。哪里步骤不会的去b站看loadrunner教程就可以。
4.备注
这个只是基础最开始准备脚本,再到Controller控制和Analysis分析,要继续往下学,可能还会继续更新loadrunnner性能测试的简洁使用教程,不过我看b站有很多loadrunner教程,再看看 吧,只要用心,这些是都能学会的。
比如loadrunner会得写函数,会看函数功能,这两图只是个简单的例子,上官网文档看,和b站loadrunnner动不动七八个小时去学好了。
其实话又说回来,正经性能测试也不是服务器本身去测试,还是用客户端去测试,因为要测试网速等,在本机的话,网速几乎可以不考虑,这也是符合实际的。其实不管怎么讲,不论是客户端性能测试服务器上的服务,还是本地性能测试服务器上的软件服务,都是差不多的,本地他会网络这个指标观测不到,仅此而已。
以上很多为个人观点,可能有不对的地方,欢迎提出错误。
这是第一个草稿,可能还会修改,但是不会修改到主义。
我从网上也搜了,他们也是那个跳到11行就不跳了,或者录制为空,有的帖子会给你出很多解决方法,但是用了都不行。
他们应该也是同处于一个win系统,没有c/s框架,拉去的是localhost:1080,那是本地吧,反正不行。
既然搞性能测试,那装个虚拟机肯定简简单单,网络也懂。可以按照本文做一下,正常也是c/s测试吧,就是loadrunnner在客户端上,服务器在另一个系统上。