您可以捐助,支持我们的公益事业。

1元 10元 50元





认证码:  验证码,看不清楚?请点击刷新验证码 必填



  求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Model Center   Code  
会员   
   
 
     
   
 
 订阅
接口测试之HTTP协议、接口规范
 
作者:limy_liu
  1730  次浏览      19 次
 2023-4-28 
 
编辑推荐:
本文主要介绍了接口测试之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个也是可以的。

   
1730 次浏览       19
相关文章

中央计算的软件定义汽车架构设计
汽车电子控制系统中的软件开发过程
一文读懂汽车芯片-有线通信芯片
OTA在汽车上有哪些难点痛点?
相关文档

汽车设计-汽车的整体结构及动力系统
自动驾驶汽车软件计算框架
SysML在汽车领域的应用实践
电子电气架构-大陆汽车系统架构平台
相关课程

AutoSAR原理与实践
功能安全管理体系(基于ISO26262)
MBSE(基于模型的系统工程)
基于SOA的汽车电子架构设计与开发

最新活动计划
MBSE(基于模型的系统工程)4-18[北京]
自然语言处理(NLP) 4-25[北京]
基于 UML 和EA进行分析设计 4-29[北京]
以用户为中心的软件界面设计 5-16[北京]
DoDAF规范、模型与实例 5-23[北京]
信息架构建模(基于UML+EA)5-29[北京]
 
 
最新文章
在EA中内嵌文档- Artifact
EA中模型视图
EA中的实体关系图
使用EA进行风险建模
EA中的项目词汇表
EA的模型导出或导入csv文件
自定义表格(Custom Table)在EA中的使用
Gap Analysis Matrix(差距分析矩阵)
更多...   
MBSE工具
MBSE平台
建模工具 EA
模型库-Model Center
需求管理-ReqManager
自动建模-Modeler
多级仿真-Sys Simulator
代码工程-Code Engineer
文档生成器-DocGenerator
更多...   
成功案例
广汽研究院 SysML+EA+软件分析设计
高合汽车研发部门 建模工具EA、WebEA、学习视频
国汽智联 建模工具EA、模型库、WebEA和iSpace
亿咖通 MBSE工程体系与工具链咨询
中航无人机 MBSE工具链
吉利汽车 购买EA工具
华科汽车零部件 购买EA工具
东风岚图汽车 购买EA工具 以及EA定制开发
更多...