This is not terribly difficult to get running locally (at a smaller scale). Square has a tool called Spoon[0] that makes it really easy to run a test suite across a bunch of devices.<p>On a recent project, we had 5-7 devices plugged into a spare box that would run a test suite on every push. It worked out great and the ability to capture screenshots was really helpful for the design team to help spot strange UI issues. More details on the setup here: <a href="http://www.sep.com/sep-blog/2014/01/06/android-robotium-and-spoon-a-practical-guide-for-testing-on-android-devices/" rel="nofollow">http://www.sep.com/sep-blog/2014/01/06/android-robotium-and-...</a><p>But if you need larger device coverage, Testmunk looks pretty awesome :)<p>[0]: <a href="https://github.com/square/spoon" rel="nofollow">https://github.com/square/spoon</a>
I appreciate TestMunk's goal to make automated mobile testing easier and more accessible, and I truly hope they succeed in that, but for the love of testing, please do not view that example feature file at the bottom as an example of proper Gherkin.<p>It is riddled with implementation details and brittle explicit waits. To be fair, they did clearly state: "we generally recommend against fixed waits" but then please do not put this forth as an example to be copied. Scenarios should describe the behavior from a user perspective and leave out implementation details. You should not have to change the your Gherkin no matter how much the underlying implementation changes so long as the expected behavior remains the same. Not to mention the misuse of the Given/When/Then keywords and the "I logout" steps -- that is what before/after hooks are for.<p>I also recognize TestMunk points out that this feature utilizes standard steps to get your first test cases going and to get some screenshots. They also advocate for the page object pattern, which is good, but it might be helpful to be clear that this is not how you'd actually want to write your Gherkin, whose true value comes when written with/for product owners, free of implementation details.
Given I wait for 5 seconds<p>Then I press view with id "splash_signin_text"<p>Then I wait for 2 seconds<p>Then I clear input field number 1<p>Then I wait<p>...<p>Looks like someone never bothered understanding what Given/When/Then are for.