负载测试是性能测试的不同类型中的一种,用于确定系统在实时负载条件下的性能。近年来,API的作用发生了很大变化。当API仅用于提取报告等任务时,其性能从未成为关键因素。然而,API已逐渐成为终端用户与服务公司之间的关键路径,这非常重要。随着越来越多的组织使用API提供服务,其安全性和性能成为关键因素。

2026更新:受OAuth保护的API现已成为API优先和微服务架构的核心。负载测试不仅应验证API性能,还应验证认证流程、令牌生成以及身份提供者在并发负载下的行为。

这里我们将讨论一种API安全机制,称为OAuth 2.0,以及如何对OAuth Web API进行负载测试。

使用LoadView进行JMeter负载测试

什么是OAuth?

OAuth是业界标准的授权协议。OAuth注重客户端开发者的简易性,同时为Web应用、桌面应用、手机等提供了特定的授权流程。该规范及其扩展在IETF OAuth工作组内开发。OAuth通常被用作互联网用户登录第三方网站的一种方式,比如使用他们的Microsoft、Google、Facebook、Twitter、Slack账户登录,而无需泄露密码。

OAuth 1.0被怀疑存在安全缺陷并停止支持。OAuth 2.0是最新版本,具备更先进的安全特性。OAuth 2.0允许用户与应用分享特定数据,同时保护其用户名、密码及其他信息的隐私。例如,某应用程序可以使用OAuth 2.0获取用户许可来存储文件。根据OAuth官网的比喻,它就像汽车的代客钥匙。许多豪华车都配备代客钥匙,这是一把特殊钥匙,您将其交给代客停车员,与常规钥匙不同,它不会允许车子行驶超过一至两英里。有些代客钥匙无法打开后备箱,有些则限制访问车载手机通讯录。无论代客钥匙设限如何,这个想法非常巧妙。您给别人一把有限访问权限的特别钥匙,同时用常规钥匙解锁所有功能。

 

为什么对OAuth Web API进行负载测试很重要

无论您在组织中的角色如何,您至少偶尔会听说过API。那么什么是API?API代表应用程序编程接口。它是一组规则和指令,规定用户通过互联网访问应用时如何与应用通信。一个请求可以是这么简单:

GET: https://userauth.dotcom-monitor.com/login

如果您认为功能测试足够,且这是所有客户关注的,您就错了。假设您的网站伴随营销活动上线,成千上万潜在客户开始登录。到那时您才意识到客户在登录过程中遇到错误。从那刻起,您会失去潜在业务和组织的形象。

为避免尴尬情况,负载测试将您预计生产环境的流量系统地应用到应用服务器上,以确定应用上线前的表现。如果您使用了OAuth,可以通过模拟多个用户同时向服务器发送请求,进行API负载测试。负载测试有多种方法,但API负载测试是最简单且成本最有效的方式之一。这是因为脚本简单,且行业内有大量开源工具可用于生成和执行脚本。

如果您不熟悉API测试及负载测试的工作原理,这里有一篇不错的文章,您可以从中学习API测试知识

在LoadView中,API请求有两种方式:使用EveryStep Web Recorder录制脚本或HTTP任务。您可以使用调用API的应用程序进行录制,也可以使用LoadView解决方案。特别重要的是,如果您的应用程序使用第三方API,也需要对这些API进行负载测试,以确保它们符合您的要求。

 

OAuth流程/阶段

下面将借助LoadView解决方案说明OAuth 2.0流程。LoadView是一款按需负载测试平台,使得无需前期硬件或软件基础设施投资即可实现真实负载测试。我们要测试的应用是一款供医生使用的健康应用。

今后,我们将目标应用称为“健康应用”。该健康应用托管在Azure上,其登录过程使用了微软OAuth 2.0服务,医生可使用其已注册的医院邮箱地址登录。基本上,该应用将提供患者历史的所有详细信息。

OAuth 2.0流程专为用户授权设计。它适用于能够存储机密信息及维护状态的应用。正确授权的Web服务器应用能够在用户操作应用期间或用户离开应用后访问API。

以下是逐步指南,展示OAuth 2.0流程,并附带用于性能测试的LoadView相应配置

流程中仅有两个动作,但是否以多个API序列执行,取决于开发者的需求。OAuth 2.0 API的配置和复杂度会随着应用安全性和开发需求而变化,绝非一成不变。

使用LoadView负载测试OAuth 2.0有两种方式。

  1. 向开发者请求OAuth认证的API序列。这是最简单直接的方法,或者使用LoadView。
  2. 使用EveryStep Web Recorder脚本工具录制。您可以在这里亲自试用录制器

EveryStep Web Recorder易用且更有效率,无需依赖开发者。

 

流程1. 使用EveryStep Web Recorder进行OAuth 2.0负载测试流程

步骤1:访问EveryStep Web Recorder.

OAuth record new script

步骤2:输入您的应用URL并选择立即录制

OAuth record now

 

步骤3:按照您的应用登录流程操作。

OAuth login scenario

 

步骤4:验证应用的所有细节。

OAuth verify details

 

步骤5:完成。重放以确认其正常工作。很简单吧?录制完成后,在LoadView平台配置并执行负载测试。

 

流程2. 使用LoadView进行OAuth 2.0 API序列

注:完成OAuth 2.0流程需要两个动作。

动作1:获取授权码。

动作2:将授权码兑换为访问令牌。

注:您需要向开发团队请求API服务器请求详情和请求体数据。

步骤1创建您的LoadView账户,进入LoadView仪表盘,选择API类型进行测试。

OAuth create new load test

步骤2:演示中选择HTTP/S。实际情况可能因API服务类型不同而异。

OAuth HTTPS test

 

步骤3:配置API请求以访问应用API服务器。

OAuth configure device

 

步骤4:API服务器重定向到登录页面,内容提示访问数据需通过Microsoft(OAuth提供者)登录以访问页面。您可在URL中看到OAuth 2。

OAuth login URL

步骤5:用户输入邮箱和密码,点击登录,输入用户名和密码,然后授权访问应用。认证服务器将用户重定向到您的网站,URL中带有代码参数。

OAuth login URL details

 

步骤6:API服务器向认证服务器请求给定访问令牌的用户信息。认证服务器返回用户ID、邮箱等详情。

OAuth login user information

 

步骤7:API服务器识别用户,并发送响应及访问令牌。客户端在以下请求中将访问令牌发送到API服务器。API服务器核实访问令牌有效性,赋予应用访问权限。

OAuth login access token

 

总结:OAuth Web API负载测试

关联和配置OAuth 2.0请求并非易事。您需要经验和对OAuth如何为您的应用工作有清晰理解。由于OAuth赋能了应用非常重要的功能,因此对OAuth API进行性能测试非常关键。如果您使用其他开源工具,如JMeter,可将JMeter测试转换为LoadView测试。JMeter并非性能测试解决方案,只是负载发起工具。我们需要像LoadView这样的优秀性能测试解决方案来执行端到端性能测试。

了解更多关于LoadView的信息并注册免费试用。您将获得最多5次免费负载测试机会