Jmeter后置处理器实现过程及方法应用

作者:多测师_郑sir 时间:2023-08-26 17:22:41 

1.JSON Extractor

Json extractor 后置处理器用在返回格式为 Json 的 HTTP 请求中,用来获取返回的 Json 中的某个值。并保存成变量供后面的请求进行调用或断言等。

Jmeter后置处理器实现过程及方法应用

Jmeter后置处理器实现过程及方法应用

  • Variable names:保存的变量名,后面使用 ${Variable names} 引用

  • JSON Path expressions:上一步中调试通过的 json path 表达式

  • Match Numbers:匹配数字(0代表随机,1代表第一个,-1代表所有)

  • Default Values:找不到时默认值,一般设置为 NOT FOUND

  • Compute concatenation var(suffix_ALL):是否统计所有,即将匹配到的所有值保存,名为“变量名_ALL”,使用场景需要获取的值有多个,后面需要对这一组数据进行操作

Jmeter后置处理器实现过程及方法应用

Json Path expression 的使用

JsonPath

描述

$

根节点

@

当前节点

.or[]

子节点

..

选择所有符合条件的节点

*

所有节点

[]

迭代器标示,如数组下标

[,]

支持迭代器中做多选

[start:end:step]

数组切片运算符

?()

支持过滤操作

()

支持表达式计算

示例如下:

Jmeter后置处理器实现过程及方法应用

2.正则表达式

  • 引用名称:自己定义的变量名称,后续请求将要引用到的变量名,如填写的是:JWT,后面的引用方式是 ${JWT}

  • 正则表达式:提取内容的正则表达式,相当于 loadrunner 中的关联函数

  • "()" 括起来的部分就是需要提取的,对于你要提的内容需要用小括号括起来

  • "." 匹配除了换行符以外的任何字符

  • "*" (贪婪) 重复零次或更多

    • 例如 "aaaaaaaa" 匹配字符串中所有的a 正则: "a*" 会出到所有的字符 "a"

  • "+" (懒惰) 重复一次或更多次

    • 例如 "aaaaaaaa" 匹配字符串中所有的a 正则: "a+" 会取到字符中所有的 a 字符, "a+" 与 "a*" 不同在于 "+" 至少是一次而 "*" 可以是0次

  • "?" (占有) 重复零次或一次

    • 例如 "aaaaaaaa" 匹配字符串中的a 正则 : "a?" 只会匹配一次,也就是结果只是单个字符 a

  • "*?" 重复任意次,但尽可能少重复

    • 例如 "acbacb" 正则 "a.*?b" 只会取到第一个 "acb" 原本可以全部取到但加了限定符后,只会匹配尽可能少的字符 ,而 "acbacb" 最少字符的结果就是 "acb"

  • "+?" 重复1次或更多次,但尽可能少重复,与 "*?" 一样,只是至少要重复1次

  • 还有分组的情况,常用的就这两种,其它的可以再自行百度

    • "(?=exp)" 匹配exp前面的位置

    • "(?<=exp)" 匹配exp后面的位置

模板:用 $$ 引用起来,如果在正则表达式中有多个正则表达式(多个括号括起来的),则可以是 $1$,$2$,$3$ 等等,表示解析到的第几个值给 var。例如:$1$ 表示匹配到的第一个值

Jmeter后置处理器实现过程及方法应用

Jmeter后置处理器实现过程及方法应用

匹配数字:0 代表随机取值,此时提取结果是一个数组,1 表示取出匹配到的第一个值,负数表示提取所有符合条件的值。

Jmeter后置处理器实现过程及方法应用

Jmeter后置处理器实现过程及方法应用

  • 缺省值:正则匹配失败时,取的值

  • 想要知道正则表达式是否正确,可以在请求后加入调试取样器(右键-添加-取样器-调试取样器 debug sampler)

  • 没有特殊的情况用(.*?)就可以解决所有问题

Jmeter后置处理器实现过程及方法应用

Jmeter后置处理器实现过程及方法应用

Jmeter后置处理器实现过程及方法应用

来源:https://www.cnblogs.com/ZhengYing0813/p/11845188.html

标签:Jmeter,后置,处理器
0
投稿

猜你喜欢

  • Java如何将ResultSet结果集遍历到List中

    2022-07-01 06:30:46
  • Flutter 通过Clipper实现各种自定义形状的示例代码

    2023-06-19 14:25:11
  • Android自定义可标记日历效果

    2022-09-06 04:11:22
  • C#中使用ADOMD.NET查询多维数据集的实现方法

    2023-10-27 05:38:15
  • Android自定义view实现有header和footer作为layout使用的滚动控件

    2023-07-31 19:29:54
  • SpringBoot3.0整合chatGPT的完整步骤

    2023-01-29 01:34:36
  • C#执行外部命令的方法

    2022-12-21 18:03:32
  • 基于java文件上传-原始的Servlet方式

    2021-10-17 13:26:25
  • 在Spring Boot中加载初始化数据的实现

    2023-08-18 10:01:44
  • Spring+Vue整合UEditor富文本实现图片附件上传的方法

    2022-09-27 10:36:13
  • springboot整合JSR303校验功能实现代码

    2023-10-11 21:46:25
  • Android Retrofit文件下载进度显示问题的解决方法

    2021-09-23 20:24:10
  • C#机器入门学习之判断日报是否合格详解

    2023-03-24 01:55:08
  • Android StickListView实现悬停效果

    2022-06-06 15:54:35
  • Android Glide图片加载(加载监听、加载动画)

    2022-08-27 08:31:24
  • Java单元测试Powermockito和Mockito使用总结

    2021-11-12 14:59:07
  • Filter过滤器和Listener监听器详解

    2021-08-20 07:39:38
  • java操作mongodb示例分享

    2023-09-07 19:00:02
  • Java NIO Buffer实现原理详解

    2023-12-10 22:37:37
  • Android Handler 机制实现原理分析

    2022-01-14 23:46:49
  • asp之家 软件编程 m.aspxhome.com