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
.