This project contains a template for mobile test automation.
The project is developed with the Python programming language and the Appium mobile automation framework.
- 
Python 3.11.6 
- 
Appium Server 2.1.3 
- 
PIP 23.3.1 
The following are the dependencies of the project:
| Dependency | Version | 
|---|---|
| Allure Behave | 2.13.2 | 
| Allure Python Commons | 2.13.2 | 
| Appium Python Client | 3.1.0 | 
| Behave | 1.2.6 | 
| Selenium | 4.14.0 | 
testing-mobile-template
│ behave.ini
│ run.sh
│ requirements.txt  
└─apps
| | *.apk
| | *.app
| | *.ipa
└─features
| | _*.feature
| | environment.py
| └─pages
| | | base_page.py
| | └─android
| | | | *_page.py
| | └─ios
| | | | *_page.py
| └─steps
|   | base_steps.py
|   | click_steps.py
|   | compound_steps.py
|   | send_keys_steps.py
|   | swipe_steps.py
|   | validation_steps.py
└─utils
| | mobile_capabilities.py
| | mobile_driver.py
The mobile_capabilities.py file located in the /utils path must be modified, adding the capabilities for each device used for testing.
ios-simulator: {
  "platformName": "iOS",
  "platformVersion": "16.1",
  "automationName": "XCUITest",
  "deviceName": "iPhone 14"
}
ios-real: {
  "platformName": "iOS",
  "platformVersion": "15.4",
  "automationName": "XCUITest",
  "deviceName": "iPhone XS Max",
  "udid": "XXXXXXXX-XXXXXXXXXXXXXXXX",
  "xcodeOrgId": "XXXXXXXXXX",
  "xcodeSigningId": "iPhone Developer"
}
android-simulator: {
  "platformName": "Android",
  "appium:avd": "Android_8",
  "automationName": "UiAutomator2",
  "appium:deviceName": "Android_8"
}
android-real: {
  "platformName": "Android",
  "automationName": "UiAutomator2",
  "appium:deviceName": "XXXXXXXXX"
}
The project is executed by running the run.sh file in Terminal.
> /run.sh
Or by running the following command in Terminal
behave -f allure -o ./reports/report/ ./features/
By default, the allure report folder will be generated in the ROOT_DIR/reports/report path.
If you want to change the report path, modify the ./reports/report line in the run.sh file or the behave command.