本文主要内容包括:
接口的定义
接口的分类
为何要进行接口测试
接口文档示例
Postman 工具简介
借助 Postman 完成 HTTP 请求接口测试
Postman + Newman + Jenkins 实现接口自动化测试
一、接口定义
软件不同部分之间的交互接口。通常就是所谓的 API――应用程序编程接口,其表现的形式是源代码。 —— [ 百度百科 ]
我们常说的接口一般指两种:
API:应用程序编程接口。程序间的接口
GUI:图形用户界面。人与程序的接口
这里我们所说的接口特指 API 接口。API 接口定义:对协议进行定义的引用类型。
好多公司开发人员分前后端,他们之间如何配合工作的,就是其中一方定义接口,另一方来调用接口,以实现预期功能。
二、接口的分类
- 接口分类
HTTP 接口
Webservice 接口
RESTful 接口
WebService 接口是走 soap 协议,请求报文和返回报文都是 xml 格式,通过 SoapUI 工具进行测试;
HTTP API 接口走 HTTP 协议,通过路径来区分调用的方法,请求报文入参有多种形式,返回报文一般为 json 串,最常见的是 get 和 post 方法!
三、为何要进行接口测试
- 接口测试必要性
当今的系统复杂度不断上升,传统的测试方法成本急剧增加且测试效率大幅下降,所以就要做接口测试。
同时,接口测试相对容易实现自动化持续集成,且相对 UI 自动化也比较稳定,可以减少人工回归测试人力成本与时间,缩短测试周期,支持后端快速发版需求。
接口持续集成是为什么能低成本高收益的根源。现在很多系统前后端架构是分离的,从安全层面来说,只依赖前端进行限制已经完全不能满足系统的安全要求(绕过前面实在太容易), 需要后端同样进行控制,在这种情况下就需要从接口层面进行验证。
前后端传输、日志打印等信息是否加密传输也是需要验证的,特别是涉及到用户的隐私信息,如身份证,银行卡等。
-
接口测试原理
模拟客户端向服务器发送请求报文,服务器接收请求报文后对相应的报文做处理并向客户端返回应答,客户端再接收应答的一个过程。 -
接口测试范围
接口的功能、性能、安全性。重点关注数据的交换,传递和控制管理过程,还包括处理的次数。
接口测试对象是接口,但随着系统复杂度越来越高,接口越来越多,完全覆盖是一件很困难的事情。
通常情况下主要测试最外层的两类接口:数据进入系统的接口(调用外部系统的参数为本系统使用)、数据流出系统接口(验证系统处理后的数据是否正常)
四、接口文档示例
- 接口文档应该包括哪几部分?
接口说明
调用的 url
请求方法(get、post)
请求参数,参数类型、请求参数说明
返回参数说明
返回示例
- 示例
-
注:上图接口文档工具为 ShowDoc
五、Postman 工具简介
- Sidebar 侧边栏
Postman 侧边栏允许你查找、管理请求和集合。侧边栏分为两个主要的选项卡,包括历史和集合选项卡。可以拖动右边的边来调整侧边栏的宽度。侧边栏也可以隐藏到小屏幕(标题栏 view—>toggle side bar)。
(1)历史选项卡
通过 Postman 应用程序发送的每个请求都保存在侧边栏的 History 选项卡中。
(2)集合选项卡
在侧栏中创建和管理集合选项卡的集合。
- Header toolbar
-
Postman 的顶部工具栏包含以下选项:
新建按钮——可以新建请求,集合,环境等
运行按钮-打开集合运行页面
导入按钮——导入 Postman 文件、文件夹、form link 等
新窗口图标-打开一个新的 tab 页、新的窗口、新的 runner 等
构建器和团队库选项卡——在请求生成器和 Team Library 视图之间切换
抓取 API 请求图标——使用 postman 抓取 API 请求
同步状态图标——同步 API 请求图标
用户下拉——管理集合链接和你的个人资料或登录 / 登出,你的 Postman 帐户
开放 API 集合(点击打开一个网址)
通知图标-接收通知或广播
设置图标——管理 Postman 应用程序设置,并找到其他支持资源
❤——分享按钮
- Builder
Postman 通过选项卡布局,用于在构建器中发送和管理 API 请求。上半部分是请求构建器,下半部分是响应查看器。
Cookies——管理 cookie 模式是通过点击 cookie 链接访问的。该特性允许你管理与请求相关的 cookie。
Code——生成的代码片段模式通过保存按钮下面的最右边的 Code 链接。该特性允许你生成与请求相关的代码片段,该请求支持 20 多种语言(http、java、go 等语言)
4. Console
Postman 有两个控制台,可以帮助我们了解系统后台到底发生了什么。
Postman Console——包含 HTTP 请求和响应的运行日志。来自脚本的日志消息 (如在 console. Log 中)。这个功能只能在 Postman 的本地应用中使用。
DevTools Console——可以在开发期间记录诊断信息。
六、借助 Postman 完成 HTTP 请求接口测试
- 借助 Postman Echo 演示下各种请求的构建方法
(1)Get 请求
https://postman-echo.com/get?foo1=bar1&foo2=bar2
HTTP GET 请求方法是从服务器检索数据。数据由惟一 URI(统一资源标识符) 标识。GET 请求可以使用 “查询字符串参数” 将参数传递给服务器。例如,在下列请求中,http://example.com/hi/there?hand=wave,参数 “hand” 的值等于 “wave”。
(2)POST:URI 传参