Executing WebdriverIO browser tests on AWS Device Farm
Update: Working on a WebdriverIO service to make this easy - wdio-aws-device-farm-service
–
AWS Device Farm recently announced support for desktop browser testing using Selenium starting January 14, 2020. The desktop browser service appears to be very basic and has limitations when compared to SauceLabs or CrossBrowserTesting, the other two services that I have been evaluating as part of my role at Wambi.
Since the desktop browser service is fairly new, there is no service
available for it in WebdriverIO. So to make it work, you have to use the aws-sdk
to generate the remote hub URL and then
use a custom test runner or a launcher
to use it. The launcher is required because, based on my understanding, the current implementation of the wdio
test
runner expects a top-level config
object and this object does not allow us to integrate the async aws-sdk
calls
inside it. The calls have to be made through the launcher and then passed down to the final config
.
As part of my journey to learn Node.js, I have figured it all out and documented it in this post. I am hoping to
create a wdio-device-farm-service
soon, but for now the following works well :).