文章图片
下面列出了常见的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测试涉及以下类型的测试:
- 单元测试
- 功能测试
- 负载测试
- 运行时/错误检测
- 安全测试
- 洋葱测试
- 互操作性和WS合规性测试
- 渗透测试
- 模糊测试
API测试中使用的协议为:
- HTTP
- 休息
- 肥皂
- JMS
- UDDI
用于API测试的工具是:
- Parasoft SOAtest
- 邮差
- AlertSite 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启动之前在应用程序内创建新的用户帐户。
这里是API测试设计的七个原则。
- 详尽的测试:不可能进行详尽的测试。相反, 我们需要基于应用程序的风险评估的最佳测试量。
- 缺陷聚类:缺陷聚类指出, 少数模块包含最多检测到的缺陷。在20%的模块中发现了大约80%的缺陷。根据经验, 我们可以识别出这些有风险的模块。但是这种方法有其自身的问题。如果一次又一次地重复相同的测试, 最终同一测试用例将不再找到新的错误。
- 农药悖论:测试人员不能依赖现有技术。他们必须不断寻找改进现有方法的方法, 以使测试更加有效。但是即使是所有这些艰苦的测试工作, 我们也永远不能声称我们的产品没有错误。为了克服这个问题, 需要定期审查和修订测试用例, 并添加新的和不同的测试用例, 以帮助发现更多的缺陷。
- 测试表明存在缺陷:测试原理指出-测试谈论缺陷的存在而不是缺陷的存在。软件测试降低了未发现的缺陷保留在软件中的可能性, 但是即使未发现缺陷, 也不表示其正确性。 但是, 如果我们努力工作, 请采取一切预防措施, 并使我们的软件产品无99%的错误。该软件不能满足客户端的需求。
- 缺少错误-谬误:这可能是99%无错误的软件仍然无法使用。如果系统针对错误的要求进行了测试, 则可能是这种情况。软件测试不是在发现缺陷, 而是要检查软件是否满足业务需求。没有错误是谬论, 即, 如果系统构建无法使用并且不能满足用户的需求, 则发现并修复缺陷无济于事。
- 早期测试:测试应在软件开发生命周期中尽快开始。这样就可以在需求或设计阶段的早期阶段捕获缺陷。在测试的早期阶段修复缺陷的成本较低。在定义需求的那一刻, 我们应该开始查找错误。
- 测试与上下文有关:测试与上下文有关, 我们测试电子商务站点将不同于我们测试商业站点的方式。所有开发的软件都不相同。我们将使用不同的方法;技术和测试类型取决于应用程序类型。
框架或软件框架是用于开发软件应用程序的平台。 API框架是软件开发人员可以为特定平台构建应用程序的基础。
示例:框架可以包括预定义的类和函数, 这些类和函数可用于处理输入, 管理硬件设备以及与系统软件进行交互。
框架类似于应用程序编程接口, 从技术上讲, 框架包括API。框架为编程奠定了基础, 而API提供了对框架支持的元素的访问。框架还包括在软件开发过程中使用的代码库, 编译器和其他程序。
API框架由配置文件定义, 该配置文件包含需要激活的和为特定程序运行激活的所有API的列表。
12)在API上执行哪些常见测试?
以下是在API上执行的常见测试:
- 应根据请求验证API的响应。我们将验证返回值是否基于请求。
- 当API更新任何数据结构时, 我们应验证系统是否在验证结果。
- 我们将验证API是触发其他事件还是请求其他API。
- 当没有返回值时, 我们将验证API的行为。
【API测试面试题及其答案合集推荐】在API测试中, 我们使用已知数据向API发送请求, 然后分析响应。
- 我们将验证数据的准确性。
- 将看到HTTP状态代码。
- 我们将看到响应时间。
- API返回任何错误时的错误代码。
- 授权将被检查。
- 非功能测试, 例如性能测试, 安全性测试。
先生 | API | Web Services |
---|---|---|
API可能需要网络, 也可能不需要网络。 | Web服务始终需要网络来进行操作。 | |
API也可以通过SOAP, REST, XML-RPC和CURL调用进行通信。还可以通过多种方式公开API, 例如JAR, DLL, HTTP上的XML, HTTP上的JSON等。 | Web服务可以通过SOAP, REST和RPC进行通信。 | |
API可以执行Web服务无法执行的所有操作。 | Web服务无法执行API之类的所有操作。 | |
所有API都不是Web服务。 | 所有的Web服务都是API |
任何基础都必须有一个好的文档。 API文档可作为访问库或在程序中工作的快速参考。
当我们使用任何此类文档时, 它必须由适当的计划, 内容来源, 适当的布局以及与每个功能相关的信息等组成。
有各种文档工具, 例如Doxygen和JavaDoc。这里是记录的功能, 这些功能围绕参数而变化:
- 功能说明
- 可能发生的错误消息的类型和语法
- 每个参数所需的语法, 元素和顺序
- 有关功能的链接
这里是使整个过程变得简单而容易的各种文档模板。他们是:
- 昂首阔步
- 米雷多
- 石板
- FlatDoc
- API蓝图
- RestDoc
- Web服务API规范
API测试有助于我们发现许多类型的错误, 这些错误包括:
- 强调
- 安全
- 功能重复或缺失
- 可靠性
- 未使用的标志
- 性能
- 不兼容的错误处理
- 多线程问题
- 错误的错误
UI(用户界面)测试是指图形用户界面的测试。 UI测试的重点在于应用程序的外观。在用户界面测试中, 主要重点是检查用户如何与应用程序元素交互, 例如图像, 字体, 布局等。
API测试允许两个软件系统之间的通信。 API测试适用于后端, 也称为后端测试。
19)什么是SOAP?
SOAP(简单对象访问控制)。它是基于XML的协议, 有助于在计算机之间交换信息。
20)什么是REST API?
REST API是一组功能, 可帮助开发人员在收到响应时执行请求。通过HTTP协议在REST API中进行交互。
REST被定义为代表性状态转移。这是API创建的有效标准。
21)SOAP和REST API有什么区别?
先生 | SOAP API | REST API |
---|---|---|
SOAP代表简单对象访问协议。 | REST代表代表性状态转移。 | |
SOAP是一种协议。 | REST是一种架构模式。 | |
SOAP可以使用XML格式。在SOAP中, 所有以XML格式传递的数据。 | REST允许使用不同的数据格式, 例如纯文本, HTML, XML, JSON等。但是用于传输数据的最优选格式是JSON。 |
API测试期间面临的主要挑战是:
- 参数选择
- 参数组合
- 呼叫排序
- 输出验证和确认
- 一个主要的挑战是提供输入值, 因为GUI不可用, 所以输入值非常困难。
API测试和单元测试之间的区别是:
先生 | API Testing | 单元测试 |
---|---|---|
API测试是黑盒测试的一种形式。 | 单元测试是白盒测试的一种形式。 | |
在测试过程中, 在项目完成之后执行API测试。 | 在创建项目时执行单元测试。 | |
API测试中有广泛的测试范围。 | 在单元测试中, 测试范围有限, 我们只能测试基本功能。 | |
API测试由测试人员完成。 API测试的全部目的是功能的端到端测试。 | 单元测试由开发人员完成。在单元测试中, 每个功能都经过单独测试。 |
Web服务有两种
- SOAP Web服务
- RESTFUL Web服务
2. RESTFUL Web服务-为了实现REST体系结构的概念, 使用了HTTP方法。 RESTFUL Web服务定义URI(统一资源标识符), 并且还提供诸如JSON和一组HTTP方法的资源表示。
25)REST中的资源是什么?
REST体系结构将任何内容视为资源, 可以是文本文件, HTML页面, 图像, 视频或动态业务信息。 REST服务器提供了访问和修改资源的功能。我们可以通过URI /全局ID识别每个资源。
26)在REST中表示资源的方式是什么?
REST使用不同的表示形式来定义资源, 例如文本, JSON和XML。最流行的资源表示形式是JSON和XML。
27)RESTFUL Web服务使用什么协议?
RESTFUL Web服务使用HTTP协议。他们使用HTTP协议作为客户端和服务器之间的通信媒介。
28)REST有什么特点?
这里是REST的两个特征。
- REST是无状态的。通过使用REST API, 服务器没有任何状态, 尽管所有数据都已传输到服务器, 我们仍可以在两次调用之间重新启动服务器。
- Web服务使用POST方法执行操作, 而REST使用GET方法访问资源。
RESTFUL Web服务使用HTTP协议作为客户端和服务器之间的通信工具。当客户端以HTTP请求的形式发送消息时, 服务器发送回HTTP答复(称为消息传递)的方法是这种技术。此消息包含消息数据和元数据, 即有关消息本身的信息。
30)HTTP请求的组成部分是什么?
HTTP请求包含五个组成部分。这些是:
- 显示HTTP方法(如GET, PUT, POST, DELETE)的操作。
- 统一资源标识符(URI):URI是服务器上资源的标识符。
- HTTP版本:指示HTTP版本, 例如HTTP V1.1。
- 请求标头:请求标头包含HTTP请求消息的元数据。元数据可以是客户端类型, 客户端支持的格式, 消息正文的格式, 缓存设置等。
- 请求正文:资源正文指示消息内容或资源表示形式。
GET:GET用于从指定资源请求数据。
GET请求可以被缓存和收藏。它保留在浏览器历史记录中, 并且具有长度限制。处理敏感数据时, 不应使用GET请求。
POST:POST用于将数据发送到服务器以创建或更新资源。
POST请求永远不会被缓存或添加书签。
PUT:PUT用请求有效负载替换目标资源的当前表示。
DELETE:DELETE删除指定的资源。
选项:选项用于描述目标资源的通信选项。
HEAD:HEAD请求与GET请求相同的响应, 但没有响应主体。
32)我们可以使用GET请求而不是PUT创建资源吗?
使用PUT或POST方法创建资源。 GET仅用于请求资源。
33)什么是URI?基于Web的服务的目的是什么?它的格式是什么?
URI代表统一资源标识符。它是一个字符串, 旨在通过URI方案明确标识资源和可扩展性。 URI的目的是在Web服务的服务器托管上找到资源。
URI格式为< 协议> :// < 服务名称> / < 资源类型> / < 资源ID>
34)什么是SOAP Web服务?
SOAP(简单对象访问协议)定义为基于XML的协议。 SOAP还因开发和设计Web服务而闻名, 并且还可以通过使用Internet上的不同编程语言来实现在不同平台上开发的应用程序之间的通信。 SOAP是平台和语言独立的。
35)什么时候可以使用SOAP API?
我们可以使用SOAP API对诸如创建, 检索, 更新或删除之类的记录执行操作。我们可以使用API??来管理密码, 执行搜索等。
工作/人力资源面试问题 |
jQuery面试问题 |
Java OOP面试问题 |
JSP面试问题 |
休眠面试问题 |
SQL面试题 |
Android面试题 |
MySQL面试问题 |
2.
3.
4.
1.
2.
3.
1.
2.
3.
4.
面试技巧
JavaScript面试问题
Java基础面试问题
Servlet面试问题
春季面试问题
PL / SQL面试问题
Oracle面试问题
SQL Server面试问题
推荐阅读
- 推荐!最新算法面试题及其答案精华汇总
- 验证码有啥用,图文详细说明验证码有啥用
- 页面不显示图片,图文详细说明页面不显示图片的处理办法
- lol不能观战,图文详细说明lol不能观战怎样办
- win7系统怎样安装,图文详细说明U盘怎样安装win7系统
- win7网上邻居,图文详细说明win7无法打开网上邻居
- cad2012安装失败,图文详细说明cad2012安装失败怎样办
- 如何设置首页,图文详细说明浏览器如何设置首页
- 怎样清除浏览器缓存,图文详细说明怎样清除浏览器缓存