编辑推荐: |
本文主要介绍了接口测试之HTTP协议、接口规范(传统/RESTful风格)、项目环境、接口测试流程、解析接口文档、接口测试用例设计等相关内容。希望对你的学习有帮助。
本文来自于CSDN,由Linda编辑、推荐。
|
|
1. 接口及接口测试的概念
接口:
简单的说:是指系统或组件之间的交互点。
接口的类型(理解):
按照范围来划分:
程序内部的接口:方法与方法之间,模块与模块之间,函数与函数之间。
系统之间的接口:系统内部之间的接口和内部系统与外部系统之间的接口
接口测试(理解)
接口测试主要测试数据的传递、交互、控制管理过程以及相互的依赖关系。
接口测试的原理(理解)
模拟客户端发送请求,服务器接收请求后会进行相应的业务处理,并返回响应数据,校验响应数据与预期是否一致。
注意:http请求是使用tcp/ip协议来建立连接的。(TCP/IP三次握手)
接口测试的特点(重要,为什么要进行接口测试)
低成本高收益
提前介入测试
可以发现页面操作发现不了的问题
和单元测试相比更贴近用户角度
接口测试的实现方式
工具:Postman和Jmeter
代码:Python + Requests + Unittest
自动化接口测试的概念
介绍:简单的说,自动化接口测试就是指:程序代替人工进行接口测试的过程。
2. HTTP协议(重点)
HTTP请求
七层网络架构
物理层、数据链路层、网络层、传输层、会话层、表示层、应用层(HTTP协议在应用层)
HTTP协议介绍
HTTP协议是一个超文本传输协议,是一个基于请求与响应模式,应用层协议。应用非常广泛的协议。
HTTP协议的特点(重点)
支持客户端和服务器模式
简单快速:通过URL建立连接和传输数据,而URL结构简单,数据量小,所以简单快速
无状态:就是指不会不会保存状态数据
无连接:用完就扔,不是不建立连接,而是指建立连接之后,只会处理一个请求,在处理完成并接收到客户端响应结果之后就关闭连接
灵活:支持多种数据内容类型:包括json,文本,表单,xml,多媒体
URL(重点)
介绍:简单的说,URL就是统一资源定位符,定位互联网中资源的地址。HTTP协议使用URL建立连接和传输数据。
URL的组成部分:
http://www.baidu.com/s?wd=马云&id=1 |
协议部分:http
域名部分:www.baidu.com
端口:http默认端口:80
资源路径:简单的说,就是接口的名称。
/s
请求参数:wd=马云&id=1
HTTP请求
组成:
请求行:是指HTTP报文中,HTTP请求的第一行
请求头:HTTP请求报文中第一行之后,空行之前
请求体:HTTP请求报文中空行之后
请求行 组成:请求方法,资源,协议和版本
请求方法:Get、Post、Put、Delete
请求头
描述客户端请求信息,
其中,有两个键值对比较重要
User-Agent:描述客户端的浏览器类型
Content-Type:描述请求体中的数据类型
请求体(就是指请求数据的内容实体)
Get请求没有请求体
经常Post方法中使用请求体
请求体的数据类型有:Json,xml,文本,表单,图片,文件,多媒体等数据类型
请求体经常与请求头中的Content-Type和Content-Length结合使用
HTTP响应
HTTP响应组成部分:状态行,响应头,响应体 HTTP响应状态行:
协议和版本:HTTP/1.1
状态码:200
1xx:请求已经被接收,需要进一步处理
2xx:成功
3xx:重定向
4xx:客户端错误
5xx:服务端错误
注意:如果出现了5xx的错误,既有可能是Bug也有可能是服务器环境问题,需要找开发进一步确认。
状态消息:OK
HTTP响应头:描述服务器相关信息的数据,可以用来通知客户端怎么处理返回的响应数据
HTTP响应体:就是指服务器处理之后具体的响应数据,支持Json,Xml,Html,文本,图片等数据
3, 常用状态码介绍(重要但不紧急)
200:成功,标准HTTP协议中Get方法
201:修改或者新增数据成功,对应的请求方法是Post/Put
204:删除数据成功,对应的请求方法是Delete
400:客户端语法错误
401:没有登陆,没有得到权限(令牌错误,用户名或密码错误)
403:也没有得到授权,比如被防火墙拦截或者白黑名单等
404:请求资源不存在
500:服务器错误
503:服务器错误,过一段时间可能会恢复正常
3. 接口规范(了解)
传统风格的接口规范
特点:
请求方式:只有Get和Post
URL:多种多样
HTTP响应状态码:200
Restful风格
介绍:是指一种软件架构风格,而不是标准;是指一系列设计原则和约束条件
定义:如果一个架构的设计,符合REST设计原则和约束条件,那么就称为RESTful。
REST:是指表现层状态转化:就是指对某种资源数据的增删改查
RESTful接口特点(掌握) :
请求方式
获取操作:Get
新增操作:Post
修改操作:Put
删除操作:Delete
URL
不再是多种多样,URL的定义有特定的标准
HTTP响应状态码:
Get:200
Post:201
Put:201
Delete:204
RESTful架构特点(了解) :
每个URL都是代表一个资源
客户端和服务器之间,传递资源的某种表现形式(比如:传递json,传递图片,传递文件等)
客户端通过Get、Post、Put、Delete四个请求方法,对服务器资源进行操作,改变服务器资源数据的状态。
接口测试最常用的数据类型是Json
4. 项目环境介绍
项目介绍
功能模块:组织管理、员工管理、培训管理、考勤管理、工资管理、绩效管理、劳动合同、招聘管理、福利管理
技术架构:
前后端处理流程(前后端分离架构):
技术栈:
前端:使用Node.js和Vue.js架构开发
后端:Spring全家桶(Springboot,Springcloud,SpringMVC,SpringData)
数据库:Mysql+Redis
消息队列:RabbitMQ
5. 接口测试流程(非常重要) 需求分析
熟悉需求,确认业务流程和业务依赖关系
接口文档解析
确定每个业务对应的1个或者多个接口(1个业务可以对应多个接口,1个接口也可以对应多个业务,他们是多对多的关系)例如:登陆接口-----/login
解析接口的请求数据和返回数据。
请求数据:HTTP请求结构中的所有数据,请求行,请求头,请求体
返回数据:状态行,响应头,响应体
设计接口测试用例
根据需求和接口文档设计接口测试用例
执行测试
工具执行:Postman和Jmeter
代码执行:Python + Requests + unittest
接口缺陷管理与跟踪
缺陷管理工具:禅道,Jira
Bug生命周期(了解)
Bug的来源:新写的代码,依赖的包,回归测试产生的,需求产生的,旧版本的bug的
输出接口测试报告
接口自动化和持续集成
6. 接口文档解析
接口文档介绍(了解)
介绍:接口文档是用来描述接口信息的文档,一般由后端开发人员或者架构师输出;又称为API文档。
为什么要写接口文档
方便前后端开发协调工作,提高工作效率。
方便项目迭代和人员更迭时,后期人员进行维护。
方便测试人员进行接口测试。
7. 接口测试用例设计
接口测试点 接口测试用例思路:
和手工测试的思路相同,包括使用测试方法论进行测试,比如:等价类、判定表、因果图、流程分析、场景分析、正交分析等
和手工测试不同的地方:
有接口独有的参数测试
正向:必填参数测试,必填+选填的参数组合测试,全部参数测试
反向(异常):
参数异常:多参,少参,无参,错误参数
数据错误:数据类型不符,数据长度,数据为空,错误数据
业务错误数据:根据实际的业务判断错误数据:比如手机号码中,输入不是手机号码的字符串。
多接口测试
多个接口之间有依赖关系时的测试
接口测试用例思路:
和手工测试的思路相同,包括使用测试方法论进行测试,比如:等价类、判定表、因果图、流程分析、场景分析、正交分析等
和手工测试不同的地方:
有接口独有的参数测试
正向:必填参数测试,必填+选填的参数组合测试,全部参数测试
反向(异常):
参数异常:多参,少参,无参,错误参数
数据错误:数据类型不符,数据长度,数据为空,错误数据
业务错误数据:根据实际的业务判断错误数据:比如手机号码中,输入不是手机号码的字符串。
多接口测试
多个接口之间有依赖关系时的测试
业务场景测试(功能测试也有)
接口测试用例设计:
单接口测试思路设计
1,设计接口用例的结构
ID,模块,用例名称,接口名称,URL,请求方式,请求头,请求参数类型,请求参数,预期结果,实际结果,操作步骤,优先级,前置条件
设计接口测试点
根据测试点,结合接口文档描述和需求描述,按照接口用例结构设计接口用例
注意 :接口用例中的预期结果一般是根据接口文档和需求来确定。但是实际工作中,很多异常场景都需要找开发确认清楚。
面试题 :一天能写多少个接口测试用例?
1,熟悉的项目,写的快,可以写一百多条
2,如果是不熟悉的项目,一天写50-100个也是可以的。
|