天天看点

API测试介绍

API测试的概念

我们常说的是比较狭义的API,指的是Web service或者Web API。

所以一般API测试指的是:直接测试应用程序编程接口(API),并作为集成测试的一部分来确定它们是否满足功能、可靠性、性能和安全性的期望。

API测试的位置

API测试介绍
  • 应用程序通常有三层:表示(UI)层、业务逻辑层(API层)和数据层。
  • API层包含应用程序的业务逻辑——用户如何与应用程序的服务、数据或功能交互的规则。
  • 由于业务逻辑层直接触及数据层和表示层,因此它为QA和开发团队提供了持续测试的最佳场所。虽然传统的测试主要集中在UI上,但是API测试的优势正变得众所周知。

API测试的优势

  • 更早期的测试

    一旦实现了逻辑,就可以构建测试来验证响应和数据的正确性,而不必等待构建前端

  • 更简单的测试维护

    UI是不断变化的,但是API没有这样的挑战,API测试现在被认为是自动化测试的关键,因为API现在是应用程序逻辑的主要接口。

  • 更快的解决问题

    当API测试失败时,我们确切地知道系统哪里坏了,哪里可以找到缺陷。

  • 更快的测试速度和更广的覆盖范围

    300个UI测试可能需要30小时才能运行。300个API测试可能在3分钟内运行。这意味着将在更短的时间内发现更多的bug,同时也将立即修复它们。

API测试的流程

  1. 开始时间

    在接口文档出来的时候就可以进行接口测试了。

  2. 测试用例

    根据接口文档去撰写接口用例。

  3. 测试环境

    准备测试环境。

  4. 测试工具

    测试接口有两种方式,一是用代码脚本去驱动,二是使用工具测试。

  5. 测试执行

    根据执行结果分析问题,定位问题,并对测试过程进行调优。

  6. 测试报告

    测试完成后进行测试总结。

API测试工具

抓包工具:Charles,Fiddler,Wireshark

测试脚本:Python,Java,Go

排行版:十大最佳API测试工具(SOAP和REST API测试工具)

(截至2019年12月14日)

  • ReadyAPI
  • ACCELQ
  • Katalon Studio
  • Postman
  • REST-Assured
  • Swagger.io
  • JMeter
  • Karate DSL
  • Airborne
  • APIGee

以下是top6的介绍,其实感觉我们这边用的最多的也是postman,swagger和Jmeter,其他的接触的不多呀。

产品 ReadyAPI ACCELQ Katalon Studio Postman REST-Assured Swagger.io
测试内容 web(UI&API) web(UI&API) web(UI&API),Mobile apps API REST API API生命周期的工具。
适合用于 API和web服务的功能、安全性和负载测试。 无代码自动化逻辑,完整的测试管理,API回归规划和360跟踪 自动化测试 API测试 在Java域中测试REST服务 适合API设计
价格 昂贵 付费+免费 免费 付费+免费 免费 付费+免费
兼容平台 Windows,Linux ,MacOS 基于云计算的连续测试 Windows,Linux ,MacOS Windows,Linux ,MacOS - -

API 测试内容

API测试介绍

API评判标准

  • 业务功能覆盖是否完整
  • 业务规则覆盖是否完整
  • 参数验证是否达到要求(边界、业务规则)
  • 接口异常场景覆盖是否完整
  • 接口覆盖率是否达到要求
  • 代码覆盖率是否达到要求
  • 性能指标是否满足要求
  • 安全指标是否满足要求(sql注入)

单个API测试三步骤

再往小了说,我们现在接触的API请求,主要模拟客户端向服务器发送请求报文,服务器接收请求报文后对相应的报文做处理并向客户端返回应答,客户端接收应答的过程,总共只有以下这三步。

  • 发送带有必要输入数据的请求
  • 获取具有输出数据的响应
  • 验证响应是否按要求返回

所以我们在验证时,需要验证的也常常是以下这几点:

  • HTTP响应码

    1xx(临时响应)

    2xx (成功)

    3xx (重定向)

    4xx(请求错误)

    5xx(服务器错误)

  • 返回数据格式

    返回的数据格式是json或者text或者是其他

  • 返回数据类型

    如果是json格式的数据,那么返回的字段是string或者int或者其他的格式

  • 返回数据信息

    返回的信息是不是和数据库里的一致,或者是否符合预期的情况。

总结

所以API测试说难不难,说简单也绝不简单,现在的API测试是自动化测试最好的切入点,因为相比于经常变化的UI,API一旦稳定就不容易发生变化。

参考文献

【1】https://blog.csdn.net/ddhsea/article/details/79405996

【2】https://www.cnblogs.com/georgexu/p/11224011.html

【3】https://blog.csdn.net/wbj_code_life/article/details/8161275