API测试基础知识(基本概念、测试方法、测试工具)

news2024/9/20 12:32:32

在进行API测试之前,我们先了解一下

什么是API?

API(全称Application Programming Interface)是两个单独的软件系统之间的通信和数据交换。实现API的软件系统包含可以由另一个软件系统执行的功能/子例程。

什么是API测试

API测试是一种用于验证API(应用程序编程接口)的软件测试类型。它与GUI测试非常不同,主要集中在软件体系结构的业务逻辑层。在API测试中,您无需使用标准的用户输入(键盘)和输出,而是使用软件将调用发送到API,获取输出并记下系统的响应。

API测试需要可以通过API进行交互的应用程序。为了测试API,您需要

  • 使用测试工具调用API
  • 编写自己的代码调用API                               

API测试的测试用例:

API测试的测试用例基于

  • 基于输入条件的返回值:相对容易测试,因为可以定义输入并可以验证结果
  • 不返回任何内容:没有返回值时,将检查系统上的API行为
  • 触发其他一些API /事件/中断:如果API的输出触发了某些事件或中断,则应跟踪这些事件和中断侦听器
  • 更新数据结构:更新数据结构将对系统产生某些结果或影响,应进行身份验证
  • 修改某些资源:如果API调用修改了某些资源,则应通过访问相应资源来对其进行验证

API测试方法:

以下几点可帮助用户进行API测试:

  • 了解API程序的功能并明确定义程序范围
  • 应用诸如等效类,边界值分析和错误猜测之类的测试技术,并为API编写测试用例
  • API的输入参数需要适当计划和定义
  • 执行测试用例,并比较预期结果和实际结果。
  • API测试和单元测试之间的区别

单元测试

API测试

开发人员执行它

测试人员执行它

单独的功能经过测试

端到端功能经过测试

开发人员可以访问源代码

测试人员无法访问源代码

还涉及UI测试

仅测试API函数

仅测试基本功能

所有功能问题均经过测试

范围有限

范围更广

通常在办理登机手续前运行

创建完成后运行

如何进行API测试

API测试应至少涵盖除常规SDLC流程以外的以下测试方法:

  • 发现测试:测试组应手动执行API中记录的一组调用,例如验证是否可以列出,创建和删除API公开的特定资源。
  • 可用性测试:此测试可验证API是否功能正常且用户友好。API是否也可以与其他平台很好地集成
  • 安全测试:此测试包括需要哪种身份验证以及是否通过HTTP加密敏感数据或同时通过这两种方法对敏感数据进行加密
  • 自动化测试:API测试应以创建一组脚本或可用于定期执行API的工具为最终结果
  • 文档:测试团队必须确保文档足够,并提供足够的信息来与API交互。文档应成为最终交付成果的一部分

API测试的最佳做法:

  • 测试用例应按测试类别分组
  • 在每个测试的顶部,您应包括被调用的API的声明。
  • 测试用例中应明确提及参数选择
  • 确定API函数调用的优先级,以便测试人员轻松进行测试
  • 每个测试用例应尽可能独立且独立于依赖项
  • 在开发中避免“测试链”
  • 处理诸如-Delete,CloseWindow等一次性调用函数时必须格外小心。
  • 呼叫排序应执行且计划合理
  • 为了确保完整的测试范围,请为API的所有可能的输入组合创建测试用例。

API测试检测到的错误类型

  • 无法优雅地处理错误情况
  • 未使用的标志
  • 功能缺失或重复
  • 可靠性问题。难以连接API并从API获得响应。
  • 安全问题
  • 多线程问题
  • 性能问题。API响应时间非常高。
  • 错误的错误/警告呼叫者
  • 对有效参数值的错误处理
  • 响应数据的结构不正确(JSON或XML)

API测试工具

由于API和单元测试都是目标源代码,因此可以使用工具/框架进行自动化。

  • jmeter
  • postwomen
  • Parasoft SOAtest
  • Runscope
  • Postman
  • Curl
  • Eclipse SDK tool- Automated API testing                  

API测试的挑战

API测试的挑战包括:

  • Web API测试中的主要挑战是参数组合,参数选择和调用排序
  • 没有可用于测试应用程序的 GUI ,这很难提供输入值
  • 对测试人员而言,在不同系统中验证和验证输出几乎没有困难
  • 测试人员必须知道参数的选择和分类
  • 异常处理功能需要测试
  • 测试人员必须具备编码知识

结论:

API由代表业务逻辑层的一组类/函数/过程组成。如果未正确测试API,则可能不仅会导致API应用程序出现问题,还会导致调用应用程序出现问题。它是软件工程中必不可少的测试。

总结:

感谢每一个认真阅读我文章的人!!!

作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

 

          视频文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片即可自行领取。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2083175.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ATL宁德新能源25届校招社招:Verify测评及四色测评考什么?真题分析

ATL新能源科技有限公司-Verify测评邀请题型介绍 a. 测评内容包含演绎推理数字推理两部分,大约用时45分钟左右; b. 正式测评后即开始计时,每项测评时限为18分钟。 c. 为确保测评顺利进行,不影响测评结果,请优先使用电…

分享5个专业写论文神器自动生成的软件工具

在当今学术研究和写作领域,AI论文写作工具的出现极大地提高了写作效率和质量。这些工具不仅能够帮助研究人员快速生成论文草稿,还能进行内容优化、查重和排版等操作。以下是五款专业写论文神器自动生成的软件工具,其中特别推荐千笔-AIPasspap…

入职后,我发现工作内容和自己想象中的不太一致。。

2018年6月,大三暑假进行时,实习第二天上班 昨天王工跟我说最好统一开发工具用eclipse,今早我瞄到其实也有同事用idea。 eclipse还得学习,用idea算了,随便上网找个盗版的就好咯,不纠结这么多。 公司被逮到…

驱动:dht11驱动程序

DHT11读写时序详解(时序上板实测)_mcu 读取thd11 接收数据开始-CSDN博客文章浏览阅读733次,点赞20次,收藏21次。DHT11有两种,一种三线制,一种四线制。其中都包括1个VDD,1个GND,和1个…

常见几种简单的深度学习算法在生物医学数据领域的特点和不足

本团队提供生物医学领域专业的AI(机器学习、深度学习)技术支持服务。如果您有需求,请扫描文末二维码关注我们。 通过表格的形式,总结了常见几种简单的深度学习算法在生物医学数据领域的特点和不足(仅个人理解&#xff…

HarmonyOS NEXT 实战开发:实现日常提醒应用

为什么要开发这个日常提醒应用? 最近鸿蒙热度一直不减,而且前端的就业环境越来越差,所以心里面萌生了换一个赛道的想法。HarmonyOS NEXT 是华为打造的国产之光,而且是纯血版不再是套壳,更加激起了我的好奇心。ArkTS是…

【网络安全】分析cookie实现PII IDOR

未经许可,不得转载。 文章目录 正文正文 目标:公共电子商务类型的网站,每月有大约6万到10万访问者,注册用户大约有5万。 存在一个查询个人资料的端点/GetProfiledetails,以下是完整的请求和响应: 我发现,cookie非常类似于base64编码后的结果,于是我将其进行base64解码…

WEB开发---使用HTML CSS开发网页实时显示当前日期和时间

自己刚开始学习html css知识&#xff0c;临时做个网页&#xff0c;实时显示当前日期和时间功能。 代码如下&#xff1a; test.html <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport&q…

C#利用ffmpeg借助NVIDIA GPU实现实时RTSP硬解码+硬编码录制MP4

目录 说明 效果 项目 代码 下载 说明 利用周杰的开源项目 Sdcb.FFmpeg 项目地址&#xff1a;https://github.com/sdcb/Sdcb.FFmpeg/ 代码实现参考&#xff1a;https://github.com/sdcb/ffmpeg-muxing-video-demo 效果 C#利用ffmpeg借助NVIDIA GPU实现实时RTSP硬解码硬…

004-OpenFeign服务接口调用

文章目录 1 简介2 OpenFeign 通用步骤2.1 建module2.2 改POM2.3 写YML2.3 主启动类2.4 cloud-api-commons模块修改2.4.1 按照架构说明进行编码准备2.4.2 引入openfeign依赖2.4.3 新建服务接口PayFeignApi 2.5 编写controller2.6 测试2.7 总结 3 OpenFeign高级特性3.1 注意3.2 O…

QGC 修改为双路视频介绍

文章目录 一、效果图二、简要流程关于QGC地面站其它文章请点击这里: QGC地面站 一、效果图 右下角切换视频通道; 左下角切换地图与当前的视频 二、简要流程 ● C++ 后端 C++ 中利用 QGC 原有的红外热成像视频流,修改几处即可 // src\VideoManager\VideoManager.cc Vi…

快排找基准值之挖坑法

思路&#xff1a;把数组里第一个数据拿出来记为标准值&#xff0c;然后两边交替&#xff0c;从右往左找比基准值小的数据放到前面缺数据的坑里。放完后该位置也缺数据成为了新的坑&#xff0c;再把坑的下标移到新的位置。 从左到右找比基准值大的数据&#xff0c;后面同理。 …

装饰器(Decorators)的实现

1、Python 中的函数可以像普通变量一样当做参数传递给另外一个函数&#xff1b; 2、装饰器&#xff1a;不修改函数源码但是要实现给函数添加额外功能。python使用语法糖即来实现装饰器。 3、装饰器的作用&#xff1a; &#xff08;1&#xff09;抽离出大量函数中与函数功能本…

Spring框架 基础介绍

目录 Spring框架 IOC: AOP: 一站式&#xff1a; spring搭建 Maven 导入 spring 核心基础 jar 编写 spring 配置文件 编写一个 User 实体类 测试 spring IOC(控制反转) 依赖注入&#xff1a; 1、通过属性注入 2、通过构造方法注入 spring中bean管理 1、基于xml配置方…

AI模型:追求全能还是专精?

AI模型&#xff1a;追求全能还是专精&#xff1f; 近日&#xff0c;OpenAI预计在秋季推出代号为“草莓”的新AI。从专注于数学问题到处理主观营销策略&#xff0c;"草莓"模型展现出惊人的多样性。而这种全能型 AI 是否代表了未来趋势&#xff1f;相比专攻于某一领域…

I get HttpClient.Timeout Error in C# OpenAI library

题意&#xff1a;“我在 C# OpenAI 库中遇到 HttpClient.Timeout 错误。” 问题背景&#xff1a; I am using the OpenAI library in my c# project, but I get the following error if it does not receive a response for more than 100 seconds. I cannot add a custom htt…

宠物空气净化器应该怎么选择?希喂、IAM、有哈哪款性价比高

在当今社会&#xff0c;养宠已然渐渐成为现在年轻人生活中的一种标配。可爱的宠物们以它们的忠诚、活泼与温暖&#xff0c;给予像我们这类年轻人无尽的陪伴。这种陪伴在时光的消逝中渐渐升华&#xff0c;成为年轻人心灵的慰藉和生活中不可或缺的一部分。然而&#xff0c;在享受…

【软件测试】软件测试生命周期与Bug

目录 &#x1f4d5; 前言 &#x1f334;软件测试的生命周期 ​编辑&#x1f332;BUG &#x1f6a9; 概念 &#x1f6a9;描述bug的要素 &#x1f6a9;bug的级别 &#x1f6a9;bug的生命周期 &#x1f3c0;先检查自身&#xff0c;是否bug描述不清楚 &#x1f3c0;站在用…

JavaScript学习文档(9):事件流、事件委托、其他事件、元素尺寸与位置

目录 一、事件流 1、事件流的两个阶段 2、事件捕获 3、事件冒泡 4、阻止冒泡 5、解绑事件 &#xff08;1&#xff09;解绑事件 &#xff08;2&#xff09;鼠标经过事件区别 二、事件委托 1、优点 2、原理 3、实现 4、tab栏切换案例改造 三、其他事件 1、页面加载…

不可不知的HDMI之前世今生

1、HDMI的产生 2002年4月&#xff0c;来自电子电器行业的7家公司——日立、松下、飞利浦、SiliconImage、索尼、汤姆逊、东芝&#xff0c;共同组建了HDMI接口组织——HDMIFounders&#xff08;HDMI论坛&#xff09;&#xff0c;开始着手制定一种符合高清时代标准的全新数字化视…