学习笔记-JMeter 关联

在进行接口测试过程中,会遇到某个接口中参数,会用到上一个接口中返回的值。为避免重复修改Jmeter脚本,则可在写脚本时把两个接口建立关联

以下以登陆接口(login)和金币充值接口(gold_add)为例,在这两个接口间建立关联,让金币充值接口(gold_add)可以实时取得登陆接口(login)的"sign" 值,不必再“HTTP Cookie 管理器”中手动输入最新的sign 值。

从“察看结果树”可以看出,登陆接口(login)的Response 结构为Json格式, sign 在 login_info 里面一层。

1 应用"jp@gc - JSON Path Extractor" 来实现

添加 "jp@gc - JSON Path Extractor" (右击  登陆 -  后置处理器 - jp@gc - JSON Path Extractor  )

通过“察看结果数”得到Response 的结果后, 将“JSONPath Expression” 输入"$.login_info.sign", 设置变量"sign"

然后 金币充值接口(gold_add)中的 HTTP Cookie 管理器 中将对应值输入为:${sign} 

2 应用 正则表达式 来实现

  添加 正则表达式提取器 (右击  登陆 -  后置处理器 - 正则表达式提取器 )

“引用名称”设为:sign2,由于登录接口返回结果 "sign": "cd2b43f1688e472e3a516b5a2c6831e8" ,可将正则表达式写为:"sign": "(.*)"

  •       引用名称:在HTTP等请求中,引用此数据,需要用到的名称
  •       正则表达式:用于将需要的数据提取出来
  •       模板:表示使用提取到的第几个值:

                    $-1$:表示取所有值
                    $0$:表示随机取值
                    $1$:表示取第1个
                    $2$:表示取第二个
                   以此类推:$n$:表示取第n个

  •       匹配数字(0代表随机):0 代表随机取值,1 代表全部取值
  •       缺省值:如果正则表达式没有搜找到值,则使用此缺省值

然后 金币充值接口(gold_add)中的 HTTP Cookie 管理器 中将对应值输入为:${sign2} 与正则表达式提取器中的引用名称一致

原文地址:https://www.cnblogs.com/fenggf/p/8623838.html