Repeato
  • Features
  • Pricing
  • Blog
  • About us
  • Get for free
  • Getting started
  • Running test batches
  • Reporting
  • Test exception handling
  • Tags
  • Advanced Configuration
  • Test workspaces
  • Advanced testing techniques
  • JavaScript API
  • Virtual Test Devices
  • Share tests within the team
  • Continuous Integration Support

Getting started

How to record mobile UI tests with Repeato

Our primary focus is to keep things simple, so also non-technical people can work with Repeato.

Repeato is the desktop software that allows you to:

  • record mobile UI tests on Android or iOS
  • edit and save those tests
  • organize tests within a library and workspaces
  • assign tests to test batches and run those
  • export shareable batch run reports

Editing tests in “Record and play”

Repeato allows you to quickly edit tests by copying and pasting steps or dragging them around.

Also, here is a list of shortcuts you can use to get even more efficient:

  • Mark multiple steps: Hold Shift or Ctrl (Cmd on Mac) and select multiple steps by clicking
  • Copy step(s): Ctrl + C (or Cmd + C on Mac)
  • Cut step(s): Ctrl + X (or Cmd + X on Mac)
  • Paste step(s): Ctrl + V (or Cmd + V on Mac)
  • Run test from current cursor position: Space

Exporting and importing test steps, to and from the library

It’s possible to import whole tests from the library, but also just single steps.

Further, you can select steps and choose to export them as a separate test to the library. This can be quite helpful when you are trying to keep your tests small by breaking them apart into building blocks.

 

Launch arguments (AKA “Launch params”)

The start app step allows you to pass additional data to your app. You could for example send a “testing” param, so the app can show only testing data.

The start app step allows you to configure how the app is started during the test run

 You need to set one argument per line.

If you don’t have access to the source code of your app, or the app is built by someone else, you can send them those instructions, so they know how to receive the data on the app side:

On Android you can access an argument inside of your app like this:

val myValue = intent.getStringExtra("my-launch-argument")

On iOS you can add a launch argument like this:

-my-launch-argument 1

Inside of the app the param can be read like this:

UserDefaults.standard.string(forKey: "my-launch-argument")

Please note: inside of Repeato you need to include the “-“, but inside the app you need to access the argument via my-launch-argument (Don’t include -).

 

Good to know

How element search works:

Repeato always tries to be as quick as possible, by interacting with elements as soon as they show up. But it’s slightly more complicated.
This is how the element search works in more detail:

  1. Repeato test is started
  2. Repeato is starting the app. Next comes a “click element” step.
  3. Repeato is observing the screen…
  4. Repeato keeps searching up to a maximum amount of time. This is called “timeout” and it’s 8 seconds by default. However, Repeato waits longer in certain situations.
    For example: The step AFTER the “start app” step get’s a longer timeout because the app start might take more than 8 seconds of time.
    The timeout can be adjusted for each step individually.
  5. as soon as it finds the right element, it waits till the element stops moving (e.g. screen transition animation). This increases the test stability and therefore reduces test-flakiness.

 

 

 

 

Repeato

  • Home
  • Pricing
  • Blog
  • FAQ
  • About us

Documentation

  • Getting started
  • Test exception handling
  • Advanced testing techniques
  • JavaScript API
  • Release notes

Support

  • Contact
  • Documentation
  • Book a demo

Legal

  • Imprint
  • Terms & Conditions
  • Privacy policy
Repeato Reviews
Manage Cookie Consent
To provide the best experiences, we use technologies like cookies to store and/or access device information. Consenting to these technologies will allow us to process data such as browsing behavior or unique IDs on this site. Not consenting or withdrawing consent, may adversely affect certain features and functions.
Functional Always active
The technical storage or access is strictly necessary for the legitimate purpose of enabling the use of a specific service explicitly requested by the subscriber or user, or for the sole purpose of carrying out the transmission of a communication over an electronic communications network.
Preferences
The technical storage or access is necessary for the legitimate purpose of storing preferences that are not requested by the subscriber or user.
Statistics
The technical storage or access that is used exclusively for statistical purposes. The technical storage or access that is used exclusively for anonymous statistical purposes. Without a subpoena, voluntary compliance on the part of your Internet Service Provider, or additional records from a third party, information stored or retrieved for this purpose alone cannot usually be used to identify you.
Marketing
The technical storage or access is required to create user profiles to send advertising, or to track the user on a website or across several websites for similar marketing purposes.
Manage options Manage services Manage vendors Read more about these purposes
View preferences
{title} {title} {title}