当前位置: 首页 > news >正文

性能工具之 JMeter 常用组件介绍(七)

文章目录

  • 一、后置处理器
    • 1、Regular Expression Extractor(正则表达式提取器)
    • 2、JSON Extractor(JSON表达式提取器)
    • 3、Regular Expression Extractor(正则表达式提取器)
  • 二、小结

本文主要介绍JMeter主流后置处理器的功能

一、后置处理器

在这里插入图片描述

从上面可以看出后置处理可以插件挺多,在我工作生涯中常用的就是几个组件。

1、Regular Expression Extractor(正则表达式提取器)

在这里插入图片描述
Apply to:应用范围

  • Main sample and sub-samples:作用于主节点的取样器及对应子节点的取样器
  • Main sample only:仅作用于主节点的取样器
  • Sub-samples only:仅作用于子节点的取样器
  • JMeter Variable:作用于jmeter变量(输入框内可输入jmeter的变量名称),从指定变量值中提取需要的值。

Field to check 要检查的响应字段:

  1. Body 主体:响应报文的主体,最常用
  2. Body(unescaped):主体,是替换了所有的html转义符的响应主体内容,注意html转义符处理时不考虑上下文,因此可能有不正确的转换,不太建议使用
  3. Body as a Document:从不同类型的文件中提取文本,注意这个选项比较影响性能
  4. Response Headers:响应信息头(如果你使用的是中文版的Jmeter,会看到这一项是信息头,这是中文翻译问题,应以英文为准)
  5. Request Headers:请求信息头
  6. URL:请求url
  7. Response Code:响应状态码,比如200、404等
  8. Response Message:响应信息
  • Name of created variable 引用名称:其他地方引用时的变量名称,我这里写的phone,可自定义设置,引用方法:${引用名称}
  • Regular Expression 正则表达式:数据提取器,()括号里为你要获取的的值。“mobilephone”:“( 相当于LR左边界, )”,"leaveamount"相当于LR右边界。而括号里\d+为正则表达式,用来匹配所需要获取的数据,何谓正则表达式文章末尾会附上说明
  • Template 模板:用于从找到的匹配项创建字符串的模板。这是一个带有特殊元素的任意字符串,用于引用正则表达式中的组。引用组的语法是:’ $ 1 $ ‘引用组1,’ $ 2 $ '引用组2,等等。$ 0 $引用整个表达式匹配的内容。
  • Match No. 匹配数字:正则表达式匹配数据的所有结果可以看做一个数组,匹配数字即可看做是数组的第几个元素。-1表示全部,0随机,1第一个,2第二个,以此类推。若只要获取到匹配的第一个值,则填写1
  • Default value 缺省值:匹配失败时的默认值。可以不写。若需用于后续逻辑判断,可简单写为 ERROR。

简单示例:

1、添加线程组
在这里插入图片描述

2、添加请求
在这里插入图片描述
3、添加正则提取器
首先请求一次,在结果查看树中调试正则表达式,增加正则提取器,把正则表达式放上去

在这里插入图片描述
增加正则表达式

在这里插入图片描述
增加调试器

在这里插入图片描述
4、添加结果查看树
在这里插入图片描述

2、JSON Extractor(JSON表达式提取器)

在这里插入图片描述

3、Regular Expression Extractor(正则表达式提取器)

在这里插入图片描述
说明:

  • 1.Variable name :自定义参数名,引用的时候${} 格式
  • 2.Json path expression:json表达式,根据上面的json,表达式为:$.开始

简单样例说明:
1、添加线程组
在这里插入图片描述
2、添加请求
1、使用springboot新建工具简单写好Controller代码如:


@GetMapping("/weixin")@ResponseBodypublic Msg getWeixint() {HashMap<String, ArrayList<Skills>> hashMap1 = new HashMap<>();HashMap<String, ArrayList<Gender>> hashMap = new HashMap<>();HashMap<String, String> hashMap3 = new HashMap<>();hashMap3.put("name", "数据下发");hashMap3.put("opinion", "get获取得数据");ArrayList<Gender> list = new ArrayList<>();list.add(new Gender("男", "0", true));list.add(new Gender("女", "1", true));ArrayList<Skills> list1 = new ArrayList<>();list1.add(new Skills("HTML", "html", true));list1.add(new Skills("CSS", "css", false));list1.add(new Skills("JavaScript", "js", false));list1.add(new Skills("Photoshop", "ps", true));list1.add(new Skills("python", "py", true));hashMap.put("gender", list);hashMap1.put("skills", list1);HashMap<String, Object> hashMap2 = new HashMap<>();hashMap2.putAll(hashMap);hashMap2.putAll(hashMap1);hashMap2.putAll(hashMap3);System.out.println(hashMap2);return Msg.success().add("infopage", hashMap2);}

启动成功如:
在这里插入图片描述

页面响应如:
在这里插入图片描述
添加请求:
在这里插入图片描述

3、添加结果查看树调试
在这里插入图片描述
4、添加JSON Extractor
在这里插入图片描述
5、添加Debug Sampler
在这里插入图片描述
6、查看结果
在这里插入图片描述

3、工程结构如下:
在这里插入图片描述

二、小结

很多插件需要在工作不断练习才能掌握,掌握学习方法,并且自己动手就能把很多事情做出来;

http://www.lryc.cn/news/378174.html

相关文章:

  • Python学习笔记15:进阶篇(四)文件的读写。
  • 角度调制与解调电路
  • 数据分析:微生物组差异丰度方法汇总
  • Linux驱动开发(二)--字符设备驱动开发提升 LED驱动开发实验
  • 钡铼BL101网关助力智慧城市路灯远程智能管控
  • 如何优雅的使用Github Action服务来将Hexo部署到Github Pages
  • After Effects 2024 mac/win版:创意视效,梦想起航
  • 信息打点web篇----web后端源码专项收集
  • ArcGIS批量投影转换的妙用(地理坐标系转换为平面坐标系)
  • YOLOv10训练自己的数据集(图像目标检测)
  • 解决不能拉取 docker 镜像
  • 44、基于深度学习的癌症检测(matlab)
  • Vue3 【仿 react 的 hook】封装 useTitle
  • CSS 计数器
  • 磁力搜索器,解读新一代的搜索引擎方式,磁力王、磁力猫等引擎的异同及原理
  • Apache Doris 全新分区策略 Auto Partition 应用场景与功能详解 | Deep Dive系列
  • 【Linux】关于在华为云中开放了端口后仍然无法访问的问题
  • Linux系统ubuntu20.04 无人机PX4 开发环境搭建(失败率很低)
  • 中间件(express)
  • 【代码随想录算法训练Day44】LeetCode 322.零钱兑换、LeetCode 279.完全平方数、LeetCode139.单词拆分
  • ChatGLM2-6B 部署
  • 武汉工程大学24计算机考研数据,有学硕招收调剂,而专硕不招收调剂!
  • python爬虫之selenium自动化操作
  • 【漏洞复现】红帆iOffice.net wssRtSyn接口处存在SQL注入
  • 云计算【第一阶段(17)】账号和权限管理
  • 环境配置02:CUDA安装
  • Ranger配置图片及json文件预览
  • C语言 | Leetcode C语言题解之第169题多数元素
  • 常说的云VR是什么意思?与传统vr的区别
  • 华为云CodeArts API:API管理一体化平台 5月新特性上线啦!