01
什么是API?
API是(Application Programming Interface)首字母缩略词,即应用程序编程接口。API是一组用于构建软件应用程序的规程,协议和工具。API充当软件应用程序之间的接口,并允许两个软件应用程序相互通信。API是一组软件功能,可以由其他软件执行。
02
什么是API测试?
API测试是一种软件测试,涉及直接测试API,也是集成测试的一部分,用于检查API是否满足应用程序的功能,可靠性,性能和安全性方面的期望。在API测试中,我们主要关注软件架构的业务逻辑层。可以在包含多个API的任何软件系统上执行API测试。
03
常见的API测试类型有哪些?
API测试通常涉及以下实践:
单元测试
功能测试
负载测试
运行时/错误检测
安全测试
UI测试
互操作性和WS一致性测试
渗透测试
模糊测试
04
列举API测试中使用的一些常用协议?
thrift
HTTP
REST
SOAP
JMS
UDDI
dubbo
05
API和Web服务之间的区别?
Web服务:
所有Web服务都是API
所有Web服务都需要通过Web(HTTP)公开
Web服务只有三种使用方式:SOAP,REST和XML-RPC进行通信
API:
API有很多并不基于HTTP
API使用多种方式进行通信,例如C / C ++中的DLL文件,java中的Jar文件/ RMI,Linux内核API中的中断等。
06
什么是Soap?
SOAP代表简单对象访问协议(Simple Object Access Protocol)。它是一种基于XML的消息传递协议。虽说名字带了简单,但是协议比较罗嗦,已经远没有后来居上的JSON使用广泛。
07
什么是Rest API?
REST即Representational State Transfer。它是一组帮助开发人员执行请求和接收响应的函数。通过REST API中的HTTP协议进行交互。
08
SOAP和REST的区别?
SOAP:
通过共享XML文档进行通信
仅支持XML格式
不支持缓存
SOAP比REST慢
SOAP就像自定义桌面应用程序,紧密连接到服务器
SOAP基于HTTP进行封装
REST:
基于网络的软件架构的服务架构和设
计
支持不同的数据格式
支持缓存
比SOAP更快
REST客户端就像浏览器并使用应用程序必须适合的标准方法
REST使用HTTP标头来保存元信息
09
API常见测试有哪些?
我们在API上执行的一些常见测试如下。
验证不同输入条件的返回。
验证不同数据结构
验证API是否触发其他事件或请求其他API
在没有返回值时验证API的行为
10
API测试有哪些优势?
更快及更高的测试覆盖率。
API测试有助于我们降低测试成本。通过API测试,我们可以在GUI测试之前找到小错误。在GUI测试期间,这些小错误将变得更大。因此,在API测试中发现这些错误将对公司具有成本效益。
API测试与语言无关。
API测试在测试核心功能方面非常有用。我们可以在没有用户界面的情况下测试API。在GUI测试中,我们需要等到应用程序可用于测试核心功能。
API测试有助于我们降低风险。
11
API测试中究竟需要验证哪些内容?
数据准确性
HTTP或其他协议状态代码
响应时间
API返回任何错误时的错误代码
授权检查
非功能测试,如性能测试,安全测试
12
列举一些用于API测试的工具?
用于API测试的一些工具如下:
Curl
httpie
Requests: HTTP for Humans
https://pypi.org/project/thrift/
Postman
Katalon Studio
SoapUI
Assertible
Tricentis Tosca
Apigee
JMeter
Rest-Assured
Karate DSL
API Fortress
Parasoft
HP QTP(UFT)
vREST
Airborne
API Science
APIary Inspector
Citrus Framework
Hippie-Swagger
HttpMaster Express
Mockbin
Ping API
Pyresttest
Rest Console
RoboHydra Server
SOAP Sonar
Unirest
WebInject
python是目前接口测试使用最广的语言,python测试框架及python 抓包工具(Hardware)都可参考。
13
列出一些最常用的API文档模板?
一些API文档模板如下。
Swagger
FlatDoc
RestDoc
API blueprint
Slate
Miredot
Web服务API规范。
14
列举一些非常受欢迎的API。
Google Maps API
YouTube的
推特Twitter
亚马逊广告API
微博认证API
钉钉开放接口
15
API测试和单元测试之间的区别?
单元测试:
多由开发团队进行
白盒测试
构建中的过程之前
涉及源代码
测试范围有限,只考虑基本功能
API测试
多由QA团队进行
多为黑盒测试
在构建部署后进行
大多不涉及源代码API测试
测试范围很广
16
API测试面临的主要挑战是什么?
适当的参数及其组合
正确分类参数
顺序
验证输出
由于缺少GUI,提供输入值较困难
17
执行API测试时我们面临的BUG类型是什么?
压力,性能和安全问题
功能重复或缺失
可靠性问题
消息不当
不兼容的错误处理机制
多线程问题
不合适的错误
18
UI测试与API测试有何不同?
UI(用户界面)测试是测试应用程序的图形界面部分。它的主要重点是测试应用程序的外观和感觉。API测试支持两个不同软件系统之间的通信。它的主要重点是应用程序的业务层。
19
列举一些最常用的HTTP方法?
GET:从服务器检索数据
POST:将数据添加到服务器中的现有文件或资源
PUT:它允许您替换服务器中的现有文件或资源
DELETE:它允许您从服务器中删除数据
PATCH:用于对资源进行部分修改
选项:用于描述目标资源的通信选项
HEAD:它要求响应与GET请求相同,但没有响应正文
20
可以使用GET请求而不是PUT来创建资源吗?
不,GET请求仅允许只读权限。它使您可以从服务器检索数据,但不能创建资源。应使用PUT或POST方法来创建资源。
21
PUT和POST方法有什么区别?
POST用于在服务器上创建新对象,PUT请求用于在替换对象。当客户端将页面发送到服务器,然后服务器让客户端知道它放在何处时,应该使用POST。当客户端指定页面的位置时,应使用PUT。