HTTP代理服务器允许JMeter在使用常规浏览器,浏览Web应用程序时拦截并记录操作。JMeter将创建测试样本对象,并将其直接存储到的测试计划中。这样你就可以在操作录制的同时,还可以查看录制的测试计划。

要使用HTTP代理服务器,需要设置浏览器对所有HTTP和HTTPS请求使用代理。录制脚本时,最好使用无痕浏览模式,这可以确保浏览器没有存储的Cookie信息,并防止保存某些更改。例如:Firefox不允许永久保存证书替代。

1、HTTP代理服务器的添加

添加HTTP代理服务器组件操作:选中“测试计划”右键 —> 添加 —> 非测试元件 —> HTTP代理服务器

HTTP代理服务器界面如下:

2、HTTP代理服务器界面详解

HTTP代理服务器组件的详细说明:

  • 名称HTTP代理服务器组件的自定义名称,见名知意最好。
  • 注释:即添加一些备注信息,对该HTTP代理服务器组件的简短说明,以便后期回顾时查看。

(1)State:状态

说明

  • 启动按钮:启动代理服务器。一旦代理服务器启动并准备接受请求,JMeter就向控制台写入消息:“代理启动并运行!”
  • 停止按钮:停止代理服务器。
  • 重启按钮:停止并重新启动代理服务器。当你操作(改变、添加、删除)包含、排除过滤器时,这个按钮很有用。

(2)Global Settings:全局设置

说明

  • 端口:设置JMeter代理服务器所要用的端口,不能被占用,否则JMeter无法使用。

    默认启用8888端口。

    可以在CMD中使用netstat -ano|findstr "8888"查看端口是否被占用。
  • HTTPS Domains:编写代理主机的域名或者主机IP地址,可以对指定地址进行请求录制。

    例如:* .example.com*.subdomain.example.com

(3)Test Plan Creation:测试计划创建

test plan content:测试计划内容。

说明

  • 目标控制器:选择录制的脚本所保存的位置。

    1)使用录制控制器:需要在线程组中添加录制控制器组件(在逻辑控制器元件中添加)。

    否则在开启HTTP代理服务器的时候会提示:
    Target Controller is configured to "Use Recording Controller" but no such controller exists, ensure you add a Recording Controller as child of Thread Group node to start recording correctly

    意思是:你选择存储脚本的目标控制器为“使用录制控制器”,但不存在这样的控制器,请确保将录制控制器组件添加为线程组节点的子节点,才可以正确开始录制。

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

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

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

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

    1)不对样本分组:很好理解,就是请求什么就记录什么,对所有录制的取样器不分组。

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

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

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

    5)Put each group in a new transaction controller:每个Sampler请求开始时,都会生成一个事务控制器,分组的所有取样器都保存在控制器下。
  • 记录HTTP信息头:要向测试计划添加信息头吗?如果勾选,则将向每个HTTP取样器,添加HTTP信息头管理器。
  • 添加断言:为每个空的取样器添加一个断言。
  • Regex matching:指定在替换变量时,是否使用正则表达式匹配。

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

(4)Requests Filtering:请求过滤

说明

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

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

    顺序是:先检查content-type的包含过滤器,再检查排除过滤器,过滤掉的取样器将不会被储存。
  • 包含模式:使用它可以过滤URL路径,只有取样器的完整URL匹配通过,该正则表达式才会被记录。

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

    如果我们要录制某个网站的请求,可以添加一个URL过滤,防止录制不必要的请求。
  • 排除模式:使用它可以过滤URL,满足该条件的请求不会被录制。
  • Notify Child Listeners of filtered samplers:通知子监听器被过滤的采样器。

提示:

  • 包含排除模式使用正则表达式匹配。它们将与每个浏览器请求的主机名,端口,路径和查询(如果有)进行匹配。
  • 如果有任何包含模式,则URL 必须至少与这些模式之一匹配,否则将不会被记录。如果存在任何排除模式,则URL 不得与任何模式匹配,否则它将不会被记录。通过使用包含和排除的组合,可以筛选记录实际需要记录的测试样本。
  • 注意:由正则表达式匹配的字符串必须与整个 host + path字符串相同。
  • 如果要记录录制过程中样本的响应数据,需要将查看结果树,添加为HTTP代理服务器的子代组件。即可通过查看结果树,查看录制的请求响应数据。

(5)HTTP Sampler settings:HTTP取样器设置

说明

  • prefix/Transaction name:在录制时,在取样器名称前添加指定的前缀,或者使用用户指定的事务名称,替换取样器名称。

    例如:指定prefixaa,如下图所示:



    例如:指定transaction namebb,如下图所示:

  • Create new transaction after request (ms):两个请求之间的不活动时间超过此值,则将它们分为两个单独的组。
  • 从HTML文件获取所有资源:在生成的取样器中,设置获取所有嵌入式资源。
  • 自动重定向:录制的取样器是否要设置自动重定向。
  • 跟随重定向:录制的取样器是否要设置跟随重定向。
  • Use keep Alive :录制的取样器是否要设置为keep Alive状态。
  • Type:要生成哪种类型的取样器,HTTPclient4Java,默认HTTPclient4

参考:

『动善时』JMeter基础 — 47、JMeter的HTTP代理服务器详细介绍的更多相关文章

  1. 『动善时』JMeter基础 — 6、使用JMeter发送一个最基础的请求

    目录 步骤1:创建一个测试计划 步骤2:创建线程组 步骤3:创建取样器 步骤4:创建监听器 步骤5:完善信息 步骤6:保存测试计划 步骤7:查看结果 总结:JMeter测试计划要素 当我们第一次打开J ...

  2. 『动善时』JMeter基础 — 41、使用JMeter连接数据库(MySQL)

    目录 1.为什么要使用JMeter连接数据库 2.JMeter连接数据库的前提 3.JDBC连接配置组件界面介绍 4.JMeter连接数据库演示 (1)测试计划内包含的元件 (2)测试计划中添加链接数 ...

  3. 『动善时』JMeter基础 — 57、Linux系统中运行JMeter脚本

    目录 1.Linux系统中安装Java环境 (1)解压Java安装包 (2)配置Java环境变量 (3)验证Java环境是否配置成功 2.Linux系统中安装JMeter (1)下载JMeter (2 ...

  4. 『动善时』JMeter基础 — 58、JMeter分布式测试

    目录 1.JMeter分布式测试概念 2.JMeter分布式测试前提条件 3.JMeter实现分布式测试 (1)在执行机中的配置 (2)在控制机中的配置 (3)启动执行机中的JMeter服务 (4)在 ...

  5. 『动善时』JMeter基础 — 1、JMeter介绍

    1.什么是JMeter Apache JMeter是Apache组织开发的基于Java的压力测试工具,用于对软件做压力测试.它最初被设计用于Web应用测试,但后来扩展到其他测试领域. (Apache ...

  6. 『动善时』JMeter基础 — 8、JMeter主要元件介绍

    目录 1.测试计划(Test Plan) 2.线程组 3.取样器(sampler) 4.逻辑控制器(Logic Controller) 5.配置元件(Config Element) 6.定时器(Tim ...

  7. 『动善时』JMeter基础 — 20、JMeter配置元件【HTTP Cookie管理器】详细介绍

    目录 1.HTTP Cookie管理器介绍 2.HTTP Cookie管理器界面详解 3.JMeter中对Cookie的管理 (1)Cookie的存储 (2)Cookie的管理策略 4.补充:Cook ...

  8. 『动善时』JMeter基础 — 37、将JMeter测试结果写入Excel

    目录 1.环境准备 (1)引入操作Excel文件的基础JAR包 (2)引入封装自定义操作Excel文件的JAR包 2.准备测试需要的数据 3.测试结果写入Excel演示 (1)测试计划内包含的元件 ( ...

  9. 『动善时』JMeter基础 — 40、JMeter中ForEach控制器详解

    目录 1.什么是逻辑控制器 2.ForEach控制器介绍 3.ForEach控制器的使用 (1)测试计划内包含的元件 (2)获取学院列表请求内容 (3)JSON提取器内容 (4)ForEach控制器内 ...

随机推荐

  1. JMM 最最最核心的概念:Happens-before 原则

    关于 Happens-before,<Java 并发编程的艺术>书中是这样介绍的: Happens-before 是 JMM 最核心的概念.对应 Java 程序员来说,理解 Happens ...

  2. PowerDesigner16安装和使用

    安装 安装参考链接:PowerDesigner安装教程 因为这个博主已经操作的很详细了,这边就不做过多的赘述. 使用 新建模型 选择物理模型 调出面板Palette 建表 最终的效果(一般不在数据库层 ...

  3. Linux执行命令报错:Permission denied

    原因:权限被拒 结局办法 chmod -R 777 目录名 更改目录内文件的权限即可

  4. Serverless实践-静态网站托管

    Serverless实践-静态网站托管 超多图预警!!! 本文旨在帮助不懂运维/网络/服务器知识的小白,在不租用云服务器的情况下,实现Web站点的上线部署 适合边看文章边跟着动手做 包含使用Githu ...

  5. CSS3边界图片

    目录 border-image border-image-slice border-image-width border-image-outset border-image-repeat border ...

  6. 052.Python前端Django框架路由层和视图层

    一.路由层(URLconf) 1.1 路由层简单配置 URL配置(URLconf)就像Django 所支撑网站的目录.它的本质是URL与要为该URL调用的视图函数之间的映射表:你就是以这种方式告诉Dj ...

  7. 050.Python前端jQuery

    一 jQuery是什么? jQuery由美国人John Resig创建,至今已吸引了来自世界各地的众多 javascript高手加入其team. jQuery是继prototype之后又一个优秀的Ja ...

  8. shell基础之shell相关概念

    一.脚本介绍 1.脚本简单地说就是一条条的文字命令(一些指令的堆积),这些文字命令是可以看到的(如可以用记事本打开查看.编辑). 常见的脚本: JavaScript(JS,前端),VBScript, ...

  9. STM32F7系列时钟相关问题:HSE模式配置(旁路模式、非旁路模式

    从时钟源的角度,分为两类外部时钟(E)和内部时钟(I).从时钟速率的角度,分为两类高速时钟(HS)和低速时钟(LS).而把它们组合起来就有四种时钟:HSE.HIS.LSE.LSI.至于为什么会有这么复 ...

  10. Docker的镜像理解以及容器的备份、恢复和迁移操作

    Docker的镜像理解以及容器的备份.恢复和迁移操作 这篇文章主要介绍了Docker的镜像理解以及容器的备份.恢复和迁移操作,覆盖很多原理知识以及容器的重要操作步骤,极力推荐!需要的朋友可以参考下 D ...