应用程序接口测试是一种软件测试,重点是验证应用程序接口(API 的功能、可靠性、性能和安全性。 应用程序接口 API)基本上是一套允许不同应用程序相互通信的协议和工具。

API 测试被认为是软件测试的未来,这得益于它在核心功能测试能力、时间效率、语言独立性和图形用户界面集成方面的优势。 它已成为软件测试项目确保产品质量的必备条件。

近年来,许多测试人员在申请 QA 工作时肯定需要面对面试问题。下面的 Web API 测试面试问题是从测试专家那里收集来的,可以帮助你为新职位做好准备。不仅仅是 API 面试,这份内容清单还将使希望获得 Web API 测试一般和高级知识的应届生和资深测试人员受益匪浅。

应用程序接口的定义和功能(常见网络应用程序接口测试面试问题)

  1. 什么是应用程序接口?

应用程序接口(API)是一种软件中介,能让两个应用程序相互通信。 它由许多子程序定义、日志和工具组成,用于创建应用软件。 在 API 测试面试中,你可能会被要求举出一些 API 例子,以下是一些众所周知的例子:谷歌地图 API、亚马逊广告 API、Twitter API、YouTube API 等。

API 和网络服务的主要区别是什么?

API 的使用限制是什么?

许多应用程序接口都由提供商设置了一定的限制。因此,请尽量估算您的使用量,并了解这将如何影响产品的总体成本。 这是否会成为一个问题,在很大程度上取决于如何利用数据。 如果因为预算限制而被配额限制并被有效切断,那么这项服务(以及依赖于这项服务的任何系统或流程)就会形同虚设。

创建应用程序接口(常见网络应用程序接口测试面试问题)

创建 Web API 有哪些架构风格?

这是 Web API 面试的基本问题之一。 Bellows 是四种常见的 Web API 架构风格:

谁可以使用网络 API?

任何支持 HTTP 动词(如 GET、PUT、DELETE 和 POST)的客户端都可以使用 Web API。 由于 Web API 服务无需配置,因此任何客户端都能轻松使用。 事实上,即使是移动设备等便携式设备也能轻松使用 Web API,这无疑是这项技术的最大优势。

测试 API – 热门 Web API 测试面试问题与答案

什么是 API 测试?

应用程序接口测试是一种软件测试,用于确定所开发的应用程序接口是否符合有关应用程序功能、可靠性、性能和安全性的预期。

API 测试有哪些优势?

应用程序接口测试中常用的一些协议?

现在有许多协议可用于 API 测试,如 JMS、REST、HTTP、UDDI 和 SOAP。

API 的测试环境是什么?

建立 API 的测试环境并不是一件容易的事,因此,如果你的 API 测试面试即将开始,你应该准备好答案。 API 的测试环境比较完整,需要根据软件要求配置数据库和服务器。 这种测试形式不提供图形用户界面(GUI)。

安装过程完成后,将验证 API 是否正常运行。 在整个过程中,从原始环境调用的 API 会设置不同的参数,以研究测试结果。

API 测试设计的原则是什么?

API 测试设计最重要的五项原则是:

常见的 API 测试类型有哪些?

当然,也有一些特殊的测试,在这个领域没有任何一份清单可以要求做到全面,但大多数测试大致可分为以下九类,在参加 API 测试面试之前,你应该记住这九类测试。

  1. 验证测试
  2. 功能测试
  3. UI 测试
  4. 下载测试
  5. 运行时/错误检测
  6. 安全测试
  7. 渗透测试
  8. 模糊测试
  9. 互操作性和 WS 合规性测试
  10. 进行 API 测试的程序是什么?
  11. 选择要添加 API 测试用例的套件
  12. 选择测试开发模式
  13. 要求为所需的应用程序接口方法开发测试用例
  14. 配置应用程序的控制参数,然后测试条件
  15. 配置方法验证
  16. 执行应用程序接口测试
  17. 检查测试报告并过滤 API 测试用例
  18. 安排所有 API 测试用例
  19. 进行 API 测试时必须检查什么?

在 API 测试过程中,会使用已知数据向 API 发出请求。 这样,您就可以分析验证响应。 在测试应用程序接口时,您应该考虑:

进行 API 测试时应考虑以下因素:

有无数不同的 API 测试工具可供选择。 常见的工具有 Katalon Studio、Postman、SoapUi Pro、Apigee 等。 在进行单元测试和 API 测试时,目标都是源代码。 如果 API 方法使用基于 .NET 的代码,那么另一个支持工具必须具有 .NET。

API 测试和单元测试有什么区别?

API测试 Unit测试
由质量保证小组进行 由开发团队进行
主要是黑盒测试 白盒测试
旨在评估最终用户(将使用您的应用程序接口的外部开发人员)将使用的系统的全部功能 用于验证每个独立单元的性能是否符合预期
通常在构建完成后运行,作者无法访问源代码 在开发人员构建之前,必须确保每个代码模块都能通过单元测试

API 测试和用户界面测试有什么区别?

应用程序接口(API)可实现两个独立软件系统之间的通信。 实施 API 的软件系统包含可由另一个软件系统执行的函数或子程序。

另一方面,UI(用户界面)测试是指测试图形界面,如用户如何与应用程序交互,以及测试应用程序元素,如字体、图像、布局等。 用户界面测试基本上侧重于应用程序的外观和感觉。

应用程序接口测试面临哪些主要挑战?

如果你能克服 API 测试中的挑战,你也能在 API 测试面试中充满信心。 它们是:

最常见的 Web API 测试面试问题之一是关于测试方法的。 它们是:

现在,应用程序接口测试比图形用户界面测试更受青睐,而且被认为是最合适的,因为:

事实上,根据《2024 年质量状况报告》,API 服务是继网络应用程序之后自动化程度第二高的 AUT。

不仅是 API 基本问题,面试官还会通过询问 Web API 测试面试中的 API 错误来判断你的知识和经验。 因此,最常见的问题有:

记录应用程序接口(常见网络应用程序接口测试面试问题)

应用程序接口(API)文档是一份完整、准确的技术文档,说明如何有效使用和集成应用程序接口(API)。 它是一本小巧的参考手册,包含使用 API 所需的所有信息,并通过函数、类、返回类型、参数以及示例和教程等详细信息,帮助您回答所有 API 测试问题。

有几种可用的 API 文档模板有助于使整个过程简单明了,您可以在 API 测试面试中回答这些问题,例如:

应用程序接口(API),尤其是现代的 RESTful API,是一种很好的创造,它无疑可以简化和加快集成工作,使您更有可能从中受益。 但是,API 可能也确实会因各种原因发生变化,有时甚至是突然变化,因此 REST API 在这方面与传统集成方法并无不同。 如果 API 调用过时或消失,您的程序就会中断,因此了解您所依赖的 API 变化或废弃的频率非常重要。

REST(表征状态传输)是一种开发网络服务的架构风格,它利用了 HTTP 协议的普遍性,并使用 HTTP 方法来定义操作。 它以资源为中心,每个组件都是资源,可通过共享接口使用标准 HTTP 方法进行访问。

在 REST 架构中,REST 服务器提供对资源的访问,REST 客户端访问并提供这些资源。 在这里,每个资源都由 URI 或全局 ID 标识,REST 使用多种方式表示资源,如文本、JSON 和 XML。 XML 和 JSON 是时下最流行的资源表示法。

在下一次 API 测试面试中,有两种网络服务值得注意:

  1. SOAP(简单对象访问协议)–一种基于 XML 的网络服务公开方法。
  2. 以 REST 风格开发的网络服务被称为 RESTful 网络服务。 这些网络服务使用 HTTP 方法来实现 REST 架构的概念。 RESTful 网络服务通常定义一个 URI(服务的统一资源标识符),并提供 JSON 等资源表示法和一套 HTTP 方法。
  3. 什么是 REST 中的 “资源”?

REST 架构将任何内容都视为资源,可以是文本文件、HTML 页面、图像、视频或动态业务信息。REST 服务器允许访问资源并对其进行修改,其中每个资源都由 URI/全局 ID 标识。

REST 使用不同的表示法来定义资源,如文本、JSON 和 XML。XML 和 JSON 是最常用的资源表示法。

RESTful 网络服务使用 HTTP 协议作为客户端和服务器之间的通信媒介。

在 Web API 测试面试中,很可能会问到 REST 的关键特性。 因此,请在脑海中准备好这两个问题的答案:

REST 是无状态的,因此服务器没有状态(或会话数据)。 如果 REST API 应用得当,服务器可以在两次调用之间重新启动,因为所有数据都会传输到服务器上

网络服务主要使用 POST 方法执行操作,而 REST 则使用 GET 访问资源。

RESTful 网络服务使用 HTTP 协议作为客户端与服务器之间的通信工具。 当客户端以 HTTP 请求的形式发送消息时,服务器会发回 HTTP 回复,这种技术被称为消息传递。 这些消息包括消息数据和元数据,即消息本身的信息。

HTTP 请求包含五个关键要素:

  1. 显示 GET、PUT、POST 和 DELETE 等 HTTP 方法的操作。
  2. 统一资源标识符(URI),即服务器上资源的标识符。
  3. HTTP 版本,表示 HTTP 版本,例如-HTTP v1.1。
  4. 请求头(Request Header),它包含 HTTP 请求消息的元数据(键值对)。 元数据可以是客户端(或浏览器)类型、客户端支持的格式、信息体格式、缓存设置等。
  5. 请求正文,表示信息内容或资源表示。
  6. REST 支持哪些最常用的 HTTP 方法?
  7. GET 仅用于请求指定资源中的数据。 Get 请求可以缓存和加入书签。 它会保留在浏览器历史记录中,并有长度限制。 在处理敏感数据时,绝对不能使用 GET 请求。
  8. POST 用于向服务器发送数据,以创建/更新资源。 POST 请求不会被缓存或加入书签,也不会保留在浏览器历史记录中。
  9. PUT 会用请求有效载荷替换目标资源的所有当前表示。
  10. DELETE 删除指定的资源。
  11. OPTIONS 用于描述目标资源的通信选项。
  12. HEAD 要求的响应与 GET 请求相同,但不包含响应体。
  13. 能否使用 GET 请求而不是 PUT 来创建资源?

应使用 PUT 或 POST 方法创建资源。 GET 仅用于请求指定资源中的数据。

PUT 和 POST 操作非常相似,只是它们生成的结果不同。

PUT 操作是 empotent 的,因此可以缓存响应,而 POST 操作的响应是不可缓存的,如果重试请求 N 次,最终会在服务器上创建 N 个不同 、URI 的 N 个资源。

在网络应用程序接口测试面试中,你应该举一个 PUT 和 POST 操作的具体例子,让面试官一目了然。 下面就是一个例子:

场景 假设我们正在设计一个网络应用程序。 让我们列出几个 URI 及其用途,以便了解何时使用 POST 操作,何时使用 PUT 操作。

最后

上述 API 测试面试问题在软件质量保证工程师和测试人员职位的面试中非常常见。 为了更好地准备即将到来的面试,请务必仔细阅读这些问题,并试着理解问题背后的推理和知识,而不是简单地死记硬背。

本文翻译源自:https://www.explinks.com/blog/top-30-web-api-testing-interview-questions/


↙↙↙阅读原文可查看相关链接,并与作者交流