JMeter做接口测试几个简单实例
这次小项目是基于HTTP协议的接口,通过JMeter来完成一次基本的接口测试,完整复习一下JMeter的基本操作。
这次练手用的项目,提供的接口文档挺详细的,练手针不戳~
在实际项目中,测试也要先从开发那拿到接口说明书,分析熟悉业务后,写接口的测试用例,最后再在JMeter里写接口测试的脚本。
设置如下
1、登录(POST)
登录
登录接口
简要描述:
- 登录接口
请求URL:
http://api.nnzhp.cn/api/user/login
请求方式:
- post
参数名
|
必选
|
类型
|
说明
|
username
|
是
|
string
|
用户名
|
passwd
|
是
|
string
|
密码
|
登录接口POST请求,入参 username 和 passwd 都是必填项。
在线程组下添加一个察看结果树和HTTP请求默认值,前者可以方便查看所有请求的结果,后者在跑多个同域名的接口的测试的时候,可以设置默认值很实用。
接着就可以做HTTP请求,并加上相应的断言,看用错误密码登录和成功的登录的响应是否符合预期
具体如下:
错误的密码时,登录失败,返回的响应体符合断言的预期:
请求正确,登录成功,断言通过:
2、获取学生信息(GET)
获取学生信息
简要描述:
- 获取学生信息接口
请求URL:
http://api.nnzhp.cn/api/user/stu_info
请求方式:
- get
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
stu_name | 是 | string | 学生姓名 |
从接口文档中,我们可以看到获取学生信息用到的是GET方式的请求,入参中 stu_name 为必填项,返回参数太多,就不细说了。
3、添加学生信息(POST,JSON)
添加学生信息
简要描述:
- 添加学生信息,这个接口是用来讲入参是json类型的
请求URL:
http://api.nnzhp.cn/api/user/add_stu
请求方式:
post
入参是json类型
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
name | 是 | string | 学生姓名 |
grade | 是 | string | 班级 |
phone | 是 | int | 电话 |
sex | 否 | string | 性别,如果不传默认为男 |
age | 否 | int | 年龄,如果不传默认为18 |
addr | 否 | string | 地址,如果不传默认为北京市昌平区 |
在添加学生信息的接口中,用到的也是POST请求方式,但与登录接口不同的是,它的入参是JSON类型的,接口文档中有1个JSON请求示例,我们可以直接复制过来,简单修改一下即可。如下:
在这里,由于这个学生信息已存在系统中了,因此返回添加失败的结果。所以,我需要添加1个新的学生信息,另外,这里需要调整下编码格式为utf-8,否则添加的学生信息会出现中文乱码。
4、学生充值金币(POST,Cookie)
学生金币充值
简要描述:
- 学生金币充值接口,这个接口是为了讲添加cookie以及身份验证的
请求URL:
http://api.nnzhp.cn/api/user/gold_add
请求方式:
- post
参数:
该接口有权限验证,需要admin用户才可以做操作,需要添加cookie
cookie中key为登录的用户名,value从登录接口中获取,登陆成功之后会返回sign
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
stu_id | 是 | int | 学生id |
gold | 是 | int | 金币数量 |
这个接口有权限验证,需要admin用户登录成功后才可以进行充值,另外,在入参 stu_id 和 gold 中,我们发现 stu_id 指的是学生ID,这里其实就是最开始 获取学生信息 接口返回结果中的id字段,如下:
5、获取所有学生信息(GET,header)
获取所有学生信息
简要描述:
- 这个接口是为了说明怎么添加header信息的
请求URL:
http://api.nnzhp.cn/api/user/all_stu
请求方式:
- get
需要添加header信息,key为Referer value 为http://api.nnzhp.cn/
参数:
无
从接口文档中,我们了解到,要获取所有学生信息,需要添加请求信息头,因此,我们创建一个线程组,在线程组下依次添加HTTP信息头管理器、HTTP请求、察看结果树,如下
6、文件上传(POST)
文件上传
简要描述:
- 上传文件接口
请求URL:
http://api.nnzhp.cn/api/file/file_upload
请求方式:
- post
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
file | 是 | file | 文件 |
在上传文件接口中,需要注意的是这里的入参是file类型的,因此,我们需要准备一个待上传的文件。