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的主要内容,如果未能解决你的问题,请参考以下文章

jmeter如何录制App及Web应用

jmeter入门 设置代理服务器和录制脚本

JMeter之代理服务器录制脚本

jmeter - 录制web网页

JMeter基础 — JMeter的HTTP代理服务器详细介绍

使用JMeter录制Web应用测试脚本