I have build Automation script by using qxf2 framework.
Changes, I made to the framework:
- Implemented functionality to fetch request sent by chrome browser
- Created Locators, Pages, test for base url
- Configured with Test rails Run the script
a) Install Python 3.x
b) Add Python 3.x to your PATH environment variable
c) If you do not have it already, get pip (NOTE: Most recent Python distributions come with pip)
d) run below statement
pip install -r requirements.txt
python tests/ui_top_wear.py -B Chrome -R 5
and navigate to Testrails to see the automation test status update
testrail_url: https://trail30.testrail.io testrail_user: [email protected] testrail_password: MadStreetDen0&
Below is the document on how the Test automation framework can be configured for the startup needs
You can use this test automation framework to write:
-
Selenium and Python automation scripts to test web applications
-
Appium and Python scripts for mobile automation (Android and iOS)
-
API automation scripts to test endpoints of your web/mobile applications
This framework is written in Python and is based on the Page Object Model - a design pattern that makes it easy to maintain and develop robust tests. We have also included our API test automation framework based on the player-interface pattern in this repository. You can now write your API tests along with your Selenium and Appium tests.
The setup for our open-sourced Python test automation framework is fairly simple. Don't get fooled by the length of this section. We have documented the setup instructions in detail so even beginners can get started.
The setup has four parts:
- Prerequisites
- Setup for GUI/Selenium automation
- Setup for Mobile/Appium automation
- Setup for API automation
1. Prerequisites
a) Install Python 3.x
b) Add Python 3.x to your PATH environment variable
c) If you do not have it already, get pip (NOTE: Most recent Python distributions come with pip)
d) pip install -r requirements.txt to install dependencies
If you ran into some problems on step (d), please report them as an issue or email Arun([email protected]).
2. Setup for GUI/Selenium automation
a) Get setup with your browser driver. If you don't know how to, please try:
#Note: Check Firefox version & Selenium version compatibility before downloading geckodriver.
If your setup goes well, you should be to run a simple test with this command:
-
Chrome:
python -m pytest -k example_form -B Chrome
-
Firefox:
python -m pytest -k example_form -B Firefox
Optional steps for integrating with third-party tools:
- Integrate our Python test automation framework with Testrail
- Integrate our Python GUI/web automation framework with BrowserStack
- Integrate our Python Selenium automation framework with Sauce Labs
- Run Python integration tests on Jenkins
- Run Python integration tests on CircleCI
- Post Python automation test results on Slack
3. Setup for Mobile/Appium automation
a) Download and Install appium desktop app
b) Download and Install Android Studio and create an emulator
d) Install the appium Python client library pip install Appium-Python-Client
If your setup goes well, you should be to run a simple mobile test with this command after starting the Appium and Android emulator:
python -m pytest -k mobile_bitcoin_price -H $Emulator_OS_Version -I $Emulator_Name
Optional steps for more details on setting up appium and running tests on Android or iOS refer to below links:
4. Setup for API automation
There are no extra setup steps for API automation. To verify, run test_api_example now using command "pytest -k api -s"
Optional steps for more details on setting up API and running tests refer to below link:
a) Directory structure of our current Templates
./
|__conf: For all configurations and credential files
|__log: Log files for all tests
|__page_objects: Contains our Base Page, different Page Objects, DriverFactory, PageFactory
|__endpoints: Contains our Base Mechanize, different End Points, API Player, API Interface
|__screenshots: For screen shots
|__tests: Put your tests in here
|__utils: All utility modules (email_util,TestRail, BrowserStack, Base Logger, post_test_reports_to_slack) are kept in this folder
a)py.test [options]
-s used to display the output on the screen E.g: python -m pytest -s (This will run all the tests in the directory and subdirectories)
-U used to run against specific URL E.g: python -m pytest -U http://YOUR_localhost_URL (This will run against your local instance)
-M used to run tests on Browserstack/Sauce Lab E.g: python -m pytest -s -M Y -U https://qxf2.com
-B all used to run the test against multiple browser E.g:python -m pytest -B all(This will run each test against the list of browsers specified in the conftest.py file,firefox and chrome in our case)
-V/-O used to run against different browser versions/os versions E.g: python -m pytest -V 44 -O 8 (This will run each test 4 times in different browser version(default=45 & 44) and OS(default=7 & 8) combination)
-h help for more options E.g: python -m pytest -h
-k used to run tests which match the given substring expresion E.g: python -m pytest -k table (This will trigger test_example_table.py test)
-S used to post pytest reports on the Slack channel E.g: python -m pytest -S Y -v > log/pytest_report.log
-n used to run tests in parallel E.g: python -m pytest -n 3 -v (This will run three tests in parallel)
--tesults used to report test results to tesults E.g: python -m pytest test_example_form.py --tesults Y(This will report test report to tesults)
b)python tests/test_example_form.py (can also be used to run standalone test)
c)python tests/test_example_form.py -B Chrome (to run against chrome)
d)python tests/test_api_example.py (make sure to run sample cars-api available at qxf2/cars-api repository before api test run)