Automating Android Push Notifications Tests with Appium

How to test Android Push Notifications Tests with Appium

May 4, 2022·

2 min read

Play this article

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.

Code

  • 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(<Expected Text>)
    

Resources used for reference

Did you find this article valuable?

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