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测试是整个软件测试和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 URL

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


步骤2:API请求信息:

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

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

  • 如果您的托管API需要身份验证,则可以转到“授权”选项卡,然后从下拉列表中选择“ BasicAuth ”(默认设置为“ Noauth”),然后输入用户名和密码。 现在您可以发送经过身份验证的请求了。

  • 每个API响应均包含不同的值,例如状态代码,正文,标头和完成API请求的时间。 下图显示了如何描述收到的API响应。

添加断言:

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


变量:

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

    • 添加变量

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

  • 当您进入API Runner页面时,请使用“查看保存的测试”按钮查看保存的测试
  • 选择一个或多个保存的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自动化测试

api自动化测试_API测试和自动化101:基本指南相关推荐

  1. API测试和自动化101:基本指南

    API代表A pplication P AGC软件我覆盖整个院落. 通常,API用于通过使用任何通信方式来促进两个不同应用程序之间的交互. 在网络上使用API​​时,我们将其称为" Web服 ...

  2. 人工智能 自动化测试_测试中的AI:第三波自动化

    人工智能 自动化测试 敏捷方法论的发展迫使企业进行创新并以闪电般的速度交付. 在交付周期时间减少的同时,提供积极的用户体验并保持竞争优势所需的技术复杂性也在增加,而我们引入引人注目的创新的速度也在增加 ...

  3. 什么是API测试?开发必知的8种API自动化测试类型

    API测试 API自动化测试在产品质量控制和CI/CD流程检测中扮演着非常重要的角色.与GUI测试不同,API测试可以更灵活应地适应发布周期短和频繁变更的需求或产品,而且也不会破坏测试输出结果. 什么 ...

  4. 什么是API测试?4种API自动化测试的好处

    API测试 API自动化测试在产品质量控制和CI/CD流程检测中扮演着非常重要的角色.与GUI测试不同,API测试可以更灵活应地适应发布周期短和频繁变更的需求或产品,而且也不会破坏测试输出结果. [外 ...

  5. postman如何测试php接口_基于Postman的API自动化测试

    基于Postman的API自动化测试 1.安装 两种安装方式,我热衷于以chrome插件形式安装 Chrome插件 Mac App 2.发送请求 Postman最基础的功能就是发送http请求,支持G ...

  6. 自动化测试中的测试执行自动化

    "自动化测试"这个术语的使用是如何对团队深挖自动化益处产生束缚作用的,Richard Bradshaw 在Agile Testing Days 2015上对此进行了探讨分析. \\ ...

  7. 自动化测试和测试自动化你分的清楚吗?

    目录 目录 前言 两种自动化测试 为什么测试自动化对连续测试至关重要 使测试自动化成为现实 拥抱连续测试 总结 前言 当我们谈论持续测试,以及持续交付和DevOps时,"自动化"一 ...

  8. HTTP API 自动化测试从手工测试到平台的演变

    不管是 Web 系统,还是移动 APP,前后端逻辑的分离设计已经是常态化,相互之间通过 API 调用进行数据交互.在基于 API 约定的开发模式下,如何加速请求 / 响应的 API 测试,让研发人员及 ...

  9. 【转账】API自动化测试

    随着公司各部门对质量的日益重视,API测试已成为日常的测试任务之一,为了提高测试效率,减少重复的手工操作,API自动化测试也逐渐变得愈加重要,本文是自己在API自动化测试方面的一些经验积累和心得.汇总 ...

最新文章

  1. C# 在PDF中绘制动态图章
  2. Cannot load 32-bit SWT libraries on 64-bit JVM
  3. WindowsServer2008防火墙配置命令
  4. FFmpg音视频入门教程
  5. 关于Shell的一些常用命令
  6. 2021年的电商,要怎么做,才能赚钱呢?
  7. python循环报数游戏_报数游戏python 解答
  8. python递归的方式打印九九乘法表
  9. 搞定问题描述的5W2H法是什么
  10. Android开发——数据库框架Suger遇到的大坑(Gson和Suger的复用Bean请见“大坑三”)
  11. fighting_使用CSS美化文字
  12. 牛客网 - [牛客假日团队赛6]对牛排序
  13. 微信早安定时推送 简单方法教程(windows通用)
  14. C语言获取硬件信息(CPU序列号,硬盘序列号,网卡IP、MAC地址、是否插入网线)
  15. 原理c语言for循环延时1s,for循环实现C语言精确延时
  16. 云服务器上传文件怎么这么慢,百度云上传速度慢怎么办?教你如何加快百度云上传速度...
  17. FFmpeg介绍及了解常用指令(●----●)
  18. 计算机毕业设计 基于thinphp 的校园论坛交流网站(源码+系统+mysql数据库+Lw文档)
  19. 蓝桥杯 PREV-281 时间显示【第十二届】【省赛】
  20. Pos机打印空格问题

热门文章

  1. CodeForces 282E Sausage Maximization(trie+xor)
  2. [AtCoder Regular Contest 124E] Pass to Next(dp+数学)
  3. 51nod2626-未来常数【树上启发式合并,线段树】
  4. Loj#2035-[SDOI2016]征途【斜率优化】
  5. jzoj6451-[2020.01.19NOIP提高组]不幸运数字【记忆化搜索,数位dp,高精度】
  6. 欢乐纪中某A组赛【2019.7.6】
  7. codeforces1271 D. Portals(dp or 带悔贪心)
  8. CF1088F Ehab and a weird weight formula(树上最优性问题、贪心+倍增)
  9. 多项式相关操作学习笔记
  10. SpringCloud Gateway配置自定义路由404坑