02 - Jmeter4.x正则表达式以及跨线程使用变量

话不多说 直接开撸

上图可以看出,有两个请求,其中第二个请求返回了登录超时,结合第一个登录接口来看,这个是需要header请求内容的也就是 token;当然设置一个token又怎么可能难得倒我们,无非就是在HTTP Header Manager中添加一个键值对而已;但是同学们,有没有想过如果项目中所有的接口都需要,你就粘贴复制一百次吗?如果另一个线程组需要,你就重新配置一次登录接口吗?当然我们肯定不会这么做,那么下面咱们就根据这两个问号来解答这个问题!!!


单个线程组内变量的调用

右键点击"user_login"  →  add  →  Post Processors(后置处理器)  →  Regular Expression Extractior(正则表达式提取器)

  • Name of created variable: 用户引用变量名
  • Regular Expression:正则表达式
  • Temolate:模板 $1$ 表示取n次
  • Match No(0 for Random) 0表示随机,1表示取第一个值
  • Default Value:缺省值,没有时用此值

以取值token为例

然后我们在下一个请求中的HTTP Header Manager 中添加一个键值对,引用时格式为${token},此时我们再看就可以了;

跨线程组调用变量

下图可以看出,咱们又增加了一个activity_share的接口,但是因为我们没有携带token的原因,又登录超时了,而此时我们就不能使用 Regular Expression 的方法来解决此问题了,此时我们又需要两个新的组件;

  • 右键点击"user_login"  →  add  →  Post Processors  →  BeanShell PostProcessor;
  • 右键点击"activity_share"  →  add  →  Pre Processors(前置处理器)  →  BeanShell PreProcessor; 如下图


然后咱们在 Post Processors 的script处输入

// 获取token值
String token =  vars.get("token");
// 把token值上传
props.put("token", token);

既然有了上传肯定有人接收,最后在 Pre Processors 的 script 处输入

// 接收 token
String token = props.get("token");

一定注意引用格式**${__P(token,)}**

猜你喜欢

转载自www.cnblogs.com/article-record/p/11457053.html
今日推荐