接口测试|RESTful 风格

接口测试

概念

跨过前端,直接测试后端实现是否符合接口规范,主要是校验数据的交互、传递和控制管理过程, 以及相互逻辑依赖关系

作用

1.更精准的定位 BUG
2. 发现程序中的安全隐患
3. 提高测试效率(项目越复杂越明显)

接口测试的特点

  • 测试可以提前介入, 提早发现Bug, 符合质量控制前移的理念
  • 可以发现一些页面操作发现不了的问题
  • 接口测试低成本高效益(底层的一个Bug能够引发上层8个左右Bug, 接口测试可以实现自动化)
  • 不同于传统的单元测试, 接口测试是从用户的角度对系统进行全面的检测

接口测试的三要素:

1. 定位接口资源
2. 提交测试数据
3. 查看响应结果

分类

接口测试大致可以分为两大类:
1. web接口测试(BS架构项目)

  • 服务器接口测试(测试浏览器与服务器的接口)
  • 外部(第三方)接口测试(测试第三方实现的接口:天气预报、支付...)

2. 模块接口测试(CS架构项目)

RESTful 架构风格

定义

RESTful 一种软件架构风格、设计风格, 而不是标准, 只是提供了一组设计原则和约束条件。
REST: 即(Representational State Transfer)的缩写。 词组的翻译是"表现层状态转化"。 如果一个架构符合REST原则, 就称它为RESTful架构

作用

可以保证 API 文档的编写风格, 提高文档的易读性

RESTful接口风格

对用户进行操作的相关接口, 包括增删改查

  • http://服务器地址:端口号/实体(资源)集合/单个实体(资源)
  • http://服务器地址:端口号/项目名称/版本/资源集合/单个资源
  • 协议://域名:​ 端口号/资源路径/{资源集合}/{指定资源}
操作请求方式URL成功状态码预期结果
查询某个用户GEThttp://127.0.0.1:8080/myweb/users/1200返回单个资源对象
查询所有用户GEThttp://127.0.0.1:8080/myweb/users200返回资源对象的列表
添加用户POSThttp://127.0.0.1:8080/myweb/users201返回新生成的资源对象
修改用户PUThttp://127.0.0.1:8080/myweb/users/1201返回完整的资源对象
删除用户DELETEhttp://127.0.0.1:8080/myweb/users/1204返回为空

RESTful架构特点

  • 1. 每一个URL代表一种资源;
  • 2. 客户端和服务器之间, 传递这种资源的某种表现层;
  • 3. 客户端通过四个HTTP动词, 对服务器端资源进行操作, 实现"表现层状态转化";
  • 4. 接口之间传递的数据最常用格式为JSON 

三要素

要素1: 定位接口资源

1、URL(统一资源定位符)

http://127.0.0.1:8000/api/uid/users/1
组成: 协议://域名:​ 端口号/资源路径/{资源集合}/{指定资源}

2、请求方式(数据的提交方式)
常见实现有: GET 、 POST、 PUT、 DELETE 分别对应 查、 增、 改、 删 四种操作

PS: GET 和 POST 二者比较有什么区别?
1、 提交方式不同(GET提交的数据显示在地址栏, 而 POST 隐式的提交数据, 后者更安全)
2、 可提交的数据量不同(GET提交的数据量有限制, 而 POST 无限制)
3、 执行效率不同(GET 的执行效率比 POST 稍高)

要素2: 提交参数

提交格式1: 键值对格式
提交格式2: JSON(类似于 Python 的字典) 格式

例:

格式1提交: username=user&password=123456&aihao=paobu&aihao=tingyinyue&aihao=dushu
格式2提交:
​​ { "username":"user",
​ "password":"123456",
​ "aihao":["paobu","tingyinyue","dushu"]
​ }

要素3: 响应结果

状态码(response code | status code)

1xx: 请求正常, 但是无响应, 只在实验状态下使用
2xx: 请求正常, 响应正常, 比如: 200 201 204 ...
3xx: 以其他方式获取响应, 比如: 302 重定向 304 取本地缓存
4xx: 浏览器端异常, 比如: 404 资源路径有误
5xx: 服务器端异常, 比如: 500 服务器运行异常

响应体

  • 响应html文档, 比如:访问百度首页
  • 响应JSON数据, 比如:学生管理系统响应的数据

注:JSON是一种轻量级的数据交换格式;JSON是以键/值对组合方式,键名写在前面并用双引号 "" 包裹,使用冒号 : 分隔,然后紧接着值: 1 {"name": "张三","age":18}

接口测试流程

1.需求分析
主要依据需求文档
2. 接口文档解析
一般是由开发人员编写接口文档(API文档)
3. 设计测试用例
4. 执行测试
使用接口测试工具实现
通过编写代码实现
5. 接口缺陷管理与跟踪
6. 生成测试报告
7. 接口自动化持续集成(可选)
 

API文档

定义

接口文档是一个描述接口信息(请求:请求方式、path、请求参数等,响应:状态码、响应数据等)的文档

作用

  • 便于前端开发和后端开发更好的协作
  • 便于项目更迭货项目人员迭代时,能更好的上手与维护
  • 便于测试今早的介入

文档内容

编写:开发
内容:基本信息、请求参数、响应数据

基本信息
        接口名称、请求方法、请求路径、接口描述

请求参数
请求头(headers)
请求体(body)
        前提:post和put是有请求体
        内容:参数名称、参数类型、是否必填、示例、备注等

响应内容
        状态码
        响应数据:参数名称、参数类型、是否必填、示例、备注等

API文档示例: 

用户认证(登录注册)

 基本信息:

path:/app/v1_0/authorizations

Method:POST

接口描述

线上地址:http://ttapi.research.itcast.cn/app/v1_0/authorizations

返回状态码:

        201 ok

        400 请求参数错误(包括:参数缺失、手机号格式不正确、验证码时效等)

        507 服务器数据库异常

token说明

        token用于访问需要身份认证的普通接口,有效期2小时

请求参数:

 Headers

参数名称参数值是否必须示例备注
Content-Typeapplication/json

Body

名称类型是否必须默认值备注其他信息
mobilestring 手机号 
codestring 短信验证码 

返回数据

名称类型是否必须默认值备注其他信息
messagestring提示信息
dataobject数据
       L tokenstring用户token令牌

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值