接口与接口测试
学习目标
- 理解接口的概念
- 理解接口测试概念
- 掌握接口测试分类
- 接口测试的基本流程
演示接口
http://t.weather.sojson.com/api/weather/city/101010100
1. 接口概述(了解)
1.1 什么是接口呢?
接口一般来说有两种,一种是程序内部的接口,一种是系统对外的接口; 或者一种是软件接口,一种是硬件接口.
我们常说的接口是应用程序编程接口,也就是Application Programming Interface,简称API.
1.2 常见接口
webService接口:是走soap协议通过http传输,请求报文和返回报文都是xml格式的,我们在测试的时候都用通过工具才能进行调用,测试。可以使用的工具有SoapUI、jmeter、loadrunner等;
http api接口:是走http协议,通过路径来区分调用的方法,请求报文都是key-value形式的,返回报文一般都是json串,有get和post等方法,这也是最常用的两种请求方式。可以使用的工具有postman、RESTClient、jmeter、loadrunner等;
1.3 使用接口的优点
- 项目开发中,使用接口带来的优点
1. 统一设计标准;
2. 前后端开发相对独立;
3. 扩展性灵活;
4. 前后端都可以使用自己熟悉的技术;
- 项目开发中,未使用接口的缺点
1. 研发标准不统一,团队磨合难度高
2. 研发周期长
3. 可扩展性差
总结:
- 软件项目开发模式大多数都采用接口了,那我们作为软件测试人员要学接口吗?
复习-接口的组成部分
2. 接口测试
2.1 什么是接口测试
接口测试是测试系统组件间数据交互的一种方式.
接口测试就是通过测试不同情况下的输入参数和与之对应的输出结果来判断接口是否符合或满足相应的功能性、安全性要求.
简单的说,接口测试是就是代替前端或者第三方,来验证后端实现是否符合接口规范.
2.2 接口测试的好处
通过接口测试,测试接口的正确性和稳定性, 能快速定位bug,提高测试效率.
- 能为项目平台带来高效的缺陷监测和质量监督能力;
- 平台越复杂,系统越庞大,接口测试的效果越明显(提高测试效率,提升用户体验,降低研发成本)
2.3 接口测试原理
原理:
模拟客户端向服务器发送请求报文,服务器接收请求报文后对相应的报文做处理并向客户端返回应答,客户端接收响应数据后并进行判断
- 请求: 是否正确, 默认请求成功是返回200, 假如请求错误返回400, 404, 500等状态码
- 检查: 返回数据的正确性与完整性
- 安全性: 接口一般不会暴露在网上任意被调用,需要做一些限制,比如必须登录或者请求次数、频率限制
2.4 基本流程
接口测试流程: 定位服务器接口资源并提交测试数据,然后查看响应结果是否符合预期
定位接口资源(URL)
提交测试数据
检查响应结果
2.5 接口测试分类
- web接口测试
- 模块接口测试
(1). web接口测试
服务器接口测试, 是测试浏览器与服务器的接口, 是B/S架构的
外部接口测试, 测试第三方接口,
举例:支付接口测试/天气预报接口测试
(2). 模块接口测试
- 单元测试的基础,主要测试模块的调用与返回.
3. 如何做好接口测试
接口测试要遵循一些要点:
- 接口的功能性实现. 检查接口返回的数据与预期结果的一致性.
- 测试接口的容错性, 例如传递的数据类型是错误的能否处理.
- 测试接口参数的边界值. 例如传递的数据足够大或者为负数时能否处理
- 测试接口性能, 接口处理和响应数据的时间也是测试的一个方面, 这牵扯到代码实现的优化
- 测试接口的安全性. 特别是第三方接口,比如登录的用户名密码第三方是否是密文传输的