Jmeter性能测试-4基础知识-正则表达式提取多个值和调用

2022-05-31 09:39:06 浏览数 (1)

补充说明

查看结果树与取样器的顺序问题

查看结果树中的显示顺序是:根据收到响应的先后顺序显示

取样器的执行顺序:在没有逻辑控制器控制时,顺序是从上到下,不管多少人并发,每个线程用户都是从上往下执行。

因此,会出现取样器的执行顺序与查看结果树中显示的顺序不一致的情况。例如你写用例的顺序是注册->登录,但是执行以后在查看结果树中显示的顺序是登录->注册。这不是问题,只能说明登录接口返回的速度先于注册接口。

正则提取器

取值

上面信息是注册接口的返回信息,现在我们用正则表达式提取器提取出id和token的值

  • 正则表达式:"id":(.*?),(.*?)"token":"(.*?)"
  • 模板:13

解释

  • 正则表达式:前后两个(.*?)不需要多解释,因为要匹配对应的值,中间用(.*?)是因为这个表达式整体是一个表达式,你要用一个表达式取出两个值,如果中间不用(.*?)表示那只能把这两个取值中间的内容全部写到这里,暂不考虑内容多少,因为json是无序的你不能保证每次返回都是固定值,所以我们用(.*?)做全匹配
  • 模板:1的意思是取上面表达式第一个括号,13的意思就是取第一个和第三个括号的值。

调用

可以看到上面变量名我只取了一个reg_var,通过Debug Sampler调试取样器可以看到返回值以及我们的正则提取器取到的值

其中reg_var_g1reg_var_g3就是我们调用的时候对应的变量值。我把Debug Sampler改成对应变量名,可以看到:

0 人点赞