Main advantages and disadvantages of Aws device farm, Bitbar, Kobiton and Saucelabs. Examples of how to configure driver and desired capabilities. Parallelization.
7. Privileged and Confidential 7
Kobiton: Pros & Cons
● Easy of use
● Easy of setup
● Reporting: no affect on custom
reports
● Cheap
Pros
● Supports ONLY Appium
● Appium version can't be
changed
Cons
8. 8
Kobiton: How it works?
1) Upload app to Kobiton
2) Configure Driver and desired
capabilities in your project
3) Run test on local machine
Example of configuration:
String APPIUM_URL =
"https://username:apiKey@api.kobiton.com";
driver = new AndroidDriver<MobileElement>(
new URL(APPIUM_URL+"/wd/hub"), Configuration.getCapabilities());
private static DesiredCapabilities getCapabilities() {
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability("deviceName", “Galaxy Note3”);
capabilities.setCapability("platformVersion", “6”);
capabilities.setCapability("platformName", "Android");
capabilities.setCapability("app", pathToRemoteApp);
return desiredCapabilities;
}
14. 14
Saucelabs: Pros & Cons
● Support different frameworks
● Easy of use
● Easy of setup
● Reporting: no affect on custom
reports
Pros
● Not cheap
Cons
15. 15
1) Upload app via Api
2) Configure driver and
DesiredCapabilities
3) Run tests
Saucelabs: How it works?
String APPIUM_URL = “https://eu1.appium.testobject.com”;
driver = new AndroidDriver<MobileElement>(new
URL(APPIUM_URL+"/wd/hub"), Configuration.getCapabilities());
private static DesiredCapabilities getCapabilities() {
DesiredCapabilities desiredCapabilities = new
DesiredCapabilities();
desiredCapabilities.setCapability("platformName","Android");
desiredCapabilities.setCapability("testobject_api_key",
SAUCELABS_API_KEY);
desiredCapabilities.setCapability("testobject_app_id",
SAUCELABS_UPLOADED_APP_ID);
return desiredCapabilities;
}
21. 21
AWS Device farm: Pros & Cons
● Supports different frameworks
● Ability to test specific cases
● Rich test analytics
Pros
● No local run
● No custom reports, just aws
reports
Cons
22. 22
1) Your project with tests:
1. Configure Driver and DesiredCapabilities
2. Archive project
2) AWS: Upload application to AWS
Device farm
3) AWS: Upload zipped project to aws
5) AWS: Select device and run type
6) AWS: Run test on server
AWS Device farm: How it works?
Example:
String APPIUM_URL = “http://127.0.0.1:4723”;
driver = new AndroidDriver<MobileElement>(new
URL(APPIUM_URL+"/wd/hub"), Configuration.getCapabilities());
/*** We do not need to and SHOULD NOT set our own
DesiredCapabilities* Device Farm creates custom settings at the
server level. Setting your own DesiredCapabilities will result in
unexpected results and failures.**/
private static DesiredCapabilities getCapabilities() {
return new DesiredCapabilities();
}
28. 28
Bitbar: Pros & Cons
● Supports different frameworks
● Easy of use
● Rich test analytics
● Integration with third party
systems
Pros
● Not easy of setup
● Not cheap
Cons
29. 29
Client-side: run tests locally on remote real devices
Server-side: run tests on Bitbar server on remote real device
Bitbar: How it works?
30. 30
1) Upload app to Bitbar server
2) Configure Driver and
DesiredCapabilities
3) Bitbar: create project
4) Run tests
Bitbar: client-side run
Example of configuration:
String APPIUM_URL = “https://appium.bitbar.com”;
driver = new AndroidDriver<MobileElement>(new URL(APPIUM_URL+"/wd/hub"),
Configuration.getCapabilities());
private static DesiredCapabilities getCapabilities() {
DesiredCapabilities desiredCapabilities = new DesiredCapabilities();
desiredCapabilities.setCapability("platformName","Android");
desiredCapabilities.setCapability("deviceName", "Android Device");
desiredCapabilities.setCapability("testdroid_apiKey", BITBAR_API_KEY);
desiredCapabilities.setCapability("testdroid_project", BITBAR_PROJECT);
desiredCapabilities.setCapability("testdroid_testrun", "Demo1");
desiredCapabilities.setCapability("testdroid_app",UPLOADED_APP_PATH);
desiredCapabilities.setCapability("testdroid_device","LG Google Nexus 5");
desiredCapabilities.setCapability("testdroid_target", "Android");
return desiredCapabilities;
}
31. 31
1) Upload app to server
2) Configure Driver and Desired
Capabilities
3) Archive and upload your tests to
Bitbar server
4) Select devices
5) Run tests on server
Bitbar: server-side run
Example:
String APPIUM_URL = “http://127.0.0.1:4723”;
driver = new AndroidDriver<MobileElement>(new
URL(APPIUM_URL+"/wd/hub"), Configuration.getCapabilities());
/** app - don't change path to the .apk and .apk name. Bitbar stores you
uploaded app application.apk*/
private static DesiredCapabilities getCapabilities() {
DesiredCapabilities desiredCapabilities = new DesiredCapabilities();
desiredCapabilities.setCapability("platformName","Android");
desiredCapabilities.setCapability("deviceName", "Android Device");
desiredCapabilities.setCapability("app",
System.getProperty("user.dir") + "/application.apk");
return desiredCapabilities;
}
39. 39
1) If you use third party apps (Google Account,
Apple ID), the personal data can not be deleted
2) Appium version is updated randomly
3) Documentation is not up-to-date
Tricky cases