jmeter组件---后置处理器

一,组件简介

1、正则表达式提取器


界面介绍

官方介绍:
允许用户使用Perl类型的正则表达式从服务器响应中提取值。作为后处理器,此元素将在其范围内的每个Sample请求之后执行,应用正则表达式,提取请求的值,生成模板字符串,并将结果存储到给定的变量名称中。

鸭的,就是把上面一个请求的值抓取出来,给下面的请求用,也就是关联。

在这里插入图片描述
Apply to:

  • Main sample and sub-samples:主样本和子样本都适用
  • Main sample only:仅适用于主样本(默认)
  • Sub-samples only:仅适用于子样本
  • JMeter Variable:提取将应用于命名变量的内容

要检查的响应字段:

  • 主体:即headr+body。(默认)
  • Body(unescaped):响应的正文
  • Body as a Document:主体为文档
  • 信息头:对于非HTTP示例可能不存在
  • Request Headers:对于非HTTP样本可能不存在
  • URL:网址
  • 响应代码:200,400等
  • 响应信息:确定,失败等

重点参数:

参数含义
引用名称 变量名,将提取的值存储到这个变量中方便后面使用
正则表达式 1)一般 `(.+?)`和`(.*?)`能够满足80%的使用场景,所以一般正则表达式都可以写成:
左边界(.+?)右边界,可以取空值
左边界(.*?)右边界,不可以取空值
2)返回数据:name="xiaoming",提取正则:name="(.*?)"
3)返回数据:{"name":"xiaoming"},提取正则:"name":"(.*?)"
4)返回数据:"data":{"list":[{"name":"xiaoming","age":"20"}]},提取整个列表:"list":(.+)
5)获取多个值,编写多个正则,比如:"name":"(.*?)","id":"(.*?)"
模板 $1$,表示第一个正则表达式;两个个表达式:$1$$2$
匹配数字 1)数字1,表示取第一个值,数字2,第二个值
2)数字0,表示随机
3)数字-1,表示全部(此时结果是一个数组,如果引用名称是user,也可以通过${user_1}的方式来取第1个匹配的内容)
4)匹配数字写-1(取全部的值),在后面组件调用中,即便只有一个值,也必须写作:变量名_1 来调用
缺省值 没有匹配到就使用缺省值,设置个error什么的,随便

正则基础:

1). 匹配除“\r\n”之外的任何单个字符。要匹配包括“\r\n”在内的任何字符,请使用像“[\s\S]”的模式。
2)* 匹配前面的子表达式(也可以是一个字符)任意词。例如,zo*能匹配“z”,也能匹配“zo”以及“zoo”。*等价于o{0,}
3)+ 匹配前面的子表达式一次或多次(大于等于1次)。例如,“zo+”能匹配“zo”以及“zoo”,但不能匹配“z”。+等价于{1,}。
4)? 匹配前面的子表达式零次或一次。例如,“do(es)?”可以匹配“do”或“does”中的“do”。?等价于{0,1}。

组合:
1).*具有贪婪的性质,匹配到不能匹配为止,最大匹配原则。

2)+或*后跟?表示非贪婪匹配,即尽可能少的匹配,最小匹配原则。

3).*? 表示在能匹配成功的前提下尽可能少的匹配,最小匹配原则。

举个栗子

1.1)最简单的取单个值

新建一个脚本:
在这里插入图片描述
jp@gc - Dummy Sampler模拟服务器数据返回:
在这里插入图片描述
正则表达式提取名字:
在这里插入图片描述
Debug PostProcessor用来调试,查看提取结果集
第二个请求调用,提取出来的name。运行:
在这里插入图片描述

1.2)拆分单个数值

拆分身份证号码,提取生日:
在这里插入图片描述
在这里插入图片描述
18位身份证,前1–6位是地区,7–14位是生日,15–17位是顺序吗,最后一位是校验码。正则:

(.{6})(.{8})(.{3})(.)

其实就是把这个号码切割成了4部分:
(.{6}):任意字符匹配6次,依次类推
选中第二个模板提取值
在这里插入图片描述
在这里插入图片描述

2、XPath Extractor

界面介绍

该测试元素允许用户使用XPath查询语言从结构化响应-XML或(X)HTML中提取值。
在这里插入图片描述
Apply to:

  • Main sample and sub-samples:主样本和子样本都适用
  • Main sample only:仅适用于主样本(默认)
  • Sub-samples only:仅适用于子样本
  • JMeter Variable:提取将应用于命名变量的内容

XML Parsing Options:

  • Use Tidy:当需要处理的页面是HTML格式时,必须选中该选项;如果是XML或XHTML格式(例如RSS返回),则取消选中;
  • Quiet:只显示需要的HTML页面
  • Report errors:表示显示响应报错
  • Show warnings:表示显示警告
  • Use Namespaces:如果启用该选项,后续的XML解析器将使用命名空间来分辨
  • Validate XML:根据页面元素模式进行检查解析
  • Ignore Whitespace:忽略空白内容
  • Fetch external DTDs:如果选中该项,外部将使用DTD规则来获取页面内容
  • Return entire XPath fragment of text content:返回文本内容的整个XPath片段

Reference Name:存放提取出的值的参数。

XPath Query:用于提取值的XPath表达式。

Default Value:参数的默认值。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3、JSON Extractor

界面介绍

可以使用JSON-PATH语法从JSON响应中提取数据。该后处理器与正则表达式提取器非常相似。必须将其放置为HTTP Sampler或具有响应的任何其他Sampler的子级。
在这里插入图片描述
Apply to:

  • Main sample and sub-samples:主样本和子样本都适用
  • Main sample only:仅适用于主样本(默认)
  • Sub-samples only:仅适用于子样本
  • JMeter Variable:提取将应用于命名变量的内容

参数:

  • Variable names:填写变量名,后面调用格式:${变量名}
  • JSON Path:通过这里的json path表达式提取
  • Match Numbers:匹配数字(-1表示所有,0表示随机,1表示第一个)
  • Default Values:找不到时默认值,随便什么null
  • Compute…:是否统计所有,勾选了之后,会有一个总值,变量名_ALL=…的

注:当json提取器要提取两个或以上数量值的时候,一定要填写默认值,不然会报错:“Mismatch between number of variables ,json expressions and default values”,反之:只提取两个值,默认值填了三个,也会报该错。

JsonPath:

  • $:根节点
  • @:当前节点
  • .or[]:子节点
  • ..:选择所有符合条件的节点
  • *:所有节点
  • []:迭代器标示,如数组下标
  • [,]:支持迭代器中做多选
  • [start:end:step]:数组切片运算符
  • ?():支持过滤操作
  • ():支持表达式计算

举个栗子

脚本设置:
在这里插入图片描述
设置的返回数据:
在这里插入图片描述

3.1)单值提取:

随便哪个写法都可以:
$.data[*].["name"]
$.data[*].name
$..name

在这里插入图片描述在这里插入图片描述

3.2)多值提取:

$.data[*].["name"];$.data[*].["age"]

所有多值写法中间都是用英文 ; 连接,缺省值个数也是一样

在这里插入图片描述
在这里插入图片描述

3.3)条件提取

顺序筛选:

$.data[*].name
这个表达式中,[*]里的*进行替换
  1. [1] 正序取值,正数第二条
  2. [:1] 正序取值,正数第一条
  3. [:-1] 倒序过滤,倒序第一条
  4. [1:] 正序过滤,正数第一条
  5. [-1:] 倒序取值,倒序第一条

将上述脚本进行修改:
返回值:
在这里插入图片描述
在这里插入图片描述
执行结果是:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4、JDBC PostProcessor

5、Debug PostProcessor

简介

JMeter中用于调试的Debug组件有两个:

  1. Debug Sampler(调试取样器)
  2. Debug PostProcessor(调试后置处理程序)

两者在官网均没找到使用说明,其实两个的作用是差不多的,就是用来调试查看后置处理器,提取数据的情况

Debug Sampler(调试取样器)
在这里插入图片描述

Debug PostProcessor(调试后置处理程序)
在这里插入图片描述

举个栗子

创建一个脚本:
在这里插入图片描述
模拟一下返回的数据:
在这里插入图片描述
正则提取一下:
在这里插入图片描述
直接执行可以查看我们正则是否正确提取了数据:
在这里插入图片描述
在这里插入图片描述

6、CSS/JQuery Extractor

https://jlhxxxx.github.io/jmeter-doc-cn-18.html#csscssjquery

7、Result Status Action Handler

8、BeanShell PostProcessor

9、JSR223 PostProcessor

10、jp@gc - Inter-Thread Communication PostProcessor

11、jp@gc - XML Format Post Processor

二,其他组件

全组件目录

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值