当前位置: 首页 > news >正文

22 从0到1:API测试怎么做?常用API测试工具简介

API 测试的基本步骤

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

Postman操作步骤

  1. 发起 API 调用;
  2. 添加结果验证;
  3. 保存测试用例;
  4. 基于 Postman 的测试代码自动生成。

        为了将测试 request 作为回归测试用例集成到 CI/CD 的流程中,这就要求可以通过命令行的方式执行测试。为了达到这个目的,目前有两种做法:

  1. 将 Postman 中的测试 request 用自动化的方式直接转换成 API 测试的代码。
  2. 利用 Newman 工具直接执行 Postman 的 Collection。 你需要先将 Postman 中的 Collection 导出为 JSON 文件,然后执行以下命令行。
newman run examples/sample-collection.json;

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

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

        此场景会涉及到一系列 API 的调用,并且经常存在后一个 API 需要使用前一个 API 返回结果的情况,以及需要根据前一个 API 的返回结果决定后面应该调用哪个 API 的情况。通过API调用和结果解析的代码化就可以灵活处理该场景。

        通过抓包的方式可以获取单个操作触发的API调用序列。

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

        启用mock server来代替真实API就能实现

场景3:异步API的测试

异步API指的是调用后立即返回,但是任务没有完成,需要后续去查询或者回调的API.

        异步 API 测试都是 API 测试中比较困难的部分,异步API的测试主要分为两部分:

        1. 测试异步调用是否成功(主要检查返回值和后台工作线程是否被创建两个方面就可以了)

        2. 测试异步调用的业务逻辑处理是否正确(异步 API 通常发生在一些比较慢的操作上,比如数据库 I/O、消息队列 I/O 等,此时测试往往需要去验证数据库中的值、消息队列中的值等,这就需要测试代码具有访问和操作数据库或者消息队列的能力)

异步API测试:

        创建操作后,循环执行查询状态操作,等到发现状态正常后再进行后续操作,或者状态异常/超时后报错。

相关文章:

22 从0到1:API测试怎么做?常用API测试工具简介

API 测试的基本步骤 准备测试数据(可选,不一定所有 API 测试都需要这一步);通过 API 测试工具,发起对被测 API 的 request;验证返回结果的 response。 Postman操作步骤 发起 API 调用;添加结…...

Skywalking Kafka Tracing实现

背景 Skywalking默认场景下,Tracing对于消息队列的发送场景,无法将TraceId传递到下游消费者,但对于微服务场景下,是有大量消息队列的业务场景的,这显然无法满足业务预期。 解决方案 Skywalking的官方社区中&#xf…...

Perl 解析字符串为日期对象并获取多天前的日期字符串

Perl 解析字符串 perl语言中的库 Time::Piece可以将字符串解析为日期对象。 use Time::Piece; my ($y, $m, $d) 20230823 ~ /^([0-9]{4})([0-9]{2})([0-9]{2})\z/ or die;my $dt Time::Piece->strptime("$y$m$d","%Y%m%d");Perl获取多天之前的日期 …...

C语言问题 - 关于一维数组和二维数组用*a+i形式表达

问题 今天在编写程序时被一个语句搞懵了&#xff1a; #include<stdio.h>int main() {int *pa[6];int a[2][3] {{1,2,3},{4,5,6}};int sum 0;int i,j,k 0;for (i0; i<2; i){for (j0; j<3; j){*(pa k) *(a i) j;k;}}for (i0; i<k; i){printf("%d &q…...

验证码识别DLL ,滑块识别SDK,OCR图片转文字,机器视觉找物品

验证码识别DLL ,滑块识别SDK 你们用过哪些OCR提取文字&#xff0c;识图DLL&#xff0c;比如Opencv,Labview机器视觉找物品之类&#xff1f;...

【图论】最小生成树的应用

一.题目 P1550 [USACO08OCT] Watering Hole G - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 二.分析 1.我们是要使所有的农场都要有水 2.可以从起点引水&#xff0c;也可以互相引水。 3.费用要最小 这时我们可以想到最小生成树&#xff0c;建立一个虚拟节点即可。思路一…...

C++类模板的特化(三)

本文主要介绍类模板的特化、局部特化和缺省模板实参&#xff1b; 1.类模板的特化 类模板的特化&#xff08;Class Template Specialization&#xff09;是指为特定的模板参数提供自定义实现的过程。通过特化&#xff0c;我们可以针对某些特定的类型或条件提供不同的行为或实现…...

基于YOLOV8模型的课堂场景下人脸目标检测系统(PyTorch+Pyside6+YOLOv8模型)

摘要&#xff1a;基于YOLOV8模型的课堂场景下人脸目标检测系统可用于日常生活中检测与定位课堂场景下人脸&#xff0c;利用深度学习算法可实现图片、视频、摄像头等方式的目标检测&#xff0c;另外本系统还支持图片、视频等格式的结果可视化与结果导出。本系统采用YOLOv8目标检…...

java八股文面试[数据结构]——Map有哪些子类

知识来源&#xff1a; 【23版面试突击】 用过哪些Map类&#xff0c;都有什么区别&#xff0c;HashMap是线程安全的吗&#xff1f;_哔哩哔哩_bilibili https://www.cnblogs.com/bubbleboom/p/12694013.html...

司徒理财:8.23今日黄金原油走势分析附操作策略

黄金走势分析&#xff1a;      黄金下跌遇阻&#xff0c;短线开启震荡调整走势&#xff0c;但跌势依旧没有改变&#xff0c;没有突破1906压力前&#xff0c;还是偏空走势&#xff0c;反弹继续干空。趋势行情&#xff0c;不要轻言翻转&#xff01;即便下跌结束&#xff0c;…...

使用动态IP是否会影响网络

今天我们要谈论的话题是关于动态IP和网络的关系。也许有些小伙伴对这个概念还比较陌生&#xff0c;但别担心&#xff0c;我会简单明了的给你理清楚。让我们一起看看动态IP到底能否影响到网络。 首先&#xff0c;我们先来搞明白什么是动态IP。在互联网世界中&#xff0c;每一个连…...

Linux学习笔记-常用指令说明

本文目录 一、Linux指令笔记 二、"授人以鱼,不如授人以渔" 一、Linux指令笔记 0、cd 命令是 change dir 的简写&#xff0c;它可以把终端当前所在的路径切换至目标路径。 1、mkdir 建立文件夹。是 make directory 的简写&#xff0c;它可以在文件系统中创建一个新的目…...

MyBatisPlus进阶版

1.映射 1.1自动映射 【1】表名和实体类名映射 -> 表名user 实体类名User 【2】字段名和实体类属性名映射 -> 字段名name 实体类属性名name 【3】字段名下划线命名方式和实体类属性小驼峰命名方式映射 -> 字段名 user_email 实体类属性名 userEmail MybatisPlus…...

安防视频云平台EasyNVR视频汇聚平台硬件无法进入服务器的问题处理方法

EasyNVR是基于RTSP/Onvif协议的视频接入、处理及分发的安防视频云平台&#xff0c;可提供的视频能力包括&#xff1a;设备接入、实时视频直播、录像、云存储、录像回放与检索、告警、级联等&#xff0c;平台可支持将接入的视频流进行全平台、全终端的分发&#xff0c;分发的视频…...

流媒体内容分发终极解决方案:当融合CDN与P2P视频交付结合

前言 随着互联网的发展&#xff0c;流媒体视频内容日趋增多&#xff0c;已经成为互联网信息的主要承载方式。相对传统的文字&#xff0c;图片等传统WEB应用&#xff0c;流媒体具有高数据量&#xff0c;高带宽、高访问量和高服务质量要求的特点&#xff0c;而现阶段互联网“尽力…...

根据源码,模拟实现 RabbitMQ - 内存数据管理(4)

目录 一、内存数据管理 1.1、需求分析 1.2、实现 MemoryDataCenter 类 1.2.1、ConcurrentHashMap 数据管理 1.2.2、封装交换机操作 1.2.3、封装队列操作 1.2.4、封装绑定操作 1.2.5、封装消息操作 1.2.6、封装未确认消息操作 1.2.7、封装恢复数据操作 一、内存数据管理…...

Apache Flume架构和原理

Apache Flume是一个开源的分布式、可靠的日志收集和聚合系统,旨在将大量的日志数据从不同的数据源(如应用程序、服务器、设备)收集到中心存储或数据湖中。Flume的架构设计允许用户在大规模数据流的情况下实现可靠的数据传输和处理。 Flume特性 Apache Flume是一个用于收集…...

代码随想录算法训练营day38 | LeetCode 509. 斐波那契数 70. 爬楼梯 746. 使用最小花费爬楼梯

509. 斐波那契数&#xff08;题目链接&#xff1a;力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台&#xff09; 思路&#xff1a;经典的dp题。 int fib(int n){if(n 0 || n 1) return n;return fib(n-1) fib(n-2); } 70. 爬楼梯&#xff08;题目…...

Linux基本指令【下】

欢迎来到Cefler的博客&#x1f601; &#x1f54c;博客主页&#xff1a;那个传说中的man的主页 &#x1f3e0;个人专栏&#xff1a;题目解析 &#x1f30e;推荐文章&#xff1a;题目大解析3 目录 &#x1f449;&#x1f3fb;cat&#x1f449;&#x1f3fb;echo&#xff08;输出…...

向量检索:基于ResNet预训练模型构建以图搜图系统

1 项目背景介绍 以图搜图是一种向量检索技术&#xff0c;通过上传一张图像来搜索并找到与之相关的其他图像或相关信息。以图搜图技术提供了一种更直观、更高效的信息检索方式。这种技术应用场景和价值非常广泛&#xff0c;经常会用在商品检索及购物、动植物识别、食品识别、知…...

北京数据恢复公司哪个公司好

在当今数字化时代&#xff0c;数据的重要性不言而喻。无论是个人用户的珍贵照片、文档&#xff0c;还是企业的重要商业数据&#xff0c;一旦丢失&#xff0c;都可能造成巨大的损失。在北京&#xff0c;有众多的数据恢复公司&#xff0c;那么哪家公司才是最好的选择呢&#xff1…...

终极Windows和Office激活指南:5分钟搞定系统激活难题

终极Windows和Office激活指南&#xff1a;5分钟搞定系统激活难题 【免费下载链接】KMS_VL_ALL_AIO Smart Activation Script 项目地址: https://gitcode.com/gh_mirrors/km/KMS_VL_ALL_AIO 还在为Windows系统频繁弹出激活提示而烦恼吗&#xff1f;Office突然变成只读模式…...

Photoshop AVIF插件实战:解锁下一代图像格式的完整解决方案

Photoshop AVIF插件实战&#xff1a;解锁下一代图像格式的完整解决方案 【免费下载链接】avif-format An AV1 Image (AVIF) file format plug-in for Adobe Photoshop 项目地址: https://gitcode.com/gh_mirrors/avi/avif-format 为Adobe Photoshop添加AVIF格式支持不再…...

在Node.js后端服务中集成Taotoken调用大模型指南

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 在Node.js后端服务中集成Taotoken调用大模型指南 将大模型能力集成到后端服务是现代应用开发的常见需求。Taotoken平台提供了OpenA…...

STM32L4低功耗实战:用RTC内部唤醒定时1秒,让设备续航翻倍(附CubeIDE配置)

STM32L4低功耗实战&#xff1a;RTC唤醒中断与CubeIDE配置全解析 在电池供电的物联网终端设计中&#xff0c;每微安电流都关乎产品寿命。曾有个智能农业项目&#xff0c;原本预计6个月的传感器续航&#xff0c;因未优化低功耗模式&#xff0c;实际仅维持了3周。这促使我们深入研…...

长期使用Taotoken Token Plan套餐带来的成本控制感受

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 长期使用Taotoken Token Plan套餐带来的成本控制感受 1. 从按需付费到预算规划 对于个人开发者或小型团队而言&#xff0c;大模型…...

本地AI任务编排工具AgentForge:从看板管理到多代理协作

1. 项目概述&#xff1a;一个能调度AI编码代理的本地看板工具如果你和我一样&#xff0c;日常开发中经常需要让Claude Code这类AI编码助手去执行一些重复性的代码审查、重构或者生成任务&#xff0c;并且希望这些任务能像CI/CD流水线一样被编排、调度和监控&#xff0c;那么你一…...

原神帧率解锁技术解析:三步突破60FPS限制的完整方案

原神帧率解锁技术解析&#xff1a;三步突破60FPS限制的完整方案 【免费下载链接】genshin-fps-unlock unlocks the 60 fps cap 项目地址: https://gitcode.com/gh_mirrors/ge/genshin-fps-unlock 你是否曾为《原神》PC版的60FPS限制感到困扰&#xff1f;当你的高性能显卡…...

EmbBERT架构解析:面向TinyML的革新设计与优化

1. EmbBERT架构解析&#xff1a;面向TinyML的革新设计在边缘计算设备上部署自然语言处理模型一直面临内存和计算资源的双重限制。传统BERT模型即使经过压缩&#xff0c;其2MB版本在TinyNLP基准测试中平均准确率仅为83.93%&#xff0c;且激活内存占用高达1.5MB。EmbBERT通过三大…...

Steam Cron Studio:可视化配置生成器,为AI代理打造Steam自动化任务

1. Steam Cron Studio&#xff1a;一个为AI代理量身定制的Steam自动化配置生成器如果你是一个Steam重度用户&#xff0c;同时又对AI代理&#xff08;AI Agent&#xff09;和自动化工具感兴趣&#xff0c;那么你很可能和我一样&#xff0c;曾经被一个看似简单实则繁琐的问题困扰…...