【P4】JMeter 原生录制方式——HTTP代理服务器(HTTP(S) Test Script Recorder)

这篇具有很好参考价值的文章主要介绍了【P4】JMeter 原生录制方式——HTTP代理服务器(HTTP(S) Test Script Recorder)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


一、HTTP代理服务器(HTTP(S) Test Script Recorder)参数说明

HTTP代理服务器允许JMeter在使用常规浏览器,浏览Web应用程序时拦截并记录操作。JMeter将创建测试样本对象,并将其直接存储到的测试计划中。录制脚本时,最好使用无痕浏览模式,这可以确保浏览器没有存储的Cookie信息,并防止保存某些更改。例如:Firefox不允许永久保存证书替代

测试计划右键 >>> 添加 >>> 非测试元件 >>> HTTP代理服务器

jmeter录制http脚本,Jmeter,jmeter

State

  • 启动(Start):启动代理服务器。一旦代理服务器启动并准备接受请求,JMeter 就向控制台写入消息:“代理启动并运行!”

  • 停止(Stop):停止代理服务器

  • 重启(Restart):停止并重新启动代理服务器。当你操作(改变、添加、删除)包含、排除过滤器时,这个按钮很有用

Global Settings

  • 端口(Port):设置 JMeter 代理服务器所要用的端口,不能被占用,否则 JMeter 无法使用。默认启用8888端口。

可以在 cmd 中使用 netstat -ano|findstr "8888" 查看端口是否被占用

  • HTTPS Domains:编写代理主机的域名或者主机 IP 地址,可以对指定地址进行请求录制。

例:* .baidu.com,*.subdomain.example.com

Test Plan Creation_Test Plan content

(1)、目标控制器(Target Controller):选择录制的脚本所保存的位置

  • 使用录制控制器:需要在线程组中添加录制控制器组件(在逻辑控制器元件中添加)否则在开启 HTTP代理服务器的时候会提示报错

  • 测试计划 > 线程组:录制的脚本保存到目标线程组(只有在测试计划中添加了线程组,才能看到该选项)

  • 测试计划 > HTTP代理服务器:录制的脚本保存到HTTP代理服务器组件下

  • Test Plan > 线程组 > 控制器:录制的脚本保存在线程组中的目标控制器下(只有在测试计划中添加了控制器,才能看到该选项)

(2)、分组(Grouping):是否将录制的单个“点击”请求进行分组,以及如何在录制中表示该分组

  • 不对样本分组:就是请求什么就记录什么,对所有录制的取样器不分组

  • 在组间添加分隔:每一个 Sampler 结束都会有分隔符间隔开。即:在取样器分组之间添加以名为----------的控制器

  • 每个组放入一个新的控制器:每一个 Sampler 请求开始时,都会有一个简单控制器生成。即:每个分组放到一个新的简单控制器下

  • 只存储每个组的第一个样本:每个 Sampler 请求时,如果有子请求,那子请求是不会被记录的,只记录第一个 URL请求的样本,而这些取样器的 Follow Redirects 和 Retrieve All Embedded Resources…等选项将被设置上。这种情况虽然很多人说比较推荐,但是个人觉得会丢失许多重要的请求,建议大家还是视情况选择。

  • 将每个组放入一个新的控制器中(Put each group in a new transaction controller):每个 Sampler 请求开始时,都会生成一个事务控制器,分组的所有取样器都保存在控制器下

(3)、记录HTTP信息头(Capture HTTP Headers):如果勾选,则将向每个HTTP取样器,添加HTTP信息头管理器

(4)、添加断言(Add Assertions):为每个空的取样器添加一个断言(一般手动断言,自动会有问题)

(5)、Regex matching:指定在替换变量时,是否使用正则表达式匹配。如果勾选,则将取样器中的信息,使用正则表达式来匹配用户定义变量值,替换为变量名 ${变量名},进行替换。匹配时,它只接受整个词匹配,不接受匹配单词一部分

Test Plan Creation_HTTP Sampler settings

(1)、Transaction name:配置事务名称,配合 Naming scheme 参数一起使用

(2)、Naming scheme

  • prefix:在录制时,在取样器名称前添加指定的前缀,自带编号

  • Transaction name:使用用户指定的事务名称,替换取样器名称,自带编号

-Suffix:后缀

  • Use format string:自定义设置格式,可以自己定义,如 #{counter,number,000} - #{path} - 登录

默认格式:#{counter,number,000} - #{path} (#{name})
对应:012 - /product/list (测试)
#{counter,number,000}:内容编号,000代表三位,可以在
Counter start value 中设置从几开始
#{path}:路径,如 /product/list
(#{name}):事务名,在 Transaction name 中设置

(3)、Counter start value:设置编号从几开始

(4)、Create new transaction after request (ms):在多少毫秒之后,自动创建一个事务,此选项基本不用

(5)、Recording‘s default encoding:编号,一般设置为 utf-8,防止录制时出现中文乱码

(6)、从HTML文件获取所有资源(Retrieve All Embedded Resources):在生成的取样器中,设置获取所有嵌入式资源

(7)、自动重定向(Redirect Automatically):录制的取样器是否要设置自动重定向

(8)、跟随重定向(Follow Redirects):录制的取样器是否要设置跟随重定向

(9)、使用keepAlive(Use keep Alive):录制的取样器是否要设置为keep Alive状态,保持连接,一般都勾选上

(10)、Type:要生成哪种类型的取样器,HTTPclient4 或 Java,默认 HTTPclient4

Test Plan Creation_GraphQL HTTP Sampler settings

  • Detect GraphQL Request:自动生成 GraphQL,很少用

jmeter录制http脚本,Jmeter,jmeter

Requests Filtering_Content Type filter

  • Include:根据请求头中的 content-type 属性过滤请求,例如 "text/html [;charset=utf-8 ]”

该字段为正则表达式,它会检查 content-type属性中,是否包含了指定字符串[不必匹配整个字段]

顺序是:先检查 content-type 的包含过滤器,再检查排除过滤器,过滤掉的取样器将不会被储存

Requests Filtering_包含模式(URL Patterns to Include)

  • 使用它可以过滤 URL 路径,只有取样器的完整 URL 匹配通过,该正则表达式才会被记录

如果在包含模式中至少有一个条目,则只记录匹配一个或多个包含模式的请求

如果我们要录制某个网站的请求,可以添加一个 URL过滤,防止录制不必要的请求

Requests Filtering_排除模式(URL Patterns to Exclude)

  • 使用它可以过滤 URL,满足该条件的请求不会被录制

Requests Filtering_将过滤过的取样器通知子监听器(Notify Child Listeners of filtered samplers)

  • 通知子监听器被过滤的取样器

包含和排除模式使用正则表达式匹配。它们将与每个浏览器请求的主机名,端口,路径和查询(如果有)进行匹配

如果有任何包含模式,则 URL 必须至少与这些模式之一匹配,否则将不会被记录。如果存在任何排除模式,则 URL 不得与任何模式匹配,否则它将不会被记录。通过使用包含和排除的组合,可以筛选记录实际需要记录的测试样本

注意:由正则表达式匹配的字符串必须与整个 host + path 字符串相同

如果要记录录制过程中样本的响应数据,需要将查看结果树,添加为 HTTP代理服务器的子代组件。即可通过查看结果树,查看录制的请求响应数据

二、准备工作

慕慕生鲜: http://111.231.103.117/#/login

三、原生录制方式——HTTP

3.1、设计说明

  • 新建一个 HTTP请求默认值(HTTP Request Defaults) 设置好协议、IP、端口号

  • Jmeter 当中添加 HTTP代理服务器

  • 启动代理服务器,并将浏览器的设置为代理上网,代理地址为:127.0.0.1:8888,端口与上述(HTTP代理服务器)保持一致

  • 打开浏览器开始录制脚本

3.2、测试计划设计

(1)、测试计划右键 <<< 添加 <<< 配置元件 <<< HTTP请求默认值

jmeter录制http脚本,Jmeter,jmeter

  • 协议:http

  • 服务器名称或IP:111.231.103.117

  • 端口:8083

  • 内容编码:utf-8

  • 高级中可以设置超时(毫秒),连接:5000;响应:1000

(2)、测试计划右键 <<< 添加 <<< 非测试元件 <<< HTTP代理服务器

Recording's default encoding:utf-8;设置编码格式,如果 url 路径中存在中文参数是,未设置会出现乱码

jmeter录制http脚本,Jmeter,jmeter

  • 目标控制器:测试计划 > HTTP代理服务器

(3)、点击启动,弹窗点击OK,页面会弹出一个事务控制:Recorder: Transactions Control

jmeter录制http脚本,Jmeter,jmeter

(4)、网页打开设置,搜索代理,点击打开计算机的代理设置,设置完毕后记得点保存

jmeter录制http脚本,Jmeter,jmeter

-开启使用代理服务器

-地址:127.0.0.1

-端口:8888(和 HTTP代理服务器中的端口保持一致,且不能被占用)

(5)、网页输入网址进入:http://111.231.103.117/#/login,输入账户和密码,点击登录

jmeter录制http脚本,Jmeter,jmeter

(6)、录制完毕后,点击停止

jmeter录制http脚本,Jmeter,jmeter

(7)、回到 Jmeter,可以看到,HTTP代理服务器下有全部 http链接信息,后续就可以对脚本进行优化

jmeter录制http脚本,Jmeter,jmeter

四、原生录制方式——HTTPS

4.1、设计说明

  • 新建一个 HTTP Request Defaults 设置好协议、IP、端口号

  • Jmeter 当中建立 HTTP代理服务器

  • 启动代理服务器

  • 浏览器安装证书,证书路径在:$JMETER_HOME/bin/ApacheJMeterTemporaryRootCA.crt

  • 览器的设置为代理上网,代理地址为:127.0.0.1:8888,端口与上述保持一致

  • 打开浏览器开始录制脚本

4.2、测试计划设计

(1)、打开浏览器,进入设置,搜索证书,点击管理证书,证书窗口选择受新任的根证书颁发机构,点击导入,点击下一页

jmeter录制http脚本,Jmeter,jmeter

(2)、点击浏览,选择证书,点击下一页

证书在 Jmeter 安装路径下 bin 目录内:ApacheJMeterTemporaryRootCA.crt

jmeter录制http脚本,Jmeter,jmeter

注:证书有一个有限期7天,7天后 Jmeter 会自动生成新的证书,过期后,从新导入新的即可

jmeter录制http脚本,Jmeter,jmeter

(3)、点击下一页

jmeter录制http脚本,Jmeter,jmeter

(4)、点击完成

jmeter录制http脚本,Jmeter,jmeter

(5)、安全警告,点击是

jmeter录制http脚本,Jmeter,jmeter

(6)、点击确认

jmeter录制http脚本,Jmeter,jmeter

测试步骤和 http 一样,只不过 https 多了个导入证书的步骤,此处就不在演示,可以使用:https:///www.baidu.com 百度官网去进行验证,修改 HTTP请求默认值
协议:https
服务器名称或IP:www.baidu.com
端口:443

五、HTTP代理服务器主要参数说明

在 2.2测试计划设计脚本上进行验证

5.1、目标控制器

jmeter录制http脚本,Jmeter,jmeter

  • 存在线程组或控制器时,可以选择录制脚本所保存的位置

  • 控制器在线程组右键 >>> 添加 >>> 逻辑控制器 下添加

5.2、分组:在组间添加分割

jmeter录制http脚本,Jmeter,jmeter

  • 在取样器分组之间添加以名为-------------------的简单控制器

5.3、分组:每个组放入一个新的控制器

jmeter录制http脚本,Jmeter,jmeter

  • 每一个 取样器(Sampler) 请求开始时,都会有一个简单控制器生成。即:每个分组放到一个新的简单控制器下

5.4、分组:只存储每个组的第一个样本

jmeter录制http脚本,Jmeter,jmeter

  • 每个 取样器(Sampler) 请求时,如果有子请求,那子请求是不会被记录的,只记录第一个 URL请求的样本,而这些取样器的(跟随重定向)Follow Redirects 和 (检索所有嵌入的资源)Retrieve All Embedded Resources…等选项将被设置上

  • 这种情况虽然很多人说比较推荐,但是个人觉得会丢失许多重要的请求,建议大家还是视情况选择

5.5、分组:将每个组放入一个新的事务控制器中

jmeter录制http脚本,Jmeter,jmeter

  • 每个 取样器(Sampler) 请求开始时,都会生成一个事务控制器,分组的所有取样器都保存在控制器下

5.6、记录HTTP信息头

jmeter录制http脚本,Jmeter,jmeter

  • 勾选后,每个请求下,都有一个 HTTP信息头管理器

5.7、Naming scheme:Transaction name

jmeter录制http脚本,Jmeter,jmeter

  • 使用用户指定的事务名称,替换取样器名称,自带编号

更详细的参数说明,请参考:JMeter 5.5 使用详解(持续更新中…)文章来源地址https://www.toymoban.com/news/detail-676900.html


到了这里,关于【P4】JMeter 原生录制方式——HTTP代理服务器(HTTP(S) Test Script Recorder)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • (五)【Jmeter】使用代理录制HTTP脚本操作步骤及注意事项

    前置信息 软件 版本 Jmeter 5.6.3 服务 网址 备注 drupal http://192.168.88.88:18080/ (二)【Jmeter】专栏实战项目靶场drupal部署 用户名 密码 test1 test1 test2 test2 实操记录 1、启动jmeter,操作顺序见下图 2、在视图面板添加如下信息,点击 开始

    2024年02月19日
    浏览(39)
  • 【云原生】使用nginx反向代理后台多服务器

    背景 随着业务发展, 用户访问量激增,单台服务器已经无法满足现有的访问压力,研究后需要将后台服务从原来的单台升级为多台服务器,那么原来的访问方式无法满足,所以引入 nginx 来代理多台服务器,统一请求入口。 什么是nginx Nginx[engine x]是一个免费开源Web服务器,是

    2024年02月04日
    浏览(41)
  • Nginx HTTP和反向代理服务器

    1、概念: Nginx  (engine x) 是一个高性能的HTTP和反向代理web服务器。 2、什么是代理服务器: 概念: 代理服务器是介于客户端和Web服务器之间的另一台服务器,有了它之后,浏览器不是直接到Web服务器去取回网页信息,而是通过向代理服务器发送请求,信号会先送到代理服务

    2024年02月04日
    浏览(38)
  • 用Java开发HTTP代理服务器

    HTTP代理服务器是一种网络应用,它充当位于客户端和目标服务器之间的中间节点,将客户端发出的HTTP请求转发给目标服务器,并将目标服务器返回的HTTP响应内容回传给客户端。通过使用代理服务器,客户端可以避免直接访问目标服务器,从而更加安全地访问互联网资源。

    2024年02月16日
    浏览(43)
  • git怎么设置http代理服务器

    目录 前言 一、什么是HTTP代理服务器 二、为什么需要设置HTTP代理服务器 三、如何设置HTTP代理服务器 1. 查看当前是否已经存在全局代理设置 2. 设置全局代理 3. 验证代理设置 4. 取消代理设置 四、示例代码 五、总结 前言 Git是一个非常强大的版本控制工具,可以帮助我们管理

    2024年04月27日
    浏览(33)
  • HTTP代理服务器的设计与实现

    一、前言 这个实验挺麻烦的,本来就只有一周时间,等我开始着手准备的时候,也就剩两三天了,也没什么心情自己重头开打代码,于是就找了大佬的代码借鉴了一下,在验收之前处理完了所有的bug。不过,我觉得这个实验还是最好自己慢慢想,想到问题再去搜索,能收获到

    2023年04月13日
    浏览(39)
  • Varnish开源HTTP反向代理缓存服务器

    第三阶段基础 时  间:2023年6月13日 参加人:全班人员 内  容: Varnish 目录 Varnish 端口号:TCP/6081  TCP/6082 配置文件:/etc/varnish/default.vcl 安装部署: 测试功能: Varnish是一个高性能的 开源HTTP反向代理缓存服务器 ,它可以加速动态内容的交付并降低服务器的负载。 Varnish常被

    2024年02月10日
    浏览(523)
  • 超简单--搭建http、https代理服务器

    vim /etc/squid/squid.conf systemctl start squid systemctl status squid systemctl enable squid 日志位置 /var/log/squid 服务器搭建完成 linux主机配置 //编辑配置文件 vi /etc/profile //在该配置文件的最后添加代理配置 // 退出profile文件并保存 source /etc/profile // 使配置文件生效 普通PC电脑 直接在浏览器或网

    2024年02月08日
    浏览(37)
  • 使用Go语言编写HTTP代理服务器

    在Go语言中,编写一个HTTP代理服务器相对简单且直观。代理服务器的主要职责是接收客户端的请求,然后将请求转发到目标服务器,再将目标服务器的响应返回给客户端。下面是一个简单的示例,展示如何使用Go语言编写一个基本的HTTP代理服务器: go 复制代码 package  main i

    2024年01月18日
    浏览(41)
  • c# 设置代理服务器发送http请求

    2024年02月16日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包