API 测试面试题及答案

2025年3月17日 | 阅读11分钟
API Testing Interview Questions

以下是一些经常被问到的API 测试面试题及答案

1) 什么是 API?

API应用程序编程接口)有助于两个软件系统之间的通信和数据交换。API 作为两个应用程序之间的接口,允许两个软件系统相互通信。API 是另一个软件程序可以执行的一组函数。

API 的工作方式是:它从源接收请求,将该请求发送到数据库,从数据库获取请求数据,然后将响应返回给源。API 在不暴露内部细节的情况下,接收来自用户的请求并给出响应。API 起到了抽象的作用。

示例:Amazon API, Google Map API


2) 什么是 API 测试?

API 测试是一种软件测试,涉及直接测试 API。API 是集成测试的一部分,用于检查 API 在功能、可靠性、性能和安全性方面是否符合预期。可以执行多个 API 系统进行 API 测试。在 API 测试中,我们的主要关注点是软件架构的业务逻辑层。


3) API 测试有哪些类型?

API 测试包括以下类型的测试:

  • 单元测试
  • 功能测试
  • 负载测试
  • 运行时/错误检测
  • 安全测试
  • UI 测试
  • 互操作性和 WS 合规性测试
  • 渗透测试
  • Fuzz 测试

4) API 测试使用哪些协议?

API 测试使用的协议是:

  • HTTP
  • REST
  • SOAP
  • JMS
  • UDDI

5) 用于 API 测试的工具有哪些?

用于 API 测试的工具是:

  • Parasoft SOAtest
  • PostMan
  • AlertSite API monitoring

6) 什么是 API 测试环境?

对于 API,测试环境是一种相当复杂的方法,其中服务器和数据库的配置根据软件应用程序的要求进行设置。API 测试不涉及图形用户界面 (GUI)。

API 在安装后会检查其正常运行情况。


7) 什么是 API 框架?

API 框架由配置文件描述,该文件包含所有必需激活的 API 列表,这些 API 会为任何特定的程序运行而激活。这一点很重要,因为每次测试运行并不需要所有 API。


8) API 使用有哪些限制?

许多 API 都有提供商设定的特定限制。因此,尝试估计您的使用量,并了解这会对整体服务成本产生何种影响。


9) API 测试有哪些优点?

API 测试的优点是:

  • 测试核心功能:API 测试提供了对应用程序的访问,无需用户界面。应用程序的核心功能将在 GUI 测试之前进行测试。这将有助于在 GUI 测试期间发现可能变得更严重的小问题。
  • 时间效益:API 测试比 GUI 测试花费的时间更少。特别是,API 测试需要的代码量更少,因此与 GUI 测试自动化相比,它能提供更好、更快的测试覆盖率。这将降低测试项目的成本。
  • 语言独立:在 API 测试中,数据通过 XML 或 JSON 进行交换。这些传输模式完全独立于语言,允许用户在为项目采用自动化测试服务时选择任何编程语言。
  • 易于与 GUI 集成:API 测试提供高度可集成的测试,这对于在 GUI 测试之后执行功能性 GUI 测试非常有用。简单的集成允许在 GUI 开始之前就在应用程序中创建新的用户帐户。

10) API 测试设计有哪些原则?

以下是 API 测试设计的七个原则。

  1. 穷尽性测试:穷尽性测试是不可能的。相反,我们需要基于应用程序风险评估的最优测试量。
  2. 缺陷聚集:缺陷聚集定律指出,一小部分模块包含检测到的大部分缺陷。大约 80% 的缺陷存在于 20% 的模块中。根据经验,我们可以识别出这些高风险模块。但这这种方法本身也存在问题。如果相同的测试一遍又一遍地重复,最终相同的测试用例将不再发现新的错误。为了克服这一点,需要定期审查和修改测试用例,并添加新的、不同的测试用例来帮助发现更多缺陷。
  3. 农药悖论:测试人员不能依赖现有技术。他们必须不断寻求改进现有方法,以使测试更有效。但即使在测试方面付出了所有努力,我们也无法声称我们的产品没有错误。为了克服这一点,需要定期审查和修改测试用例,并添加新的、不同的测试用例来帮助发现更多缺陷。
  4. 测试显示缺陷存在:测试原则指出:测试揭示缺陷的存在,而非缺陷的消失。软件测试降低了软件中未发现缺陷的概率,但即使没有发现缺陷,也不能证明其正确性。
  5. 但是,如果我们努力工作,采取所有预防措施,使我们的软件产品 99% 没有错误。但如果软件不符合客户的需求和要求,那么它就没有意义。
  6. 无错误是谬论:即使软件 99% 没有错误,但如果它不满足客户的需求,仍然是不可用的。可能是因为系统针对错误的需求进行了测试。软件测试不仅是为了发现缺陷,也是为了检查软件是否满足业务需求。无错误是一种谬论,即发现和修复缺陷并没有帮助,如果构建的系统不可用且不满足用户的需求和要求。
  7. 早期测试:测试应尽早开始于软件开发生命周期。这样可以在早期阶段捕获需求或设计阶段的缺陷。在测试的早期阶段修复缺陷更便宜。我们应该在需求定义的那一刻就开始发现错误。
  8. 测试是依赖于上下文的:测试是依赖于上下文的,测试一个电子商务网站将不同于我们测试商业应用程序的方式。所有开发的软件都不是相同的。我们将使用不同的方法;技术和测试类型取决于应用程序的类型。

11) 什么是 API 框架?

框架或软件框架是开发软件应用程序的平台。API 框架是软件开发人员可以在其上为特定平台构建应用程序的基础。

示例:一个框架可以包括预定义的类和函数,这些类和函数可用于处理输入、管理硬件设备和与系统软件进行交互。

框架类似于应用程序编程接口,从技术上讲,框架包含 API。框架为编程提供基础,而 API 提供对框架支持的元素的访问。框架还包括代码库、编译器和其他在软件开发过程中使用的程序。

API 框架由配置文件定义,该配置文件包含为特定程序运行而需要激活和已激活的所有 API 的列表。


12) 对 API 通常执行哪些测试?

以下是对 API 通常执行的常见测试:

  1. API 的响应应基于请求进行验证。我们将验证返回值是基于请求的。
  2. 当 API 更新任何数据结构时,我们应验证系统是否对结果进行了身份验证。
  3. 我们将验证 API 是否触发了其他事件或请求了另一个 API。
  4. 我们将验证 API 在没有返回值时的行为。

13) 在 API 测试中具体需要验证什么?

在 API 测试中,我们发送一个带有已知数据的请求到 API,然后分析响应。

  1. 我们将验证数据的准确性。
  2. 我们会查看 HTTP 状态码。
  3. 我们会查看响应时间。
  4. 如果 API 返回任何错误,则会显示错误代码。
  5. 将检查授权。
  6. 非功能测试,如性能测试、安全测试。

14) API 和 Web Services 有什么区别?

序号。APIWeb 服务
1.API 的操作可能需要网络,也可能不需要。Web Services 的操作始终需要网络。
2.API 可以通过 SOAP、REST、XML-RPC 和 CURL 调用进行通信。
API 也可以通过多种方式暴露,如 JAR、DLL、HTTP 上的 XML、HTTP 上的 JSON 等。
Web service 可以通过 SOAP、REST 和 RPC 进行通信。
3.API 可以执行 Web Service 无法执行的所有操作。Web service 无法执行像 API 这样的所有操作。
4.并非所有 API 都是 Web Service。所有 Web Services 都是 API。

15) 什么是 API 文档?

良好的文档对于任何基础来说都是必须的。API 文档作为快速参考,用于访问库或在程序内进行工作。

当我们使用任何此类文档时,它必须包含正确的计划、内容来源、正确的布局、与每个函数相关的信息等。

有各种文档工具,如 Doxygen 和 JavaDoc。在此,记录的函数围绕参数,如:

  • 函数描述
  • 可能出现的错误消息的类型和语法
  • 每个参数所需的语法、元素和顺序
  • 关于函数的链接

16) API 文档最常用的模板是什么?

以下是各种文档模板,它们使整个过程变得简单易行。它们是:

  • Swagger
  • Miredot
  • Slate
  • FlatDoc
  • API blueprint
  • RestDoc
  • Web service API specification

17) 在 API 测试期间可以发现哪些类型的错误?

API 测试有助于我们发现许多类型的错误,包括:

  • 应力
  • 安全性
  • 重复或缺失的功能
  • 可靠性
  • 未使用的标志
  • 性能
  • 不兼容的错误处理
  • 多线程问题
  • 不恰当的错误

18) API 测试和 UI 测试有什么区别?

UI(用户界面)测试是指对图形用户界面的测试。UI 测试的重点在于应用程序的外观和感觉。在用户界面测试中,主要关注用户如何与应用程序元素进行交互,例如图像、字体、布局等。

API 测试允许两个软件系统之间的通信。API 测试在后端进行,也称为后端测试。


19) 什么是 SOAP?

SOAP(简单对象访问协议)。它是一种基于 XML 的协议,有助于计算机之间交换信息。


20) 什么是 REST API?

REST API 是一组函数,可以帮助开发人员在接收响应时执行请求。通过 HTTP 协议与 REST API 进行交互。

REST 被定义为 Representational State Transfer(表述性状态转移)。它是 API 创建的有效标准。


21) SOAP 和 REST API 有什么区别?

序号。SOAP APIREST API
1.SOAP 的意思是 Simple Object Access Protocol(简单对象访问协议)。REST 的意思是 Representational State Transfer(表述性状态转移)。
2.SOAP 是一种协议。REST 是一种架构模式。
3.SOAP 可以使用 XML 格式。在 SOAP 中,所有数据都以 XML 格式传递。REST 允许不同的数据格式,如纯文本、HTML、XML、JSON 等。但最常用的数据传输格式是 JSON。

22) 在 API 测试过程中面临的主要挑战有哪些?

API 测试过程中面临的主要挑战是:

  • 参数选择
  • 参数组合
  • 调用排序
  • 输出验证和确认
  • 一个主要的挑战是提供非常难以输入的输入值,因为没有 GUI。

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

API 测试和单元测试之间的区别是:

序号。API 测试单元测试
1.API 测试是一种黑盒测试。单元测试是一种白盒测试。
2.API 测试在项目完成后在测试期间进行。单元测试在项目创建时进行。
3.API 测试的测试范围很广。单元测试的测试范围有限,我们只能测试基本功能。
4.API 测试由测试人员进行。API 测试的目的是对功能进行端到端测试。单元测试由开发人员进行。在单元测试中,每个功能都会单独测试。

24) 什么是 RESTFUL Web services?

有两种 Web services:

  1. SOAP Web 服务
  2. RESTFUL Web Services

1. SOAP(简单对象访问协议)- SOAP 是一种在 Web Services 中使用的基于 XML 的方法。

2. RESTFUL Web Services - 为了实现 REST 架构的概念,使用了 HTTP 方法。RESTFUL Web Services 定义了 URI(统一资源标识符),并提供了 JSON 等资源表示以及一组 HTTP 方法。


25) REST 中的资源是什么?

REST 架构将任何内容视为资源,可以是文本文件、HTML 页面、图像、视频或动态业务信息。REST 服务器提供访问和修改这些资源的功能。我们可以通过 URI/全局 ID 来识别每个资源。


26) 在 REST 中表示资源的方式是什么?

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


27) RESTFUL Web Services 使用什么协议?

RESTFUL Web Services 使用 HTTP 协议。它们使用 HTTP 协议作为客户端和服务器之间的通信媒介。


28) REST 有哪些特性?

以下是 REST 的两个特性。

  1. REST 是无状态的。使用 REST API,服务器没有状态,我们可以在两次调用之间重新启动服务器,尽管所有数据都已传输到服务器。
  2. Web Services 使用 POST 方法执行操作,而 REST 使用 GET 方法访问资源。

29) RESTFUL Web Services 中的消息传递是什么?

RESTFUL Web Services 使用 HTTP 协议作为客户端和服务器之间的通信工具。当客户端以 HTTP 请求的形式发送消息时,服务器会发送 HTTP 回复,这称为消息传递。该消息包含消息数据和元数据,即关于消息本身的信息。


30) HTTP 请求的组成部分有哪些?

HTTP 请求有五个组成部分。它们是:

  1. 表示 HTTP 方法的操作,如 GET、PUT、POST、DELETE。
  2. 统一资源标识符 (URI):URI 是服务器上资源的标识符。
  3. HTTP 版本:指示 HTTP 版本,如 HTTP V1.1。
  4. 请求头:请求头包含 HTTP 请求消息的元数据。元数据可以是客户端类型、客户端支持的格式、消息正文的格式、缓存设置等。
  5. 请求正文:资源正文表示消息内容或资源表示。

31) REST 支持的 HTTP 协议有哪些?

GET:GET 用于从指定资源请求数据。

GET 请求可以被缓存和加入书签。它保留在浏览器历史记录中,并且有长度限制。在处理敏感数据时,不应使用 GET 请求。

POST:POST 用于将数据发送到服务器以创建或更新资源。

POST 请求永远不会被缓存或加入书签。

PUT:PUT 用请求的有效负载替换目标资源的当前表示。

DELETE:DELETE 删除指定的资源。

OPTIONS:OPTIONS 用于描述目标资源的通信选项。

HEAD:HEAD 请求的响应与 GET 请求相同,但没有响应正文。


32) 可以使用 GET 请求代替 PUT 来创建资源吗?

PUT 或 POST 方法用于创建资源。GET 仅用于请求资源。


33) 什么是 URI?Web 服务的作用是什么?它的格式是什么?

URI 代表统一资源标识符。它是一系列字符,用于无歧义地识别资源并通过 URI 方案进行扩展。URI 的目的是定位托管 Web 服务的服务器上的资源。

URI 的格式是:<protocol>://<service-name>/<Resource Type>/<ResourceID>


34) 什么是 SOAP Web Services?

SOAP简单对象访问协议)被定义为基于 XML 的协议。SOAP 也被称为用于开发和设计 Web Services,并使在互联网上使用不同编程语言开发的应用程序之间能够进行通信。SOAP 是平台和语言独立的。


35) 何时可以使用 SOAP API?

我们可以使用 SOAP API 来执行记录上的操作,如创建、检索、更新或删除。我们可以使用 API 来管理密码、执行搜索等。