1.接口介绍与HTTP
一、接口
1.接口分类
硬件接口:指的是两个硬件设备之间的连接方式
软件接口:指的是软件程序之间的数据交互通道
2.软件接口分类
程序内部接口:同一个系统中模块间的接口
外部接口:跨系统平台与平台间的对接
3.常见接口协议
WebService接口:使用soap协议通过http传输,请求报文和响应报文都是xml格式的,常用的测试工具SopaUI
Http协议接口:使用http协议传输数据,常用测试工具jmeter、Postman等
4.接口测试
基于某种协议,发送请求给服务器,服务器返回响应数据,对响应数据进行分析,判断和我们预期的是否一致,从而验证功能是否正确
5.接口自动化测试流程
理解业务需求
分析接口测试范围
接口测试用例设计
测试框架RestAssured
接口测试用例辨析
框架与用例维护
持续集成
二、HTTP
1.概念
超文本传输协议(Hyper Text Tranfer Protocol)
用于从万维网服务器传输超文本到本地浏览器的传输协议
是基于TCP的应用层协议,不关心数据传输细节,用来规定客户端和服务器的数据传输格式,默认端口为80
基于请求和响应模式的、无状态、应用层协议
2.请求报文
主要由请求行、请求头部、请求体部分组成
请求方法(Request Method):
请求方法 | 备注 |
POST | 创建资源-增加 |
GET | 获取资源-查询 |
PUT | 替换资源-修改 |
DELETE | 删除资源 |
HEAD | 获取服务器响应消息头 |
PATCH | 更新资源,替换部分资源 |
统一定位符(Uniform Resource Locator,URL):schema://host[:port]/path/…/[?query-string]
scheme:协议,如http、https、ftp等
host:域名或者IP地址
port:端口
path:资源路径
query-string:发送参数
请求头(Request Header):
请求头 | 描述 |
Host | 主机ip地址或域名 |
User-Agent | 客户端相关信息,如操作系统、浏览器等信息 |
Accept | 指定客户端接收信息类型,如image/jpg、text/html、application/json |
Accept-Charset | 客户端接收字符集,如gb2312、iso-8859-1 |
Accept-Encoding | 可接收的内容编码,如gzip |
Accept-Language | 接收语言,如zh-cn |
Authorization | 客户端提供给服务端,进行权限认证的信息 |
Cookie | 携带的cookie信息 |
Referer | 当前文档的URL,即从哪个链接过来的 |
Content-Type | 请求体内容类型,如application/x-wwww-form-urlencoded |
Content-Length | 数据长度 |
Cache-Control | 缓存机制,如no-cache |
Pragma | 防止页面被缓存,和Cache-Control:no-cache作用一样 |
3.响应报文
状态码(Status Code):用以表示网页服务器HTTP响应状态的3位数字代码
状态码 | 描述 |
1xx | 请求已接收待处理 |
2xx | 请求成功并返回 |
3xx | 重定向相关,请求资源位置发生了变化 |
4xx | 客户端发送请求错误 |
5xx | 服务器端错误 |
响应头(Response Header):
响应头 | 描述 |
Server | HTTP服务器的软件信息 |
Date | 响应报文的时间 |
Expires | 指定缓存过期时间 |
Set-Cookie | 设置Cookie |
Last-Modified | 资源最后修改时间 |
Content-Type | 响应的类型和字符集,如Content-Type:text/html;charset=utf-8 |
Content-Length | 内容长度 |
Connection | 如Keep-Alive,表示保持tcp连接不关闭,不会永久保持连接,服务器可设置 |
Location | 指明重定向的位置,新的URL地址,如304的情况 |
4.请求方法GET/POST
GET:请求指定的页面信息,返回实体主体(查询)
http/https:协议类型
host:服务器主机ip地址或域名
port:端口号,如果是80可以省略,其它端口必须说明
path:访问资源的路径
?:分隔符,用于区别path和参数
xx=aa、yy==bb:请求参数列表
&:多个参数的连接符号
POST:向指定资源提交数据并进行处理请求(如提交表单或者上传文件),数据包含在请求体中,post请求可能会导致新的资源的建立或者已有资源的修改
post请求相对get请求多了一个body
post请求的数据习惯性放在body里,也可以放url、或者同时放url和body
post提交数据类型:Content-Type(内容类型)
application/x-www-form-urlencoded:原生form表单
application/json:使用json格式提交数据
multipart/form-data:多参数表单
text/xml:xml文本格式
5.Rest和Restful API
Rest(Resource Representational State Transfer)表现层状态转移–架构约束条件和原则–风格用URL定位资源,用HTTP动词描述操作
Restful API:满足Rest约束和设计风格的接口