1. 接口的概念及本质:
接口:实现前端和后端之间数据通信的桥梁,本质就是数据的输入与输出的过程。
接口测试:接口的提供方、接口的调用方之间的交互、逻辑处理。
接口测试的整个实现过程基于通信协议(HTTP),通过该协议发送请求(Request)给服务器,服务器处理并返回相应结果(Response),然后对响应的数据进行分析,判定数据结果是否与预期一致
2.接口类型:
(1)按结构划分:系统内部之间的接口(系统与子系统之间)、模块与模块之间的接口、系统与第三方接口(如支付接口、身份校验接口)
(2)按协议划分:
HTTP类型接口:采用 HTTP 协议(应用层)进行通信,在发送请求时仅会响应一次,响应的数据格式通常是键值对格式,即 JSON 格式数据。
Web Service类型接口:采用 SOAP(应用层)进行通信,SOAP协议实际就是基于 HTTP 协议进行封装,其发送请求和响应请求的数据格式都是 XML 格式。
Windows Sockets类型接口:该接口类型是基于传输层进行封装所得到的 Socket 抽象层,客户端与服务器建立连接后,就可以发送请求和响应,大部分应用为 C/S 架构的软件。
3. 接口测试常用工具:
Jmeter:一款免费、开源的性能测试工具
Postman:工具简单、界面简介
SoapUI:一款免费、开源的测试工具,主要实现 Web Service 类型的接口测试,可以完成 Web Service 的功能、负载、性能等测试。
4.接口测试用例编写要点:
(1)参数类型是否合法(注意 null 类型)
(2)参数取值范围是否合法(使用边界值取值)
(3)参数为空
(4)请求具有先后顺序的情况考虑调换顺序
(5)用例设计一般考虑参数的组合、极值、是否必填、参数类型
6.接口测试流程:
(1)获取需求文档和接口文档
(2)通过需求文档分析接口的业务逻辑要求以及业务边界
(3)通过接口文档分析出接口的技术指标(接口地址、请求方式、入参、出参)
(4)接口测试用例设计(着重于接口测试数据准备)
(5)使用接口测试工具进行接口测试
(6)接口缺陷管理和跟踪
(7)接口自动化持续集成
7. GET/POST/PUT/DELETE 等类型请求详解:
HTTP报文主要有两种类型:请求报文和响应报文
(1)HTTP请求报文:
HTTP请求报文由三部分构成:请求行、请求头、请求体
请求行构成:请求方法、URL、请求协议版本
(2)不同的请求方法:
GET方法:GET方法要求服务器将 URL 定位的资源存储在响应报文中的数据部分,然后将其返回给客户端。请求参数和对应的值拼接在 URL 后面,使用问号 ? 代表 URL 的结尾与请求参数的开始,参数之间使用 & 连接。不同浏览器地址栏存储的字符长度限制是不同的,一般最多只能识别 1024 个字符,所以传送大量数据不适合使用 GET 方法。
POST方法:在 HTTP 请求数据中封装请求参数,并以键值对的形式存在,可以传输大容量的数据。POST方法对传送的数据大小没有限制,而且不会显示在 URL 中。
PUT方法:PUT请求主要是改变服务器数据,对数据进行修改操作,POST方法是对数据进行增加操作。
DELETE方法:用来删除服务器的数据。
GET方法和POST方法的本质区别:
1.GET方法请求参数直接显示在 URL 中,POST方法请求参数显示在请求体中,所以 POST 方法比 GET 方法更安全;
2.浏览器中地址栏的 URL 地址是有长度限制的,POST 方法携带的参数擦灰姑娘度范围可以大于 GET 方法;
3. GET 方法用于获取数据,POST 方法用于提交数据;
(3)请求头:通知服务器关于客户端请求的信息,由键值对组成
Accept:表示客户端允许进行解析的数据文本类型,*/* 表示允许接收解析所有文本数据类型;
Accept-Encoding:表示客户端期望接收到的响应体(body)的压缩编码类型;
Accept-Language:表示客户端允许接收的语言,默认是 zh_cn;
Authorization:
Connection:表示客户端与服务器的连接类型,keep-alive:表示长连接,客户端可以继续向服务器发送请求,且保持当前状态;close:表示会话结束。
Content-Length:表示请求体的文本长度
Content-Type:表示请求或响应实体主体的媒体类型,text/html:html类型,application/json:请求或返回 json 格式数据类型
Cookie:浏览器 cookie
HTTP授权的授权证书 |