接口测试 jmeter 接口自动化连载 (7)- 正则表达式关联

小七的自动化课堂 · 2020年04月17日 · 最后由 迷龙 回复于 2020年07月21日 · 3544 次阅读

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

1、登录接口

Jmeter 接口自动化交流扣扣群:704807680
这里有一个实际的登录接口,在响应中返回了一串 token,如下图

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



如何获取登录的口令呢?这里详细说明一下,如图所示

Jmeter 接口自动化交流扣扣群:704807680


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

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

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

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

Jmeter 接口自动化交流扣扣群:704807680

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

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

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


好了,一个完整的登录 - 查看 - 删除的流程到这里就可以结束了

正则表达式提取器说明

Jmeter 接口自动化交流扣扣群:704807680

引用名称:定义一个变量,供后续请求引用

一般 (.+?) 和 (.*?) 能够满足我们 80% 的使用场景。所以,一般的正则表达式都可以写成下面这 2 种

左边界 (.+?) 右边界

左边界 (.*?) 右边界

left 对应匹配目标的起始字符

right 对应匹配目标的结束字符

正则表达式:利用正则将需要的数据提取出来

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

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

  • 一次或多次

? 在找到第一个匹配项后停止

模板:用 $$ 引用起来,如果在正则表达式中有多个正则表达式(多个括号括起来),则可以是 $N$ 等,表示提取第 N 个括号里面的值

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

匹配数字 1:表示取第一个返回值

匹配数字 0:表示随机取一个返回值

缺省值:正则匹配失败时取的值
Jmeter 接口自动化交流扣扣群:704807680
例 1:提取第一个 Name



例 2:提取全部 Name

Jmeter 接口自动化交流扣扣群:704807680

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 4 条回复 时间 点赞

实用技巧,学以致用

对于返回是 JSON 类型的接口,建议优先选用 JSON 提取器。

为什么博主总是把文章写的如此之好

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册