接口测试之基础篇

接口测试简介

  • 百度百科中为接口测试给出的定义:
    接口测试是测试系统组件间接口的一种测试。
    接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。
    测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。
  • 接口测试通常包括两类,模块之间的接口测试和 Web 接口测试。
    前者通常是由开发人员在单元测试中进行测试,后者则通常由测试人员进行测试。
    后面的内容主要为 Web 接口测试。

接口测试的意义

测试人员都知道,在整个软件生命周期中,测试介入的越早,成本越低,收益越好。
通常,前端的实现,依赖于后端的接口,测试人员需要在开发人员输出接口文档后,就立即开始设计接口测试用例,在开发人员将接口开发完成后,就可以进行接口测试了。
接口测试,可以提前暴露很多问题,此时开发解决问题,相对在前端的功能测试中发现的问题,其代价要小的多。接口的正确和稳定,会为后面前端的功能测试减少很大一部分工作量。另外接口的自动化、持续集成也相对的比较容易去实现。

接口测试的内容

  • 测试返回值是否正确
  • 测试返回值类型是否符合设计文档
  • 测试返回的 error 信息是否符合设计
  • 对输入进行类型、边界测试,测试接口是否有对异常数据做处理

需要掌握或了解的知识

  • 了解后端常用开发语言,java、php、python 等
  • 了解各种开发语言的某些特性。比如在 php 中的 empty() 方法,有开发同学会用这个方法判断一个字符串是否为空,但这里如果传入的值为0,empty 方法也会判断为空,即 empty(0) 返回的值为 true!因此设计接口用例的时候,要增加此类含有特殊值的 case
  • 了解 tcp/ip、http、https 协议
  • 掌握常用的请求方式,get、post、put
  • 掌握 json、xml、html 的语法
  • 掌握常用的抓包方法
  • 掌握基本的增删改查 sql 语句
  • 掌握一种语言,python、java 或其他语言
  • 掌握 jenkins 环境的搭建

接口测试工具

  • Chrome 的插件,Postman
  • Jmeter
  • soapUI
  • Fitnesse

接口测试框架或测试库

其他开源库