通过案例带你轻松玩转JMeter连载(10)

简介: 通过案例带你轻松玩转JMeter连载(10)

6 HTTP代理服务器(HTTP(S) 测试脚本录制)



   HTTP代理服务器,用于使用JMeter自身的工具来录制脚本。HTTP代理服务器通过右键点击菜单,选择“添加->非测试元件->HTTP代理服务器”而获得。其界面如图59所示。


image.png

图59 HTTP代理服务器测试计划创建标签


   HTTP代理服务器为用JMeter录制脚本的元件。

  • Global Settings:
    Ø 端口:代理服务器监听的端口,一定要与Internet代理服务器中设置的代理端口保持一致。
    Ø HTTPS Domains:指定HTTPS域(或主机)名称列表。用于预生成所有要记录的服务器的证书。例如:.example.com,.subdomain.example.com。
    注意,通配符域只适用于一个级别,即my.subdomain.example.com与*.subdomain.example.com匹配,但是不和*.example.com匹配。

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


(一)测试计划创建标签

  • 测试计划内容
    Ø 目标控制器:指定代理录制的脚本保存到哪个控制器。
    Ø 分组:是否将录制的单个“点击”(请求接收而无明显时间间隔的请求)的请求分组,以及如何在录制中表示该分组。
    √不对样本分组:对所有录制的取样器不分组。
    √在组间添加分组:在取样器分组之间添加以名为"------------"的控制器。
    √每个组放入一个新的控制器:每个分组放到一个新的简单控制器下。
    √只存入每个组的第一个样本:只要每个分组的第一个请求会被录制,而这些取样器的"跟踪重定向"and "检索所有嵌入资源"等将被设置上。
    √将每个组放入一个新的事务控制器:为每个分组创建一个事务控制器,那个分组的所有取样器都保存在控制器下。
    Ø 记录HTTP信息头:表示是否向测试计划添加信息头。如果选择,那么将向每个HTTP取样器添加HTTP信息头管理器。代理服务器会从生成的头管理器中删除Cookie和授权头。默认情况下,也移除了removes If-Modified-Since和If-None-Match头。这些用于确定浏览器缓存项是否是最新的。在录制一个需要下载所有内容时,通常需要下载所有内容。要修改那些哪些额外的头部要删除,可修改JMeter属性文件%JMETER_HOME%\bin\jmeter.properties中的。

  • proxy.headers.remove=If-Modified-Since,If-None-Match,Host
    Ø 添加断言:为每个空的取样器添加一个断言。
    Ø Regex matching:指定在替换变量时是否使用正则表达式匹配。如果选择,则将取样器中的信息使用正则表达式来匹配用户定义变量值,替换为变量名(${变量名})。匹配的时候,只接受真个词匹配,而不接受匹配单词一部分。


  • HTTP sampler设置。
    Ø Transaction name:在录制时,在取样器名称前添加指定的前缀,或者用户指定的事务名称替换取样器名称。Name scheme有如下四个选项(prefix前缀、Transaction
    name替换名称、suffix后缀和using format String使用定义的格式)。如果设置using
    format String,默认给出“#{counter,number,000} - #{path} (#{name})”定义格式。
    Ø Create new transaction after request (ms):两个请求之间的不活动时间(需要在两个单独的组中考虑它们)。
    Ø Recordingrsquo;s default encoding:录制默认的编码格式,比如utf-8。
    Ø Type:要生成哪种类型的取样器(HTTPclient4默认或Java)
    Ø 自动重定向:录制的取样器是否要设置自动重定向。
    Ø 跟随重定向:录制的取样器是否要设置跟随重定向。
    Ø 从HTML文件中获取所有内容的资源:录制的取样器是否要设置选择HTML文件中获取所有包含的资源,比如css、js或图片文件。
    Ø Use keep Alive :录制的取样器是否要设置keep Alive。在第3.4.1中我们介绍,以前的HTTP是无连接性的,通过头文件增加keep Alive的属性,变为了有连接的。


  • JMeter GraphQL HTTP Sample setting。GraphQL 是一种针对 Graph(图状数据)进行查询特别有优势的 Query Language(查询语言),所以叫做 GraphQL。由于GraphQL一直没有被广泛使用,所以在这里不进行介绍。


(二)Content Type filter标签
   Content Type filter标签如图60所示。


image.png

图60 HTTP代理服务器Content Type filter标签


   在这个标签中,可以根据content-type过滤请求,比如“text/html [;charset=utf-8 ]“。这个字段为正则表达式,它会检查content-type是否包含了“指定字符串[不必匹配整个字段]”。先检查content-type的包含过滤器,再检查排除过滤器。过滤掉的取样器将不会被储存。如果你不想录制css、js,png等格式的文件,可以在Exclude设置“(?i)..(bmp|css|js|gif|ico|jpe?g|png|swf|woff|woff2)(.?)”正则表达式。


  • 包含模式:使用它可以过滤URL,只有取样器的完整URL匹配的正则表达式才会被记录。如果Include和Exclude都为空,则记录所有内容。


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


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


  • 排除模式:使用它可以过滤URL,满足该条件的请求不会被录制。
  • 将过滤过的取样器通知子监听器:通知被过滤取样器的子监听器。匹配一个或多个排除模式的任何响应都不会传递给子监听器。


image.png

                                                        点击查看原视频链接

目录
相关文章
|
Java 测试技术 API
通过案例带你轻松玩转JMeter连载(49)
通过案例带你轻松玩转JMeter连载(49)
251 1
通过案例带你轻松玩转JMeter连载(49)
|
存储 Linux
通过案例带你轻松玩转JMeter连载(60)
通过案例带你轻松玩转JMeter连载(60)
179 0
通过案例带你轻松玩转JMeter连载(60)
|
算法
通过案例带你轻松玩转JMeter连载(59)
通过案例带你轻松玩转JMeter连载(59)
232 0
通过案例带你轻松玩转JMeter连载(59)
|
XML JavaScript Java
通过案例带你轻松玩转JMeter连载(58)
通过案例带你轻松玩转JMeter连载(58)
130 0
通过案例带你轻松玩转JMeter连载(58)
通过案例带你轻松玩转JMeter连载(57)
通过案例带你轻松玩转JMeter连载(57)
128 0
通过案例带你轻松玩转JMeter连载(57)
|
存储 索引
通过案例带你轻松玩转JMeter连载(56)
通过案例带你轻松玩转JMeter连载(56)
117 0
通过案例带你轻松玩转JMeter连载(56)
|
存储 Prometheus 监控
通过案例带你轻松玩转JMeter连载(55)
通过案例带你轻松玩转JMeter连载(55)
165 0
通过案例带你轻松玩转JMeter连载(55)
|
存储 监控 数据可视化
通过案例带你轻松玩转JMeter连载(54)
通过案例带你轻松玩转JMeter连载(54)
157 0
通过案例带你轻松玩转JMeter连载(54)
|
存储 Prometheus 监控
通过案例带你轻松玩转JMeter连载(53)
通过案例带你轻松玩转JMeter连载(53)
138 0
通过案例带你轻松玩转JMeter连载(53)
|
JSON 监控 数据可视化
通过案例带你轻松玩转JMeter连载(52)
通过案例带你轻松玩转JMeter连载(52)
200 0
通过案例带你轻松玩转JMeter连载(52)