api自动化测试_API测试和自动化101:基本指南

api自动化测试

API代表A pplication P AGC软件覆盖整个院落。 通常,API用于通过使用任何通信方式来促进两个不同应用程序之间的交互。 在网络上使用API​​时,我们将其称为“ Web服务”。 近年来,API已成为编程的Struts。 与在应用程序中一样,编写API与数据库或与其他模块进行通信现在已成为一种惯例,这就是为什么作为测试人员,我们必须测试API以最大程度地覆盖测试范围。

作为集成测试的一部分,API自动化可以帮助加速测试并提高效率。 由于大多数公司在业务层使用RESTful微服务/ API,因此API测试已成为任何版本测试计划的关键组成部分。

用最简单的术语来说,API是一项服务,可以帮助两个不同的应用程序相互通信。 通常,API用于抽象业务逻辑并直接对任何应用程序进行数据库访问。

从逻辑上讲,我们可以将整个系统分为三层:

  1. 表示层–这是向最终用户开放的用户界面(GUI)。 质量检查人员在此层执行功能测试。
  2. 业务层-这是编写逻辑的应用程序用户界面。 用技术术语来说,这就是代码/算法所在的地方。 API在这一层中得到体现。
  3. 数据库层-存在应用程序数据的位置。
API测试

换句话说,API是我们互联世界的大脑。 这是将我们的数字世界粘合在一起的工具,协议,标准和代码的集合。 由于它们提供的动态特性和功能,API使公司变得更加敏捷,事物可以移动并且一切都以简化的集成方式一起工作。因此,API测试是在服务级别和集成级别对API进行测试。水平。

API的测试策略-

在测试API时,测试人员应集中精力使用软件进行API调用,以便在观察和记录系统响应之前接收输出。 最重要的是,测试在不同条件下API返回正确的响应或输出。 此输出通常是以下三个之一:

  • 通过或失败状态
  • 数据或信息
  • 调用另一个API

但是,也可能根本没有输出,或者发生了完全无法预测的事情。 这使测试人员的角色对于应用程序开发过程至关重要。由于API是许多应用程序的数据中心,因此API的数据驱动测试可以帮助提高测试覆盖率和准确性。

在直接测试API时,指定通过/失败方案更具挑战性。 但是,在比较响应中的API数据或比较另一个API中的API调用后的行为时,将帮助您设置确定的验证方案。

API测试是整个软件测试和QA测试链中最具挑战性的部分之一,因为它可以确保我们的数字生活以越来越无缝和高效的方式运行。 尽管开发人员倾向于只测试他们正在使用的功能,但测试人员负责测试单个功能和一系列功能或一系列功能,以发现端到端的协作方式。

API测试类型

首先确定您需要对API执行哪种类型的测试。 就像测试人员对其产品功能进行不同类型的测试一样,API也是如此。 API的常见测试包括-

单元测试 –测试单个操作的功能。 例如-Google提供了地理编码API,以获取任何位置的经度和纬度。 这通常以地址作为输入,并返回纬度。 现在,对于此API的单元测试,测试人员可以通过不同的位置并验证结果。

功能测试-这种测试类型主要集中在API的功能上。 这将包括测试用例,以验证HTTP响应代码,响应的验证,万一API返回任何错误的错误代码等。

负载测试-在API处理大量数据并同时有一定数量的用户使用应用程序的情况下,这种类型的测试是必需的。 这会同时增加API命中率,并且可能会崩溃并且无法承担该负载。

安全测试-安全测试尤其重要,因为使用API​​在两个不同的应用程序之间创建链接。 使用API​​的核心目的是使应用程序的数据库抽象或隐藏。 这可能包括测试用例,例如授权检查,会话管理等。

互操作性测试-这是为了测试应用程序应该可以访问的API。 这适用于SOAP API。

WS合规性测试-已对API进行测试,以确保正确实施和利用WS-Addressing,WS-Discovery,WS-Federation,WS-Policy,WS-Security和WS-Trust等标准

渗透测试-这是从外部资源中查找API的漏洞。

Web服务/ API协议-

如果我们谈论网络服务,则主要有两种类型的服务,或者我们可以说协议:

REST - REST代表RE表象小号大老贸易交接相比,SOAP这意味着它要克服一切与SOAP的问题,这是块新的。 REST是一种轻量级协议,它使用URL来获取所有必需的信息。 它使用四种HTTP方法执行任务-

  1. 获取-获取信息。 例如,在使用位置映射API的情况下获取经度和纬度。
  2. 后-在资源中插入一些数据。
  3. 放置-更新资源。
  4. 删除-从资源中删除。

REST由于其简单轻巧的体系结构,如今已越来越多地使用。

SOAP API-支架使用S impleØbject 一个 CCESS P rotocol。 它使用XML进行消息交换。 执行此任务所需的所有信息均以其WSDL(Web服务描述语言)给出。 SOAP由于其广泛使用的标准和XML而非常笨重。 SOAP相对于Rest的主要优点是它具有内置的错误处理功能,并且可以与其他协议(例如SMTP)一起使用。

API测试和自动化工具

有几种工具可以测试API。 当测试人员测试API时,他们必须索要其文档,无论是REST还是SOAP API还是其非基于Web的API,都应该始终有一个文档,其中应写有详细信息。 进行API测试-

  1. 索取文件
  2. 首先编写功能或服务级别案例
  3. 编写集成测试
  4. 当API足够稳定并通过上述大多数测试时,请执行安全性,性能和负载测试。
  • 典型的API文档具有与该API相关的所有信息,例如其请求格式,响应,错误代码,资源,强制性参数,可选参数,标头等。该文档可以通过各种工具(例如,开源,Dapperdox, ReDoc等
  • 之后,尝试为API编写服务级别案例。 例如,如果某个API使用n个参数来获取响应,其中m是强制性参数,其他是可选参数,则一个测试用例应该是尝试使用不同的参数组合并验证响应。 另一个测试用例可能会验证标头,并尝试在不通过身份验证的情况下运行API,并验证错误代码。
  • 接下来是集成测试步骤,您需要在其中测试API及其所有从属API或功能。 这还包括测试API响应,应返回给另一个API或方法的数据以及该API失败时会发生的情况。
  • 一旦API稳定并且几乎完成功能测试,测试人员就可以执行负载,安全性和性能测试。

API自动化

我们经常需要自动化重复执行的测试用例 对于例如-回归案例。 同样,在进行API测试的情况下,在某些情况下我们可能需要在每个版本之前执行,并且这些情况可以自动化。

有许多用于API自动化的工具,它们非常流行-

  1. 汤UI
  2. 卡塔隆工作室
  3. 邮差
  4. 捷米特
  5. 放心
  6. CloudQA TruAPI

SOUP UI-这是非常流行的API测试工具。您可以使用SoapUI对API进行功能,负载,安全性和合规性测试。

Katalon Studio-建立在Selenium和Appium的顶部,Katalon Studio是一个免费且功能强大的自动化测试工具,用于Web测试,API测试和移动测试。

Postman-邮差是免费的,可以帮助您更有效使用API时。 它具有开发和测试API的所有功能。

Jmeter-尽管Jmeter主要用于性能和负载测试,但在很大程度上也可以用于API功能测试。

RestAssured- Rest-Assured是一个基于Java的库,用于测试RESTful Web服务。该库可以包含在现有框架中,并直接调用其方法以json格式获取响应,然后执行所需的操作。

我以一个示例来说明基本API功能测试所遵循的步骤,这里我使用的是CloudQA提供的TruAPI工具,该工具是新的并且越来越受欢迎-

步骤1-要运行API请求,您需要首先选择“方法类型”并粘贴API的URL。 按发送按钮将请求发送到API或按添加API测试按钮保存请求-

API测试

试试这个样本方法类型和API URL

  • 方法类型: GET
  • APIURL:https://um5fdww2pj.execute-api.us-east-1.amazonaws.com/dev/todos


步骤2:API请求信息:

  • 大多数API需要其他输入来执行请求,例如参数,标头,Body(JSON)等。
  • 要添加请求的参数,您可以选择相应的“ 参数”选项卡,然后按“ 添加参数”按钮以添加所需的信息。
API测试

第3步:发送带有身份验证的API请求:

  • 如果您的托管API需要身份验证,则可以转到“授权”选项卡,然后从下拉列表中选择“ BasicAuth ”(默认设置为“ Noauth”),然后输入用户名和密码。 现在您可以发送经过身份验证的请求了。
API测试
  • 每个API响应均包含不同的值,例如状态代码,正文,标头和完成API请求的时间。 下图显示了如何描述收到的API响应。

添加断言:

  • 在自动化过程中,使用断言验证输出非常重要。 要在API运行程序中添加断言,请转到“断言”选项卡。 您可以在此处添加一个或多个断言。
  • 请按照以下步骤添加断言:
    • 选择回应类型
  • 您已经添加了断言
API测试
API测试

变量:

  • “变量”选项卡对于存储作为已发送的API请求的响应而接收的值很有用。 若要保存响应,请转到“变量”选项卡,然后执行以下步骤:
    • 添加变量
API测试

查看或执行已保存的API请求:

  • 当您进入API Runner页面时,请使用“查看保存的测试”按钮查看保存的测试
  • 选择一个或多个保存的API测试,并默认运行选定的测试,这些测试将显示上一次执行的运行状态信息
  • 结果将显示API执行历史记录
API测试

这是单一的API执行和自动化。 对于现实世界的场景,我们经常需要创建包含所有回归测试用例的API套件,并将其作为回归测试的一部分来运行。 在敏捷中,准备好一套西装以使其能够与CI和CD集成至关重要。

CloudQA附带了有关该工具的非常丰富的文档,CloudQA提供的所有工具都符合“无代码自动化”的思想,并且对于手动测试人员而言非常易于使用。

文档链接-https://doc.cloudqa.io/TruAPI.html

从逻辑上讲,我们可以将整个系统分为三层:

  1. 表示层–这是向最终用户开放的用户界面(GUI)。 质量检查人员在此层执行功能测试。
  2. 业务层-这是编写逻辑的应用程序用户界面。 用技术术语来说,这就是代码/算法所在的地方。 API在这一层中得到体现。
  3. 数据库层-存在应用程序数据的位置。

翻译自: https://www.javacodegeeks.com/2019/01/api-testing-automation-essential-guide.html

api自动化测试

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值