查询用户接口
请求方式: GET
请求路径: http://49.233.108.117:28019/api/v1/user/info
请求Header:
参数名 | 值 | 备注 |
---|---|---|
token | 字符串 | token的值从登录接口获取,登录成功会返回token |
用户的认证(鉴权)
现在网站测试接口的时候,每个接口都是相互独立。有些接口需要权限,比如转账接口需要权限,权限认证,常用的使用token 值进行认证。
在做这一类接口的时候,就需要添加 token的值到接口中。
进行查询用户信息 接口测试
- 首先需要用户登录成功。成功之后会返回token值。
- 进行用户查询接口,需要使用登录成功的token。
根据文档,在Header 中添加token值。
修改用户信息
请求方式:Put
请求路径:http://49.233.108.117:28019/api/v1/user/info
请求Header(请求头):
参数名 | 值 | 备注 |
---|---|---|
token | 字符串 | token的值从登录接口获取,登录成功会返回token |
请求参数(请求体):
数据格式: json格式
{
"introduceSign": "string",
"nickName": "string",
"passwordMd5": "string"
}
参数说明
参数名 | 值 | 备注 |
---|---|---|
introduceSign | 字符串 | 个人介绍信息 |
nickName | 字符串 | 昵称 |
passwordMd5 | 字符串 | 修改密码的md5 密文 修改密码的时候,先将明文使用md5 加密,使用加密后的密文,如果不修改密码,还是使用原来的密文。 |
使用postman操作一下
- 根据API文档,添加Header 将最新的token值复制进来
body 中添加对应的数据, 【Body】—【raw】—【json】
{
"introduceSign": "我是一个好人",
"nickName": "好人",
"passwordMd5": "E99A18C428CB38D5F260853678922E03"
}
这里需要注意: 如果不修改密码,还是使用原来的 md5 加密后的密码。
点击【send】,查看服务器返回的结果。
- 再次调用查看个人信息接口,查看返回的结果;
上下游传参
做接口测试的时候,也需要注意接口的执行顺序。
- 用户注册
- 用户登录 —> 返回Token值。
- 查看用户信息,修改用户信息 都使用到token。
根据业务,就有先后顺序。 称为上下游传参
- 登录成功 将token 值传递下游接口 — 登录 称为上游接口
- 下面查看用户信息,修改用户信息 都使用到token 值。 这些接口 称为 下游接口
下游接口 主要使用到 token, 下游可能有很多,但是 token 值会失效,我们的这个系统中 token值 10分钟之后会失效,失效之后 需要再次登录获取最新的token,下游有很多接口都使用到token,每次更新都需要手动更新token,特别麻烦。
- 可以将token值设置为变量。
- 在下游接口中 所有使用到token的地方都使用 变量的方式来做。
- 当token值更新的时候,只需要将最新的token值放入到 变量值中即可。
- 这样做的好处,token值更新之后,只需要在一个地方进行修改,其他地方会自动引用最新的 变量值。
👍面试问题
- 接口测试过程中是如何处理上下游关联的?
- 在做接口测试过程中,首先会分析接口之间的业务逻辑关系。
- 确定接口上下游, 将上游接口的返回结果 设置为变量。
- 下游接口所有的引用 都使用变量来表示。
- 如果上游的数据更新,只需要改动变量值即可。
✌️思维导图
作业:
基础
- 课外搜索: GET 请求和Post请求的区别;
接口实战
使用Postman完成如下练习:
接口名称: 查询天气预报接口
接口URL:_http://jisutqybmf.market.alicloudapi.com/weather/query
请求方式:_GET
请求头(Headers)
Authorization | APPCODE 36a6d64593884af1971d218d14a23f9d |
---|---|
🪂注意:这里需要在header中 添加 Authorization
,而不是 token 。(不同的接口参数值不一样,根据文档来)
请求参数(Query Params )
名称 | 类型 | 是否必须 | 描述 |
---|---|---|---|
city | STRING | 可选 | 城市(city,cityid,citycode三者任选其一)比如搜索上海的天气, 值使用 上海 |
citycode | STRING | 可选 | 城市天气代号(city,cityid,citycode三者任选其一) |
cityid | STRING | 可选 | 城市ID(city,cityid,citycode三者任选其一) |
ip | STRING | 可选 | IP |
location | STRING | 可选 | 经纬度 纬度在前,,分割 如:39.983424,116.322987 |
注意:这里的请求参数是 Query Params ,不是body,所有参数的值放在
上面接口检验是否发送成功,服务器会返回搜索的城市的天气信息,比如搜索上海的天气,值为
数据库题:
- 所有的表在下面的数据库中,请根据连接信息使用navicat 等工具连接
主要的表主机地址:rm-bp188nr95fk4l9545ao.mysql.rds.aliyuncs.com
端口号:3306
用户名:abtester
密码:123@abtester
完成如下练习:
查询学员每门科目都大于60分的同学成绩(也就是说最低分要大于60分);
-- 查询出成绩及格的学号
SELECT sno FROM score
GROUP BY sno
HAVING min(score) > 60
-- 使用子查询进行查找
SELECT a.sno,a.sname,b.score,c.cname FROM
students a INNER JOIN score b on a.sno = b.sno INNER JOIN course c on b.cno = c.cno
WHERE a.sno in (SELECT sno FROM score
GROUP BY sno
HAVING min(score) > 60
)