Automate iOS devices using Appium from a Raspberry Pi.
This tutorial describes how you can install and use Appium on a Raspberry Pi to automate iOS devices.
This tutorial uses Ansible to deploy and configure all necessary components.
- Raspberry Pi 4 model b. Make sure the Raspberry Pi has sufficient power.
- Ubuntu 19.10
- SSH access to the Raspberry Pi from an other linux machine (control machine). You can also an Ubuntu subsystem for windows. see Windows subsystem installation
- One of more iOS device attached to the Raspberry Pi. If more than one iOS device is used we advise to use a powered USB hub.
Install Ansible on the control machine.
sudo apt-add-repository ppa:ansible/ansible sudo apt update sudo apt-get install ansible -y
appium-ios Ansible role.
git clone https://github.com/quamotion/ansible-role-appium-ios.git appium-ios
Install the nodejs Ansible module
ansible-galaxy install geerlingguy.nodejs
Install and configure Appium on the rapberry pi
playbook.yml file (at the same level of the appium-ios git folder).
This is an sample playbook file. Please alter the vars (
--- - hosts: rpi become: true vars: license_file_path: /home/bsg/.license developer_profile_path: /home/bsg/quamotion.developerprofile devimg_dir: /home/bsg/devimg/ roles: - appium-ios
More info about:
- the developer profile. The password of the developerprofile is currently hard coded and needs to be set to
quamotion. This will be changed in later versions.
- the developer images.
Once you know your machineId you can request a trial license using the trial license portal. You can find your machineId by executing any of the installed quamotion tools e.g. xcuitrunner:
inventory.yml file (at the same level of the
appium-ios git folder).
This is an sample inventory file. Please alter the vars (
[all:vars] ansible_connection=ssh ansible_user=ubuntu ansible_ssh_pass=yourpassword ansible_become_pass=yourpassword ansible_python_interpreter=/usr/bin/python3 [rpi] bsg-rpi ansible_host=theraspberrypihost
Execute the playbook.
export ANSIBLE_HOST_KEY_CHECKING=False ansible-playbook -i inventory.yml playbook.yml
Run an Appium session
To run a session on the iOS device connected to the Raspberry Pi you need to set the remote host to the host name or ip of the Raspberry Pi.
A session requires at least the following capabilities:
- platformName: “iOS”
- deviceName: any name
- udid: the udid of the device
- app: can be a bundle or path (on the Raspberry Pi) or the signed ipa file
- automationName: “XCUITest”
For more information about this tutorial, contact us at firstname.lastname@example.org.