JMeter中的关联-正则表达式提取(1)

运用Jmeter正则提取器,可以从请求的响应结果中取到需要的内容,从而实现关联。

要关联这个

user_id":"10145"

 

说明:

简单介绍一下Jmeter正则表达式提取器的使用方法。

1、添加Jmeter正则表达式提取器

在具体的Request下添加Jmeter正则表达式提取器(Jmeter正则表达式在“后置处理器”下面)

2、Jmeter正则表达式提取器控制面板,截图如下:

位置1:名称及注释

位置2:正则表达式提取内容的范围。(关于各字段的详细说明请查阅协议的相关说明)

位置3:正则表达式提取的相关设置

  • 引用名称:自己定义的变量名称,后续请求将要引用到的变量名,如填写的是:user_id,后面的引用方式是${user_id}
  • 正则表达式:提取内容的正则表达式,相当于lr中的关联函数
  • ()     括起来的部分就是需要提取的,对于你要提的内容需要用小括号括起来】
  • 【.    点号表示匹配任何字符串
  • 【+   一次或多次
  • 【?   在找到第一个匹配项后停止
  • 模板:用$$引用起来,如果在正则表达式中有多个正则表达式(多个括号括起来的东东),则可以是$2$,$3$等等,表示解析到的第几个值给user_id。例如:$1$表示匹配到的第一个值
  • 匹配数字0代表随机取值,-1代表所有值,此时提取结果是一个数组,其余正整数代表第几个匹配的内容提取出来。如果匹配数字选择的是-1,还可以通过${user_id_1}的方式来取第1个匹配的内容,${user_id_2}来取第2个匹配的内容。
  • 缺省值:正则匹配失败时,取的值

    转自(http://www.cnblogs.com/qmfsun/p/5903318.html)

JMeter获取正则表达式中的提取的所有关联值的解决方法:

需求如下:

复制代码
{
:   "error_no":"0",
:   "results":
:   [
:   :   {
:   :   :   "total_earnings":"",
:   :   :   "num_page":"5",
:   :   :   "retrace_rate_thirty":"0.0061",
:   :   :   "day_yield_rankings":"",
:   :   :   "choose_success_rate":"0",
:   :   :   "state":"",
:   :   :   "week_yield_rankings":"",
:   :   :   "month_yield_rankings":"",
:   :   :   "act_id":"",
:   :   :   "last_week_yield_rankings":"",
:   :   :   "name":"lol",
:   :   :   "total_yield":"0.0532",
:   :   :   "total_rows":"277",
:   :   :   "user_id":"10150",
:   :   :   "day_earnings":"",
:   :   :   "face_image":"/userImage/10150.jpg",
:   :   :   "month_earnings":"",
:   :   :   "week_earnings":"",
:   :   :   "apply_state":"1",
:   :   :   "total_page":"56",
:   :   :   "account_id":"204",
:   :   :   "turnover_thirty_rate":"0.0941",
:   :   :   "strongHold":"平安银行",
:   :   :   "month_yield":"-0.0048",
:   :   :   "total_yield_rankings":"1",
:   :   :   "account_name":"",
:   :   :   "week_yield":"0.0013",
:   :   :   "cur_page":"1",
:   :   :   "face_image_small":"/userImage/small/10150.jpg",
:   :   :   "day_yield":"-0.0001"
:   :   },
:   :   {
:   :   :   "total_earnings":"",
:   :   :   "num_page":"5",
:   :   :   "retrace_rate_thirty":"0.0099",
:   :   :   "day_yield_rankings":"",
:   :   :   "choose_success_rate":"0",
:   :   :   "state":"",
:   :   :   "week_yield_rankings":"",
:   :   :   "month_yield_rankings":"",
:   :   :   "act_id":"",
:   :   :   "last_week_yield_rankings":"",
:   :   :   "name":"冒牌司令",
:   :   :   "total_yield":"0.0409",
:   :   :   "total_rows":"277",
:   :   :   "user_id":"10262",
:   :   :   "day_earnings":"",
:   :   :   "face_image":"/userImage/10262.jpg",
:   :   :   "month_earnings":"",
:   :   :   "week_earnings":"",
:   :   :   "apply_state":"1",
:   :   :   "total_page":"56",
:   :   :   "account_id":"671",
:   :   :   "turnover_thirty_rate":"0.9981",
:   :   :   "strongHold":"双汇发展",
:   :   :   "month_yield":"0.0409",
:   :   :   "total_yield_rankings":"2",
:   :   :   "account_name":"",
:   :   :   "week_yield":"0.0341",
:   :   :   "cur_page":"1",
:   :   :   "face_image_small":"/userImage/small/10262.jpg",
:   :   :   "day_yield":"0.0008"
:   :   },
:   :   {
:   :   :   "total_earnings":"",
:   :   :   "num_page":"5",
:   :   :   "retrace_rate_thirty":"0.0009",
:   :   :   "day_yield_rankings":"",
:   :   :   "choose_success_rate":"1",
:   :   :   "state":"",
:   :   :   "week_yield_rankings":"",
:   :   :   "month_yield_rankings":"",
:   :   :   "act_id":"",
:   :   :   "last_week_yield_rankings":"",
:   :   :   "name":"888",
:   :   :   "total_yield":"0.0359",
:   :   :   "total_rows":"277",
:   :   :   "user_id":"10130",
:   :   :   "day_earnings":"",
:   :   :   "face_image":"/userImage/10130.jpg",
:   :   :   "month_earnings":"",
:   :   :   "week_earnings":"",
:   :   :   "apply_state":"1",
:   :   :   "total_page":"56",
:   :   :   "account_id":"38",
:   :   :   "turnover_thirty_rate":"0.1873",
:   :   :   "strongHold":"平安银行",
:   :   :   "month_yield":"0.0048",
:   :   :   "total_yield_rankings":"3",
:   :   :   "account_name":"",
:   :   :   "week_yield":"0.0004",
:   :   :   "cur_page":"1",
:   :   :   "face_image_small":"/userImage/small/10130.jpg",
:   :   :   "day_yield":"-0.0001"
:   :   },
:   :   {
:   :   :   "total_earnings":"",
:   :   :   "num_page":"5",
:   :   :   "retrace_rate_thirty":"0.0027",
:   :   :   "day_yield_rankings":"",
:   :   :   "choose_success_rate":"0",
:   :   :   "state":"",
:   :   :   "week_yield_rankings":"",
:   :   :   "month_yield_rankings":"",
:   :   :   "act_id":"",
:   :   :   "last_week_yield_rankings":"",
:   :   :   "name":"13131313132",
:   :   :   "total_yield":"0.0152",
:   :   :   "total_rows":"277",
:   :   :   "user_id":"10133",
:   :   :   "day_earnings":"",
:   :   :   "face_image":"",
:   :   :   "month_earnings":"",
:   :   :   "week_earnings":"",
:   :   :   "apply_state":"1",
:   :   :   "total_page":"56",
:   :   :   "account_id":"55",
:   :   :   "turnover_thirty_rate":"0.03",
:   :   :   "strongHold":"江苏吴中",
:   :   :   "month_yield":"0.0152",
:   :   :   "total_yield_rankings":"4",
:   :   :   "account_name":"",
:   :   :   "week_yield":"0.0002",
:   :   :   "cur_page":"1",
:   :   :   "face_image_small":"",
:   :   :   "day_yield":"-0.0002"
:   :   },
:   :   {
:   :   :   "total_earnings":"",
:   :   :   "num_page":"5",
:   :   :   "retrace_rate_thirty":"0.0047",
:   :   :   "day_yield_rankings":"",
:   :   :   "choose_success_rate":"0",
:   :   :   "state":"",
:   :   :   "week_yield_rankings":"",
:   :   :   "month_yield_rankings":"",
:   :   :   "act_id":"",
:   :   :   "last_week_yield_rankings":"",
:   :   :   "name":"谁主沉浮",
:   :   :   "total_yield":"0.0129",
:   :   :   "total_rows":"277",
:   :   :   "user_id":"10256",
:   :   :   "day_earnings":"",
:   :   :   "face_image":"/userImage/10256.jpg",
:   :   :   "month_earnings":"",
:   :   :   "week_earnings":"",
:   :   :   "apply_state":"1",
:   :   :   "total_page":"56",
:   :   :   "account_id":"648",
:   :   :   "turnover_thirty_rate":"0.493",
:   :   :   "strongHold":"安洁科技",
:   :   :   "month_yield":"0.0129",
:   :   :   "total_yield_rankings":"5",
:   :   :   "account_name":"",
:   :   :   "week_yield":"-0.0076",
:   :   :   "cur_page":"1",
:   :   :   "face_image_small":"/userImage/small/10256.jpg",
:   :   :   "day_yield":"-0.0054"
:   :   }
:   ],
:   "dsName":
:   [
:   :   "results"
:   ],
:   "error_info":""
}
复制代码

 

现在需要将

name":"lol
name":"冒牌司令
name":"888
name":"13131313132
name":"谁主沉浮

name字段的值获取,并输出所有的值

通过查看结果树,是看不到name的所有取值

通过添加后置处理器Debug PostProcessor查看提取的所有结果

可以发现,JMeter的正则表达式提取关联值和lr一样,对于有多个符合结果的,会将所有的结果值保存在一个数组里

 

既然现在看到提取结果是一个数组,那现在怎么将所有的结果拿出来使用呢?

通过逻辑控制器-ForEach控制器进行数组的循环操作,逐一打印出所有的关联值

 

posted @ 2016-09-26 15:28  被窝疯  阅读(248)  评论(0)    收藏  举报