专栏首页自动化、性能测试《软件测试52讲》读书笔记 —— API测试怎么做

《软件测试52讲》读书笔记 —— API测试怎么做

前言

文章中还介绍了测试工具,比如cURL、postman,单API如何测试;但这些都是偏基础的东西,且网上教程各式各样,就不再赘述了;这里主要讲的就是关于复杂场景的API测试要如何应对

API测试的流程

  1. 准备测试数据(这是可选步骤,不一定所有 API 测试都需要这一步)
  2. 通过 API 测试工具,发起对被测 API 的 request
  3. 验证返回结果的 response

如何应对复杂场景的API测试?

测试场景一:被测业务操作是由多个API调用协作完成

背景

一个单一的前端操作可能会触发后端一系列的API调用,此时API的测试用例就不再是简单的单个API调用,而是一系列API的调用

存在的情况

  • 存在后一个API需要使用前一个API返回结果的情况
  • 需要根据前一个API的返回结果决定后面应该调用哪个API

存在问题

高效地获取单个前端操作所触发的API调用顺序

解决上述问题思路

  1. 通过网络监控手段,捕获单个前端操作时所触发的API调用顺序,譬如Fiddler、Charles等抓包工具
  2. 也可以通过用户行为日志,通过大数据手段来获取调用顺序

测试场景二:API 测试过程中的第三方依赖

背景

  • API 之间是存在依赖关系的,比如你的被测对象是 API A,但是 API A 的内部调用了 API B,此时如果由于某种原因,API B 在被测环境中处于不可用状态,那么 API A 的测试就会受到影响。
  • 在单体架构下,通常只会在涉及到第三方 API 集成的场景中才会遇到这个问题,所以还不算严重。但是,在微服务架构下,API 间相互耦合的依赖问题就会非常严重。

解决问题的核心思路

启用 Mock Server 来代替真实的 API

测试场景三:异步 API 的测试

什么是异步API

调用后会立即返回,但是实际任务并没有真正完成,而是需要稍后去查询或者回调(Callback)的 API

对异步 API 的测试主要分为两个部分

  1. 测试异步调用是否成功:检查返回值和后台工作线程是否被创建两个方面就可以了
  2. 测试异步调用的业务逻辑处理是否正确

测试异步调用的业务逻辑复杂性

因为异步 API 通常发生在一些比较慢的操作上,比如数据库 I/O、消息队列 I/O 等,此时测试往往需要去验证数据库中的值、消息队列中的值等,这就需要测试代码具有访问和操作数据库或者消息队列的能力。在实际工程项目中,这些能力一般会在测试框架级别提供,也就是说要求 API 测试框架中包含对应的工具类去访问和操作数据库或者消息队列等

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Jmeter 常用函数(22)- 详解 __intSum

    https://www.cnblogs.com/poloyy/p/13291704.htm

    小菠萝测试笔记
  • Cypress系列(10)- Cypress 编写和组织测试用例篇 之 动态跳过测试用例

    https://www.cnblogs.com/poloyy/category/1768839.html

    小菠萝测试笔记
  • python接口自动化测试 - unittest框架suite、runner详细使用

    前三个文件是包含了单元测试类的文件,第四个文件是负责运行所有单元测试类,不包含测试用例

    小菠萝测试笔记
  • 想成为技术大咖?那就从API的使用开始吧

    近几年,API经济纷纷崛起,无论是国外还是国内,众多厂商积极开放API。从2011年开始,数据通过API开发出来已成为一种趋势,与此同时它也逐渐发成为企业的核心...

    BestSDK
  • API网关在API安全性中的作用

    从单一应用程序切换到微服务时,客户端的行为不能与客户端具有该应用程序的一个入口点的行为相同。简单来说就是微服务上的某一部分功能与单独实现该应用程序时存在不同。

    架构师修炼
  • API安全发展趋势与防护方案

    近些年,API安全在安全领域越来越多的被业界和学术界提及和关注。OWASP在2019年将API安全列为未来最受关注的十大安全问题。事实上随着应用程序驱动的普及,...

    绿盟科技研究通讯
  • 【物联网安全】通过API管理最小化物联网安全失误

    物联网的采用在不同行业中迅速增长并不是秘密。在我的最后一篇文章中,我讨论了基于blockchain的IoT安全策略,这是一个不断发展的主题,我发现重要,经常被忽...

    首席架构师智库
  • 没有被了解的API?一个老码农眼中的API世界

    即便做了20多年的软件开发,仍然发现自己经常会低估完成一个特定的编程任务所需要的时间。有时,错误的时间表是由于自己的能力不足造成的: 当深入研究一个问题时,会发...

    半吊子全栈工匠
  • 前端基础-浏览器API

    API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件...

    cwl_java
  • 视频API的发展方向

    非常感谢LiveVideoStack邀请我来到这个论坛,这是我第一次来中国,更何况是上海。我觉得上海是一个很棒的城市,城市节奏与这里各种各样的美食,对我来说都很...

    LiveVideoStack

扫码关注云+社区

领取腾讯云代金券