定义:
接口测试Interface ,又被称为API,代码级的Interface(API)应用程序编程接口,有的地方则直接称为 Interface,是系统与系统间的接口调用
此种类测试,是接近于灰盒测试的
其作用:实现了两个及两个以上的独立系统之间的数据调用
接口的调用:
- 外部接口——与外部第三方系统之间的,例如:支付、地图、短信等待
- 内部接口——系统内,前端、后端或不同模块之间的
为何做接口测试:
现代软件开发体系结构:前端、后端模块分离 —— 界面布局(HTML/...)&功能逻辑的处理(python/...)
1、什么是协议?
通信双方~(任意机器 手机 浏览器 服务器 。。。。。)的标准
2、如何客户端 从服务端按照协议 获取数据?
- get 请求方法(直接从get 获取数据),请求方式get接口地址和接口参数 是以 ? 隔开, 这里 ? 代表URL 地址 + 键值对的请求 ,这里 & 用来区分多个 键值对
- post 请求方法
get和post请求方法的区别,是post是在请求正文中传递数据,一般用于请求参数的数据要求安全以及数据量大的情况
- SOAP方式
这是外部接口,根据wsdl接口文档进行测试
3、两台机器之间的 交互数据的方式?
- XML数据格式 (SOAP),XML是自定义标签含义 <name>张三</name><age>18</age>
- json 格式,是目前当下流行的格式 {name:zhangsan,age:18}
如何做接口测试?
- 采用工具 SOAPUI + postman
- SOAPUI 工具,用于测试 rest 接口,接口文档:fiddler
- 删除测试 SOAP 类 接口
- web页面=静态布局+动态的结果,组成的。
- 有道的例图:
B/S的服务器结构 —— C/S服务端类似
此图,C/S
B/S
![]()
此图, B/S
服务器的两层结构
服务器的三层结构
服务器的三层结构:
web服务器 —— UI 表现层,在前端(html页面的代码)
应用服务器 —— 逻辑处理层,在后端(接口程序代码)
数据库服务器 —— 数据存储层,SQL 数据库代码(库/表/数据)
- 后端应用服务器为业务处理的中心枢纽
- 通过SQL从数据库服务器中提取/存入数据
- 以接口服务的形式,供外部调用,这里是指前端以及第三方
- 在我们输入一个URL请求后:
浏览器获得服务器端返回的html文件
浏览器依据HTML文件内的标签指令,整合显示完整的web页面
HTML标签布局、文字内容效果
后继UPL获取CSS文件内容和整合效果
后继UPL获取JS文件内容和整合效果
后继UPL获取图片文件内容和整合效果
……
后继UPL,调用后端接口,获取其逻辑处理
处理结果
—— 最终整合显示完整的 Web 界面
如何做接口测试
通过接口测试工具,模拟UI 界面直接向服务器的接口发送请求,验证后端功能逻辑的正确性 —— 集成测试阶段的主要工作;是灰盒测试的主要手段。
开发团队通常是先完成功能逻辑的处理,再提供或迭代式的跳转UI 界面
接口测试的任务目标
- 功能逻辑的测试
- 系统服务器端的安全可靠性测试 —— 由接口的安全可靠性体现
- 系统服务器端的稳定以及性能测试 —— 由接口的性能与稳定的体现
web接口调用 —— 是建立再http通讯协议上
http网络协议
1、web接口功能调用所使用的网络协议,也是http协议,和浏览器网页唯一的区别在于:
- 获取web网页是从服务器端获得,包含http标签的html文本
- 调用web接口是从服务器端获得,是纯数字结果的文本
2、协议的工作机制是,请求 —— 响应 (request-response) 见下图2张
3、请求(request)
header:请求UPL,请求方式method包含GET、POST
body:在post方式下,请求参数
4、响应(response)
header:status code,也就是响应码(2xx,3xx,4xx,5xx)
body:文本类型(HTML/CSS/JS,json,text等等)、二进制数据类型(图片,音频,视频等等)
测试接口的方法 ——测试工具:
postman、jmeter、soupUI……
接口测试初步:
- postman的安装
官网地址:https://www.getpostman.com/
官网下载:https://www.postman.com/downloads
官方文档地址:https://www.getpostman.com/docs/
- 确认接口调用四要素
- 接口的URL地址:由两部分组成,包括接口服务器地址+接口服务器的路径; http://<接口所在的应用服务器>ip或域名:端口号/路径(??参数) https://<接口所在的应用服务器>ip或域名:端口号/路径(??参数)
- 支持的调用方法 —— 接口的传参方式:包含get、post、put、delece get:只用来从服务器端获取数据/资源 post:只用来向服务器推送并创建数据 put:只用来出发服务器端的修改更新数据 delece:只用来处罚服务器端的删除数据 (说明:“请求”调用a”调用方式选用的约定规范,以上由开发人员决定)
- 请求的参数 —— 必传、选传
- 结果响应 —— 服务器的http响应状态码,处理结果包含业务数据内容,有文本、二进制数据
- 关于响应码结果数据:文本组织格式
- 无格式/自定义的文本 示例:xx班级:1张三;2李四;3、王五
- JSON 格式文本 —— 与python中的字典格式相同,{键:值,键:值,……}
- XML 格式文本 —— 与html中的格式相同,包含 标签、属性以及非标签内容 <name property1…>值</name>
接口测试用例
测试