zoukankan      html  css  js  c++  java
  • 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

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

    下图示例:

     

  • 相关阅读:
    HDU1041
    HDU1005
    HDU1231
    MYSQL入门总结
    oracle性能问题排查~记一个单实例的问题
    mysql案例~关于mysql的配置文件个人见解
    数据恢复系列~恢复方案制定
    mysql架构解读~mysql的多源复制
    mysql 案例~select引起的性能问题
    遭遇Bad version number in .class file
  • 原文地址:https://www.cnblogs.com/kevinsteve/p/10085415.html
Copyright © 2011-2022 走看看