Send Docs Feedback

Beta testing

With the App Monitoring feature of App Services, you can test features or designs with a sample set of customers by incrementally rolling out configurations to a set of beta specific testers. This allows you to effectively test new features before rolling them out to all users of your app. Running a beta test with App Services also allows you to monitor app usage, network performance, and errors and crash logging for just the devices included in your beta test.

The beta test monitoring feature can also be useful for any scenario where it would be advantageous to monitor and configure a small subset of devices in your total user base.

Getting device IDs to include in a beta test

To include a user's device in your beta test group, two steps need to be completed:

  1. You must write some code that accesses the unique device id and displays it to the user of the device.
  2. The user must report the device id to you so that you can include it in the list of devices to be included in your beta test group.

To get the device ID of a device, do the following:

The App Services SDK for iOS provides the apigeeDeviceId method to access the user's unique device ID.

//This example assumes the name of your app delegate class is AppDelegate
//First, we get an instance of our app delegate
AppDelegate *appDelegate = (AppDelegate *)[ [UIApplication sharedApplication] delegate];

//Next, we get the deviceId from our ApigeeMonitoringClient class instance
NSString* apigeeDeviceId = [appDelegate.monitoringClient apigeeDeviceId];			

The App Services SDK for Android provides the MonitoringClient.getApigeeDeviceId method to access the user's unique device ID.

//This example assumes your instance of the ApigeeClient class is named 'apigeeClient'
//First, we get an instance of the MonitoringClient class
ApigeeMonitoringClient monitoringClient = apigeeClient.getMonitoringClient();

//Next, we get the device ID
String apigeeDeviceId = monitoringClient.getApigeeDeviceId();

The App Services SDK for JavaScript provides the Apigee.Client.getDeviceUUID method to access the user's unique device ID from local storage.

//This example assumes your instance of the Apigee.Client class is named 'apigeeClient'
//We get the device ID using our instance of Apigee.MonitoringClient
var apigeeDeviceId = apigeeClient.monitor.getApigeeDeviceId();			

Starting a beta test

To apply monitoring and app-specific feature configurations to a set of users, such as those in a Beta test, do the following:

  1. In the App Services admin portal, select Configure > Beta Testing Configs.
  2. Check the Enable Device Level Overrides checkbox.
  3. For each device to be included in the test group, do one of the following:
    • All platforms: In the Matching Apigee Device Ids field, enter the Apigee device Id for each target device (put each device Id on a separate line).
    • Android only: For Android devices, you may alternately enter the telephone number of each target mobile phone in the Matching Telephone Numbers field (put each telephone number on a separate line).
  4. Configure the monitoring settings to be applied to your beta test group.
  5. Configure the app-specific features to be applied to your beta test group.
  6. Click Save Changes at the bottom of the menu.

Notifying users of configuration changes

If you modify any of the default configs or beta testing configs during a beta test, it is very important that you contact the members of your test group and ask them to restart the app. In some cases you may need to ask them to restart the app twice in the event that the updated settings do not load the first time.

The users whose devices have reverted back to the previous configuration will need to kill their app entirely (that is, not have it loaded in memory). In Android, they may need to use task killer. In iOS, they will need to close down their application.

This is necessary since in some cases, the new configuration may not have been downloaded before the initial screen of the app is displayed. As a result, the previous configuration is applied.

Help or comments?