Automating Android Push Notifications Tests with Appium

How to test Android Push Notifications Tests with Appium


2 min read

Lets talk about testing push notifications for Android.

Why to do this

  • To ensure the device registration works fine. This is required to identify which device the notification needs to be pushed.

  • Ensure push notifications work for multiple devices for the same user.

  • To have confidence that the notifications are received by the device for the given device. Currently, no way to know if the notfication was delivered & received successfully.

How to do this

  • Using Appium

  • Tested on a real device

  • Making the call to push notification

  • Registration of device is tested implicitly i.e.

    • A successful push notification is only received , if the device registration is succesful.

Test Flow

  • Login to a device to register the device implicitly ( because the app does it so ). If you have a different flow , do that to ensure the device registration flow is triggered successfully.

  • Make the call to push the notification. Mostly a REST call.

  • Swipe the Android Status Bar

  • Poll & check for the push notification to have arrived & be present.


  • Scroll the Notification Menu

new TouchAction(appiumDriver) .press(PointOption.point(0,0)) .moveTo(PointOption.point(450, 1750)) .release() .perform()

- Identify the Push Notification
  This worked because my push notification was the first notification,else list all the notifications & then find the expected notification

  @AndroidFindBy(id = 'android:id/big_text')
  MobileElement notificationElement
  • Poll for the element to be displayed & then edtract text for assertion Ensure the notification in question is displayed before the getText() call.

assert notificationElement.getText().toContain()

### Resources used for reference
- [](
- [](
- [](**

Did you find this article valuable?

Support Jags by becoming a sponsor. Any amount is appreciated!