• 11
  • 11
分享
  • 接口测试基础知识整理——软件测试圈
  • 饭团🍙 2021-06-28 10:54:42 字数 3281 阅读 3152 收藏 11

1、接口

接口可分为:硬件接口、软件接口;(目前仅关注软件层面的接口知识)。

接口:指系统或者组件之间的交互点,通过这些交互点可实现数据的交互(数据交互的通道)。

1.jpg

1.2、接口类型

按照范围划分:系统之间的接口、系统内部的接口。

系统之间的接口:多个内部系统之间的交互,内部系统与外部系统的交互;

程序内部的接口:方法与方法之间的接口,模块与模块之间的接口;

2.jpg

2、接口测试

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

2.1、接口测试原理

模拟客户端向服务器发送请求,服务器接收请求后进行相应的业务处理,并向客户端返回响应数据,检查响应数据是否符合预期。

3.jpg

2.2、接口测试的特点

  1. 测试可以提前介入,提早发现Bug,符合质量控制前移的理念;

  2. 可以发现一些页面操作发现不了的问题;

  3. 接口测试低成本、高收益;

  4. 接口测试是从用户的角度对系统(业务层面)进行全面的检测;

2.3、接口测试的实现方式

  1. 使用接口测试工具来实现(比如:JMeter、Postman);

  2. 通过编写代码来实现(比如:Python + Requests);

3、接口自动化测试

3.1、概念

接口自动化测试:是让程序或工具代替人工自动完成对接口进行测试的一种过程。

4、HTTP协议

4.1、HTTP协议介绍

HTTP(HyperText Transfer Protocol):超文本传输协议,是一个基于请求与响应模式的、应用层的协议,也是互联网上应用最为广泛的一种网络协议。

4.1.1、HTTP协议的特点

  1. 支持客户端/服务器模式

  2. 简单快速

  3. 灵活

  4. 无连接

  5. 无状态

4.1.2、URL

URL:统一资源定位符,是互联网上标准资源的地址。HTTP使用URL来建立连接和传输数据。

URL格式: 协议、域名、端口号、资源路径、参数

http://www.itcast.cn:8080/news/index.html?uid=123&page=1

协议部分:“http”,常见的协议有HTTP,HTTPS、FTP等

域名部分:“www.itcast.cn”,也可以使用IP地址作为域名使用

端口部分:“8080”,默认端口可以省略,默认端口(HTTP:80,HTTPS:443,FTP:21)

资源路径部分:“/news/index.html”(图片、视频、音频、链接、接口等)

查询参数部分:“uid=123&page=1”,“?”:隔离主体与参数部分内容;可以允许有多个参数,多个之间用“&”作为分隔符

4.1.3、HTTP请求

http请求由三部分组成,分别是:请求行、请求头、请求体

请求行:请求行用来说明请求方法、要访问的资源以及所使用的协议版本。

GET:从服务器获取资源(一项或多项)
POST:在服务器新建一个资源
PUT:在服务器更新资源(客户端提供改变后的完整资源)
DELETE:从服务器删除资源
HEAD:请求获取由Request-URI所标识的资源的响应消息报头
TRACE:请求服务器回送收到的请求信息,主要用于测试或诊断
CONNECT:保留将来使用
OPTIONS:请求查询服务器的性能,或者查询与资源相关的选项和需求

请求头:紧接着请求行,请求头部由键值对组成,每行一对。 请求头部通知服务器有关于客户端请求的信息,典型的请求头有:

User-Agent:产生请求的浏览器类型
Accept:客户端可识别的内容类型列表
Content-Type:请求体数据的类型,常见的类型有:
text/html: HTML格式
text/plain:纯文本格式
image/jpeg:jpg图片格式
application/json: JSON数据格式
application/x-www-form-urlencoded: form表单数据被编码为key/value格式发送到服务器(表单默认的提
交数据格式)
multipart/form-data: 在表单中进行文件上传时使用

请求体:

请求体不在GET方法中使用,经常在POST、PUT方法中使用
请求体的数据可以是:表单数据、文本、XML、JSON
与请求数据相关的最常使用的请求头是Content-Type和Content-Length

4.1.4、HTTP响应

HTTP响应也由三个部分组成,分别是:状态行、响应头、响应体。

状态行:状态行由协议版本号、状态码、状态消息三部分组成。

1xx:指示信息--表示请求已接收,继续处理
2xx:成功--表示请求已被成功接收、理解、接受
3xx:重定向--要完成请求必须进行更进一步的操作
4xx:客户端错误--请求有语法错误或请求无法实现
5xx:服务器端错误--服务器未能实现合法的请求

响应头:响应头用于描述服务器的基本信息,以及数据的描述,服务器通过这些数据的描述信息,可以通知客户端如何处理响应数据。

响应体:响应体就是响应的消息体,数据可以是普通文本、XML、JSON、HTML源码。

4.1.5、状态码

状态码状态消息动词说明
200OK [GET]服务器成功返回用户请求的数据
201CREATED[POST/PUT] 用户新建或修改数据成功
202Accepted[*] 表示一个请求已经进入后台排队(异步任务)
204NO CONTENT[DELETE]用户删除数据成功
400Bad Request [POST/PUT] 客户端请求有语法错误,不能被服务器所理解
401Unauthorized[*] 表示用户没有权限(令牌、用户名、密码错误)
403Forbidden*] 表示用户得到授权,但是访问是被禁止的
404Not Found[*]请求资源不存在(比如:错误的URL)
406Not Acceptable[GET]请求资源不存在(比如:错误的URL)
410Gone[GET] 用户请求的资源被永久删除,且不会再得到的
500INTERNAL SERVER/ERROR[*] 服务器发生错误
503Server Unavailable[*] 服务器当前不能处理客户端的请求,一段时间后可能恢复正常

5、接口规范

5.1、RESTful

5.1.1、定义

一种软件架构风格、设计风格而不是标准,只提供了一组设计原则和约束条件。

5.1.2、RESTful接口风格

暂时空着

6、接口测试流程

6.1、接口测试流程

  1. 需求分析:主要依据需求文档;

  2. 接口文档解析:(API文档);

  3. 设计测试用例:

  4. 执行测试(1、接口工具;2、代码)

  5. 接口缺陷管理与跟踪;

  6. 生成测试报告;

  7. 接口自动化持续集成;

7、接口文档

7.1、介绍

接口文档:API文档,一般开发人员编写,描述系统所提供接口信息的文档。(请求、响应)

7.2、编写接口文档的原因

  1. 能够让前端开发和后台开发人员更好的配合;

  2. 项目迭代或者项目人员更迭时,方便后期人员查看和维护;

  3. 方便测试人员今早介入;

7.3、接口文档内容

主要包含以下信息:

基本信息:

接口名称、请求方法、请求路径(接口地址(path))、接口描述

请求参数

请求头
请求体(参数名称、参数类型、是否必填、示例、备注等)

返回数据

不同情况的响应状态码
响应数据(具体的响应数据名称、类型、是否必填、默认值、示例、备注)

7.3.1、接口文档示例

4.jpg

5.jpg

6.jpg

8、接口测试用例设计

8.1、功能测试用例模板

功能测试用例模板:

用例编号、用例标题、测试项目、用例级别、预置条件、测试输入、执行步骤、预期结果

8.2、接口测试用例模板

ID

模块

用例标题

接口名称

请求

请求URL
请求方法
请求头
请求数据类型
请求体(请求参数)

预期结果

响应状态码
响应数据

7.png

正向功能:(通过性测试)

正常:数据的格式、大小等全部正确;

反向测试:(异常测试)

异常:数据长度、大小、格式、必填、重复、空字符、参数多(少)、无参数、错误参数等情况;

9、接口测试

9.1、接口测试的测试点

功能测试:单接口功能、业务场景功能;

性能测试:响应时间长、吞吐量、并发数、服务器资源使用率;

安全测试:敏感数据是否加密、SQL注入、其他;


作者:石头缝里的小松鼠

原文链接:https://blog.csdn.net/yutian8233/article/details/118089424

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   继猎豹移动CEO傅盛与金沙江创投董事总经理朱啸虎“互怼”后,朱啸虎又发了朋友圈解释了一番。  他表示,昨天的对话造成很多误解,其实我们应该是国内垂直AIGC真正出手最多的早期投资人(这句话在对话中被故意删掉了)。  其核心观点为不要迷信通用大模型,“明年3.5就成commodity,3年后4也将是commodity!对于大部分创业者,场景优先,数据为王!”朱啸虎称。作者:佚名原文链接:新浪科技_新浪网(sina.com.cn)
            0 0 1346
            分享
          • 一、大数据:大数据是一个大的数据集合,通过传统的计算技术无法进行处理。这些数据集的测试需要用各种工具、技术、框架进行处理。大数据涉及数据创建,存储、检索、分析,而且它在数量、多样性、速度方面都很出色。二、大数据的测试类型:验证其数据处理、性能和功能测试是关键;处理:批量、实时、交互;数据质量测试:字段一致性、准确性、重复性、有效性、数据完整性性能测试。三、大数据的测试步骤:step1:数据阶段验证:pre-Hadoop阶段,数据预测试阶段来自各方面的数据资源应该被验证,来确保正确的数据被加载进系统;将源数据与推送到Hadoop系统中数据进行比较,确保他们匹配;验证正确的数据被提取并加载到HDF...
            15 15 1076
            分享
          • 前言业务:银行类app具体模块业务讲解:掌上生活(消费/理财)消费:与电商平台业务类似饭票:GPS定位城市服务、饭票购买消费、餐厅查询、代金券、周三五折、banner图、我的饭票、我的抵扣券影票出行费用代缴模块 水费、电费、天然气(暖气费用代缴)便民服务 住房公积金、医保、社保、交通罚款、商业保险(惠民保)、个人信用报告测试需求文档的编写(0.5-1天):测试需求文档是对需求文档中的需求点进行整理成测试人员可测试的功能点的过程实战:测试需求会写、饭票业务比较熟悉控件:控件也称为组件或者构件,通常俗称第三方开发控件,是软件中可重复使用的功能模块,如具有复杂功能的菜单、表格、报表或者用户界面等,可...
            0 0 1894
            分享
          •   最近看到一个特有意思的话题,叫《世界第一个精神变态人工智能诞生》,我一下子就被吸引住了。但是,随着读文章的深入,我却陷入了对过往一幕幕的沉思中,感叹、唏嘘不已。趁着这个机会,我来给大家说说这十几年测试生涯中记忆犹新的一件事情。  先来大致讲下《世界第一个精神变态人工智能诞生》说的什么事吧。事情的起因是尼采的一句名言"当你凝视深渊的时候,深渊也在凝视着你",意思就是当你在足够近的距离审视着罪恶的时候,这股罪恶往往会形成反噬之力,把你拽入到深渊之中,你也会变得罪恶起来。然后在今年四月份,麻省理工学院媒体实验室有一个三人团队鼓捣出了一个被罪恶反噬的人工智能--诺曼(Norma...
            3 2 3541
            分享
          • 1. 新增接口并发测试后,会导致接口中的编号重复       我们在功能测试期间往往很难发现此类缺陷,即并发测试过程中,出现编号重复的情况,有些编号如果是唯一性的,代码层面没有做好控制的话,并发测试期间就会导致编号重复,在生产环境中出现该问题将造成严重的后果。例如沐沐在性能测试过程中就遇到了并发期间订单号重复的情况。所以尽量要在功能测试期间,识别出此类业务场景,通过并发测试的方式,验证是否会出现编号重复的情况。2. 新增接口并发测试后,各项性能指标正常,但是列表无法加载出数据      在对新增场景并发测...
            2 0 3834
            分享
      • 51testing软件测试圈微信