接口测试价值与体系
接口测试概念
- 接口:不同的系统之间相互连接的部分,是一个传递数据的通道
- 接口测试:检查数据的交换、传递和控制管理
接口测试的价值
- 传统的测试方法成本急剧上升
- 测试效率下降
常见的接口协议
网络模型
常见接口协议
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
- 协议:http
- 域名:
www.baidu.com
- 端口:跟在域名后面,域名和端口之间使用“:”作为分隔符,非必须,如果省略端口部分将采用默认端口
- 路径:/s
- 请求参数: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:删除资源
接口测试用例设计
接口测试流程
需求分析 → 测试设计 → 测试用例评审 → 测试执行 → 验收 → 预发布 → 上线
接口测试设计思路
接口测试用例要素
- 用例名称
- 接口地址
- 请求方式
- 前置条件
- 请求头部
- 请求参数
- 响应状态码
- 预期响应结果