jmeter正则表达式的使用
作者:汪汪888888 发布时间:2022-08-10 01:10:42
运用Jmeter正则提取器,可以从请求的响应结果中取到需要的内容,从而实现关联。
关联是请求与请求之间存在数据依赖关系,需要从上一个请求获取下一个请求需要回传回去的数据
在查看结果树中找到相应数据,我们需要取得actionId,buttonName
需要选中请求右键,添加-后置处理器-正则表达式提取器(需要在哪个请求的响应数据中拿到,就在哪个请求上添加。后置处理器的意思是请求会先执行,再从响应数据中取值)
如上图,正则表达式的属性就是这样,先简单介绍下字段什么意思,再举例说明
名称: 自己写一个就好
Apple to:和要检查的相应字段,一般都默认,主要是针对响应数据中的值去处理,如有其它需要,可以参考jmeter说明
引用名称:自己定义的变量名称,后续请求将要引用到的变量名,如填写的是:actionId,后面的引用方式是${actionId}
正则表达式:提取内容的正则表达式,相当于lr中的关联函数
【"()" 括起来的部分就是需要提取的,对于你要提的内容需要用小括号括起来】
【".":匹配除了换行符以外的任何字符】
【"*"(贪婪) 重复零次或更多 例如"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后面的位置】
模板:用$$引用起来,如果在正则表达式中有多个正则表达式(多个括号括起来的),则可以是$2$,$3$等等,表示解析到的第几个值给actionId。例如:$1$表示匹配到的第一个值
匹配数字:0代表随机取值,-1代表所有值,此时提取结果是一个数组,其余正整数代表第几个匹配的内容提取出来。如果匹配数字选择的是-1,还可以通过${actionId}的方式来取第1个匹配的内容,${actionId}来取第2个匹配的内容。
缺省值:正则匹配失败时,取的值
想要知道正则表达式是否正确,可以在请求后加入调试取样器
右键-添加-取样器-调试取样器
响应数据:[{"actionId":"save_G_1_zdhflow.1","buttonName":"保存"},{"actionId":"G_1_zdhflow.1","buttonName":"商务技术审核"}]
没有特殊的情况用(.*?)就可以解决所有问题,给大家举例
我们要取得actionId的值
1、正则表达式中复制,"actionId":"save_G_1_zdhflow.1","buttonName"
2、把save_G_1_zdhflow.1替换成(.*?)就可以了
匹配数字写成1,就是第一次匹配,因此得到的值 save_G_1_zdhflow.1
如果有修改匹配数字为2 ,就是G_1_zdhflow.1
我要匹配actionId,还要匹配buttonName怎么办?
1、正则表达式复制 "actionId":"save_G_1_zdhflow.1","buttonName":"保存"}
2、save_G_1_zdhflow.1和保存替换成(.*?)
3、模板要改成$1$$2$,因为有两个(.*?)而且这两个值都要拿到
就可以将actionId_g1和actionId_g2将变量传递下去
注意喽,如果我要把两个都取出来怎么办嘞,把匹配数字写成-1 即可
结果如下图
特例:
如果有响应数据只有数字,譬如返回的是个100, 就不能用.*?,因为?会取最小值,所以去掉就好,改为 (.*)
来源:https://blog.csdn.net/doubledog1112/article/details/93480458


猜你喜欢
- Python Dash开发Web应用的控件基础本文主要是通过Dash的Checklist组件,简单介绍使用Dash开发的Web应用展示效果如
- 任何熟悉SQL和关系数据库的人都遇见过大量的连接类型。最简单的说,连接(join)会把两个表的内容组合到一个虚拟表或者recordset内。
- 概述laravel服务容器就像一个高度自动化的工厂,你需要的东西,定制好模型,使用特定接口来制造。因为使用了服务容器,laravel中大部分
- //--------------------弹出层------------------- //popDivId:弹出层div的ID //dr
- 矩阵相乘需要前面矩阵的行数与后面矩阵的列数相同方可相乘。第一步,先将前面矩阵的每一行分别与后面矩阵的列相乘,作为结果矩阵的行列;第二步算出结
- 1. 读取数据用pandas中的read_csv()函数读取出csv文件中的数据:import pandas as pddf = pd.re
- 前言虽然本文讲的是Python,但其实它也适用于所有的编程语言。因为这里面蕴含着编程之魂。所以本文标题没有显著的使用Python关键词。当然
- 1、拆箱>>> a, b, c = 1, 2, 3>>> a, b, c(1, 2, 3)>>
- 如果你退出 Python 解释器并重新进入,你做的任何定义(变量和方法)都会丢失。因此,如果你想要编写一些更大的程序,为准备解释器输入使用一
- vue单页开发时经常需要父子组件之间传值,自己用过但是不是很熟练,这里我抽空整理了一下思路,写写自己的总结。GitHub地址:https:/
- 开始使用MySQL 为关系型数据库(Relational Database Management System),一个关系型数据库由一个或数
- 动态语言与静态语言有很多不同,最大的特性之一就是可以实现动态的对类和实例进行修改,在Python中,我们创建了一个类后可以对实例和类绑定心的
- 本文介绍 SQL Server 2000 企业版的新功能 - 索引视图。讲解索引视图并讨论一些提高性能的具体方案。什么是索引视图?许多年来,
- 如IE6,在他上面还不那么富饶,给程序调试带来的很大的痛苦啊,所以日志即时输出是一个不错的选择,可以知道程序覆盖到了哪里。即是在先进的浏览器
- 一.摘要做接口自动化测试时,常常需要使用python发送一些json内容的接口报文,如果使用urlencode对内容进行编码解析并发送请求,
- 这篇文章主要讲TensorFlow中的Session的用法以及Variable。Session会话控制Session是TensorFlow为
- Postman是一款免费的http模拟请求工具,常用来测试开发接口。实际场景中,很多接口是需要授权才能使用。这就需要Postman获取授权,
- 前言嘿!一直在学习从没停下,最近的话一直没咋更新,因为小编也在忙着学编程~哈哈哈,今天刚好有时间嘛 那就给学习爬虫的小伙伴儿更新一期简单的爬
- 高层的期望“3个月内,我希望网站能增加X注册用户,每日的独立IP到Y,网站盈利达到Z……”作为一个团队的领袖或者产品负责人,这样的期望是根据
- Pytorch提取模型特征向量# -*- coding: utf-8 -*-"""dj""