jmeter关联接口性能测试
需求
进行接口性能测试时候,尤其是登录类接口,经常需要先进行登录,然后拿到登录返回的token,比如sessionid,来作为参数传给下一个接口作为入参
实现
测试接口:
登录:
1 | POST http://192.168.0.1:8080/api/Login |
接口返回信息:
1 | { |
获取用户信息:
1 | http://192.168.0.1:8080/api/History/GetUserInfo?sessionId=7f959f6d-4b63-4d2d-8f88-025dc80e40f9,a13b648f-6d81-4307-8ee1-b04c5b976246 |
其中获取用户信息接口,需要传sessionId
字段,该字段为登录接口的返回字段
所以需要先登录,再获取sessionid,再传给获取用户信息接口
jmeter实现
jmeter也是正常的创建线程组,添加http请求头,添加http请求,添加响应断言,添加查看结果树和聚合报告
不同的是,在一个线程组中会有两个接口,第一个是登录,第二个是获取用户信息,并且在登录接口后需要添加一个组件:JSON Extractor
作用就是提取登录返回的sessionid
JSON Extractor内容:
1 | Name of created variables: 变量名(后面参数化的变量名称,这边是sessionid) |
根据登录接口返回的层级结构,json表达式可以写成:$.data.userInfo.SessionId
需要注意的是$后有一个.,表示当前路径
JSON表达式可以实现,只需要在登录接口后添加一个查看结果树,显示模式切换成JSON Path Tester
,右下角就有JSON Path Expression
测试
jmeter关联接口的层级结构:
1 | - 线程组 |
完~