市面上有许多种风格的Web API,目前最流行也最容易访问的一种风格是基于REST风格的API,后续的文章主要以REST API接口进行讲解。本篇文章主要就“接口测试相关知识”进行展开讲解,包括接口测试相关概念,测试的内容,使用的工具以及一个简单的实例化接口测试和接口测试质量标准等。希望感兴趣的小伙伴可以坚持看下去同时欢迎提出宝贵的意见让我们一起进步!
01:接口的相关概念(API)
1)接口定义:表示某个对象和外界交互的部分,一个API就是一个Interface。
2)接口分类:一个软件产品,可能有如下几种和外界交互的部分。
①提供用户界面给用户使用(UI)
②提供消息交互接口和其他应用程序交互(基于SOAP的Web Service和REST API)
③提供编程接口,供开发者的程序调用
④其他接口
3)Web服务接口:互联网产品对外提供的接口,有Web服务接口,Web service接口和Web API。
4)注意事项:目前REST类型的接口基本上都是基于HTTP协议
02:接口测试的相关概念
1)接口测试:是测试系统组件间接口的一种测试。
2)核心功能:构建HTTP请求消息和解析收到的HTTP响应消息
3)使用场景:主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。
4)测试重点:检查数据的交换,传递和控制管理过程以及系统间的相互逻辑依赖关系等。
5)QA一定要做Web API测试吗?一般情况下看该接口是否对外提供
03:如何做接口测试
1)概述:由于前后端调用主要是基于http协议的接口,因此通过工具或代码模拟http请求的发送与接收
2)常用的第三方工具:postman、jmeter、soupUI
04:后端接口测试的内容
05:如何做接口测试一个简单的实例化接口测试
增加课程接口文档内容如下所示:
(1)增加课程:用来创建一个新的培训课程
(2)请求语法:POST /api/mgr/sq_mgr/ HTTP/1.1
(3)内容类型:Content-Type: application/x-www-form-urlencoded
(4)url请求参数:无url请求参数
(5)请求体内容
action 必填 填写add_course,表明是为了创建课程
data 必填 存储创建课程的信息,包括名称、描述、显示次序。为json格式。例如:
{
"name":"python",
"desc":"python基础课程",
"display_idx":"4"
}
列出课程接口文档内容如下所示:
(1)列出课程:用来列出所有的培训课程
(2)请求语法:GET /api/mgr/sq_mgr/?action=list_course&pagenum=1&pagesize=20 HTTP/1.1
(3)url请求参数:
action 填写list_course,表明是要列出所有课程信息
pagenum 表示当前要显示的是第几页,目前固定填写1
pagesize 表示一页最多显示多少条课程信息,目前固定填写20
(4)请求体内容:无
06:接口测试持续集成
对接口测试而言,持续集成自动化是核心内容。通过持自动化的手段我们才能做到低成本高收益。包括但不限于:
①流程方面:回归阶段加强接口异常场景的覆盖度,最终实现全流程自动化
②结果展示:更加丰富的结果展示、趋势分析、质量统计和分析等
③问题定位:报错信息,日志更精准,方便问题复现与定位。
④结果校验:加强自动化校验能力
⑤代码覆盖率:不断尝试由目前的黑盒向白盒下探,提高代码覆盖率。
⑥性能需求:完善性能测试体系,通过自动化的手段监控接口性能指标是否正常。
07:接口测试质量标准
①业务功能覆盖是否完整
②参数验证是否达到要求(边界,业务规则)
③接口异常场景覆盖是否完整
④接口覆盖率是否达到要求
⑤代码覆盖率是否达到要求
⑥性能指标是否满足要求
⑦安全指标是否满足要求