Fabio
Fabio

Reputation: 19176

Does Google provide test users for integration testing

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?

Upvotes: 45

Views: 27951

Answers (3)

MingalevME
MingalevME

Reputation: 1975

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-..."
}

Upvotes: 17

Sola Tis
Sola Tis

Reputation: 41

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.

Upvotes: 4

Mark Butler
Mark Butler

Reputation: 496

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.

Upvotes: 24

Related Questions