{"id":27940748,"url":"https://github.com/telecominfraproject/wlan-testing","last_synced_at":"2025-05-07T10:20:21.631Z","repository":{"id":36971310,"uuid":"256667624","full_name":"Telecominfraproject/wlan-testing","owner":"Telecominfraproject","description":"TIP specific test scripts, some use wlan-lanforge-scripts libraries","archived":false,"fork":false,"pushed_at":"2025-05-01T03:50:26.000Z","size":116880,"stargazers_count":25,"open_issues_count":14,"forks_count":20,"subscribers_count":65,"default_branch":"master","last_synced_at":"2025-05-07T10:20:02.033Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://telecominfraproject.github.io/wlan-testing","language":"Python","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Telecominfraproject.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2020-04-18T04:15:04.000Z","updated_at":"2025-04-29T05:31:18.000Z","dependencies_parsed_at":"2023-12-18T07:27:35.820Z","dependency_job_id":"66c87372-5d6c-4074-a392-f39948536142","html_url":"https://github.com/Telecominfraproject/wlan-testing","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Telecominfraproject%2Fwlan-testing","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Telecominfraproject%2Fwlan-testing/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Telecominfraproject%2Fwlan-testing/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Telecominfraproject%2Fwlan-testing/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Telecominfraproject","download_url":"https://codeload.github.com/Telecominfraproject/wlan-testing/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252856750,"owners_count":21814893,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-05-07T10:20:20.556Z","updated_at":"2025-05-07T10:20:21.558Z","avatar_url":"https://github.com/Telecominfraproject.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"## TIP Open WiFi Test Automation\n\n### Overview\n\nThis repository contains the test automation framework and scripts for TIP Open WiFi.\nTest Framework is implemented in pytest\n\n![Automation Overview](.img/automation_overview.png)\n\nThe vision is to create an open test framework to ensure production grade Open Wifi Solution.\n\nThis test automation tied into our overall tooling at TIP as shown below:\n\n![Tools and Test Automation](.img/Tools_and_Testing.png)\n\nYou can get the full list of tests on [GitHub Pages](https://telecominfraproject.github.io/wlan-testing/) that's updated automatically.\n\n### General guidelines\n\nThis testing code adheres to generic [pep8](https://www.python.org/dev/peps/pep-0008/#introduction) style guidelines, most notably:\n\n1. [Documentation strings](https://www.python.org/dev/peps/pep-0008/#documentation-strings)\n2. [Naming conventions](https://www.python.org/dev/peps/pep-0008/#prescriptive-naming-conventions)\n3. [Sphynx docstring format](https://sphinx-rtd-tutorial.readthedocs.io/en/latest/docstrings.html)\n\nUsing [pytest](https://docs.pytest.org/en/6.2.x/) as the test execution framework.\n\nUsing [pylint](http://pylint.pycqa.org) for code quality monitoring.\n\nWe are using the `pylint` package to do the linting. Documentation for it can be found [here](http://pylint.pycqa.org/en/latest/).\nIn general, the customizations are possible via the `.pylintrc` file:\n\n1. Line length below 120 characters is fine (search for max-line-length)\n2. No new line at the end of file is fine (search for missing-final-newline)\n3. Multiple new lines at the end of file are fine (search for trailing-newlines)\n4. Indent using 4 spaces (search for indent-string)\n\nIn future we should enforce a policy, where we cannot merge a code where the pylint scoe goes below 7:\n\n```shell\npylint --fail-under=7 *py\n```\n\nthe command above would produce a non-zero exit code if the score drops below 7.\n\n### TIP Controller Integration\n\nUsing Swagger Autogenerated CloudSDK Library pypi package (implemented with [swagger codegen](https://github.com/swagger-api/swagger-codegen)).\n\n### Reporting\n\nCurrently we use the [pytest allure integration](https://docs.qameta.io/allure/#_pytest) to create visual reports for the test outcomes.\n\nAdditionally we generate overview pages, e.g. like [this one](http://openwifi-allure-reports.s3-website-us-east-1.amazonaws.com/sanity/overview/) to consolidate multiple test reports of the same test type.\n\nThese overview pages are being deployed by [this workflow](.github/workflows/update-overviews.yml) and their configuration is set in [this file](./.allure-overview/overviews.json).\n\n### Miscellaneous\n\n1. Do not use old style string formatting: `\"Hello %s\" % var`; use `f\"Hello {var}` instead\n2. use `\"\"\"` in Docstrings\n\n### Useful links\n\nhttps://docs.pytest.org/en/latest/example/markers.html  \nhttps://docs.pytest.org/en/latest/usage.html  \nhttp://pythontesting.net/framework/pytest/pytest-introduction/\n\n### Test status\n\n![total test count](https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/badges/total-count.svg)\n\n[![R1.x sanity testing](https://github.com/Telecominfraproject/wlan-testing/actions/workflows/quali.yml/badge.svg)](https://github.com/Telecominfraproject/wlan-testing/actions/workflows/quali.yml)\n![sanity test count](https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/badges/sanity-count.svg)\n\n[![interop testing](https://github.com/Telecominfraproject/wlan-testing/actions/workflows/interop.yml/badge.svg)](https://github.com/Telecominfraproject/wlan-testing/actions/workflows/interop.yml)\n![interop test count](https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/badges/interop-count.svg)\n\n[![performance testing](https://github.com/Telecominfraproject/wlan-testing/actions/workflows/performance.yml/badge.svg)](https://github.com/Telecominfraproject/wlan-testing/actions/workflows/performance.yml)\n![performance test count](https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/badges/performance-count.svg)\n\n[![RF Testing](https://github.com/Telecominfraproject/wlan-testing/actions/workflows/quali-advanced.yml/badge.svg)](https://github.com/Telecominfraproject/wlan-testing/actions/workflows/quali-advanced.yml)\n![Advance test count](https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/badges/advance-count.svg)\n\n[![regression testing](https://github.com/Telecominfraproject/wlan-testing/actions/workflows/regression.yml/badge.svg)](https://github.com/Telecominfraproject/wlan-testing/actions/workflows/regression.yml)\n![Regression test count](https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/badges/regression-count.svg)\n\n[![interop performance testing](https://github.com/Telecominfraproject/wlan-testing/actions/workflows/interop_performance.yml/badge.svg)](https://github.com/Telecominfraproject/wlan-testing/actions/workflows/interop_performance.yml)\n![Interop Performance test count](https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/badges/performance-interop-count.svg)\n\n### Best Practice\n\n1. Ensure to have a python version \u003e 3\n2. We strongly recommend to use virtualenv to ensure that your dev environment sandbox is created.\n\n### Code style\n\nAll code must be written in python 3 and conform to PEP 8 style guide. The test framework is built using pytest.  \n\n[![made-with-python](https://img.shields.io/badge/Made%20with-Python-1f425f.svg)](https://www.python.org/)\n[![PEP8](https://img.shields.io/badge/code%20style-pep8-orange.svg)](https://www.python.org/dev/peps/pep-0008/)  \n\n### Directory Structure\n\n```bash\n├── lanforge              - /* to be migrated */\n├── libs\n│   ├── controller_tests  -/* Library Support for controller_tests part  */\n    ├── apnos             -/* Library Support for Access Points (uses AP SSH)  */\n│   ├── lanforge          -/* Library Support for LanForge Traffic Generator */\n│   ├── perfecto          -/* Library Support for Perfecto Systems */\n│   ├── testrails         -/* Result Visualization (will be depreciated ) */\n├── tests                 -/* Pytest cases Directory */\n│   ├── _basic_test_setup\n│   ├── access_point_tests\n│   ├── controller_tests\n│   ├── e2e\n      ├── advanced\n      ├── basic\n      ├── interOp\n      ├── mdu\n      |── mesh\n      |── scale\n    |── README.md         -/* Pytest framework and testcases information */\n```\n\n# Test Automation Setup Instructions \n```\n# Let's assume '~/automation' directory for setting wlan-testing\ncd ~/\nmkdir automation\ncd automation\n\ngit clone https://github.com/Telecominfraproject/wlan-testing \ncd wlan-testing/\n\ncd tests/\nvim lab_info.json    # Setup your testbed data info here\ndocker build -f docker/Dockerfile -t wlantest .\ndocker run -i -t -v $(YOUR_ALLURE_RESULT_DIR):/allure-results wlantest -c “cd tests;pytest -m ‘marker’ -s -vvv –testbed=basic-testbed –alluredir=allure-results”\n\n\n# Check List of Available Tests\nhttps://telecominfraproject.github.io/wlan-testing/\n\n# Test Suites Marker\now_sanity_lf: OpenWifi Sanity Test Plan\n\n\n\n# List of Available Markers\n\nclient_connectivity_tests: Client Connectivity Test Cases with bridge|nat|vlan modes across 2.4|5|6 GHz bands with Various Encryptions\ndfs_tests: Dynamic Frequency Selection Test Cases\nmulti_psk_tests: Multi PSK Test Cases\nrate_limiting_tests: Rate Limiting Test Cases\ndvlan_tests: Dynamic VLAN Test Cases\ndynamic_qos_tests: Dynamic QOS Test Cases\nmulti_vlan_tests: Multi VLAN Combination based Test Cases\nclient_scale_tests: Client Capacity Tests with maximum possible Stations bridge|nat|vlan 2.4|5|6 GHz Bands\npeak_throughput_tests: Single Client Peak Performance Test with various Bandwidths across 2.4|5|6 GHz Bands with various Client Types\ndataplane_tests: Single Client Throughput Test with various pkt sizes with UL|DL|BI with AC|AX Client Types across 2.4|5|6 GHz Bands\ncountry_code: Country Code Test Cases \n\n# Supported Modes, Bands, Encryptions\nbridge: Use this marker to run bridge mode tests in each of the above test plans/suites\nnat: Use this marker to run nat mode tests in each of the above test plans/suites\nvlan: Use this marker to run vlan mode tests in each of the above test plans/suites\n\ntwog: Use this marker to run 2.4 GHz tests in each of the above test plans/suites\nfiveg: Use this marker to run 5 GHz tests in each of the above test plans/suites\nsixg: Use this marker to run 6 GHz tests in each of the above test plans/suites\n\nopen: Use this marker to run open Encryption tests in each of the above test plans/suites\nwpa: Use this marker to run wpa Encryption tests in each of the above test plans/suites\nwpa2_personal: Use this marker to run wpa2_personal Encryption tests in each of the above test plans/suites\nwpa3_personal: Use this marker to run wpa3_personal Encryption tests in each of the above test plans/suites\nwpa3_personal_mixed: Use this marker to run wpa3_personal_mixed Encryption tests in each of the above test plans/suites\nwpa_wpa2_personal_mixed: Use this marker to run wpa_wpa2_personal_mixed Encryption tests in each of the above test plans/suites\n\nwpa_enterprise: Use this marker to run wpa_enterprise Encryption tests in each of the above test plans/suites\nwpa2_enterprise: Use this marker to run wpa2_enterprise Encryption tests in each of the above test plans/suites\nwpa3_enterprise: Use this marker to run wpa3_enterprise Encryption tests in each of the above test plans/suites\nwpa_wpa2_enterprise_mixed: Use this marker to run wpa_wpa2_enterprise_mixed Encryption tests in each of the above test plans/suites\nwpa3_enterprise_mixed: Use this marker to run wpa3_enterprise_mixed Encryption tests in each of the above test plans/suites\n\n# for visualizing allure reports, Install nodejs\n# Set Java home\n\n# install allure command\nnpm install -g allure-commandline --save-dev\n```\n### [Test Plans and Markers](TEST_PLANS.md):bookmark_tabs:\n\n# Docker Setup Instructions\n\nThis repository support building Docker image from bundled [Dockerfile](./docker/Dockerfile). If you want to use it for testing, please refer to the [related directory for details](./docker).\n\n### Executing and Contributing new test cases\n\nFollow instructions provided [here](./tests/README.md)  to understand the Testing Framework, and How to run and \nwrite new tests\n\n### Issue Reporting\nPlease submit issues using our JIRA project [here](https://telecominfraproject.atlassian.net/browse/WIFI)\n\nUse the Test Automation [backlog](https://telecominfraproject.atlassian.net/secure/RapidBoard.jspa?projectKey=WIFI\u0026rapidView=48\u0026view=planning.nodetail)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftelecominfraproject%2Fwlan-testing","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftelecominfraproject%2Fwlan-testing","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftelecominfraproject%2Fwlan-testing/lists"}