【博学谷学习记录】超强总结,用心分享|测试工程师必备技能总结:软件测试-接口测试(接口测试概念,HTTP协议、接口规范、接口测试流程、接口文档解析、接口用例设计)

接口测试课程

课程目标

---  能够根据接口API文档编写接口测试用例

---  能够使用Postman工具进行接口测试,并能够对大量接口用例进行管理、对接口响应结果进行断言、处理多接口的依赖及生成测试报告

---  能够使用Python+Requests封装的接口测试框架,实现接口对象封装、测试用例编写、测试数据管理及生成测试报告

课程大纲

接口测试基础

1. 接口

接口可分为:硬件接口和软件接口;我们这里只关注软件层面的接口。

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


1.1 接口的类型

接口测试分类有许多种,按照范围划分:系统之间的接口和程序内部的接口

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

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

2. 接口测试

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


2.1 接口测试原理

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


2.2 接口测试的特点

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

2.2.2 可以发现一些页面操作发现不了的问题 

2.2.3 接口测试低成本高效益(底层的一个Bug能够引发上层8个左右Bug,接口测试可以实现自动化) 

2.2.4  不同于传统的单元测试,接口测试是从用户的角度对系统进行全面的检测


2.3 接口测试的实现方式

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

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


3. 接口自动化测试

3.1 概念

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


HTTP协议

1. HTTP协议介绍

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


1.1 HTTP协议的特点

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

2. 简单快速

3. 灵活

4. 无连接

5. 无状态


2. URL

URL:(Uniform Resource Locator)统一资源定位符,是互联网上标准资源的地址。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”,可以允许有多个参数,多个之间用“&”作为分隔符


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. HTTP响应

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


状态行

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

状态码有三位数字组成,第一个数字定义了响应的类别:

                  1xx:指示信息--表示请求已接收,继续处理

                  2xx:成功--表示请求已被成功接收、理解、接受

                  3xx:重定向--要完成请求必须进行更进一步的操作

                  4xx:客户端错误--请求有语法错误或请求无法实现

                   5xx:服务器端错误--服务器未能实现合法的请求

响应头 

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

响应体 

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



接口规范

1. 传统接口风格

对用户进行操作的相关接口,包括增删改查

2. RESTful

2.1 定义

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

REST:即(Representational State Transfer)的缩写。词组的翻译是"表现层状态转化"。如果一个架构符合REST原则,就称它为RESTful架构。


2.2 RESTful接口风格


2.3 RESTful架构特点

1. 每一个URL代表一种资源;

2. 客户端和服务器之间,传递这种资源的某种表现层;

3. 客户端通过四个HTTP动词,对服务器端资源进行操作,实现"表现层状态转化";

4. 接口之间传递的数据最常用格式为JSON。


常用的HTTP动词有下面四个:

               GET:从服务器获取资源(一项或多项)

               POST:在服务器新建一个资源

                PUT:在服务器更新资源(客户端提供改变后的完整资源)

                DELETE:从服务器删除资源


接口测试流程


1. 接口测试流程

1. 需求分析

          主要依据需求文档

2. 接口文档解析

一般是由开发人员编写接口文档(API文档)

3. 设计测试用例

4. 执行测试

        使用接口测试工具实现

        通过编写代码实现

5. 接口缺陷管理与跟踪

6. 生成测试报告

7. 接口自动化持续集成(可选)



接口文档解析

1. 接口文档介绍

1.1 什么是接口文档?

接口文档:又称为API文档,一般是由开发人员所编写的,用来描述系统所提供接口信息的文档。 大家都根据这个接口文档进行开发,并需要一直维护和遵守。

1.2 为什么要写接口文档?

1. 能够让前端开发与后台开发人员更好的配合,提高工作效率。(有一个统一参考的文件)

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

3. 方便测试人员进行接口测试


2. 接口文档内容

一个规范的接口文档,要包含以下信息:

1 基本信息

             接口名称、请求方法、请求路径、接口描述

2  请求参数

               请求头

               请求体(包含具体的请求参数名称、参数类型、是否必须、示例、备注)

3  返回数据

             不同情况的响应状态码

             响应数据(包含具体的响应数据名称、类型、是否必须、默认值、示例、备注)


2.1 接口文档示例


3. 接口文档解析案例

查看人力资源管理系统的接口文档,解析以下接口:

1. 登录

2. 添加员工

3. 查询员工

4. 修改员工

5. 删除员工


接口用例设计

1. 接口测试的测试点

2. 接口用例设计的方法与思路

功能测试:验证接口功能是否按照接口文档实现(输入+处理+输出) 

a.  单接口测试: 

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

                         仅必填参数 

                         全部参数 

                          参数组合 

        *反向测试:(异常测试) 

                  参数异常:无参、少参、多参、错误参数 

                   数据异常:数据为空、长度不符、类型不符、错误数据 

                   业务数据异常:结合业务功能考虑输出的各种异常返回情况 

b.  多接口测试:业务场景功能测试(站在用户角度考虑常用的使用场景)

                    接口之间数据依赖


3. 单接口测试

针对人力资源管理系统的登录接口进行测试

4. 场景测试

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,053评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,527评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,779评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,685评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,699评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,609评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,989评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,654评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,890评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,634评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,716评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,394评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,976评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,950评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,191评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,849评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,458评论 2 342

推荐阅读更多精彩内容