JMeter(十)-正则表达式关联

jmeter中,接口自动化的关键在于参数关联。比如需要登录的接口,如何调用登录口令?一个增删改查的闭环,如何将接口参数上下传递?下面就以实际的例子来仔细说一说

1:登录接口

这里有一个实际的登录接口,在响应中返回了一串token,如下图

那么我们在接下来的接口-经验库列表中,就必须带入这一串token,否则响应报错,如下图所示   测试开发交流群 317765580

如何获取登录的口令呢?这里详细说明一下,如图所示   测试开发交流群 317765580

在接下来的接口中可以将获取的token作为变量调用,变量名为${center-token},如下图

观察请求头,发现传入了一串token,并且响应结果正确

 自此,一个完整的登录关联就结束了。后续接口直接调用该token就可以。我们接下来继续说其它的参数关联

比如一个增删改查流程,想要做自动化检验就必须形成一个闭环,那么删除-修改-查看就必须调用同一个必填参数,例如唯一性的id。下面还是实例演示   测试开发交流群 317765580

我先新增一个经验库,可以看到结果中返回了一个id,我在后续接口中都必须调用此唯一性的id

接下来写一个正则将其取出,注意与之前token正则的不同之处

后续接口可以调用此参数,并正确响应

好了,一个完整的登录-查看-删除的流程到这里就可以结束了~下面是结尾彩蛋

上述的正则都是获取单个的参数,那么如果要传入一组参数要怎么写呢?

修改正则表达式

结果中可以看到传入了一整个数组  

正则表达式简要说明:

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

.    点号表示匹配任何字符串

+   表示一次或多次匹配,*表示匹配所有

?   在找到第一个匹配项后停止,不加?表示找到最后一个匹配项停止

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

匹配数字:0代表随机取值,-1代表所有值,此时提取结果是一个数组,其余正整数代表第几个匹配的内容提取出来。如果匹配数字选择的是-1,还可以通过${XX_1}的方式来取第1个匹配的内容,${XX_2}来取第2个匹配的内容

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏安恒网络空间安全讲武堂

bugkuctf_web_writeup(部分)--下

bugkuctf平台10个较简单的web题目writeup,适合新手入门,可以找来试试http://ctf.bugku.com/bbs 。 本地包含 题目描述:...

49530
来自专栏全华班

java学习手册-java 新手入门必看的30个题

一、基础篇 1 什么是Java、Java2、JDK?JDK后面的1.3、1.4.2版本号又是怎么回事? 答:Java是一种通用的,并发的,强类型的,面向对象的...

44160
来自专栏IMWeb前端团队

node中常见的10个错误

非原创,格式不太整齐。 错误 #1:阻塞事件循环 JavaScript在 Node.js (就像在浏览器一样) 提供单线程执行环境。这意味着你的程序不能同时执行...

28560
来自专栏九彩拼盘的叨叨叨

JavaScript 严格模式介绍

如我们所知,JavaScript 是一门灵活的语言。其灵活性同样也带来了很多坑,当然也有一些是设计缺陷。比如

14520
来自专栏CVer

糟了!Python3.7.0 来了

美国时间6月27日晚8点,Python 3.7.0 经过多轮测试,终于发布了正式版,增强了多处特性功能,同时 3.6 也更新到 3.6.6 稳定版本。

20340
来自专栏JackieZheng

并发和多线程-说说面试长提平时少用的volatile

最近的面试,我也经常会问到volatile相关的问题,比如volatile和sychronized的区别;volatile的使用场景;volatile的实现原理...

5820
来自专栏微信公众号:Java团长

Java 类加载机制详解

Java 虚拟机一般使用 Java 类的流程为:首先将开发者编写的 Java 源代码(.java文件)编译成 Java 字节码(.class文件),然后类加载器...

12340
来自专栏desperate633

深入理解Java多线程(multiThread)多线程的基本概念线程同步wait,notify,notifyAll线程的生命周期

一个java程序启动后,默认只有一个主线程(Main Thread)。如果我们要使用主线程同时执行某一件事,那么该怎么操作呢? 例如,在一个窗口中,同时画两排...

14420
来自专栏对角另一面

lodash源码分析之List缓存

本文为读 lodash 源码的第七篇,后续文章会更新到这个仓库中,欢迎 star:pocket-lodash

20580
来自专栏对角另一面

lodash源码分析之List缓存

昨日我沿着河岸/漫步到/芦苇弯腰喝水的地方 顺便请烟囱/在天空为我写一封长长的信 潦是潦草了些/而我的心意/则明亮亦如你窗前的烛光/稍有暧昧之处/势所难免...

28060

扫码关注云+社区

领取腾讯云代金券