BJ学习笔记-接口测试

接口测试价值与体系

接口测试概念

  • 接口:不同的系统之间相互连接的部分,是一个传递数据的通道
  • 接口测试:检查数据的交换、传递和控制管理

接口测试的价值

  • 传统的测试方法成本急剧上升
  • 测试效率下降

常见的接口协议

网络模型

常见接口协议

RPC协议

  • RPC(Remote Procedure Call)
  • 以本地代码调用的方式实现远程执行
  • 主要用于公司内部的服务调用
  • 优点:传输效率更高、性能损耗更低、自带负载均衡策略、更好的服务治理能力
  • 常见的RPC协议
    • Dubbo:Java基础之上的高性能RPC协议
    • gRPC:高性能通用RPC框架,基于Protocol Buffers。PB是一个语言中立、平台中立的数据序列化框架
    • Thrift:与gRPC类似的多语言RPC框架

HTTP协议

  • 请求
    • 请求行:method url protocol
    • 请求方法:GET、POST、PUT、DELETE、HEAD
    • 请求头:Host Cookie User-Agent
    • 请求参数:query
    • 请求体:JSON XML FORM
  • 响应
    • 响应状态体
    • 响应头
    • 响应体

URL和URI

  • URI,统一资源标识符,用来唯一的标识一个资源。
  • URL,统一资源定位符,它是一种具体的URI
  • URL结构:https://www.baidu.com/s?wd=霍格沃兹&rsv_spt=1
  1. 协议:http
  2. 域名:www.baidu.com
  3. 端口:跟在域名后面,域名和端口之间使用“:”作为分隔符,非必须,如果省略端口部分将采用默认端口
  4. 路径:/s
  5. 请求参数:wd=霍格沃兹&rsv_spt=**1

HTTP请求报文

GET /uploads/user/avatar/31438/8216a3.jpg HTTP/1.1
Host: ceshiren.com
Accept-Encoding: deflate, gzip
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache
User-Agent: Mozilla/5.0
(Macintosh; Intel Mac OS X 10_15_0)
AppleWebKit/537.36
(KHTML, like Gecko)
Chrome/80.0.3987.116 Safari/537.36
Accept: image/webp,image/apng,image/,/*;q=0.8
Referer: https://ceshiren.com/
Accept-Language: en,zh-CN;q=0.9,zh;q=0.8
Cookie: user_id=xx;

_homeland_session=xx;

HTTP响应报文


< HTTP/1.1 200 OK
< Server: nginx/1.10.2
< Date: Thu, 12 Mar 2020 09:13:44 GMT
< Content-Type: image/png
< Content-Length: 11390
< Connection: keep-alive

HTTP响应状态码

  • 1xx临时响应,表示通知信息,请求收到了或正在进行处理
  • 2xx表示成功,接受或者知道了
    • 200 成功
  • 3xx表示重定向,要完成请求还必须才去进一步的行动
    • 300 永久移动
    • 302 临时移动
  • 4xx 表示客户端请求错误
    • 403 未授权
    • 404 未找到
  • 5xx 表示服务端错误
    • 500 服务器内部错误
    • 503 服务不可用

Restful架构

  • Restful:Representational State Transfer
  • 借助于HTTP协议的基本请求方法代表资源的状态切换
    • GET:获取资源
    • POST:新增或者更新
    • PUT:更新资源
    • DELETE:删除资源

接口测试用例设计

接口测试流程

需求分析 → 测试设计 → 测试用例评审 → 测试执行 → 验收 → 预发布 → 上线

接口测试设计思路

接口测试用例要素

  • 用例名称
  • 接口地址
  • 请求方式
  • 前置条件
  • 请求头部
  • 请求参数
  • 响应状态码
  • 预期响应结果