『动善时』JMeter基础 — 47、JMeter的HTTP代理服务器详细介绍

繁华似锦Fighting 2021-06-19 10:55:27
http Jmeter 基础 代理服务器


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

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

1、HTTP代理服务器的添加

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

HTTP代理服务器界面如下:

image

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

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

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

(1)State:状态

image

说明

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

(2)Global Settings:全局设置

image

说明

  • 端口:设置JMeter代理服务器所要用的端口,不能被占用,否则JMeter无法使用。
    默认启用8888端口。
    可以在CMD中使用netstat -ano|findstr "8888"查看端口是否被占用。
  • HTTPS Domains:编写代理主机的域名或者主机IP地址,可以对指定地址进行请求录制。
    例如:* .example.com*.subdomain.example.com

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

test plan content:测试计划内容。

image

说明

  • 目标控制器:选择录制的脚本所保存的位置。
    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:请求过滤

image

说明

  • 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取样器设置

image

说明

  • prefix/Transaction name:在录制时,在取样器名称前添加指定的前缀,或者使用用户指定的事务名称,替换取样器名称。
    例如:指定prefixaa,如下图所示:
    image
    例如:指定transaction namebb,如下图所示:
    image
  • Create new transaction after request (ms):两个请求之间的不活动时间超过此值,则将它们分为两个单独的组。
  • 从HTML文件获取所有资源:在生成的取样器中,设置获取所有嵌入式资源。
  • 自动重定向:录制的取样器是否要设置自动重定向。
  • 跟随重定向:录制的取样器是否要设置跟随重定向。
  • Use keep Alive :录制的取样器是否要设置为keep Alive状态。
  • Type:要生成哪种类型的取样器,HTTPclient4Java,默认HTTPclient4

参考:

版权声明
本文为[繁华似锦Fighting]所创,转载请带上原文链接,感谢
https://www.cnblogs.com/liuyuelinfighting/p/14902158.html

  1. HTML + CSS + JavaScript to achieve cool Fireworks (cloud like particle text 3D opening)
  2. HTML + CSS + JavaScript realizes 520 advertising love tree (including music), which is necessary for programmers to express themselves
  3. Solve the problem of Web front-end deployment server (it can be deployed online without a server)
  4. HTML + CSS + JS make wedding countdown web page template (520 / Tanabata Valentine's Day / programmer advertisement)
  5. What else can driverless minibus do besides "Park connection"?
  6. Cloud native leads the era of all cloud development
  7. NRM mirror source management tool
  8. Bring it to you, flex Jiugong
  9. Lolstyle UI component development practice (II) -- button group component
  10. Deconstruction assignment in ES6
  11. Luo 2 peerless Tang clan was officially launched. The official gave a key point, and the broadcast time was implied
  12. 20初识前端HTML(1)
  13. 当新零售遇上 Serverless
  14. 20 initial knowledge of front-end HTML (1)
  15. When new retail meets serverless
  16. [golang] - go into go language lesson 5 type conversion
  17. [golang] - go into go language lesson 6 conditional expression
  18. HTML5(八)——SVG 之 path 详解
  19. HTML5 (8) -- detailed explanation of SVG path
  20. 需要开通VIP以后页面内容才能复制怎么办?控制台禁用javascript即可
  21. Web前端|CSS入门教程(超详细的CSS使用讲解,适合前端初学者)
  22. 实践积累 —— 用Vue3简单写一个单行横向滚动组件
  23. Serverless 全能选手,再下一城
  24. What if you need to open a VIP to copy the page content? Just disable JavaScript on the console
  25. Web front end | CSS introductory tutorial (super detailed CSS explanation, suitable for front-end beginners)
  26. Practice accumulation - write a single line horizontal scroll component simply with vue3
  27. Dili Reba is thin again. She looks elegant and high in a strapless hollow skirt, and her "palm waist" is beautiful to a new height
  28. Serverless all-round player, next city
  29. The difference between MySQL semi synchronous replication and lossless semi synchronous replication
  30. Vue表单设计器的终极解决方案
  31. The ultimate solution for Vue form designer
  32. Nginx从理论到实践超详细笔记
  33. Yu Shuxin's red backless swimsuit is split to the waist and tail, with a concave convex figure and excessive color matching, and his face is white to dazzling
  34. Nginx ultra detailed notes from theory to practice
  35. 【动画消消乐|CSS】086.炫酷水波浪Loading过渡动画
  36. typecho全站启用https
  37. CCTV has another popular employee. The off-site interpretation is very professional, and the appearance ability is no less than that of Wang Bingbing
  38. [animation Xiaole | CSS] 086. Cool water wave loading transition animation
  39. Enable HTTPS in Typecho
  40. 50天用JavaScript完成50个web项目,我学到了什么?
  41. 根据JavaScript中原生的XMLHttpRequest实现jQuery的Ajax
  42. What have I learned from completing 50 web projects with JavaScript in 50 days?
  43. "My neighbor doesn't grow up" has hit the whole network. There are countless horse music circles, and actor Zhou Xiaochuan has successfully made a circle
  44. 根据JavaScript中原生的XMLHttpRequest实现jQuery的Ajax
  45. Implement the Ajax of jQuery according to the native XMLHttpRequest in JavaScript
  46. Implement the Ajax of jQuery according to the native XMLHttpRequest in JavaScript
  47. 30 + women still wear less T-shirts and jeans. If they wear them like stars, they will lose weight
  48. 数栈技术分享前端篇:TS,看你哪里逃~
  49. Several stack technology sharing front end: TS, see where you escape~
  50. 舍弃Kong和Nginx,Apache APISIX 在趣链科技 BaaS 平台的落地实践
  51. Abandon the landing practice of Kong and nginx, Apache apisik on the baas platform of fun chain technology
  52. 浪迹天涯king教你用elementui做复杂的表格,去处理报表数据(合并表头,合并表体行和列)
  53. 前端HTML两万字图文大总结,快来看看你会多少!【️熬夜整理&建议收藏️】
  54. Wandering around the world king teaches you to use elementui to make complex tables and process report data (merge header, merge table body rows and columns)
  55. 路由刷新数据丢失 - vuex数据读取的问题
  56. Front end HTML 20000 word graphic summary, come and see how much you can【 Stay up late to sort out & suggestions]
  57. Route refresh data loss - vuex data reading problem
  58. Systemctl系统启动Nginx服务脚本
  59. Systemctl system startup nginx service script
  60. sleepless