【问题标题】:Authenticate to Google with Oauth2 in JMeter在 JMeter 中使用 Oauth2 向 Google 进行身份验证
【发布时间】:2017-08-04 06:49:27
【问题描述】:

我正在进行 POST 调用以在 JMeter 中获取 oAuth 令牌。这样我就可以将文件上传到 Google Drive。以下是我在 JMeter 中的请求详情。

POST https://accounts.google.com/o/oauth2/token

POST data:
client_id=<my_client_id>&auth_uri=https%3A%2F%2Faccounts.google.com%2Fo%2Foauth2%2Fauth&token_uri=https%3A%2F%2Faccounts.google.com%2Fo%2Foauth2%2Ftoken&client_secret=<my_client_secret>&grant_type=authorization_code&redirect_uris=%5B%22urn%3Aietf%3Awg%3Aoauth%3A2.0%3Aoob%22%2C+%22127.0.0.1%3A3000%22%5D%0A&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fdrive

[no cookies]

Request Headers:
Connection: keep-alive
Content-Type: application/x-www-form-urlencoded
Content-Length: 424
Host: accounts.google.com
User-Agent: Apache-HttpClient/4.5.2 (Java/1.8.0_121)

但我遇到了错误。任何帮助表示赞赏。谢谢。

{
:   
  "error" 
:   : "invalid_request",

:   "error_description" : "Missing required parameter: code"

}

【问题讨论】:

  • 我检查了这个。但无法在 JMeter 中构建请求。
  • 如果要上传文件,需要访问令牌。如果要检索访问令牌,则需要从具有范围的 URL 检索到的代码。
  • 您是否使用 JMeter 运行测试,您使用的 Drive Account 是否是用于此目的的测试帐户?

标签: oauth google-drive-api jmeter google-oauth


【解决方案1】:

我无法帮助您使用 JMeter,但我可以告诉您错误消息的含义。

grant_type=authorization_code 是 Oauth2 流程中的第二步。它有一些必需的参数,其中之一是代码。

https://accounts.google.com/o/oauth2/token
code=4/X9lG6uWd8-MMJPElWggHZRzyFKtp.QubAT_P-GEwePvB8fYmgkJzntDnaiAI&client_id={ClientId}.apps.googleusercontent.com&client_secret={ClientSecret}&redirect_uri=urn:ietf:wg:oauth:2.0:oob&grant_type=authorization_code

有问题的代码是从最初请求用户批准应用程序访问权限时返回的代码。

我还想补充一点,Google 有许多官方客户端库可以为您处理这些调用。使用其中之一要容易得多,然后在不需要时尝试理解 Oauth2 流程。如果你不能使用这个库,并且你有兴趣看到完整的 Oauth2 流向谷歌,我有一个关于它的教程 Google 3 legged Oauth2 flow 它显示了纯 HTTP 调用。

【讨论】:

    【解决方案2】:

    我建议使用 JSR223 Test Elements 中的 Google OAuth Java Client LibraryGroovy 作为编程语言,这是获取/刷新 OAuth 令牌的最快和最简单的方法。

    详细解释和授权示例见How to Run Performance Tests on OAuth Secured Apps with JMeter文章。

    【讨论】:

    • 谢谢德米特里。我正在查看您的文章blazemeter.com/blog/…,您在该文章中直接输入了 Bearer {token}。能否请您告诉我您是如何手动获得该令牌的?
    • 如果您想向其中添加一些代码,请向他展示如何使用库,其他明智的 IMO 这是仅板线链接的答案。
    猜你喜欢
    • 2015-03-24
    • 2014-04-29
    • 2013-06-24
    • 2012-06-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多