Distributed Testing with Appium?

I managed to get parallel test runs working, and now I would like to go a step forward and implement distributed testing - where each test case would be run once, on a device that is currently available, rather than have all the tests ran on each device.

Does anyone here have any experience with that? Is there a working solution for that or will I need to write my own logic for handling test cases?

1 Like


We are working on something similar. I don’t know if there is any scheduling software out there to do this type of work, but you might try checking with some of the grid providers, such as Bitbar or AppThwack. There should be in their wheel house.

Saucelabs is good for that as well.

The tricky part is properly configuring your test suite for your Test Runner. What language are you using? I’ve noticed that testng is better for parallelization that jUnit if you’re using Java.

We use Mocha with javascript and it’s easy to have all our tests running in parallel (or queued in batches).

1 Like

Sorry, I should have included Saucelabs on that list as well. It helps that they are very active in Appium work as well.

Thanks guys! I am aware that there are solutions out there already that handle this - I would prefer to have a stab at it myself, before I go to my manager and ask for funding :wink:

I’ve gotten pretty far with my work, and would like to at least try and get something simple running…

It depends on which bindings you use. For ruby (my preferred language) I use parallel_test to run everything at once on all devices and parallel_rspec to distribute tests to different devices.

Woops, haven’t specified that. I’m using java with cucumber JVM/spring/junit.