如何使用正则表达式/ beanshell后处理器提取器从响应中提取数据

时间:2016-04-29 19:04:05

标签: regex jmeter beanshell

我在View树监听器中有这个响应

  

“__ V”:0, “语言”: “恩”, “JOBTITLE”: “行政”, “名字”: “WER”, “姓氏”: “WRE”, “电子邮件”:“FDE + 98989 @ gmail.com “ ”手机“:” + 1   213-321-3232" , “_ companyId”: “5723erera8b2196fdaer9502b86dc7”, “accountStatus”: “未经验证”, “角色”: “管理”, “emailActivationSecret”: “XD1EererreQyVLFn1IjJg7QQNcDz9RLZ1xrKnl84XI5Nb5”, “_ ID”: “5723a8b21er96fwereeda9ewree502b86dc8”, “产品” :[], “创建”: “2016-04-29T18:32:18.700Z”}

现在,我需要将emailemail activation secretid提取到此链接中:

  

网络服务器-笏:3001 / activateAccount电子邮件= FDE%298989%40gmail.com&安培;秘密= XD1EererreQyVLFn1IjJg7QQNcDz9RLZ1xrKnl84XI5Nb5&安培; companyId = 5723a8b21er96fwereeda9ewree502b86dc8

并发送帖子请求以激活链接。这有什么办法吗?真的很感激,因为这会阻碍我们的自动化过程

2 个答案:

答案 0 :(得分:0)

正则表达式:

/.*"email":"(.*?)".*emailActivationSecret":"(.*?)".*"_id":"(.*?)".*/

替换字符串:

"webserver-wat:3001/activateAccount?email=$1&secret=$2&companyId=$1"

demo

答案 1 :(得分:0)

我相信您可以更轻松地使用JSON Path Extractor(可通过JMeter Plugins获得),因为这样您就可以轻松解析多行数据,使用条件选择器和JSON路径表达式看起来更多比正则表达式友好且易读。

例如:

  1. 要提取单个值,即email,请使用以下JSON路径提取器配置:

    • 目标变量名称:任何有意义的内容,即email
    • JSON路径表达式:$.email
    • 在必要时将提取的值称为${email}
    • 对其他动态变量重复上述步骤(使用单独的JSON路径提取器)
  2. 如果您想要一次性完成所有事情:

    • 目标变量名称:任何合适的变量名称,即param
    • JSON路径表达式:$.[email, emailActivationSecret, _id]
    • 将提取的值引用为:

      • ${param_1} - 用于“电子邮件”
      • ${param_2} - 用于“emailActivationSecret”
      • ${param_3} - 代表“_id”
  3. 参考文献: