简介
本实例测试多用户登录后提交考试的接口。
1. 配置Jmeter
登录
因为重点不是测试登录,我们只需要获取登录后的信息。新建setup线程组,只登录一次。
新建http请求,配置协议,ip,端口及请求需要的参数。登录接口需要参数为用户名,密码及验证码。同时测试多个用户登录,不能一个个传。
新建csv数据文件,从文件中导入用户名密码信息。
登录返回的信息为json格式,我们可以使用json提取器来获取token。
添加JSON提取器,获取登录请求返回的token信息
添加JSR223后置处理程序,将提取到的token数据保存在本地表格中供后面接口使用。选择java语言,将上一步获取的变量传入,编写代码,将变量储存在本地文件中。
添加查看结果树,聚合报告及响应断言,判断请求成功。在结果树中查看请求结果,绿色为通过,红色失败。点击请求,可以查看具体请求数据及响应数据。
设置全局变量
如果只测试一个用户,可以在登录获取token后设置token为全局变量。
新增BeanShell后置处理器,利用函数助手自动生成表达式。函数setProperty将传入的参数id赋值给全局变量id,后面直接调用全局变量。
测试接口
新建线程组,添加接口请求,为每个请求添加监听器。
查看接口需要的参数,鉴权请求类型为header,在jmeter里需要添加HTTP信息头管理器。在信息头中添加鉴权信息,调用全局变量。
设置线程数,点击运行。300个线程,运行时间1秒,循环1次。
2. 测试结果
查看聚合报告:
- 300用户同时访问,平均响应时间0.318秒,最大响应时间0.74秒,最小响应时间0.024秒,错误率为0。