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

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,以获取任何位置的经度和纬度。 这通常以地址作为输入并返回lat long。 现在,对于此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而非常笨重。 相对于Rest,SOAP的主要优点是它内置了错误处理功能,并且可以与其他协议(例如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


Step2-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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/345011.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【渝粤题库】陕西师范大学200161 文字学概论 作业

《文字学概论》作业 一、单选题 1、原始社会陶器上的图形符号刻划是以( )为代表的。 A 仰韶文化 B 马家窑文化 C 良渚文化 D 大汶口文化 2、下列各字中不属于象形字的是( )。 A十 B小 C羊 D未 3、“画成弃物 ,随体诘屈”,是许慎给…

oracle 调整dbw0,求助:DBW的内存占用率高,可能是什么原因?

没人遇到这样的问题吗?补充一个现象,v$session中"SQL*Net message from client"很多,下面是随便选择一个时间点查到的数据:SQL> select t.EVENT, count(1) from v$session t group by t.EVENT;EVENT …

【渝粤题库】陕西师范大学200601 英语报刊阅读

《报刊阅读》作业 Translate the following words into Chinese 1.International Herald Tribune 2.Secretary of State 3.Justice Department 4.Cult 5.Catholic Church 6.Bosnia 7.The Netherlands 8.EU 9.FBI 10.UNESCO 11.The Commonwealth 12.Speaker 13.constitutional…

【渝粤题库】陕西师范大学200971教育经济学 作业(专升本、高起本)

《教育经济学》作业 一、单选题 1.我国多数学者认为,应该把教育经济学隶属于经济科学体系,属于( )。 A.宏观经济学 B.微观经济学 C.部门经济学 D.产业经济学 2.教育经济学是现代经济和现代教育的产物,它在西方萌芽于20世纪20年代,形成于( &am…

oracle数据库安装HotSpot,安装Oracle数据库软件遭遇诡异的HotSpot Virtual Machine Error : 11报错...

虽然也装了很多次的数据库了,可是偶尔还是会碰见一些很无语的错误,前两天在RHEL5.0上安装Oracle 10g 10.2.0.1,起图形后点击下虽然也装了很多次的数据库了,可是偶尔还是会碰见一些很无语的错误,前两天在RHEL5.0上安装O…

jdk8lambda_JDK8 lambda的会话指南–术语表

jdk8lambda上次出现…我写了一篇与JDK8为我们提供的新方法有关的文章。 最令我兴奋的功能是lambda。 我必须承认,在即将成为浪子的第一年(在此期间,我使用C#进行了开发),我喜欢LINQ和它可以做的漂亮&#x…

【渝粤题库】陕西师范大学202041 国际经济学 作业(专升本)

《国际经济学》作业 一.判断题 1.重商主义认为每个国家应该努力实现出口等于进口的平衡贸易 2. 比较优势原理只能应用于简单的两国模型中,而不能应用于现实中众多国家与贸易的情况。 3.一般来说…

【渝粤题库】陕西师范大学202831 程序设计 作业(专升本)

陕西师范大学 内 部 题 库 教育 (yuyueshool) 编制 《VB程序设计》作业 一.选择题 1.在Visual Basic中,称对象的数据为_____。 (A) 属性 (B) 方法 © 事件 (D) 封装 2.下列选项中为字符串常量的是___…

oracle查询字段有list,java读取oracle表字段信息存到列表(LIST)中

今天在研究如何将oracle表字段的信息存到列表数组中,做了一点实验,是在java1.5下,用myeclips做的,代码如下:public static List> gocilist(Connection conn,String table){ResultSet rs null;Statement stmtnull;/…

【渝粤题库】陕西师范大学209912 金融中介学Ⅰ 作业

《金融中介学Ⅰ》作业 一、单选题 1、金融中介提供的是服务,收取的是( ) A 手续费 B 佣金 C 服务费 D金融费 2、( )是金融市场活动的组织承担者。 A银行 B投资银行 C 金融中介机构 D投资者 3、( &#xff0…

【渝粤题库】陕西师范大学210032学前心理学 作业(专升本)

《学前心理学》作业 一、填空 1、研究儿童心理必须遵循的原则是______ 、 _______ 、。 2、新生儿最基本的无条件反射是 、 ________ 、。 3、学前儿童掌握实物概念的特点是以_______为主,以_______为主。 4、感觉既是一种______现象,又是一种_______现象…

【渝粤题库】陕西师范大学292961 会计学 作业 (高起专)

《会计学I》作业 一、名词解释 1、会计 2、会计主体 3、会计职能 4、会计科目 5、实地盘存 6、复式记账 7、会计期间 8、会计计量 9、会计凭证 10、会计账簿 二、填空 1. 会计分录是根据__________在记账凭证中,指明经济业务应借、应贷的会计科目及其金额的记…

无服务器,Java和FN项目的第一步

无服务器不是什么新事物,但是可以说,仍然有很多关于它的炒作,以及它将如何改变一切,以及未来将如何成为无服务器。 除了云提供商提供的无服务器/功能之外,还有越来越多的无服务器项目正在我们的路上,目的是…

php中可以实现分支,PHP中的分支及循环语句

这次实践的都是PHP7的语法。感觉是以前的5差别不是那么大,只是希望越来越快吧。$looking isset($_GET[title]) || isset($_GET[author])?>BookStoreecho "Befor the conditional.";if (2 > 2) {echo "Inside the conditional.";} elsei…

【渝粤题库】陕西师范大学500000 数理方法 作业(专升本)

《数理方法》作业 复数z1i 的指数表达式为( ) A. B. C. D. 在解析函数论中,区域是满足下列( )条件的点集 A.由内点组成;不一定有连通性。 B&…

【渝粤题库】陕西师范大学700004 植物生理学

《植物生理学》作业 一、 名词解释 1.必需元素 2.原初反应 3.三重反应   4.水势 5.光呼吸 6.植物生长物质   7&#xff…

linux结束所有任务命令行,Linux基础命令(15)定时任务

释放双眼,带上耳机,听听看~!crontadLinux定时任务Crontab命令详解linux 系统则是由 cron (crond) 这个系统服务来控制的。Linux 系统上面原本就有非常多的计划性工作,因此这个系统服务是默认启动的。另 外, 由于使用者自己也可以设…

国家开放大学2021春1026西方经济学(本)题目

教育 教育 试卷代号: 1026 2021年春季学期期末统一考试 西方经济学(本) 试题 2021年7月 一、单项选择题(在下列各题的备选答案中选择一个正确的,并将其序号字母填入题后的括号里。每题2分,共30分&#xf…

国家开放大学2021春1127实用卫生统计学题目

教育 教育 试卷代号: 1127 2021年春季学期期末统一考试 实用卫生统计学 试题(开卷) 2021年7月 一、单项选择题(每题2分,共20分) 1.若要通过样本进行统计推断,样本应该是( )。 A.总体中典型的一…

【渝粤题库】广东开放大学 C语言程序设计 形成性考核

选择题 题目:C语言的基本构成单位是: 。 答案: A、函数 B、函数和过程 C、超文本过程 D、子程序 题目:一个 C语言程序总是从 开始执行。 答案: A、主过程 B、主函数 C、主程序 D、子程序 题目:C语言的程序一…