testararchitect角:API测试中的认证方法

这些是testararchitect中流行的身份验证方法

一个对于开发人员和测试人员来说,API测试中的身份验证通常是一个复杂的主题,因为它需要广泛了解各种类型的安全协议和加密算法。

也就是说,几乎所有API使用者在被授予某些特权之前都必须进行身份验证,比如在云上提供移动设备或创建新的数据库记录。本文将解释一些最流行的身份验证方法,以及如何使用testararchitect完成它们。

web服务测试中的身份验证是什么?

通常,web服务需要知道它正在向谁提供服务。因此,API使用者必须对自己进行身份验证——通过各种身份验证方法证明“他们就是他们所说的那个人”。

好的身份验证方法可以保护客户端和服务器之间交换的敏感信息。这意味着任何嗅探消息的恶意攻击者必须不能解密它们并获得客户机的凭据。

身份验证还帮助服务提供者对客户机进行分类,并为它们设置正确的权限(授权)。此外,在云计算的世界中,它可以帮助服务提供商跟踪客户端的使用情况,从而正确地为他们计费。

受欢迎的身份验证方法

在API测试中有许多验证方法,包括标准方法和非标准方法。有些服务创造性地发明了它们自己特有的方法,或者实现了流行方法的变体。因此,当我们测试一个API时,我们必须清楚地知道被测试API正在使用的身份验证方法。然而,从技术上讲,用于身份验证的数据只能驻留在这3个地方:

  • HTTP请求的头
    例如基本的认证方法,用户名/密码,摘要,OAuth…
  • HTTP请求的身体
    如表单身份验证
  • HTTP请求的URL
    例如API密匙

我们将关注最常见的方法,即OAuth 2.0和API key。

API密匙

API密钥从web API诞生的第一天就开始使用了。它简单易用,但安全性不高。开发人员通常在API不是业务关键型且便利性高于安全性的情况下选择API键,比如只读取天气数据的API。由于API键明显存在于客户端和web服务之间交换的http消息中(例如http头、URL),任何嗅探消息的人都可以获得API键并利用它。

YouTube或AWS等系统要求其API使用者使用API密钥进行身份验证。它们通常跟踪用户的使用历史和API调用的数量。你不能通过无限调用它的API来滥用服务。通常他们会限制每分钟的API调用数量。

在本例中,我们将创建一个脚本,从YouTube获取与指定视频(字幕轨道)关联的视频列表,然后验证返回的关联视频数量。有关这个REST资源的更多信息,请查看这个页面

  • 第一步是从谷歌(可用)获得一个API密钥在这里
    注意:如果您正在测试您的内部web服务,您应该联系开发团队来检索用于测试目的的API键。
  • 接下来,我们打开testararchitect并编写一个测试用例,如下所示

#初始:这一部分设置了测试用例的前提条件。在本例中,“I”创建一个变量来存储API键。

#测试用例:验证关联视频的数量。

然后我们发送请求并处理响应结果。响应的主体是一个JSON字符串,所以我们使用JsonPath查询出“item.size()”块。这个特定视频的相关视频的数量预计为“11”。

OAuth 2.0

OAuth 2.0是另一种被大型web服务提供商广泛采用的成熟认证方法,比如谷歌和Facebook。

OAuth 2.0是识别个人用户帐户并授予适当权限的最佳选择。它需要用户的物理确认,比如两步验证来获得访问令牌。OAuth对于访问敏感数据和服务是非常安全的。然而,它的缺点包括实现上的困难,而且它更难使用。

在下面的例子中,我们将上传一张图片到http://api.imgur.comOAuth 2.0。

  • 要使用OAuth 2.0,我们必须首先获得访问令牌字符串。这一步对于每个web服务都是不同的。您可以手动执行该步骤,也可以通过web UI自动执行该步骤。好消息是,这只需要做一次。
    Imgur.com有关于如何获得访问令牌的详细说明在这里
  • 下一步是使用正确的身份验证信息调用web API。因为我们要上传图像,所以http方法的选择是POST。REST的端点是https://api.imgur.com/3/image.有关这个端点的更多信息,请查看这个文档

#初始:这一部分用于设置测试用例的前提条件。在本例中,我们创建了一个高级操作“get token”,通过UI获取token字符串,步骤如下:

  • 通过在浏览器上打开正确的URL来请求一个令牌
  • 通过GUI自动化确认正确的用户名和密码
  • 解析重定向URL以获得所需的令牌

#测试用例:上传一个图像并验证返回的代码

首先,我们创建一个http请求,然后通过第23行向该http请求添加身份验证信息。

注意:模式应该是正确的。在本例中,我们使用“OAuth 2.0”。

  • 测试用例的其余部分是配置API所需的必要信息并发送http请求。有关更多信息,请参阅上面REST端点的描述。
  • 注意:我们可以向“发送http请求”操作添加预期的代码,或者我们可以通过“解析http响应”操作来解析“result”变量中的返回值。最终,这个测试用例只有在返回的代码是200

结论

这只是两个常见的例子,代表了在web服务测试领域中对API使用者进行身份验证的无数种方法。我们可以有把握地得出结论,身份验证有各种形式和大小。但关键的要点是:您需要了解正在测试的API。对于每个API,我们都必须处理一个甚至多个身份验证方法。然而,不要感到不知所措。正如我们已经讨论过的,这一切都归结为将身份验证信息附加到http请求。无代码测试很容易,但只有在我们掌握了它的窍门之后。

Khai Tran是LogiGear产品自动化团队的产品负责人TestArchitect.他对测试自动化非常有激情,并努力使自己成为一个更好的经理,以及整个开发社区。

免费获得TestArchitect团队





潘文凯Tran
Khai Tran是LogiGear产品自动化团队的产品负责人TestArchitect.他对测试自动化非常有激情,并努力使自己成为一个更好的经理,以及整个开发社区。
Thuc阮
他一直领导LogiGear的产品团队,为LogiGear的客户和服务客户提供高质量的测试自动化解决方案。Thuc非常热衷于帮助组织转变他们的测试自动化、持续交付和DevOps实践,以及授权所有技术级别的测试人员在复杂的企业环境中茁壮成长。
Thuc Nguyen在Linkedin上

相关的帖子

缺乏信息和访问信息并不是web服务的问题。Web服务文档广泛可用。测试人员经常抱怨的一个主要问题是缺乏信息和获取信息的途径。幸运的是,web服务并非如此。如果在罕见的情况下…
API测试长期以来一直被误解为局限于开发人员的领域。人们很自然地认为我们必须编写代码来测试我们的代码。然而,它不必再这样了。拥有深厚领域知识的业务测试人员现在能够在不编写. ...的情况下接受API测试的挑战
使用:Java, REST Assured, Postman, Tracks, Curl和HTTP代理的案例研究这是我在我的网站上写的第一个书评。当然,我不得不选择一本与我的专业领域相关的好书。Alan Richardson的《自动化和测试REST API》一书完全符合这一要求。我是一个…
api是我们这个互联世界的无名英雄我们生活在一个激动人心的智能时代,在这个时代,进步以想象的速度前进。我们与世界和彼此之间前所未有地联系在一起。API(应用程序接口)是我们这个互联世界的无名英雄。以下是你需要知道的一切……
在开发web服务API测试策略时,您可能会发现以下几本书很有用。Ian Molyneaux的《应用程序性能测试的艺术》——这本书刚刚出版,我发现它对基于web的应用程序的性能测试有一个很好的概念概述。这本书很好地评论了…
记住,敏捷不是一个SDLC。Scrum和XP也是如此。相反,这些是项目框架;它们是从实践中构建的(例如,XP有12个核心实践)。Scrum和XP的提倡者会自由地建议你选择一些实践来实现,然后保留有效的,丢弃……
社交api无处不在,为测试创造了特殊情况。如果您了解API测试,特别是web服务类型API,那么测试社交API就很容易掌握。社交api的使用使它们成为一种特殊情况。它们无所不在,而且非常容易理解。这意味着你需要有一个很好的理解…
API测试中最重要的任务之一是设计输入数据,这些数据的量可能会由于大量参数的组合而爆炸。一个有经验的测试人员必然会发现两两法在有效挑选时的优势。
理解web服务测试难题的各个部分可以使测试变得更容易。对于想要更广泛地理解web服务测试难题中的更多部分的人,下面是对API的各种可能组件的分解。
LogiGear_Magazine-June_2015-All_About_API_Testing
api正在微妙地改变我们的期望,即应该有一个适用于所有东西的应用。近年来,颠覆的概念在企业、初创公司和科技界都被赋予了王者的地位。如此强调变化,用户体验也不可避免地面临演变。应用程序编程接口或api具有巨大的颠覆性力量,但是……
面向传统或非技术测试人员的web服务测试解决方案概述。关于API测试的技术执行已经写了很多,但在设计什么测试以及如何设计它们的细节方面还存在差距。文章往往要么过于技术化太快,要么过于模糊和……

留下一个回复

您的电子邮件地址将不会被公布。必需字段被标记

保持最新消息
软件测试消息

订阅
Baidu