Jmeter HTTP代理服务器录制web
Posted 驴鼾酱子
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Jmeter HTTP代理服务器录制web相关的知识,希望对你有一定的参考价值。
2.1 环境介绍
Jmeter:3.3、5.3,不同版本HTTP代理服务器需要配置信息不同,需要根据实际情况配置;
谷歌浏览器:版本 89.0.4389.90(正式版本)(64 位);
2.1 Jmeter录制配置
2.1.1 添加代理服务器
在工作台 >右键 >添加 >“非测试元件” >“HTTP代理服务器”,参见图2-1。
图2-1 添加代理元件(Jmeter3.3)
2.2.2 配置HTTP请求默认值
在测试计划中添加线程组名称修改为“记录web录制”,和HTTP请求默认值,设置Web服务器、HTTP请求信息,譬如web版地址为https://xx.xx.xx.xx/hcs,参数设置如图2-2所示。
图2-2 HTTP请求默认值(Jmeter3.3)
2.2.3 配置HTTP代理服务器
在Global Setting处设置端口自定义,Test Plan Creation TAB页下设置目标控制器“测试计划>记录web录制”,参见图2-3。
图2-3 目标控制器设置(Jmeter3.3)
端口:
默认为8888,可以自定义,但要注意,端口号不能被其他程序占用,端口信息需要与浏览器代理服务器端口保持一致。
在windows cmd.exe中使用以下命令检查端口使用情况:
1)netstat –an,列出本机所有使用的端口信息;
2)netstat –aon | findstr “8888”,查询端口是否被占用;
3)tasklist | findstr “8888”,查询对应端口被什么程序占用。
目标控制器:
录制脚本存放路径,可指向创建的线程组(“测试计划>记录web录制”)。
分组:
录制脚本时会增加很多节点,为了便于查看与管理,可以对这些节点进行分组;可选值有:不对样本分组、在组间添加分隔、每个组放入一个新的控制器、只存储每个组的第一个样本、将每个组放入新的事务控制器中。
记录HTTP信息头:将Header头信息录制下来。
添加断言:录制时加入空的断言,后需需要手工增加断言内容。
Regex Matching:是否使用正则表达式匹配断言。应用时需要增加一个正则表达式提取器。
HTTP Sampler settings:
Prefix-:为录制脚本增加前缀。
Tracnsaction name-:为录制脚本命名,配置为首页加载,通过此配置,可以手工将脚本进行分组,便于后需查看和编辑。
Type:生成指定类型的取样器,可选值有HTTPclient4、java和空。历史版本默认为JAVA,不知什么时候改为默认空了。
从HTML文件获取所有内含的资源:是否从HTML文件获取所有内含的资源。
自动重定向:当遇到重定向,自动跳转,不记录重定向过程请求。
跟随重定向:默认勾选,当遇到重定向时,记录重定向过程请求。
使用KeepAlive:默认勾选,对应Http响应头中的Connection:Kepp-Alive。
在Requests Filtering TAB页下设置请求过滤规则,参见图2-4。
图2-4 HTTP代理服务器过滤(Jmeter3.3)
Requests Filtering请求筛选:通过此功能筛选掉不必要的请求,Jmeter会把js、png、swf及动态请求全部录制下来,会有很多冗余脚本。
Content -type filtert:通过Content-type进行筛选。常见的包含application/x-www-form-urlencoded、text/xml、application/json、multipart/form-data等。
排除模式:可以添加URL、路径等信息作为排除项。
Notify Child Listeners of filtered samplers:通知筛选的采样器的子侦听器,匹配一个或多个排除模式的任何响应都不会传递给子侦听器。
配置好参数后点击运行,如果出现提示:
“2021-11-30 10:32:53,002 INFO o.a.j.p.h.p.ProxyControl: Creating HTTP(S) Test Script Recorder Root CA in G:\\01软件安装\\apache-jmeter-5.3\\apache-jmeter-5.3\\apache-jmeter-5.3\\bin\\proxyserver.jks, ensure you install certificate in your Browser for recording
2021-11-30 10:32:56,626 INFO o.a.j.p.h.p.ProxyControl: Created keystore in G:\\01软件安装\\apache-jmeter-5.3\\apache-jmeter-5.3\\apache-jmeter-5.3\\bin\\proxyserver.jks
2021-11-30 10:32:56,686 ERROR o.a.j.p.h.p.ProxyControl: Could not initialise key store
java.io.IOException: Invalid keystore format”
需要在Jmeter的bin路径下jmeter.bat中添加如下内容,参见图2-5:
set JAVA_HOME=C:\\Program Files\\Java\\jre1.8.0_181
set PATH=%JAVA_HOME%\\bin;%PATH%
图2-5 配置jmeter.bat java路径
关闭再重新打开Jmeter,可以解决这个报错。
2.2.4 启动代理服务器
点击“启动”,将在JMETER_HOME / bin文件夹中生成名为ApacheJMeterTemporaryRootCA.crt的文件,该证书生成需要一段时间,期间Jmeter GUI界面无响应,证书生成完成后,GUI会提示Root CA certificate Apache Jmeter TemporaryRootCA Created in Jmeter bin directory,参见图2-6。此消息是让用户信任JMeter proxy的身份,有两种方法都可以解决:
1)直接在浏览器录制时选择信任发来的证书;
2)提前将JMeter Proxy的Root CA证书导入浏览器,完成信任,再开始录制动作。
注意:该证书有效期7天。
图2-6 启动代理
2.2.5 浏览器设置代理
点击谷歌浏览器右上角“自定义及控制图标”,选择“隐私设置和安全性”,鼠标滑动到最下面,点击“高级”选择“打开您计算机的代理设置”,关闭“自动检测设置”,开启“使用代理服务器”,配置端口8888。
注意:Chrome浏览器代理的端口号要与Jmeter http代理服务器的端口号设置的一致,且应该保证端口不被占用(netstat -a | findstr “端口号”命令可查看端口占用情况)
图2-7 设置浏览器代理
Jmeter菜单栏选择选项,点击SSL管理器,选择Jmeter安装路径bin目录ApacheJMeterTemporaryRootCA.crt文件后打开,参见图2-8。
图2-8 Jmeter SSL管理器
2.2.6 浏览器导入证书
打开谷歌浏览器>设置>隐私设置和安全性>点击“安全”>点击“管理证书”,参见图2-8。
图2-8 管理证书
在证书面板中选择切换到“受信任的根证书颁发机构”,点击“导入”,点击“下一步”,点击“浏览”,切换到Jmeter安装路径bin目录ApacheJMeterTemporaryRootCA.crt文件,参见图2-9,勾选“将所有的证书都放入下列存储”,受信任的根证书颁发机构,点击下一步,点击“完成”,提示警告安装证书信息,点击是完成证书导入。
图2-9 安装证书
在“受信任的根证书颁发机构”可以查询到“DO NOT INSTALL……”,表示证书已经成功导入,参见图2-10。
图2-10 Jmeter证书
2.2 录制
添加HTTP代理服务器元件,配置端口为8888,添加线程组重命名为“录制web”,参见图2-11。
图2-11 Jmeter脚本(Jmeter5.3)
点击启动启动录制,在录制控制面板中配置过滤规则,设置为IP,参见图2-12。
图2-12 录制过滤(Jmeter5.3)
浏览器中输入云盘IP地址,进行操作,此时Jmeter线程组下记录web页面每一步操作发送的请求信息,参见图2-13。
图2-13 Jmeter录制结果(Jmeter5.3)
以上是关于Jmeter HTTP代理服务器录制web的主要内容,如果未能解决你的问题,请参考以下文章