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
这些是目前我应用到的位置,应该还有其他位置也可以引用的,后续用到了,再在这里更新。
下图示例: