* adding dependencies bash file Signed-off-by: Nikita Yadav <nikita.yadav@candelatech.com> * added cc.1 option and fixture version Signed-off-by: Nikita Yadav <nikita.yadav@candelatech.com> * added controller 3x files Signed-off-by: Nikita Yadav <nikita.yadav@candelatech.com> * calling controller logic Signed-off-by: Nikita Yadav <nikita.yadav@candelatech.com> * added more functions Signed-off-by: Nikita Yadav <nikita.yadav@candelatech.com> * added cc.1 functionality to different fixtures Signed-off-by: Nikita Yadav <nikita.yadav@candelatech.com> * added cc.1 fixture to setup_profile Signed-off-by: Nikita Yadav <nikita.yadav@candelatech.com> * cc.1 fixture Signed-off-by: Nikita Yadav <nikita.yadav@candelatech.com> * lanforge scripts Signed-off-by: Nikita Yadav <nikita.yadav@candelatech.com> * test function Signed-off-by: Nikita Yadav <nikita.yadav@candelatech.com> * added realtive path and more function to controller access Signed-off-by: Nikita Yadav <nikita.yadav@candelatech.com> * testcase Signed-off-by: Nikita Yadav <nikita.yadav@candelatech.com> * added wpa2 functionality Signed-off-by: Nikita Yadav <nikita.yadav@candelatech.com> * get slot id and ssid name Signed-off-by: Nikita Yadav <nikita.yadav@candelatech.com> * made change to add_env_properties Signed-off-by: Nikita Yadav <nikita.yadav@candelatech.com> * added fixture line in setup_profiles Signed-off-by: Nikita Yadav <nikita.yadav@candelatech.com> * added fixture line in setup_profiles Signed-off-by: Nikita Yadav <nikita.yadav@candelatech.com> * added accurate way of creating wlan Signed-off-by: Nikita Yadav <nikita.yadav@candelatech.com> * added controller log option Signed-off-by: Nikita Yadav <nikita.yadav@candelatech.com> * added 2g options Signed-off-by: Nikita Yadav <nikita.yadav@candelatech.com> * added cc option to add tations Signed-off-by: Nikita Yadav <nikita.yadav@candelatech.com> * added cc option to add tations Signed-off-by: Nikita Yadav <nikita.yadav@candelatech.com> * added cc option Signed-off-by: Nikita Yadav <nikita.yadav@candelatech.com> * added cc option Signed-off-by: Nikita Yadav <nikita.yadav@candelatech.com> * adding lanforge changes Signed-off-by: Nikita Yadav <nikita.yadav@candelatech.com> * create non mesh dut Signed-off-by: Nikita Yadav <nikita.yadav@candelatech.com> * cal bssid 2g and 5g method Signed-off-by: Nikita Yadav <nikita.yadav@candelatech.com> * edited get ap config slot and controller log Signed-off-by: Nikita Yadav <nikita.yadav@candelatech.com> * adddd tst2g and test5g testcase Signed-off-by: Nikita Yadav <nikita.yadav@candelatech.com> * added modification to fixture3x Signed-off-by: Nikita Yadav <nikita.yadav@candelatech.com> * testbed info Signed-off-by: Nikita Yadav <nikita.yadav@candelatech.com> * added everything Signed-off-by: Nikita Yadav <nikita.yadav@candelatech.com> * remove laforge scripts Signed-off-by: Nikita Yadav <nikita.yadav@candelatech.com> * sync lanforge-scripts Signed-off-by: Nikita Yadav <nikita.yadav@candelatech.com> * comment out multi test Signed-off-by: Nikita Yadav <nikita.yadav@candelatech.com> * changed class name Signed-off-by: Nikita Yadav <nikita.yadav@candelatech.com> * remove roam directory Signed-off-by: Nikita Yadav <nikita.yadav@candelatech.com> * optimized code by calling basic_roam function from lftest Signed-off-by: Nikita Yadav <nikita.yadav@candelatech.com> * checking bssids after creating wlan Signed-off-by: Nikita Yadav <nikita.yadav@candelatech.com> * added time calculation, rssi and cx-time reporting Signed-off-by: Nikita Yadav <nikita.yadav@candelatech.com> * created layer3 Signed-off-by: Nikita Yadav <nikita.yadav@candelatech.com> * changed station name Signed-off-by: Nikita Yadav <nikita.yadav@candelatech.com> * added rx packets Signed-off-by: Nikita Yadav <nikita.yadav@candelatech.com> * increased wait time Signed-off-by: Nikita Yadav <nikita.yadav@candelatech.com> * chaged logic for calculating 5g and 2g bssid also added 11r_log method Signed-off-by: Nikita Yadav <nikita.yadav@candelatech.com> * aadded create_n_client,json_get,create_l3x,get_cx,get_l3_values,attachfile,basic_roam,multi_roam methods Signed-off-by: Nikita Yadav <nikita.yadav@candelatech.com> * adde lf_report() fixture Signed-off-by: Nikita Yadav <nikita.yadav@candelatech.com> * added test basic roam 5g Signed-off-by: Nikita Yadav <nikita.yadav@candelatech.com> * added roam setup Signed-off-by: Nikita Yadav <nikita.yadav@candelatech.com> * added report library Signed-off-by: Nikita Yadav <nikita.yadav@candelatech.com> * added multi_roam Signed-off-by: Nikita Yadav <nikita.yadav@candelatech.com> * added dtim function Signed-off-by: Nikita Yadav <nikita.yadav@candelatech.com> * added start sniffer stop sniff and query data Signed-off-by: Nikita Yadav <nikita.yadav@candelatech.com> * made it generic to support dtim and 11r Signed-off-by: Nikita Yadav <nikita.yadav@candelatech.com> * added logic code for hard roam and query sniff Signed-off-by: Nikita Yadav <nikita.yadav@candelatech.com> * added multi hard roam Signed-off-by: Nikita Yadav <nikita.yadav@candelatech.com> * uncommenting Signed-off-by: Nikita Yadav <nikita.yadav@candelatech.com> * added cisco-lab-02 Signed-off-by: Nikita Yadav <nikita.yadav@candelatech.com> * added ft over ds config Signed-off-by: Nikita Yadav <nikita.yadav@candelatech.com> * added ftotd_psk method Signed-off-by: Nikita Yadav <nikita.yadav@candelatech.com> * added something Signed-off-by: Nikita Yadav <nikita.yadav@candelatech.com> * added classsification of tests Signed-off-by: Nikita Yadav <nikita.yadav@candelatech.com> * modified multi_hard_roam Signed-off-by: Nikita Yadav <nikita.yadav@candelatech.com> * iteration, client and roaming delay created Signed-off-by: Nikita Yadav <nikita.yadav@candelatech.com> * hard roam 5g method Signed-off-by: Nikita Yadav <nikita.yadav@candelatech.com> * hard roam 2g method Signed-off-by: Nikita Yadav <nikita.yadav@candelatech.com> * added 0db0 ap info to testbed-02 Signed-off-by: Nikita Yadav <nikita.yadav@candelatech.com> * added 6e option and commentes while loop Signed-off-by: Nikita Yadav <nikita.yadav@candelatech.com> * enable_ft_sae Signed-off-by: Nikita Yadav <nikita.yadav@candelatech.com> * duration for roam Signed-off-by: Nikita Yadav <nikita.yadav@candelatech.com> * duration in 5g function Signed-off-by: Nikita Yadav <nikita.yadav@candelatech.com> * sae option Signed-off-by: Nikita Yadav <nikita.yadav@candelatech.com> * otd 5g test case Signed-off-by: Nikita Yadav <nikita.yadav@candelatech.com> * ota 6g testcase Signed-off-by: Nikita Yadav <nikita.yadav@candelatech.com> * Fixed the path for import Signed-off-by: shivam <shivam.thakur@candelatech.com> * controller.py: enable_ft_dot1x_wpa3, set_channel_width, set_channel Signed-off-by: Nikita Yadav <nikita.yadav@candelatech.com> * dot1x 6g testcase Signed-off-by: Nikita Yadav <nikita.yadav@candelatech.com> * updated lab_info Signed-off-by: Nikita Yadav <nikita.yadav@candelatech.com> * updated channel width and channel Signed-off-by: Nikita Yadav <nikita.yadav@candelatech.com> * updated hard roam Signed-off-by: Nikita Yadav <nikita.yadav@candelatech.com> * 2g 5g and 6g testcases in one file Signed-off-by: Nikita Yadav <nikita.yadav@candelatech.com> * string var in duration Signed-off-by: Nikita Yadav <nikita.yadav@candelatech.com> * 802.1x in multi hard roam Signed-off-by: Nikita Yadav <nikita.yadav@candelatech.com> * removing 5g testcase Signed-off-by: Nikita Yadav <nikita.yadav@candelatech.com> * removing 6g testcase Signed-off-by: Nikita Yadav <nikita.yadav@candelatech.com> * report.py: table using pandas Signed-off-by: Nikita Yadav <nikita.yadav@candelatech.com> * lf_test.py: added function of hard roam Signed-off-by: Nikita Yadav <nikita.yadav@candelatech.com> * hard roam using lanforge test function testcase Signed-off-by: Nikita Yadav <nikita.yadav@candelatech.com> * add dut name to hard roam function Signed-off-by: Nikita Yadav <nikita.yadav@candelatech.com> * add dut name to hard roam 5g Signed-off-by: Nikita Yadav <nikita.yadav@candelatech.com> * controller.py: enable_ft_dot1x_sha256_wpa3 Signed-off-by: Nikita Yadav <nikita.yadav@candelatech.com> * lf_test.py: added pass fail Signed-off-by: Nikita Yadav <nikita.yadav@candelatech.com> * lf_test.py: twog radio added to hard roam class Signed-off-by: Nikita Yadav <nikita.yadav@candelatech.com> * test_roam_ota.py: 2g, 5g, 6g testcase modified Signed-off-by: Nikita Yadav <nikita.yadav@candelatech.com> * fixtures_3x.py: ft-dot1x-sha256 feature added Signed-off-by: Nikita Yadav <nikita.yadav@candelatech.com> * lab_info.json: lab info updtaed Signed-off-by: Nikita Yadav <nikita.yadav@candelatech.com> * reports: remove report directory Signed-off-by: Nikita Yadav <nikita.yadav@candelatech.com> * controller.py:show_wireless_client_sum Signed-off-by: Nikita Yadav <nikita.yadav@candelatech.com> * lf_hard_roam: modified Signed-off-by: Nikita Yadav <nikita.yadav@candelatech.com> * disble enable all bands fixtures Signed-off-by: Nikita Yadav <nikita.yadav@candelatech.com> * lf_report to cc_1 Signed-off-by: Nikita Yadav <nikita.yadav@candelatech.com> * ota test case Signed-off-by: Nikita Yadav <nikita.yadav@candelatech.com> * mdification Signed-off-by: Nikita Yadav <nikita.yadav@candelatech.com> * lf_tests: identity and pass Signed-off-by: Nikita Yadav <nikita.yadav@candelatech.com> * conftest: varg Signed-off-by: Nikita Yadav <nikita.yadav@candelatech.com> * testcase correction Signed-off-by: Nikita Yadav <nikita.yadav@candelatech.com> * lab file Signed-off-by: Nikita Yadav <nikita.yadav@candelatech.com> * controller.py: enable_ft_dot1x_sha256_wpa3 enable radius Signed-off-by: Nikita Yadav <nikita.yadav@candelatech.com> * radius info Signed-off-by: Nikita Yadav <nikita.yadav@candelatech.com> * deleted all unused functions Signed-off-by: Nikita Yadav <nikita.yadav@candelatech.com> * modification to tetcase Signed-off-by: Nikita Yadav <nikita.yadav@candelatech.com> * radius data missing Signed-off-by: Nikita Yadav <nikita.yadav@candelatech.com> * remove example.py Signed-off-by: Nikita Yadav <nikita.yadav@candelatech.com> * remove lanforge reports Signed-off-by: Nikita Yadav <nikita.yadav@candelatech.com> * updated lab json Signed-off-by: Nikita Yadav <nikita.yadav@candelatech.com> * remove lanforge_log_0.txt Signed-off-by: Nikita Yadav <nikita.yadav@candelatech.com> * remove lanforge_log_1.txt Signed-off-by: Nikita Yadav <nikita.yadav@candelatech.com> * remove report.py Signed-off-by: Nikita Yadav <nikita.yadav@candelatech.com> * use pull_report Signed-off-by: Nikita Yadav <nikita.yadav@candelatech.com> * make it as master * remove cc dp Signed-off-by: Nikita Yadav <nikita.yadav@candelatech.com> * remove unwanted thing Signed-off-by: Nikita Yadav <nikita.yadav@candelatech.com> * remove unwanted things Signed-off-by: Nikita Yadav <nikita.yadav@candelatech.com> * Added pdfkit,matplotlib Signed-off-by: jitendracandela <jitendra.kushavah@candelatech.com> * Resolved the key error Signed-off-by: jitendracandela <jitendra.kushavah@candelatech.com> Co-authored-by: shivam <shivam.thakur@candelatech.com> Co-authored-by: jitendracandela <jitendra.kushavah@candelatech.com>
TIP Open WiFi Test Automation
Overview
This repository contains the test automation framework and scripts for TIP Open WiFi. Test Framework is implemented in pytest
The vision is to create an open test framework to ensure production grade Open Wifi Solution.
This test automation tied into our overall tooling at TIP as shown below:
General guidelines
This testing code adheres to generic pep8 style guidelines, most notably:
Using pytest as the test execution framework.
Using pylint for code quality monitoring.
We are using the pylint package to do the linting. Documentation for it can be found here.
In general, the customizations are possible via the .pylintrc file:
- Line length below 120 characters is fine (search for max-line-length)
- No new line at the end of file is fine (search for missing-final-newline)
- Multiple new lines at the end of file are fine (search for trailing-newlines)
- Indent using 4 spaces (search for indent-string)
In future we should enforce a policy, where we cannot merge a code where the pylint scoe goes below 7:
pylint --fail-under=7 *py
the command above would produce a non-zero exit code if the score drops below 7.
TIP Controller Integration
Using Swagger Autogenerated CloudSDK Library pypi package (implemented with swagger codegen).
Reporting
Currently we use the pytest allure integration to create visual reports for the test outcomes.
Additionally we generate overview pages, e.g. like this one to consolidate multiple test reports of the same test type.
These overview pages are being deployed by this workflow and their configuration is set in this file.
Miscellaneous
- Do not use old style string formatting:
"Hello %s" % var; usef"Hello {var}instead - use
"""in Docstrings
Useful links
https://docs.pytest.org/en/latest/example/markers.html
https://docs.pytest.org/en/latest/usage.html
http://pythontesting.net/framework/pytest/pytest-introduction/
Test status
Best Practice
- Ensure to have a python version > 3
- We strongly recommend to use virtualenv to ensure that your dev environment sandbox is created.
Code style
All code must be written in python 3 and conform to PEP 8 style guide. The test framework is built using pytest.
Directory Structure
├── lanforge - /* to be migrated */
├── libs
│ ├── controller_tests -/* Library Support for controller_tests part */
├── apnos -/* Library Support for Access Points (uses AP SSH) */
│ ├── lanforge -/* Library Support for LanForge Traffic Generator */
│ ├── perfecto -/* Library Support for Perfecto Systems */
│ ├── testrails -/* Result Visualization (will be depreciated ) */
├── tests -/* Pytest cases Directory */
│ ├── _basic_test_setup
│ ├── access_point_tests
│ ├── controller_tests
│ ├── e2e
├── advanced
├── basic
├── interOp
├── mdu
|── mesh
|── scale
|── README.md -/* Pytest framework and testcases information */
Test Automation Setup Instructions
# Let's assume '~/automation' directory for setting wlan-testing
cd ~/
mkdir automation
cd automation
git clone https://github.com/Telecominfraproject/wlan-testing
git clone https://github.com/Telecominfraproject/wlan-lanforge-scripts
cd wlan-testing
./sync_repos.bash
mkdir ~/.pip
echo "[global]" > ~/.pip/pip.conf
echo "index-url = https://pypi.org/simple" >> ~/.pip/pip.conf
echo "extra-index-url = https://tip-read:tip-read@tip.jfrog.io/artifactory/api/pypi/tip-wlan-python-pypi-local/simple" >> ~/.pip/pip.conf
pip3 install -r requirements.txt
cd tests
vim configuration.py # Setup your testbed data info here
# Check if everything is good
pytest --collect-only
# for visualizing allure reports, Install nodejs
# Set Java home
# install allure command
npm install -g allure-commandline --save-dev
Executing and Contributing new test cases
Follow instructions provided here to understand the Testing Framework, and How to run and write new tests
Issue Reporting
Please submit issues using our JIRA project here
Use the Test Automation backlog

