jmeter 关联

在我们进行接口测试的时候,经常会遇到这种情况:要先完成某个操作,从这个操作中获取所需的数据,才能进行下一步的操作,这用到了关联的概念。

简单来说就是:把上一个请求返回的数据,拿到下一个请求中使用。

jmeter的关联有两种方法:

  • json path 插件
  • 正则表达式

本文以管理员为某客户充值的案例来演示这两种关联方法的操作,在为客户充值前必须获取到管理员登录的token,才能充值成功。

json path 插件

首先看下你的 jmeter 是否安装了 json path extractor 这个插件(如下图),如果没有安装,插件下载地址为:http://jmeter-plugins.org/wiki/JSONPathExtractor/

1. 添加管理员登录的 HTTP 请求

右击“线程组”,添加 → sampler → HTTP 请求

 填入服务器名称或IP、路径、方法、post请求的参数

 2. 设置好登录请求,我们先来看一些运行结果,右击“线程组”,添加 → 监听器 → 查看结果树,运行结果如下图所示,从开发定义的接口文档中,接下来为客户充值要先获取的到的token,就是运行结果中的 sign 的值。

3. 添加金币充值的 HTTP 请求

4. 为金币充值这个 HTTP 请求,添加 cookie 管理器,就是设置获取 登录的token。

1)右击“金币充值”,添加 → 配置文件 → HTTP Cookie 管理器

2)添加 cookie 的名称(用户名)、值(token)、域(服务器名称 / IP)。

 5. 在登录请求添加 json path

右击“post请求--登录”,添加 → 后置处理器 → jp@gc-json path extractor

设置如下图所示:注意变量名一定要跟第 4 步中 cookie 的 $(sign) 一致。

 

 6. 运行结果如下。

正则表达式

如果用正则表达式如何做?前面4步是一样的,把第5步的“在登录请求添加 json path”,改为:添加正则表达式提取器。

右击“post请求--登录”,添加 → 后置处理器 → 正则表达式提取器,如下图所示:

1)引用名称,填sign,一定要跟第 4 步中 cookie 的 $(sign) 一致。

2)从登录结果知道 sign 的格式是这样的:"sign": "d3b03f3916212c7084d1d038c126e1d4",把它变成正则表达式就是:"sign": "(.*)"

  正则表达式的使用方法参考:http://www.jb51.net/tools/zhengze.html

3)模板:用$$引用起来,如果在正则表达式中有多个正则表达式,则可以是$2$$3$等等,表示解析到的第几个值给title。如:$1$表示解析到的第1个值

4)匹配数字:0代表随机取值,1代表全部取值,通常情况下填0

5)缺省值:如果参数没有取得到值,那默认给一个值让它取,我填的Error。

设置完成即可运行查看结果

原文地址:https://www.cnblogs.com/pengzhuopeng/p/8541171.html