学习笔记之 接口测试

黑马软件

接口:数据交互的入口和出口,是一套规范一套标准。

      硬件,如USB,电源接口等。

      软件,前后端开发时共同参考遵守的一套数据交互的标准规范。用接口可以省去大量的沟通成本,提高效率。一般架构师制定(API文档)。

 

接口测试:测试后端实现是否符合接口规范(不是测试接口本身)。

实现流程:模拟客户向服务器发送数据,然后查看响应

要素1: 定位服务器资源(通过 URL 实现: http://www.baidu.com | http://127.0.0.1:8000/资源路径)

要素2: 模拟用户提交数据

要素3:查看响应的结果是否符合预期

 

HTTP请求方法

  • GET(SELECT):从服务器取出资源(一项或多项)。
  • POST(CREATE):在服务器新建一个资源。
  • PUT(UPDATE):在服务器更新资源(客户端提供改变后的完整资源)。
  • DELETE(DELETE):从服务器删除资源。

RESTful 风格是约束接口操作的四种操作以及三个要素

**增:**

​    要素1:  URL +  POST

​    要素2: 多个数据 ------> 方式1: 键=值&键=值             方式2: JSON 格式

​    要素3: 200 | 201 +  添加的记录

**删:**

​    要素1: URL +  GET|DELETE

​    要素2:  方式1: 键=值&键=值

​    要素3: 200|204 + 无

**改:**

​    要素1:URL + POST|PUT(更合适)

​    要素2: ------> 方式1: 键=值&键=值             方式2: JSON 格式

​    要素3:200 | 201 + 修改后那条记录

**查:**

​    要素1: URL + GET

​    要素2:常用方式1 URL?键=值&键=值....

​    要素3:200 + 一条或多条记录
 

状态码:

序号状态码动词说明
01200 OK[GET]服务器成功返回用户请求的数据,该操作是幂等的(Idempotent)幂等:无论执行操作多少次,结果都会执行1次结果相同
02201 CREATED[POST/PUT/PATCH]用户新建或修改数据成功
03202 Accepted[*]表示一个请求已经进入后台排队(异步任务)
04204 NO CONTENT[DELETE]用户删除数据成功
05400 INVALID REQUEST[POST/PUT/PATCH]用户发出的请求有错误,服务器没有进行新建或修改数据的操作,该操作是幂等的
06401 Unauthorized[*]表示用户没有权限(令牌、用户名、密码错误)
07403 Forbidden[*]表示用户得到授权(与401错误相对),但是访问是被禁止的
08404 NOT FOUND[*]用户发出的请求针对的是不存在的记录,服务器没有进行操作,该操作是幂等的
09406 Not Acceptable[GET]用户请求的格式不可得(比如用户请求JSON格式,但是只有XML格式)
10410 Gone[GET]用户请求的资源被永久删除,且不会再得到的
11422 Unprocesable entity[POST/PUT/PATCH]当创建一个对象时,发生一个验证错误
12500 INTERNAL SERVER ERROR[*]服务器发生错误,用户将无法判断发出的请求是否成功**

 

对结果进行判断

序号方法预期结果
01GETcollection:代码:200;数据:返回资源对象的列表(数组)
02GETcollection/resource:代码:200;数据:返回单个资源对象
03POSTcollection:代码:200/201;数据:返回新生成的资源对象
04PUTcollection/resource:代码:200/201;数据:返回完整的资源对象
05DELETEcollection/resource:代码:204;数据:返回为空

 

新增数据时,数据是 JSON 格式的,必须设置 浏览器的 http 请求头,不然会当成普通文本处理

​      Content-Type   applicaton/json;charset=utf-8 (记住)

​      Content-Type :  提交的内容类型 

​      application/json : 数据类型是 JSON 格式 | 大类型/小类型 img/jpg  img/png .....

​      charset=utf-8  :  设置编码集,utf-8 支持世界所有字符
 

JSON:是一种数据载体。

JSON 传输数据效率更高,所以部分场景下使用 JSON 替换 html 和 XML_(ajax)

但是 JSON 语法描述性不及 标签语言,所以部分场景还得使用 html 和 xml。如果传递的是少量数据的话,可能使用 JSON。

语法:

格式1(JSON对象):{"键1":"值1","键2":"值2".....}    

格式2(JSON数组):[值1,值2,值3.....]

格式复合: {"name":"huluwa","age":"8","aihao":["救爷爷",“吐火”,"吐水"]}

​         [{"name":"huluwa","age":"8"},{"name":"aotuman","age":"10"}......]

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值