Jmeter正则表达式提取器

1.线程组下添加Sampler,http请求

2.配置http请求,请求接口地址,请求参数等,这里不再详细描述

3.接口响应数据描述:

[
  {
    "a": "11008",
    "cityName": "杭州市",
    "b": "1",
    "c": "110582",
    "d": "浙江省",
    "e": "1",
    "f": "330000",
    "g": "330100"
  },
  {
    "a": "8715",
    "cityName": "宁波市",
    "b": "0",
    "c": "38008",
    "d": "浙江省",
    "e": "2",
    "f": "330000",
    "g": "330200"
  },
  {
    "a": "9808",
    "cityName": "温州市",
    "b": "0",
    "c": "46702",
    "d": "浙江省",
    "e": "3",
    "f": "330000",
    "g": "330300"
  },
  {
    "a": "4520",
    "cityName": "嘉兴市",
    "b": "209",
    "c": "15538",
    "d": "浙江省",
    "e": "4",
    "f": "330000",
    "g": "330400"
  },
  {
    "a": "3397",
    "cityName": "湖州市",
    "b": "5",
    "c": "11247",
    "d": "浙江省",
    "e": "5",
    "f": "330000",
    "g": "330500"
  },
  {
    "a": "4020",
    "cityName": "绍兴市",
    "b": "0",
    "c": "16785",
    "d": "浙江省",
    "e": "6",
    "f": "330000",
    "g": "330600"
  },
  {
    "a": "5387",
    "cityName": "金华市",
    "b": "0",
    "c": "22909",
    "d": "浙江省",
    "e": "7",
    "f": "330000",
    "g": "330700"
  },
  {
    "a": "1306",
    "cityName": "衢州市",
    "b": "0",
    "c": "8797",
    "d": "浙江省",
    "e": "8",
    "f": "330000",
    "g": "330800"
  },
  {
    "a": "1145",
    "cityName": "舟山市",
    "b": "0",
    "c": "5593",
    "d": "浙江省",
    "e": "9",
    "f": "330000",
    "g": "330900"
  },
  {
    "a": "2653",
    "cityName": "台州市",
    "b": "0",
    "c": "16940",
    "d": "浙江省",
    "e": "10",
    "f": "330000",
    "g": "331000"
  }
]

4.目标,提取接口响应数据中的cityName字段的值。

在Sampler,http请求下添加后置处理器---正则表达式处理器

 5.配置正则表达式提取器

1.正则表达式提取器的名称

2.引用名称,是在使用正则表达式提取器提取到的数据时,所用的引用名称

3.正则表达式,"cityName":"([^"]+)",表示匹配cityName字段,获取字段值部分的数据。

   这个正则表达式,也可以写为"cityName":"(.+?)"

4.正则表达式中,([^"]+)表示一组模板(组group,简g)。正则表达式中,可以包含多组模板,后面会讲到多组模板的情况

   模板,是用来设置获取哪一组模板的匹配结果。本例中,正则表达式,只包含一组模板,所以模板是,$1$

5.匹配数字,是用来设置获取匹配结果中,第几次匹配到的结果值

  -1,表示获取匹配结果中,所有匹配到的结果值

  0,表示获取匹配结果中,随机一次匹配到的结果值

  1,表示获取匹配结果中,第一次匹配到的结果值

  2,表示获取匹配结果中,第二次匹配到的结果值

  ....................

本例中,正则表达式提取器,在响应数据里,可以匹配到十次。

设置的匹配数字是-1,那么正则表达式提取器,就提取到了所有的十次配置的结果值

6.使用正则表达式提取器提取到的数据(设置的匹配数字是-1

cityName,是正则表达式提取器的引用名称。

${cityName_matchNr},获取正则表达式提取器的匹配次数,值是:10。

${cityName_1},获取第一次匹配到的数据值,值是:杭州市。

${cityName_1_g},获取第一次匹配到的字符串包含数据值个数,值是:1。

${cityName_1_g0},获取第一次匹配到的字符串,值是:"cityName":"杭州市"。

${cityName_1_g1},获取第一次匹配到的字符串中的,数据值部分,值是:杭州市。

${cityName_2},获取第二次匹配到的数据值,值是:宁波市。

${cityName_2_g},获取第二次匹配到的字符串包含数据值个数,值是:1。

${cityName_2_g0},获取第二次匹配到的字符串,值是:"cityName":"宁波市"。

${cityName_2_g1},获取第二次匹配到的字符串中的,数据值部分,值是:宁波市。

...........................

7.设置其他的匹配数字

a.更改上述,设置匹配数字为0,表示获取随机匹配到的数据。

${cityName},获取随机匹配到的数据,值是:如,温州市。

${cityName_g},获取随机匹配到的数据个数,值是:1。

${cityName_g0},获取随机匹配到的字符串,值是:"cityName":"温州市"。

${cityName_g1},获取随机匹配到的字符串中的,数值部分,值是:温州市。

b.设置匹配数字为1,表示获取第一次匹配到的数据。

${cityName},获取第一次匹配到的数据值,值是:杭州市。

${cityName_g},获取第一次匹配到的字符串包含数据值个数,值是:1。

${cityName_g0},获取第一次匹配到的字符串,值是:"cityName":"杭州市"。

${cityName_g1},获取第一次匹配到的字符中的,数据值部分,值是:杭州市。

........................

8.设置正则表达式,包含多组模板

正则表达式提取器设置:

正则表达式:"cityName":"([^"]+)","b":"([^"]+)"。包含两组模板

模版:$1$$2$,获取两组模板匹配到的数据

${cityName_matchNr},获取正则表达式提取器的匹配次数,值是:10。

${cityName_1},获取第一次匹配到的数据值,值是:杭州市1。

${cityName_1_g},获取第一次匹配到的字符串包含数据值个数,值是:2。

${cityName_1_g0},获取第一次匹配到的字符串,值是:"cityName":"杭州市","b":"1"。

${cityName_1_g1},获取第一次匹配到的字符串中的,第一个数据数值部分,值是:杭州市。

${cityName_1_g2},获取第一次匹配到的字符串中的,第二个数据数值部分,值是:1。

........

9.正则表达式包含多组模板,设置模板为其中的部分模板

a.更改上述设置模板为$1$

${cityName_matchNr},获取正则表达式提取器的匹配次数,值是:10。

${cityName_1},获取第一次匹配到的数据值,值是:杭州市。

${cityName_1_g},获取第一次匹配到的字符串包含数据值个数,值是:2。

${cityName_1_g0},获取第一次匹配到的字符串,值是:"cityName":"杭州市","b":"1"。

${cityName_1_g1},获取第一次匹配到的字符串中的,第一个数据数值部分,值是:杭州市。

${cityName_1_g2},获取第一次匹配到的字符串中的,第二个数据数值部分,值是:1。

b.设置模板为$2$

${cityName_matchNr},获取正则表达式提取器的匹配次数,值是:10。

${cityName_1},获取第一次匹配到的数据值,值是:1。

${cityName_1_g},获取第一次匹配到的字符串包含数据值个数,值是:2。

${cityName_1_g0},获取第一次匹配到的字符串,值是:"cityName":"杭州市","b":"1"。

${cityName_1_g1},获取第一次匹配到的字符串中的,第一个数据数值部分,值是:杭州市。

${cityName_1_g2},获取第一次匹配到的字符串中的,第二个数据数值部分,值是:1。

10.正则表达式提取器,的引用位置

通过上面的介绍,简单了解了正则表达式提取器。

下面就说下,可以在哪些地方引用到正则表达式提取器

cityName,是正则表达式提取器的引用名称。

a.路径

b.Parameters

c.Body Data

这些是目前我应用到的位置,应该还有其他位置也可以引用的,后续用到了,再在这里更新。

下图示例:

 

原文地址:https://www.cnblogs.com/kevinsteve/p/10085415.html