A good point is calculate Requirements coverage, if you define all use cases into Page Objects you can calculate if your test are passing throw all logic (As in UNIT tests with code climate but with UI e2e tests as well).
Docker Desktop installed, Node 12 or higher and JDK with Android Platform tools.
> brew install --cask adoptopenjdk8
> brew install android-sdk
> brew install --cask android-platform-tools
> sdkmanager "system-images;android-29;google_apis_playstore;x86_64"
> sdkmanager "build-tools;29.0.2"
> sdkmanager --license
> avdmanager create avd --name Android10 --package "system-images;android-29;google_apis_playstore;x86_64" --force --device "Nexus 6P"
> /usr/local/Caskroom/android-sdk/${VERSION}/emulator/emulator -avd Android10
This example is Oriented for Android Platform, but the good point is that you can use this framework for run the same code for Android or iOS platform
You should do the following steps:
> npm i -g appium
You should intall this package to check if all of dependencies are installed:
> npm i -g appium-doctor
> appium-doctor
You need to have de Android Studio and generate a Android 10 emulator, then run it and check that is avilable with command:
> adb devices
The command should return device conected:
List of devices attached
emulator-5554 device
The next step is open a new terminal and run the command:
appium -p 4723
After that On other Terminal into project path:
npm i
npm run test:app
The reports are located on reports folder into api project.
I've used appium and javascrip because is a useful, fast, and an easy way to develop android test without Android estudio environmnet since is an open source framework.
This solution is a good decision if yo have a QA automation team dedicated for working with a multiplatform tool.