查询用户接口

请求方式: GET
请求路径: http://49.233.108.117:28019/api/v1/user/info
请求Header:

参数名 备注
token 字符串 token的值从登录接口获取,登录成功会返回token

用户的认证(鉴权)

现在网站测试接口的时候,每个接口都是相互独立。有些接口需要权限,比如转账接口需要权限,权限认证,常用的使用token 值进行认证。
在做这一类接口的时候,就需要添加 token的值到接口中。


进行查询用户信息 接口测试

  1. 首先需要用户登录成功。成功之后会返回token值。

image.png

  1. 进行用户查询接口,需要使用登录成功的token。

根据文档,在Header 中添加token值。
image.png

修改用户信息

请求方式:Put
请求路径:http://49.233.108.117:28019/api/v1/user/info
请求Header(请求头):

参数名 备注
token 字符串 token的值从登录接口获取,登录成功会返回token

请求参数(请求体):
数据格式: json格式

  1. {
  2. "introduceSign": "string",
  3. "nickName": "string",
  4. "passwordMd5": "string"
  5. }

参数说明

参数名 备注
introduceSign 字符串 个人介绍信息
nickName 字符串 昵称
passwordMd5 字符串 修改密码的md5 密文
修改密码的时候,先将明文使用md5 加密,使用加密后的密文,如果不修改密码,还是使用原来的密文。

使用postman操作一下

  1. 根据API文档,添加Header 将最新的token值复制进来

image.png

  1. body 中添加对应的数据, 【Body】—【raw】—【json】

    1. {
    2. "introduceSign": "我是一个好人",
    3. "nickName": "好人",
    4. "passwordMd5": "E99A18C428CB38D5F260853678922E03"
    5. }

    这里需要注意: 如果不修改密码,还是使用原来的 md5 加密后的密码。

  2. 点击【send】,查看服务器返回的结果。

image.png

  1. 再次调用查看个人信息接口,查看返回的结果;

image.png

上下游传参

Postman 上下游传参 - 图6
做接口测试的时候,也需要注意接口的执行顺序。

  1. 用户注册
  2. 用户登录 —> 返回Token值。
  3. 查看用户信息,修改用户信息 都使用到token。

根据业务,就有先后顺序。 称为上下游传参

  1. 登录成功 将token 值传递下游接口 — 登录 称为上游接口
  2. 下面查看用户信息,修改用户信息 都使用到token 值。 这些接口 称为 下游接口

下游接口 主要使用到 token, 下游可能有很多,但是 token 值会失效,我们的这个系统中 token值 10分钟之后会失效,失效之后 需要再次登录获取最新的token,下游有很多接口都使用到token,每次更新都需要手动更新token,特别麻烦。

  1. 可以将token值设置为变量。

image.png

  1. 在下游接口中 所有使用到token的地方都使用 变量的方式来做。

image.png
image.png

  1. 当token值更新的时候,只需要将最新的token值放入到 变量值中即可。

image.png

  1. 这样做的好处,token值更新之后,只需要在一个地方进行修改,其他地方会自动引用最新的 变量值。

👍面试问题

  1. 接口测试过程中是如何处理上下游关联的?
    1. 在做接口测试过程中,首先会分析接口之间的业务逻辑关系。
    2. 确定接口上下游, 将上游接口的返回结果 设置为变量。
    3. 下游接口所有的引用 都使用变量来表示。
    4. 如果上游的数据更新,只需要改动变量值即可。

✌️思维导图

Postman 上下游传参 - 图11

作业:

基础

  1. 课外搜索: GET 请求和Post请求的区别;

Postman 上下游传参 - 图12

接口实战

使用Postman完成如下练习:

接口名称: 查询天气预报接口
接口URL:_http://jisutqybmf.market.alicloudapi.com/weather/query
请求方式
:_GET


请求头(Headers)

Authorization APPCODE 36a6d64593884af1971d218d14a23f9d

🪂注意:这里需要在header中 添加 Authorization ,而不是 token 。(不同的接口参数值不一样,根据文档来)
image.png


请求参数(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,所有参数的值放在
image.png


上面接口检验是否发送成功,服务器会返回搜索的城市的天气信息,比如搜索上海的天气,值为
image.png

数据库题:

  1. 所有的表在下面的数据库中,请根据连接信息使用navicat 等工具连接
    1. 主机地址:rm-bp188nr95fk4l9545ao.mysql.rds.aliyuncs.com
    2. 端口号:3306
    3. 用户名:abtester
    4. 密码:123@abtester
    主要的表
    Postman 上下游传参 - 图16 Postman 上下游传参 - 图17Postman 上下游传参 - 图18
    完成如下练习:
    查询学员每门科目都大于60分的同学成绩(也就是说最低分要大于60分);
  1. -- 查询出成绩及格的学号
  2. SELECT sno FROM score
  3. GROUP BY sno
  4. HAVING min(score) > 60
  5. -- 使用子查询进行查找
  6. SELECT a.sno,a.sname,b.score,c.cname FROM
  7. students a INNER JOIN score b on a.sno = b.sno INNER JOIN course c on b.cno = c.cno
  8. WHERE a.sno in (SELECT sno FROM score
  9. GROUP BY sno
  10. HAVING min(score) > 60
  11. )