代码改变世界

【转载】Jmeter关联-正则表达式提取器

2018-05-25 10:33  glre09  阅读(223)  评论(0编辑  收藏  举报
 
 
 
 
今天研发同事提供了一个验证token的接口,要验证token的正确性,现在将整个过程做如下记录:
  • 场景:验证token的正确性
  • 原理:首先用户登录成功后,会在Response headers中返回一个token值,以及在响应信息中,返回用户id。验证token时,需要获取这个token值以及用户id作为参数去验证token的正确性,如果正确,则返回TRUE;反之,则返回FALSE。
  • 分析:如果要验证token的正确性,那么第一步就是在登录成功后,去拿对应的值,并把这个值作为参数,放到token的接口中进行传参。
 
实施如下:
1.接口:
  • 验证token正确性
    • 地址:http://ip:port/user-center/usertoken/validatetoken
    • 方式:post
    • 参数:*userid:用户id ;*token:当前的token值
  • 用户登录
    • 地址:http://ip:port/user-center/user/json/login
    • 方式:post
    • 参数:*LOGIN:登录名 ;*PASSWORD:密码,通过md5加密之后的密码
2.实施过程:
    • 第一步:添加第一个http请求:用户登录(此处不多讲)
    •  运行结果如下(在结果中我圈出了在验证token中需要的参数值):
      • 第二步:使用“正则表达式提取器”获取上面的两个值
        • 第三步:添加第二个http请求:验证token
        • 备注:此处的参数化中的值,要与“第二步中的引用名称保持一致”
            •  第四步:运行,并查看结果(大家可以比较一下,此处获取的值与“第一步运行结果”的值是否一致,如果一致,则说明获取成功,如果不一致,则说明在配置中存在问题)
              • 3.问题
                总结一下在此次实施过程遇到的问题:
                • 问题一:参数化后,获取token值有误,不能取到值
                          原因:1,“要检查的响应字段”选错,应该选择“信息头(响应信息头)”
                                     2,正则表达式有误,没有加上结束的判断,更改后为“TOKEN: (.+?)\s\S”或者“TOKEN: (.+?)\n”(因为有换行)
                 
                4.相关知识
                • 正则
                •