1

After creating an alpha release on Google Play, I found out that the pre-launch report did not traverse the app as much as I would like it to. It swiped to reveal the navigation drawer, clicked on the login button there, and wrote some text in the login form. But it completely ignored five items present in the recycler view that was visible on the screen before swiping to show the navigation drawer.

Is there any way I can indicate those items are clickable (and used for navigation) to this tool?

Support pages are not much help here, they only describe what I already saw:

How the pre-launch report works

After you upload and publish an alpha or beta APK, test devices will automatically launch and crawl your app for several minutes. The crawl will perform basic actions every few seconds on your app, such as typing, tapping, and swiping.

I found more enlightening information in the Firebase documentation:

You can use Robo test in the Google Play Console when you upload and publish your app's APK file using either the alpha or beta channel. [...] To learn more, see Use pre-launch reports to identify issues. (links to abovementioned support page)

They say you can't tell it exactly what to do:

Known issues

Robo test currently has the following known limitations:

  • Scripting. Robo test can't use a script to explore your app by using a predefined sequence of simulated user actions.

But I don't need to go that far. I want it to just notice those items at all.

They say that:

The default value for timeout is 300 seconds (5 minutes) for tests run from Android Studio and the Google Developer Console.

Which is not what I observe, the videos are only about a minute long. I guess there's no way to control this in Google Play Console (I've checked in Firebase console, and there it is indeed 5 minutes by default).

I might try if I get better results if I provide them with login credentials, maybe then they will crawl the rest of the app.

But other than that, is there any way to indicate navigation items to Robo? Does it use some accessibility attributes to this end for example?

arekolek
  • 9,128
  • 3
  • 58
  • 79
  • There is currently not any way to guide Robo to indicate what you would like it to do. If you need better test coverage, you're much better off writing instrumented tests and running them on Firebase Test Lab. – Doug Stevenson Jun 14 '17 at 17:39
  • I think I could put my question a bit differently. Is it crawling the app completely random? Or does it look for some specific elements in the UI to act upon and does so randomly? – arekolek Jun 15 '17 at 20:09
  • Robo is deterministic. It will generally take the same route through an app if it responds to each of its actions in the same way. The algorithms can be expected to evolve over time, however. – Doug Stevenson Jun 15 '17 at 23:33
  • To be more specific, I'm asking how Robo chooses that route each time. For example, it is said that it ignores WebView and non-Android UI framework objects, but supports View and ViewGroup objects. My question would be, given a set of such objects, does it have any preference among them, or is interaction with any of them just as probable? (The route being repeatable could just be the same random seed value being used in every test) – arekolek Jun 16 '17 at 08:49
  • 1
    The team is aware that Robo has trouble with some kinds of Android elements including recycler views. Fixing this is a high priority, and you can expect improvements in that area soon. Robo does use a few heuristics in choosing actions, but they are under active development and subject to change so they aren't documented. – Doug Stevenson Jun 16 '17 at 21:59
  • This is still an issue in 2019. It only clicks on "clickable" views, ignores onTouch – under Feb 05 '19 at 01:55

0 Answers0