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

话不多说 直接开撸
.01png.png

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


单个线程组内变量的调用

右键点击"user_login"  →  add  →  Post Processors(后置处理器)  →  Regular Expression Extractior(正则表达式提取器)
02.jpg
  • Name of created variable: 用户引用变量名
  • Regular Expression:正则表达式
  • Temolate:模板 $1$ 表示取n次
  • Match No(0 for Random) 0表示随机,1表示取第一个值
  • Default Value:缺省值,没有时用此值

以取值token为例

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

跨线程组调用变量

下图可以看出,咱们又增加了一个activity_share的接口,但是因为我们没有携带token的原因,又登录超时了,而此时我们就不能使用 Regular Expression 的方法来解决此问题了,此时我们又需要两个新的组件;
05.png
  • 右键点击"user_login"  →  add  →  Post Processors  →  BeanShell PostProcessor;
  • 右键点击"activity_share"  →  add  →  Pre Processors(前置处理器)  →  BeanShell PreProcessor; 如下图
    06.jpg

    然后咱们在 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,)}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,157评论 1 32
  • 一:LoadRunner常见问题整理1.LR 脚本为空的解决方法:1.去掉ie设置中的第三方支持取消掉2.在系统属...
    0100阅读 4,326评论 0 11
  • Getting Started Burp Suite 是用于攻击web 应用程序的集成平台。它包含了许多工具,并为...
    Eva_chenx阅读 28,887评论 0 14
  • AFHTTPRequestOperationManager 网络传输协议UDP、TCP、Http、Socket、X...
    Carden阅读 4,598评论 0 12
  • 3月27日,星期三 今天是我扫地,下午的时候,我做了一个包包,但不过,我只做了一半,剩下的回家做她很漂亮,我还自己...
    漳州炳琳妈M8G9阅读 192评论 0 0