api自动化测试_API测试和自动化101:基本指南
api自动化测试
API代表A pplication P AGC软件我覆盖整个院落。 通常,API用于通过使用任何通信方式来促进两个不同应用程序之间的交互。 在网络上使用API时,我们将其称为“ Web服务”。 近年来,API已成为编程的Struts。 与在应用程序中一样,编写API与数据库或与其他模块进行通信现在已成为一种惯例,这就是为什么作为测试人员,我们必须测试API以最大程度地覆盖测试范围。
作为集成测试的一部分,API自动化可以帮助加速测试并提高效率。 由于大多数公司在业务层使用RESTful微服务/ API,因此API测试已成为任何版本测试计划的关键组成部分。
用最简单的术语来说,API是一项服务,可以帮助两个不同的应用程序相互通信。 通常,API用于抽象业务逻辑并直接对任何应用程序进行数据库访问。
从逻辑上讲,我们可以将整个系统分为三层:
- 表示层–这是向最终用户开放的用户界面(GUI)。 质量检查人员在此层执行功能测试。
- 业务层-这是编写逻辑的应用程序用户界面。 用技术术语来说,这就是代码/算法所在的地方。 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方法执行任务-
- 获取-获取信息。 例如,在使用位置映射API的情况下获取经度和纬度。
- 后-在资源中插入一些数据。
- 放置-更新资源。
- 删除-从资源中删除。
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测试-
- 索取文件
- 首先编写功能或服务级别案例
- 编写集成测试
- 当API足够稳定并通过上述大多数测试时,请执行安全性,性能和负载测试。
- 典型的API文档具有与该API相关的所有信息,例如其请求格式,响应,错误代码,资源,强制性参数,可选参数,标头等。该文档可以通过各种工具(例如,开源,Dapperdox, ReDoc等
- 之后,尝试为API编写服务级别案例。 例如,如果某个API使用n个参数来获取响应,其中m是强制性参数,其他是可选参数,则一个测试用例应该是尝试使用不同的参数组合并验证响应。 另一个测试用例可能会验证标头,并尝试在不通过身份验证的情况下运行API,并验证错误代码。
- 接下来是集成测试步骤,您需要在其中测试API及其所有从属API或功能。 这还包括测试API响应,应返回给另一个API或方法的数据以及该API失败时会发生的情况。
- 一旦API稳定并且几乎完成功能测试,测试人员就可以执行负载,安全性和性能测试。
API自动化
我们经常需要自动化重复执行的测试用例。 对于例如-回归案例。 同样,在进行API测试的情况下,在某些情况下我们可能需要在每个版本之前执行,并且这些情况可以自动化。
有许多用于API自动化的工具,它们非常流行-
- 汤UI
- 卡塔隆工作室
- 邮差
- 捷米特
- 放心
- 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
从逻辑上讲,我们可以将整个系统分为三层:
- 表示层–这是向最终用户开放的用户界面(GUI)。 质量检查人员在此层执行功能测试。
- 业务层-这是编写逻辑的应用程序用户界面。 用技术术语来说,这就是代码/算法所在的地方。 API在这一层中得到体现。
- 数据库层-存在应用程序数据的位置。
翻译自: https://www.javacodegeeks.com/2019/01/api-testing-automation-essential-guide.html
api自动化测试
api自动化测试_API测试和自动化101:基本指南相关推荐
- API测试和自动化101:基本指南
API代表A pplication P AGC软件我覆盖整个院落. 通常,API用于通过使用任何通信方式来促进两个不同应用程序之间的交互. 在网络上使用API时,我们将其称为" Web服 ...
- 人工智能 自动化测试_测试中的AI:第三波自动化
人工智能 自动化测试 敏捷方法论的发展迫使企业进行创新并以闪电般的速度交付. 在交付周期时间减少的同时,提供积极的用户体验并保持竞争优势所需的技术复杂性也在增加,而我们引入引人注目的创新的速度也在增加 ...
- 什么是API测试?开发必知的8种API自动化测试类型
API测试 API自动化测试在产品质量控制和CI/CD流程检测中扮演着非常重要的角色.与GUI测试不同,API测试可以更灵活应地适应发布周期短和频繁变更的需求或产品,而且也不会破坏测试输出结果. 什么 ...
- 什么是API测试?4种API自动化测试的好处
API测试 API自动化测试在产品质量控制和CI/CD流程检测中扮演着非常重要的角色.与GUI测试不同,API测试可以更灵活应地适应发布周期短和频繁变更的需求或产品,而且也不会破坏测试输出结果. [外 ...
- postman如何测试php接口_基于Postman的API自动化测试
基于Postman的API自动化测试 1.安装 两种安装方式,我热衷于以chrome插件形式安装 Chrome插件 Mac App 2.发送请求 Postman最基础的功能就是发送http请求,支持G ...
- 自动化测试中的测试执行自动化
"自动化测试"这个术语的使用是如何对团队深挖自动化益处产生束缚作用的,Richard Bradshaw 在Agile Testing Days 2015上对此进行了探讨分析. \\ ...
- 自动化测试和测试自动化你分的清楚吗?
目录 目录 前言 两种自动化测试 为什么测试自动化对连续测试至关重要 使测试自动化成为现实 拥抱连续测试 总结 前言 当我们谈论持续测试,以及持续交付和DevOps时,"自动化"一 ...
- HTTP API 自动化测试从手工测试到平台的演变
不管是 Web 系统,还是移动 APP,前后端逻辑的分离设计已经是常态化,相互之间通过 API 调用进行数据交互.在基于 API 约定的开发模式下,如何加速请求 / 响应的 API 测试,让研发人员及 ...
- 【转账】API自动化测试
随着公司各部门对质量的日益重视,API测试已成为日常的测试任务之一,为了提高测试效率,减少重复的手工操作,API自动化测试也逐渐变得愈加重要,本文是自己在API自动化测试方面的一些经验积累和心得.汇总 ...
最新文章
- C# 在PDF中绘制动态图章
- Cannot load 32-bit SWT libraries on 64-bit JVM
- WindowsServer2008防火墙配置命令
- FFmpg音视频入门教程
- 关于Shell的一些常用命令
- 2021年的电商,要怎么做,才能赚钱呢?
- python循环报数游戏_报数游戏python 解答
- python递归的方式打印九九乘法表
- 搞定问题描述的5W2H法是什么
- Android开发——数据库框架Suger遇到的大坑(Gson和Suger的复用Bean请见“大坑三”)
- fighting_使用CSS美化文字
- 牛客网 - [牛客假日团队赛6]对牛排序
- 微信早安定时推送 简单方法教程(windows通用)
- C语言获取硬件信息(CPU序列号,硬盘序列号,网卡IP、MAC地址、是否插入网线)
- 原理c语言for循环延时1s,for循环实现C语言精确延时
- 云服务器上传文件怎么这么慢,百度云上传速度慢怎么办?教你如何加快百度云上传速度...
- FFmpeg介绍及了解常用指令(●----●)
- 计算机毕业设计 基于thinphp 的校园论坛交流网站(源码+系统+mysql数据库+Lw文档)
- 蓝桥杯 PREV-281 时间显示【第十二届】【省赛】
- Pos机打印空格问题
热门文章
- CodeForces 282E Sausage Maximization(trie+xor)
- [AtCoder Regular Contest 124E] Pass to Next(dp+数学)
- 51nod2626-未来常数【树上启发式合并,线段树】
- Loj#2035-[SDOI2016]征途【斜率优化】
- jzoj6451-[2020.01.19NOIP提高组]不幸运数字【记忆化搜索,数位dp,高精度】
- 欢乐纪中某A组赛【2019.7.6】
- codeforces1271 D. Portals(dp or 带悔贪心)
- CF1088F Ehab and a weird weight formula(树上最优性问题、贪心+倍增)
- 多项式相关操作学习笔记
- SpringCloud Gateway配置自定义路由404坑