Mastering Location-Based App Testing with Maestro UI Testing Framework's Travel Command

Android|Apr 14, 2023|Last edited: Apr 18, 2023
  • Maestro
  • UI Testing
  • Maps
  • Mastering Location-Based App Testing with Maestro UI Testing Framework's Travel Command
    type
    Post
    status
    Published
    date
    Apr 14, 2023
    slug
    simulate-user-motion-maestro-ui-testing
    summary
    Optimize your mobile app's user experience with Maestro UI testing framework's travel command. Test location-based or map-related features for reliable app quality.
    tags
    Maestro
    UI Testing
    Maps
    category
    Android
    icon
    password
     

    Simulating User Motion in Mobile App Testing with Maestro UI Testing Framework

     
    Mobile app testing is a critical aspect of ensuring the quality and performance of applications. One of the challenges developers often face is testing their app's response to user motion, particularly when it comes to apps with map or location-based functionality, such as delivery or ride-hailing apps. That's where the Maestro UI testing framework comes in, offering a simple and effective solution to simulate user motion.
    In this blog post, we will explore how to use the travel command in the Maestro UI testing framework to simulate user motion, moving from one coordinate to another. We will go through an example that demonstrates how to move from Tower Bridge to London Eye with a stop at Piccadilly Circus.
     

    Travel Command in Maestro UI Testing Framework:

    The travel command in Maestro is designed to mock user motion by specifying a set of points (latitude/longitude coordinates) and a speed. This feature can be particularly useful for testing the behavior of apps with map functionalities or those that rely on user location.
    Requires Maestro version: 1.26.0 or above.

    Example: Simulating a Journey with Google Maps on Android

     
    To illustrate the use of the travel command in Maestro, let's consider the following example, where we will simulate a journey using Google Maps on an Android device. Note, you should already have Google Maps installed on your mobile.
     
    Add below code in a file, example: travel.yaml stored in a directory .maestro. Note, you can name the file anything!
     
    Code:
    appId: com.google.android.apps.maps # 1 --- - launchApp # 2 - travel: # 3 points: - 51.505456, -0.075356 # Tower Bridge (starting point) - 51.510091, -0.135293 # Piccadilly Circus (midpoint) - 51.503399, -0.119519 # London Eye (ending point) speed: 200 # 4 (speed in m/s)
     
    In this example, we begin by:
    1. specifying the app ID for Google Maps (com.google.android.apps.maps).
    1. Next, we use the launchApp command to start the app.
    1. Following that, we issue the travel command, providing a set of coordinates for the starting point (Tower Bridge), midpoint (Piccadilly Circus), and ending point (London Eye).
    1. We also set the speed of travel to 200 meters per second.
     
    Run:
    To run the above travel.yaml file, you can do on terminal:
    maestro test .maestro/travel.yaml

    Mocking user motion in Google Maps using Maestro

    As the test runs, pay attention to the blue dot on Google Maps; you'll see it moving along the simulated route! By using the travel command in Maestro, you can easily mock user motion to test your app's behavior and performance.
     

    Conclusion

    The Maestro UI testing framework's travel command offers a convenient solution for simulating user motion in your app testing process. By specifying a set of coordinates and speed, you can quickly test map functionality, location-based features, and the overall behavior of your app in response to user movement. With Maestro, you can ensure that your app delivers a seamless and reliable experience for your users.
     

    Reference

     
    Enhancing Android Logging: Add JSON Formatting to Timber with MoshiAutomating and Optimizing Android Jetpack Compose App Builds with Bitrise and GitHub