Fab*_*bio 27 integration-testing google-account oauth-2.0 google-oauth
测试用户非常善于进行集成测试.
当我开发facebook oauth启用的东西时,我可以以编程方式创建测试用户并将其用作我的应用程序的真实用户.它们的行为方式与真实用户相同,唯一的区别是它们是沙盒.
Google会提供类似的东西吗?
他们正在将所有服务转移到oauth2,我想与"真实"用户进行完整的集成测试.
目前我手动运行我的集成测试并在请求时授权应用程序,显然这种方法不适合CI和真正的自动化测试.
我看到的唯一选择是创建一个仅在测试中使用的真实帐户,并使用其与硒等内容交互的凭据.
其他选择?
Min*_*vME 15
如何以编程方式获取Google 访问令牌(自动测试)?
在 Google 控制台上创建一个项目: https: //console.cloud.google.com/
转到凭据-> + 创建凭据-> OAuth 客户端 ID:
按右上角的设置(齿轮)图标(OAuth 2.0 配置):
在第 1 步手风琴面板的底部输入所需的空格分隔范围(请参阅https://developers.google.com/identity/protocols/oauth2/scopes#oauth2):
openid(默认)
例子:
openid https://www.googleapis.com/auth/userinfo.email https://www.googleapis.com/auth/userinfo.profile
Run Code Online (Sandbox Code Playgroud)
并按授权 API。
在下一个屏幕上选择帐户(可选屏幕)并授予应用程序权限。
然后您应该被重定向到https://developers.google.com/oauthplayground/?code=SOME-SINGLE-USE-CODE&scope=openid&...。
按兑换令牌的授权代码
或者手动通过
curl -v "https://oauth2.googleapis.com/token" -d "code=SOME-SINGLE-USE-CODE&redirect_uri=https%3A%2F%2Fdevelopers.google.com%2Foauthplayground&client_id=YOUR_APP_CLIENT_ID&client_secret=YOUR_APP_CLIENT_SECRET&scope=&grant_type=authorization_code"
Run Code Online (Sandbox Code Playgroud)
获取未过期的刷新令牌。
最后,从Access token中获取access token
或手动:
curl -d "client_id=YOUR_APP_CLIENT_ID&client_secret=YOUR_APP_CLIENT_SECRET&grant_type=refresh_token&refresh_token=YOUR_APP_REFRESH_TOKEN" "https://oauth2.googleapis.com/token"
Run Code Online (Sandbox Code Playgroud)
证实:
curl "https://www.googleapis.com/oauth2/v1/userinfo?alt=json&access_token=ACCESS_TOKEN"
Run Code Online (Sandbox Code Playgroud)
{
"id": "10934363016XXXXXXXXXX",
"picture": "https://lh3.googleusercontent.com/a-/AOh14GhoUlKjYgC-..."
}
Run Code Online (Sandbox Code Playgroud)
Mar*_*ler 11
您是对的Google不会像Facebook那样提供测试用户API.我想你有两个选择:
如您所述,使用"真正的"Google用户.如果Google阻止这些帐户或添加额外的检查以测试他们是不是真正的用户(电话验证),这可能会导致问题.他们还做了一些AB测试,这可能会破坏你的测试脚本.
使用模拟第三方而不是Google服务.这将测试您的通用oauth集成代码,但显然不如针对真实Google服务进行测试那样强大.在控制模拟服务时,此方法可以更稳定.
| 归档时间: |
|
| 查看次数: |
6190 次 |
| 最近记录: |