[转帖]jmeter正则表达式应用-01篇

jmeter,正则表达式,应用 · 浏览次数 : 0

小编点评

**代码:** ```python import re # 创建请求 url = "your_api_url" # 创建正则表达式提取器 pattern = r"{'msg': '(.*)', 'code': (.*), 'token': '(.*)'}" # 执行正则表达式匹配 match = re.search(pattern, url) # 检查匹配结果 if match: login_success, code, token = match.groups() # 打印匹配结果 print("登录成功!") print("登录号:", login_success) print("登录代码:", code) print("登录 token:", token) else: print("正则表达式匹配失败!") ``` **解释:** 1. **创建请求**:使用 `requests` 模块创建请求对象。 2. **创建正则表达式提取器**:使用 `re.compile()` 函数创建正则表达式提取器。 3. **执行正则表达式匹配**:使用 `re.search()` 函数匹配正则表达式到字符串中。 4. **检查匹配结果**:如果匹配成功,使用 `match.groups()` 方法将匹配结果分组。 5. **打印匹配结果**:打印登录成功、代码和 token 的值。 6. **正则表达式匹配失败的处理**:如果匹配失败,打印错误信息。

正文

如图所示

1.先新建一个login的http请求,然后再login的请求下新增一个正则表达式提取器,增加一个查看结果树查看结果

假如后端接口返回的数据为"{'msg': 'login success', 'code': 1001, 'token': '48b2837a33461f58988ae72b8c21ad47'}",我们就提取这个返回值里的login success、1001和48b2837a33461f58988ae72b8c21ad47这三个数据

首先我们结果查看切换为RegExp Tester,默认的时text,然后在正则表达式输入框输入正则表达式"{'msg': '(.*)', 'code': (.*), 'token': '(.*)'}",我们只需要把需要提取的数据用(.*)替换就行,括号表示一组数据,.*的用法已经在上一篇文章讲过,可以回看,然后点击旁边的测试按钮,就可以看到匹配结果了。

成功的匹配到了我们需要的值,说明正则表达式正确

 

再回到正则表达式提取器页面

引用名称表示变量名mytoken,以后引用时需要用到;正则表达式就是我们刚才写的,填入即可;模板表示取哪个值,$1$表示取第一个圆括号的值,我们写的正则匹配到3个结果,所以要用3个值接受,写成$1$  $2$  $3$;匹配数字默认填0(0表示随机,但是我们只匹配到一个结果,所以随机也只能是那一个值)

可以通过调试取样器看到匹配结果

使用正则匹配结果,首先我们新建一个请求,分别用a、b、c接收正在匹配的结果,作为入参去请求,使用${mytoken_g1}就可以引用第一个匹配结果login success,其他的同理

然后请求一下我们刚才新建的http请求,可以看到引用参数成功的使用的正则匹配结果

</article>

与[转帖]jmeter正则表达式应用-01篇相似的内容:

[转帖]jmeter正则表达式应用-01篇

如图所示 1.先新建一个login的http请求,然后再login的请求下新增一个正则表达式提取器,增加一个查看结果树查看结果 假如后端接口返回的数据为"{'msg': 'login success', 'code': 1001, 'token': '48b2837a33461f58988ae72b

[转帖]Jmeter学习笔记(十九)——后置处理器之正则表达式的使用

https://www.cnblogs.com/pachongshangdexuebi/p/11733005.html 一、正则表达式提取器的作用 允许用户从服务器的响应中通过使用perl的正则表达式提取值。作为一个后置处理器,该元素会作用在指定范围的取样器,应用正则表达式,提取所需要的值,生成模板

[转帖]正则表达式及在Jmeter中的应用

目录 1.正则表达式 1.1 什么是正则表达式 1.2 为什么使用正则表达式 2.语法 2.1 普通字符 2.2 限定符 2.3 非打印字符 2.4 特殊字符 2.5 定位符 2.6 修饰符(标记) 2.7 选择 2.8 运算符优先级 3.常用正则表达式及在线工具 4.Jmeter之正则表达式提取器

[转帖]jmeter正则表达式提取器获取数组数据-02篇

接上篇,当我们正则表达式匹配到多个值以后,入下图所示,匹配到21个结果,如果我们想一次拿到这一组数据怎么办呢 打开正则表达式提取器页面,匹配数字填入-1即可 通过调试取样器就可以看到匹配到已经匹配到多个结果了

[转帖]jmeter必备正则表达式

元字符 . 注意是一个点号,表示匹配任意单个字符 \d 表示匹配任意单个数字 [0-9] 等价于0-9 [a-zA-Z] 等价于所有的大小写字母 限定符 + 加号,表示匹配至少大于1次(1次或多次) ?问号,便是匹配0次或1次 * 星号,匹配0次或多次,贪婪匹配 {n,} {n,m} {m} 匹配限

[转帖]jmeter之foreach循环控制器-03篇

上篇我们通过正则表达式获取到了一组数据,那么怎么来用呢?下面就用foreach控制器来使用结果,如下图所示 然后再foreach控制器里添加要循环的请求,我们模拟百度搜索,value填入${id} 然后运行测试,会发现请求循环执行了10次,每次的值都不一样

[转帖]Jmeter跨线程组传参

https://www.cnblogs.com/a00ium/p/10462576.html 我们知道,同一线程组中可以通过“正则表达式提取器”获取其中一个取样器的响应结果中的参数,直接传给线程组中的其他取样器。但其他线程组中的取样器也想使用同样的参数时,无法直接获取。举个例子: 提取“登录”取样器

[转帖]jmeter及serveragent的安装、常见报错及解决方法

一.说明: 1.jmeter必须在java环境下运行 2.jmeter抓包可以用自带服务器录制抓取,也可以手动网页抓取(含fiddler),也可以用badboy(更推荐手动抓取和badboy) 3.后面单独开一篇来说明各个功能的用处。 二.安装: 1.jmeter.properties配置:在jme

[转帖]JMETER性能监控之serverAgent

对linux服务器的服务进行压测时,服务器的运行情况可以通过添加插件serverAgent来观察,可以实时监控性能指标。 1 (一)环境准备 1、下载zip包ServerAgent-2.2.3.zip 2、在服务器中,创建一个文件夹serveragent,名字随便起 mkdir serveragen

[转帖]jmeter分布式执行原理

jmeter分布式执行原理https://www.jianshu.com/p/bcfc48054b1e Jmeter分布式执行原理: 1、Jmeter分布式测试时,选择其中一台作为控制机(Controller),其它机器做为代理机(Agent)。 2、执行时,Controller会把脚本发送到每台A