13
votes

I've discovered a problem recently with my app's setup in Firebase. We have the pre-launch report configured, which means that the test lab devices are contributing a large number of anonymous sessions to our analytics.

Is there any way to detect that a device is running these tests? For example, will isUserAMonkey or isRunningInTestHarness return true for tests in the test lab? This would allow me to adjust the configuration of my analytics/etc if so.

2

2 Answers

20
votes

This is actually mentioned in the docs.

You can check for the existence of a system property called "firebase.test.lab":

@Nullable String testLabSetting =
  Settings.System.getString(context.getContentResolver(), "firebase.test.lab");
if ("true".equals(testLabSetting)) {
  // Do something when running in Test Lab
}
1
votes

Your 'device under test' should check the IP address and disable analytics if in the Firebase Test Lab IP range.

See my answer at https://stackoverflow.com/a/54954273/114549 for a Util method that handles this.