blog
blog copied to clipboard
自动化测试与持续集成方案调研--API接口测试
我对接口测试的理解
一、什么是接口测试
我所理解的接口是用来处理业务逻辑和数据,实现功能的。接口测试就是检测数据的转换、传递和控制管理过程,以及系统间的逻辑依赖关系。
二、接口测试的目的及意义
1.app的后端服务(抑或接口)出现功能异常、或者错误的数据输出等问题时,会导致客户端功能异常甚至崩溃。
2.如果之前没有进行api接口测试,当客户端出现功能或者数据的问题时,需要逐个排查是前端的问题还是后端的问题。
所以,很有必要进行api接口测试,来检测接口的正确性和准确性
三、接口测试的分类
目前是http协议接口测试。
四、测试内容
两个重点,注重业务逻辑分析(正反向都要测到),注重数据检查
1.功能:检查接口的功能有没有实现,也就是请求会不会成功,如果不成功会不会返回错误代号。 2.数据:
- 1 检查接口返回的数据、数据格式、数据类型是否与预期一致(正向,传递的参数正常)
- 2 检查传递的参数为边界值时,接口是否可以正常处理(传递的参数足够大或者为负、空值时) 例如:需要一个ip参数,当我输入一个100位的数字时,看会不会报错
- 3 检查输入各种数据类型的参数,是否可以处理(支持整数,如果输入小数或者字符串呢)
3.性能:接口处理数据的时间(涉及到代码优化)
一 、接口测试
- 接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。
- 接口测试适用于为其他系统提供服务的底层框架系统和中心服务系统,主要测试这些系统对外部提供的接口,验证其正确性和稳定性。接口测试同样适用于一个上层系统中的服务层接口,越往上层,其测试的难度越大。
- 接口测试实施在多系统多平台的构架下,有着极为高效的成本收益比,接口测试天生为高复杂性的平台带来高效的缺陷监测和质量监督能力。平台越复杂,系统越庞大,接口测试的效果越明显。
- 基于接口测试的重要性,以及它比较容易自动化的特性,通过持续集成的接口监控能够及时的发现项目中存在的问题,这对持续运营的项目来说,非常重要。
一 、接口测试的流程
1、 项目启动后,测试人员要尽早找到开发人员拿到接口测试文档 2、 获取接口测试文档后,就可以进行接口用例的编写和调试 3、 接口用例编写调试完成后,部署到持续集成的测试环境中, 4、 设定脚本运行频率,告警方式等基本参数,进行接口的日常监控 5、 每日进行接口脚本的维护更新,接口异常的处理
传统接口测试
我司现在没有自动化测试,正在研究,现在一般用postman人工测试,查看返回json的状态或者字段。
缺点是不便于管理case和不方便统计结果,执行要一个一个手工去点,效率低下。
API 测试是一种作为集成测试的一部分,通过直接控制被测应用的接口(API)来确定是否在功能、可靠性、性能和安全方面达到预期的软件测试活动。由于 API 都没有 GUI 界面,API 测试都是在通讯层进行的。[2]现在 API 测试在自动化测试中有着很重要的地位,因为 API 一般是应用逻辑的主要接口,同时 GUI 测试在敏捷开发和 DevOps 的快速迭代和频繁变更中很难维护。
api 测试用例主要应该有两类:
- 单一接口测试。调用一个接口就是一个用例
- 多接口的业务测试。会调用多个接口,且接口之间可能存在数据传递。
我觉得目的就是两个。
第一、在开发接口尽早暴露出接口的问题,减少前端开发的返工工作量。
第二、由于接口测试中会覆盖一些冒烟的业务测试,因此可以在测试环境中定期的执行,减少功能测试经常性的检验环境的重复工作。