【转载】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.相关知识- 正则
-
-
- 第四步:运行,并查看结果(大家可以比较一下,此处获取的值与“第一步运行结果”的值是否一致,如果一致,则说明获取成功,如果不一致,则说明在配置中存在问题)
-