补充说明
查看结果树与取样器的顺序问题
查看结果树
中的显示顺序是:根据收到响应的先后顺序显示
取样器
的执行顺序:在没有逻辑控制器控制时,顺序是从上到下,不管多少人并发,每个线程用户都是从上往下执行。
因此,会出现取样器的执行顺序与查看结果树中显示的顺序不一致的情况。例如你写用例的顺序是注册->登录,但是执行以后在查看结果树中显示的顺序是登录->注册。这不是问题,只能说明登录接口返回的速度先于注册接口。
正则提取器
取值
上面信息是注册接口的返回信息,现在我们用正则表达式提取器提取出id和token的值
- 正则表达式:
"id":(.*?),(.*?)"token":"(.*?)"
- 模板:13
解释
- 正则表达式:前后两个
(.*?)
不需要多解释,因为要匹配对应的值,中间用(.*?)
是因为这个表达式整体是一个表达式,你要用一个表达式取出两个值,如果中间不用(.*?)
表示那只能把这两个取值中间的内容全部写到这里,暂不考虑内容多少,因为json是无序的
你不能保证每次返回都是固定值,所以我们用(.*?)
做全匹配 - 模板:1的意思是取上面表达式第一个括号,13的意思就是取第一个和第三个括号的值。
调用
可以看到上面变量名我只取了一个reg_var
,通过Debug Sampler调试取样器可以看到返回值以及我们的正则提取器取到的值
其中reg_var_g1
和reg_var_g3
就是我们调用的时候对应的变量值。我把Debug Sampler改成对应变量名,可以看到: