【问题标题】:Does Google provide test users for integration testing谷歌是否提供测试用户进行集成测试
【发布时间】:2013-07-13 12:46:31
【问题描述】:

测试用户非常擅长做集成测试。

当我开发启用 facebook oauth 的东西时,我可以以编程方式创建 test users 并将它们用作我的应用程序的真实用户。它们的行为方式与真实用户相同,唯一的区别是它们是沙盒的。

Google 是否提供类似的服务?

他们正在将所有服务转移到 oauth2,我想为“真实”用户编写一个完整的集成测试。

目前我手动运行我的集成测试并在请求时授权应用程序,显然这种方法不适合 CI 和真正的自动化测试。

我看到的唯一替代方法是创建一个仅用于测试的真实帐户,并使用其凭据与 selenium 之类的东西进行交互。

其他选择?

【问题讨论】:

    标签: oauth-2.0 integration-testing google-oauth google-account


    【解决方案1】:

    您说得对,Google 不像 Facebook 那样提供测试用户 API。我认为你有两个选择:

    1. 如您所说,使用“真实”的 Google 用户。如果 Google 阻止这些帐户或添加额外检查以测试他们是否是真实用户(电话验证),这可能会导致问题。他们还会进行一些 A-B 测试,这可能会破坏您的测试脚本。

    2. 使用模拟第三方而不是 Google 服务。这将测试您的通用 oauth 集成代码,但显然不如针对真正的 Google 服务进行测试那么健壮。当您控制模拟服务时,此方法可以更稳定。

    【讨论】:

    • 以防万一其他人发现这个。我们尝试了选项 1,它们确实阻止了自动登录。我们甚至复制了 2FA,但他们随后求助于 recaptcha。
    【解决方案2】:

    您可以在googles cloud console 中创建一个谷歌帐户并配置一个简单的项目/客户端。然后您可以将其配置为 oauth 并使用 googles oauth-playground 创建一个刷新令牌(永不过期)。

    使用您的客户端 ID、客户端密码和刷新令牌,您可以在测试中向 google 的身份验证令牌端点 (https://www.googleapis.com/oauth2/v4/token) 发送后请求,​​并会收到有效的(短时间)访问权限 -令牌。此处无需手动步骤。

    我在this guide 上读到过。

    【讨论】:

      【解决方案3】:

      如何以编程方式获取 Google 访问权限 令牌(自动测试)?

      验证:

      curl "https://www.googleapis.com/oauth2/v1/userinfo?alt=json&access_token=ACCESS_TOKEN"
      
      {
        "id": "10934363016XXXXXXXXXX",
        "picture": "https://lh3.googleusercontent.com/a-/AOh14GhoUlKjYgC-..."
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-02-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-02-21
        • 2021-03-11
        • 2016-11-11
        相关资源
        最近更新 更多