Does Google provide test users for integration testing
Asked Answered
W

3

45

Test users are very good to do integration testing.

When I develop facebook oauth enabled stuff I can programmatically create test users and use them as real users of my application. They behave in the same way of real users, the only difference is that they are sandboxed.

Does Google offer something like that?

They are moving all their services to oauth2 and I'd like to write a full integration test with "real" users.

Currently I manually run my integration tests and authorize the application when requested, obviously this approach is not good for CI and truly automated test.

The only alternative that I see is to create a real account used only in tests and use its credentials interacting with something like selenium.

Other alternatives?

Wrongful answered 15/7, 2013 at 15:25 Comment(0)
L
22

You are correct Google don't offer a test user API in the same way that Facebook do. I think you have two options:

  1. Use "real" Google users as you stated. This can cause issues if Google blocks these accounts or adds extra checks to test if they are real users to not (Phone verification). They also do some A-B testing which can break your test scripts.

  2. Use a mock third party instead of the Google service. This will test your generic oauth integration code but obviously isn't as robust as testing against the real Google service. This method can be more stable as you control the mock service.

Lupercalia answered 15/12, 2013 at 13:9 Comment(1)
Just in case other people find this. We tried options 1, and they do block automated logins. We went as far as replicating 2FA but they then resorted to recaptcha.Cost
R
16

How to get Google access token programmatically (automated testing)?

Validate:

curl "https://www.googleapis.com/oauth2/v1/userinfo?alt=json&access_token=ACCESS_TOKEN"
{
  "id": "10934363016XXXXXXXXXX",
  "picture": "https://lh3.googleusercontent.com/a-/AOh14GhoUlKjYgC-..."
}
Rigorism answered 19/8, 2021 at 8:49 Comment(0)
P
4

You can create a google account and configure a simple project/client within googles cloud console. Then you can configure it for oauth and use googles oauth-playground for creating a refresh-token (which never expires).

With your client-id, client-secret and the refresh-token you can send a post-request in your tests to googles auth-token endpoint (https://www.googleapis.com/oauth2/v4/token) and will receive a valid (short-time) access-token. No manual steps needed here.

I've read about it in this guide.

Phantasm answered 21/4, 2021 at 13:23 Comment(0)

© 2022 - 2025 — McMap. All rights reserved.