Jmeter之 参数提取

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Jmeter之 参数提取相关的知识,希望对你有一定的参考价值。

参考技术A

    "Content": [

      "name": "黑黑","age": 23,"gender": "男",

      "name": "白白","age": 12,"gender": "女",

      "name": "黄黄","age": 30,"gender": "女"

    ],

    "Result": 0,

    "ResultMessage": "响应成功"



1、正则表达式提取

参数说明:

模板:$1$,则对应正则表达式中的第一个(.+?)所匹配的内容,$1$$2$$3$表示三个内容拼接起来

匹配数字:1代表匹配第一个值,0代表随机,负数-1代表全匹配

取值说明:txt1_matchNr=3(总匹配数),txt1_1=黑黑23男,txt1_1_g=3(每组参数),txt1_1_g0=  "name": "黑黑","age": 23,"gender": "男",

txt1_1_g1=黑黑,txt1_1_g2=23

2、JSON Extractor提取(json格式提取)

参数说明:

JSON Path expressions:Content.[*].age,表示提取Content中所有数组的age值,若Content.[0].age,则表示提取第一个值“黑黑”

Match No.(0 for Random):-1表示全提取,0表示随机,1表示匹配第一个

取值说明:age_1=黑黑,age_2=白白,age_matchNr=3,表示值个数

JMeter之参数关联

关联是什么?

  通俗来讲,就是请求之间通过传递参数建立联系。一般,我们需要将一个请求的响应参数,作为另一个请求的入参。比如登录后的操作,第一步实现登录请求,然后将请求返回的token提取出来保存到一个变量中,后续请求作为入参使用

 

jmeter通过正则表达式提取器来实现这一场景

 

实现案例
  有如下两个接口,通过正则表达式提取器,将第一个接口的城市代码,保存到一个变量中,第二个请求获取变量值作参数传入。
  获取城市代码接口:http://toy1.weather.com.cn/search?cityname=nanjing
  根据城市代码获取天气接口:http://www.weather.com.cn/data/cityinfo/101190101.html
 
数据准备:
技术图片

 

 

操作步骤

  1、建立http请求,获取南京的城市代码,添加察看结果树。运行,获取城市编码
技术图片

 

   2、添加正则表达式提取器,填写提取器相关参数。(正则表达式: "ref":"(.*?)~     )

技术图片

  

  3、添加获取城市天气请求,添加察看结果树,使用${citycode}替换101190101。

  使用${xx}引用上述正则提取的参数。

技术图片

 

  4、响应结果如下

 技术图片

 

 

提取器参数解释
  引用名称:提取的参数名称,自定义,后续请求引用时使用。
  正则表达式:获取响应结果的正则公式,常用(.+?)和(.*?),两者结果一致。
  具体字符含义如下:
 
  技术图片

 

  

模板:-1全部,0 随机,对应上述正则表达式,若只有一个正则一般就填写$1$。
    匹配数字:匹配结果作为一个数组,匹配数字即可看做是数组的第几个元素。-1表示全部,0随机,其他整数表示对应第几个值。
    缺省值:匹配失败时取的默认值。
 
小技巧
  可以在线程组中添加调试取样器,通过取样器获取的请求返回值可以查看所有正则参数的取值。
 

 

以上是关于Jmeter之 参数提取的主要内容,如果未能解决你的问题,请参考以下文章

JMeter之参数关联

Jmeter(三)关联之正则表达式提取器

jmeter之json提取器

Jmeter之BeansShell之处理逻辑关系

Jmeter之JSON提取器

jmeter登录之-动态参数