1、如何将测试计划中的线程组按顺序进行,一个线程组压完后再进行下一个?
线程组按顺序进行2、变量传递1:线程组内部请求之间的传递,如上一个请求的response的部分字段需要作为下一个请求的header?
场景:同一线程组内:请求A发送验证码sendSmsCode -> 请求B获取验证码getSmsCode -> 请求C使用验证码登录login
解决方案:
正则提取器:后置处理器 -> 正则表达式提取器(Regular Expression Extractor)
- 请求B添加正则表达式提取器,将请求B的response中的验证码提取出来付给变量smsCode,线程组内其他请求引用它的方式${smsCode}:
正则提取器提取验证码
下面是正则提取器各参数的意义:
正则提取器各参数意义 -
请求C需要引用请求B的response中提取出来的smsCode,作为请求参数:
请求C引用smsCode
3、变量传递2:如何在线程组之间进行变量传递?
场景:线程组login请求C得到token -> 线程组login请求B得到userId -> 线程组addVehicle使用token作为请求header -> 线程组createSession使用userId作为请求参数
解决方案:
Beanshell PostProcessor: 后置处理器 -> Beanshell PostProcessor
-
请求C的response得到token,使用正则提取器提取出来赋给变量userToken,线程组内可使用${userToken}进行引用;
正则提取器提取token -
请求B的response得到userId,同上面的方法使用正则提取器提取出来赋给变量userId;
-
创建BeanShell Processor,因为我们从login线程组的两个请求中分别提取了变量,故BeanShell Processor应该创建在login线程组下:
BeanShell Processor创建路径 -
BeanShell Processor使用:
全局变量赋值方式及引用方式 -
线程组addVehicle使用token作为请求header:
引用全局变量token -
线程组createSession使用userId作为请求参数:
requestbody中引用全局变量requestUserId
网友评论