jmeter正则提取器提取指定位置的字符串

1、需求:提取登录后的凭证ticket供系统其他接口调用

2、登录接口返回的格式如下:

{
    "ret_code":0,
    "ret_msg":"login success",
    "data":"http://IP:port/authredirect?ticket=eyJhbGciOiJIUzUxMiJ9.eyJzY29wZXMiOjIxNzksImlzcyI6ImZ1cWluZ0B0cmF3ZS5jbiIsImlhdCI6MTU2NTU5OTU0OH0.RT6Ms3aTU8fcqKKAwZeaOXc&&appId=1"
}

3、添加正则表达式提取器:

参数说明如下:

参数

解释

引用名称

匹配出来的信息通过此名称进行引用,引用格式: ${引用名称},如${u_name}

正则表达式

使用此串进行信息匹配

模板

指定运用哪个模板,模板自动编号,$1$指第一个模板,$2$指第二个模板,依次类推,$0$指全文匹配

匹配数字(0代表随机)

0代表随机,负数取所有值,不同模板可能会匹配一组值,那么可以用匹配数字来确定这一组值中的哪一个

缺省值

如果没有匹配到可以指定一个默认值

 

正则表达式语法: 

符号

解释

()

括起来的部分就是要提取的

.

匹配任何字符串

*

表示任意个字符

+

一次或多次

?

不要太贪婪,在找到第一个匹配项后停止

4、 线程组内其他接口调用ticket,直接用 ${ticket} 即可

5、扩展下,还是登录接口返回的数据,我们提取data,并且截取ticket以及appid的内容

线程组内其他接口调用ticket的方法:${data_g2},调用appId的方法:${data_g3}

我们看下脚本运行后是正常调用后的

 

posted @ 2019-08-13 16:49  simplesally  阅读(2563)  评论(0编辑  收藏  举报