接口测试总结

本文总结了接口测试的核心要点,包括接口测试原理、特点、自动化测试策略以及Http协议规则。详细阐述了Http协议的特点、URL格式、请求响应结构,介绍了RESTful接口风格,并提供了接口测试流程及用例设计方法。旨在帮助读者全面理解并实施接口测试。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

接口测试要点

对系统或组件之间的接口进行测试,主要是校验数据的交换、传递和控制管理过程,以及相互逻辑依赖关系。(验证传递数据的正确性和相互逻辑依赖关系)

接口测试原理

  • 主要针对的测试目标是服务器
  • 用工具或代码模拟客户端向服务器进行请求,验证服务器返回的数据是否符合预期。使用断言来判断预期和实际是否一致。

接口测试特点

1、测试提前介入,提早发现Bug
2、可以发现一些页面操作发现不了的问题
3、低成本高效益,可实现自动化
4、从用户角度进行全面测试

自动化接口测试

考虑用户场景,借助工具和代码,模拟客户端发送请求给服务器,借助断言判断预期和实际响应是否一致。

Http协议(规则)

特点

1、支持客户端/服务器模式
2、简单快速
3、灵活
4、无连接(通过IP+port)
5、无状态(请求后TCP连接断开)

URL格式

Uniform Resource Locator 统一资源定位符,是互联网上标准资源的地址(唯一地址)。在网络环境中唯一定义一个数据资源。

  • 协议://域名(IP):端口(0-65535)/资源路径?参数(查询参数)
    1、协议:规定数据传输的方式
    2、域名(IP):在网络环境中找到主机
    3、端口(port):在网络主机上,标识一个进程(应用程序),常省略(8080端口是网络通信常用)
    4、资源路径:标识网络资源(文件、图片、音视频、变量等)(资源路径为/时相当于指向首页)
    5、查询参数:传递给资源路径对应的数据
HTTP请求

作用:客户端发送请求给服务端所使用的协议,规定发送给服务器的数据传输的语法格式。
整体格式:

  • 请求行:格式=请求方法 {空格} URL {空格} 协议版本[HTTP/1.1]
  • 请求头:语法格式如下图(key:value),一些需要留意的请求头需要记住:
    Content-Type:标识请求体的数据类型,决定接收方以什么形式、编码来读取请求体: 默认为Text/HTML格式,还有表单,Json格式等等
    1、application/x-www-form-urlencoded:表单类型,以键值对方式提交数据,例如:account=demo&password=xx。另外利用AJAX提交数据时,也可使用该方式。
    2、multipart/form-data:将表单的数据处理为一条消息,以标签作为单元用分隔符分开。这种方式可以将数据分成很多部分,既可以上传键值对也可以上传文件或多个文件。
    3、application/json: 提交json字符串。json格式支持比键值对复杂的结构化数据。
    4、text/xml:xml方式传输数据,提供统一的方法来描述和交换独立于应用程序或供应商的结构化数据。
    5、binary(默认值:application/octet-stream):二进制文件类型,如application/pdf,指定了特定二进制文件的MIME类型。
    User-Agent:当前请求的浏览器类型
    请求头实例
  • 空行:表示请求头结束
  • 请求体:请求发送时携带的数据,由Content-Type的值决定
HTTP响应

作用:服务器针对客户端发送的http请求返回响应数据。规定返回给客户端的数据格式。
格式:
1、响应行:状态行, 协议版本(空格)状态码(空格)状态描述
1XX:表示指示信息。请求已接收,需要继续处理
2XX:表示请求已被成功接收、理解、接受
3XX:表示重定向,要完成请求需要进一步的操作
4XX:表示客户端错误,请求有语法错误或请求无法实现
5XX:表示服务器错误,服务器未能实现合法的请求
2、响应头:键值对,Content-Type:响应体中的数据类型。
3、空格:代表响应头结束
4、响应体:绝大多数不为空。请求成功返回数据,请求失败返回错误信息,数据类型由Content-Type决定。

接口风格

1、传统接口风格:请求只是用两种请求方式,URL不唯一,同一个操作可以对应不同的URL。状态码只要是200.
查询信息:Get/Post
添加/修改:Post
删除用户:Get/Post
2、RESTful风格:(表现层状态转化)。
例如:
查询某个用户:http://127.0.0.0:8080/web/users/1 200
添加用户:Post http://127.0.0.0:8080/web/users 201
修改用户:Put http://127.0.0.0:8080/web/users/1 201
删除用户:Delete http://127.0.0.0:8080/web/users/1 204
特点:
1、每一个URL代表一种资源
2、客户端通过四个Http的请求方法,对服务器资源进行操作,实现表现层状态转化。(表现层指数据的不同股表现形式:如图片、文字表现同一个数据对象。)
3、接口传输数据主要是Json格式。

接口测试流程

1、需求分析:需求文档
2、接口文档解析:开发人员编写接口文档
3、设计测试用例
4、执行测试:接口测试工具、代码实现
5、接口缺陷管理与跟踪
6、生成测试报告
7、接口自动化持续集成(可选)

  • 接口文档:描述接口信息的文档。前后端更好配合,项目迭代,方便后期维护。
  • 接口文档内容:1、简要描述 2、请求Url(资源路径) 3、请求方法 4、请求的参数 5、返回成功的效果 6、返回失败的效果 (基本信息+请求参数+返回数据)
接口测试用例设计方法和思路
单接口功能:

主要针对参数的测试,来测试该接口的功能是否达到要求:

  • 正向:必选参数、组合参数(必选+可选)、全部参数、参数默认值
  • 反向:输入多参数、少参数、无参数、错误参数名
    举例:登录接口的测试,通过输入账号为手机号,密码来登录的接口:
    正向:
  • 登录成功:正确的账号+密码
    反向:
  • 账号为空
  • 账号包含特殊字符、字母
  • 账号长度超过11位(12)
  • 账号长度少于11位(10)
  • 账号未注册
  • 密码为空
  • 密码错误
业务场景功能:

1、组织业务场景时,一般只需做正向测试即可。
2、用最少的用例覆盖最多的业务场景。

测试用例文档要素

编号、测试名称(标题)、模块、优先级、前提条件、请求方法、URL、请求头、请求体(数据)、预期结果。 例如下图:
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值