前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >在项目中是如何进行API测试的?

在项目中是如何进行API测试的?

原创
作者头像
漫谈测试
发布2024-12-29 19:48:12
发布2024-12-29 19:48:12
810
举报
文章被收录于专栏:漫谈测试漫谈测试

API是指操作系统留给应用程序的一个调用接口,应用程序通过调用操作系统的API使操作系统执行应用程序的命令。

在日常生活中,我们经常通过API与应用程序交互,但没有思考过交互背后的后端逻辑流程。例如,当我们在某东App购物时,我们需要登录账号,如果没有某东App的账号,也可以通过微信账号登录。当填入微信账号、密码并单击确定后,某东 App后台和微信这两个不同的应用程序就通过API交互账号信息。可见,API无处不在。

基于 API 的应用程序在这几年流行的原因如下。

首先,与传统应用程序/软件相比,基于API 的应用程序具有更好的可伸缩性,代码开发速度更快,而且相同的API不需要进行任何主要代码或基础设施更改就可以服务更多的请求。

其次,开发团队不需要在每次开发特性或应用程序时都从头开始编码。API通常重用现有的、可重复的函数、库、存储过程等,这个过程使它们的整体效率更高。例如,假设正在开发一个电子商务网站,如果想增加一个支付模块,不必从头开始编写代码,只需与微信支付或支付宝支付的 API 集成并调用它们的API,就能实现付款。

再次,API支持的独立应用程序或基于API的软件产品都可以轻松与其他系统集成。例如,如果想去旅游,需要到去哪儿网预订酒店,只需输入地点、入住日期等信息,然后单击搜索,去哪儿网就可以在后台通过 API与合作酒店连接,从而提供不同酒店的实时房间数据列表,以供选择。

最后,通过 API可以实现系统与系统,以及系统内部的解耦,降低系统的代码维护成本。正是基于 API的优势,2002年,亚马逊创始人杰夫·贝索斯向员工下达了关于AP的命令,这个命令后来甚至影响了整个工 行业,被称为贝索斯的“API宣言”。

所有团队将通过服务接口公开他们的数据与功能。

团队之间必须通过这些接口通信。

其他形式的进程通信都是不被允许的,如不允许直接链接、不允许直接读取另一团队的数据储存、不允许共享内存模型、不允许设立任何“后门”。通过网络服务接口调用是唯一允许的通信方式。

使用什发技术并不重要。无论是 HTTP、CORBA、PDSUD,还是自定义协议。

所有服务接口,无一例外,都必须从头到脚地使用可外部化的设计,也就是不重要。

团队必须计划和设计能提供给外部开发人员使用的公开接口。

任何违反指令的人都将被解雇。

一、API测试类型

许多人认为 API 测试就是向 API 发送请求并分析响应是否正确,但其不仅限于此API测试包括以下3种类型。

(1)API功能测试

对于熟悉界面测试的测试人员来说,在API功能测试中,最令人头疼的是没有交取界面的测试,对他们来说,转到无界面的程序测试有些困难。我们在开始API测试时还需要测试身份验证过程本身。身份验证使用的方法因API 的不同而不同,其中可能涉某种密钥或令牌,如果无法成功与API连接,就无法进行进一步测试。这个过程与标准应用程序中的用户身份验证相似,在标准应用程序中,用户需要通过有效的凭证来登录和使用应用程序。

在进行 API 功能测试时,测试字段验证或输入数据验证非常重要。如果有实际的界面可用,那么可以在界面前端进行字段验证,确保用户无法输入无效的字段值。例如,如果应用程序需要的日期格式为 DD/MM/YYYY,那么可以在前端应用此验证,确保应用程能够接收和处理有效的日期。但是,这对于使用API的应用程序来说是不一样的。我们需要确保 API 编写良好,能够执行所有的验证,区分有效与无效数据,并通过响应向最终用户返回状态代码和验证错误消息。

对 API响应的正确性进行有效与无效测试确实至关重要。如果在测试API后接收到状态码 200(表示一切正常),但是响应文本显示遇到了错误,就表示测试仍然存在缺陷。如果接收到的消息不正确,那么对于试图与此API集成的最终客户来说就非常具有误导性,会让其感到困惑。

(2)API性能测试

API的设计是可伸缩的,这使性能测试变得至关重要,特别是当设计的系统预计每分钟或每小时要处理数千个请求时,对 API进行日常的性能测试有助于对性能、峰值负载构新点进行基准测试。

在计划扩容时,这些数据将起到非常大的帮助有助于支持决策和制定计划。特别是在计划支持更多的客户,即接收更多的请求时。例如,根据提供的需求,API需要每分钟服务至少100个请求,并且平均响应时间少于1秒。根据性能测试,如果API每分钟接收不到 100 个请求,就能够在平均响应时间阵维护 SLA(“服务等级协议”);如果 API接收150 个请求,那么平均响应时间就会增加如果接收的请求超过每分钟 200个,就会出现断点。

在通常情况下,最初的设计阶段会将重点放在入API 的功能方面。随着时间的推移,当现个产品开始支持多个实时客户端时,API 性能测试和负载测试就以一种更常规的方式体现出来。

(3)API安全测试

API 容易受到攻击,对于想要访问数据或控制应用程序的恶意黑客来说,它们是最容易攻破的服务访问点。由于存在安全漏洞,不怀好意的人/组织仅通过一个API 即可访客户数据,这会使公司陷入法律困境。这里简单提一句,安全性测试是测试的一个专门分类,应该由专家来处理。安全测试资源可以来自组织内部或独立顾问。

二、实施 API测试的两个阶段

在项目中应该如何开展实施 API测试呢?可将其分为两个阶段:第一个阶段是工具选型阶段,第二个阶段是具体实施阶段。

在工具选型阶段,我们需要完成如下内容。

(1)收集需求和识别约束。

我们首先需要了解项目对于 API测试的需求等信息,因为项目使用 API的技术特点将在很大程度上影响我们对测试工具的选择。例如,需要测试的是哪种类型的API,是SOAP还是REST?需要进行API功能测试还是API性能测试?项目预算是多少?使用开源工具还是商业工具?项目需要培训现有的测试人员,还是从外部招聘新的测试人员?

(2)评估可用工具。

我们需要对市场上的 API测试工具有所了解,无论是开源工具,还是商业工具,同时比较相关工具的技术特点,从中筛选出1个或2个最能满足测试需求的工具。如下表所示为部分 API测试工具。

图片
图片

(3)PoC

在筛选出可用的测试工具后,还要对其进行PoC验证。可以选择典型的测试场景进行实现测试并展示调查结果,最终确定要使用的测试工具。

在具体实施阶段,我们需要完成如下内容。

(1)启动准备。

根据所选工具在PC、虚拟机或服务器上进行安装。如果选择的工具基于订阅模式那么还需创建团队账户。

另外,如有需要,还可率先对相关人员与团队进行有关测试工具的培训。

(2)正式启动。

在项目中使用API测试工具进行测试,包括创建测试脚本,执行测试和报告缺陷等

(3)与 CI、CD 集成。

当API测试正常运行后,就要考虑与CI,CD 集成以期能够最大化发挥 API测试的价值。

所以,在选择测试工具时,也要考虑工具能查与(CI CD工具(如jenkins等)集成。

阅读后若有收获,不吝关注,分享,在看等操作!!!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、API测试类型
    • (1)API功能测试
    • (2)API性能测试
    • (3)API安全测试
  • 二、实施 API测试的两个阶段
    • (1)收集需求和识别约束。
    • (2)评估可用工具。
    • (3)PoC
    • 在具体实施阶段,我们需要完成如下内容。
      • (1)启动准备。
      • (2)正式启动。
      • (3)与 CI、CD 集成。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档