Jmeter之提取:DebugSampler+正则表达式提取+JSON提取
正则表达式提取器
这是我们登陆接口的返回,我们需要提取token
{"code":200,"message":"OK","result":{"platformUserId":101947,"authToken":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOiJPUEVOX1BMQVRGT1JNIiwibmJmIjoxNjI5ODg0MDI0LCJpc3MiOiJTZXJ2aWNlIiwianNvblN0cmluZyI6IntcImNyZWF0ZVRpbWVcIjoxNjA4MTkwNzczMDAwLFwiaWRcIjoxMDE5NDcsXCJuYW1lXCI6XCJcIixcInBhcmVudElkXCI6MCxcInBob25lXCI6XCIxODIzMzE1NTQ0MFwiLFwidXBkYXRlVGltZVwiOjE2MDgxOTA3NzQwMDAsXCJ1cGRhdGVVc2VySWRcIjowLFwidXNlclBhc3N3b3JkXCI6XCI1NjBmYTM5NjFiNDM0ZWE0NmE1YjdlMjllM2JiZDY4N1wiLFwieW5cIjoxfSIsImV4cCI6MTYzMTYxNTYyNCwiaWF0IjoxNjI5ODg0MDI0fQ.ynUYblDHIPiH5xyF3FizC5sgN4nJd9Et7BM67hOLARk","isNewUser":false}}
首先,我们把token周围的东西复制出来
"authToken":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOiJPUEVOX1BMQVRGT1JNIiwibmJmIjoxNjI5ODg0MDI0LCJpc3MiOiJTZXJ2aWNlIiwianNvblN0cmluZyI6IntcImNyZWF0ZVRpbWVcIjoxNjA4MTkwNzczMDAwLFwiaWRcIjoxMDE5NDcsXCJuYW1lXCI6XCJcIixcInBhcmVudElkXCI6MCxcInBob25lXCI6XCIxODIzMzE1NTQ0MFwiLFwidXBkYXRlVGltZVwiOjE2MDgxOTA3NzQwMDAsXCJ1cGRhdGVVc2VySWRcIjowLFwidXNlclBhc3N3b3JkXCI6XCI1NjBmYTM5NjFiNDM0ZWE0NmE1YjdlMjllM2JiZDY4N1wiLFwieW5cIjoxfSIsImV4cCI6MTYzMTYxNTYyNCwiaWF0IjoxNjI5ODg0MDI0fQ.ynUYblDHIPiH5xyF3FizC5sgN4nJd9Et7BM67hOLARk","isNewUser"
然后将要提取的值删除掉
"authToken":"","isNewUser"
最后再加上正则表达式
"authToken":"(.+?)","isNewUser"
? 匹配前面的子表达式0到1次
- 匹配前面的子表达式人任意次
- 匹配前面的子表达式一次或多次>=1)
? 匹配前面的子表达式0到1次
加问号则表示为懒惰模式
.+? 表示匹配任意字符一个或则多个
.*? 表示匹配任意字符0个或多个
在具体使用时.+?可能跟好用些,看个人喜好
DebugSampler
但是我们想要查看一下提取的信息对不对怎么办,那就添加一个DebugSampler,直接在TestGroup下新增即可,他会将你所以提取或者说是自己命名的内容都打印出来,方便你检查调试自己的脚本。
JSON提取器
在查看结果树中,选择JSON Path Tester,就可以调试一下自己的表达式对不对
$表示根目录
提取信息的使用
就像我们的正则表达式提取信息的名字为“token”
则我们在使用的过程中只需要在需要的地方使用${变量名}即可
cookie提取
cookie其实是最简单的,只需要加一个 HTTP Cookie管理器就会自动管理cookie,在需要的接口上会自动添加的,所以,只要添加,其他的不用管