* downlink mu-mimo test for Bridge-Open added * mu-mimo test cases for other security modes are added * Country code with channel division: 2Ghz,20Mhz, US and channel 1 * change in testcase execution * created country_code-US, with channel_width-20Mhz, channel_no-1 for 2G band * missed git_configuration param * checking from setup_params_general 'rf' to set radio config * added country_code_channel_division funtion * added radio config using radio_config * corrected allure report * marker name changes for security modes in mu-mimo test case * changed function name * check allure report * Added comment * allure report corrected * Created testcase for channel 2 in 2G band * checking allure report * added channel mode VHT in AP configuration which is common for both wifi-5 and wifi-6 AP, without channel-mode always getting channel mode HE * checking allure report * corrected json_get url * testcase for channel-2 in 20Mhz, US, 2G * file name changes in mu-mimo and sniff method added for pcap * corrected channel overwritten on second testcase * testcases for channels from 3 to 13 with US, 20Mhz, 2G * packet sniffing methods moved from lf_tools to lf_pcap * US have 2G channels from 1 to 11 * added print statement to verify IP and channel no * marker names and security key changed for all security modes * Checking again if client not assigned with IP * Testcases: US, 40Mhz, 2G, channels 1-11 * Testcases: US, 40Mhz, 5G, channels (36,44,52,60,100,108,132,140) * removed wrong testcases * Testcases: IN, (20Mhz, 40Mhz), 2G, channels 1-11 * Testcases: IN, 40Mhz, 5G, channels (36,44,52,60,100,108,132,140) * Testcases: CA, 20Mhz,40Mhz, 2G,5G, channels (1-11) (36,44,52,60,100,108,132,140) * Testcases: CA, 40Mhz, 5G, channels (36,44,52,60,100,108,132,140) * twog test cases added for mu-mimo for all security modes * radio assignment changed in raw line config * Testcases: CA, 5G, 80Mhz, channel (36, 52, 100, 132) * Testcases: IN, 5G, 80Mhz, channel (36, 52, 100, 132) * Testcases: US, 5G, 80Mhz, channel (36, 52, 100, 132) * Testcases: CA, 20Mhz, 5G, channel (36,40,44,48,52,56,60, 64, 100, 104, 108, 112, 116,132, 136, 140, 144) * Testcases: IN, 20Mhz, 5G, channel (36,40,44,48,52,56,60, 64, 100, 104, 108, 112, 116,132, 136, 140, 144) * Testcases: US, 20Mhz, 5G, channel (36,40,44,48,52,56,60, 64, 100, 104, 108, 112, 116,132, 136, 140, 144) * Added rf config improvements Signed-off-by: shivam <shivam.thakur@candelatech.com> * twog and fiveg markers removed from module level markers * added rf channel configuration to bridge mode Signed-off-by: anil-tegala <anil.tegala@candelatech.com> * allow-dfs disabled in 5G rf configuration Signed-off-by: anil-tegala <anil.tegala@candelatech.com> * channels changed in rf setup profiles Signed-off-by: anil-tegala <anil.tegala@candelatech.com> * pcap capture thread disabled from execution Signed-off-by: anil-tegala <anil.tegala@candelatech.com> * pcap capture thread disabled from execution Signed-off-by: anil-tegala <anil.tegala@candelatech.com> * ssid name changes in setup profiles Signed-off-by: anil-tegala <anil.tegala@candelatech.com> Co-authored-by: karthikaeyetea <karthika.subramani@candelatech.com> Co-authored-by: karthika <78941121+karthikaeyetea@users.noreply.github.com> Co-authored-by: shivam <shivam.thakur@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

