Simple device farm for remote control of devices and Appium test execution on iOS/Android
NB New React based UI - work in progress
In use
and can't be used by another person until it is releasedDeveloped and tested on Ubuntu 18.04 LTS, Windows 10, macOS Ventura 13.5.1
Currently the project assumes that GADS UI, MongoDB, Selenium Grid and device providers are on the same network. They can all be on the same machine as well.
docker run -d --restart=always --name mongodb -p 27017:27017 mongo:6.0
. This will pull the official MongoDB 6.0 image from Docker Hub and start a container binding ports 27017
for the MongoDB instance.You can potentially use any other way you prefer to create a MongoDB instance, doesn't have to be Docker in particular
gads-ui
folder in Terminal.npm install
npm run build
go build .
./GADS
providing the following flags:
a. --auth=
- true/false to enable actual authentication (default is false
)
b. --host-address=
- local IP address of the host machine, e.g. 192.168.1.6
(default is localhost
, I would advise against using the default value)
c. --port=
- port on which the UI and backend service will run (default is 10000
)
d. --mongo-db=
- address and port of the MongoDB instance, e.g 192.168.1.6:27017
(default is localhost:27017
)
e. --admin-username=
- username of the default admin user (default is admin
)
f. --admin-password=
- password of the default admin user (default is password
)
g. --admin-email=
- email of the default admin user (default is [email protected]
)
h. --ui-files-dir=
- directory where the UI static files will be unpacked and served from. By default the app tries to use a temp folder available on the host. Use this flag only if you have issues with the default behaviour.http://{host-address}:{port}
Admin
sectionProviders administration
New provider
tab fill in all needed data and save.If you want to work on the UI you need to add a proxy in package.json
to point to the Go backend
gads-ui
folder.package-json
file."proxy": "http://192.168.1.28:10000/"
providing the host and port of the Go backend service.npm start
This is only the UI, to actually have devices available you need to have at least one GADS-devices-provider instance running on the same host(or another host on the same network) that will actually set up and provision devices. Follow the setup steps in the linked repository to create a provider instance. You can have multiple provider instances on different hosts providing devices.
About | |
---|---|
Appium | It would be impossible to control the devices remotely without Appium for the control and WebDriverAgent for the iOS screen stream, kudos! |
https://github.com/shamanec/GADS/assets/60219580/3142fb7b-74a6-49bd-83c9-7e8512dee5fc