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 Redirects和Retrieve 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:在录制时,在取样器名称前添加指定的前缀,或者使用用户指定的事务名称,替换取样器名称。

    例如:指定prefix为aa,如下图所示:



    例如:指定transaction name为bb,如下图所示:

  • Create new transaction after request (ms):两个请求之间的不活动时间超过此值,则将它们分为两个单独的组。
  • 从HTML文件获取所有资源:在生成的取样器中,设置获取所有嵌入式资源。
  • 自动重定向:录制的取样器是否要设置自动重定向。
  • 跟随重定向:录制的取样器是否要设置跟随重定向。
  • Use keep Alive :录制的取样器是否要设置为keep Alive状态。
  • Type:要生成哪种类型的取样器,HTTPclient4或Java,默认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. 如何在C艹大作业上用复数计算器拿下一个100分

    0. qt qt简介: 百度百科 下载:官网下载 申请个账号就可以免费用了 安装方式可以在百度上找到,建议安装MinGW,其余自选. 1. 建立第一个qt文件 打开Qt Creator,点击文件,点击 ...

  2. MyBatis Generator(SSM Maven项目)

    mbg.xml 放在项目目录里 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE genera ...

  3. Xshell、Xftp评估过期的解决办法

    介绍一个     FTP客户端-IIS7服务器管理工具作为FTP客户端,它支持批量管理ftp站点.定时上传和定时下载,定时备份,且操作简洁.同时iis7服务器管理工具还是vnc客户端.并且支持批量管理 ...

  4. HashMap方法源码分析

    本文将分析put(),resize(),get()和remove()方法的源码 putval()方法 大致步骤:计算key的hash值:根据hash值计算数组下标:判断下标处是否有节点,无节点则直接插 ...

  5. JVM虚拟机 类加载过程与类加载器

    目录 前言 类的生命周期 类加载过程 加载 连接 验证 准备 解析 初始化 类加载器 三大类加载器 双亲委派模型 概念 为什么要使用双亲委派模型 源码分析 反双亲委派模型 参考 前言 类装载器子系统是 ...

  6. 【BUAA 软工热身作业】继往开来,勇攀高峰

    项目 内容 课程:2020春季软件工程课程博客作业(罗杰,任健) 博客园班级链接 作业:热身作业,阅读并撰写博客 作业要求 课程目标 学习大规模软件开发的技巧与方法,锻炼开发能力 作业目标 学习前辈经 ...

  7. Jmeter(一) - 从入门到精通 - 环境搭建(详解教程)

    1.JMeter 介绍 Apache JMeter是100%纯JAVA桌面应用程序,被设计为用于测试客户端/服务端结构的软件(例如web应用程序).它可以用来测试静态和动态资源的性能,例如:静态文件, ...

  8. crontab简单使用手册

    Linux定时任务(1)- crontab 枫林风雨关注 0.1682018.12.14 12:29:47字数 946阅读 921 执行定时任务 crontab 执行循环任务 at 执行一次性任务 c ...

  9. 基于多主机的Web服务

    [Centos7.4版本] !!!测试环境我们首关闭防火墙和selinux [root@localhost ~]# systemctl stop firewalld [root@localhost ~ ...

  10. fcntl详解

    功能描述:根据文件描述词来操作文件的特性. #include <unistd.h>#include <fcntl.h> int fcntl(int fd, int cmd);  ...