以jmeter登录接口为例,就下面的这个登录页面
- 在测试之前,我们输入用户和密码先手动登录下,看看有那些网络信息,使用fiddler抓包
- 登录发送的是这个请求,我们看下使用什么方式,以及用到那些参数
看下图,可以看到是POST发送方式,以及包含N多cookies
- 在下图可以看到有5个参数
- Csrf_test_name:这个参数的请求值可以看到和cookies里面的csrf_cookie_name值一样,这样我们就可以从cookies中获取该参数的值
- Username:用户名
- Password:密码
- Auto_login:请求值为1,我们先不管这个是干嘛的,到时候我们也填1
- Login_submit:请求值为1,我们先不管这个是干嘛的,到时候我们也填1
- 看下响应结果,是json类型数据,可以看到username被返回,也包含一些其它的字段信息,这里的某些信息就可以用作响应断言
好了,接下来使用jmeter来测试了,引用cookies,这也是这次分享的重点
要确保jmeter.properties(这个文件在安装目录的bin目录下),文件里面的设置项CookieManager.save.cookies=true
- 可以从测试计划中添加线程组,这里我定义跑100个
- 添加HTTP Cookie管理器,默认就行不用设置
- 添加HTTP请求,该请求是为了获取cookies
- 添加登录接口,也是HTTP请求,注意下图标红的,就是引用cookies里面的值${COOKIE_cookie名称}
添加请求参数
- csrf_test_name ${COOKIE_cookie名称}
- username 用户名
- password 密码
- auto_login 默认设置1
- login_submit 默认设置1
- 响应文本,我这里判断响应文中有我的用户名就行,具体定义可以自己设
- 我这里只看登录接口的结果,所以我把查看结果树和聚合报告位置都放到了登录接口下面
- 看响应时间,跑100个简直是无关痛痒,这里只是演示下,引用cookies登录的例子