├── .allure-overview
├── generate_overview.py
├── index.html
└── overviews.json
├── .ananda
├── api_wrapper.py
└── requirements.txt
├── .dockerignore
├── .github
├── actions
│ ├── allure-report-to-s3
│ │ └── action.yml
│ ├── build-and-push-docker
│ │ └── action.yml
│ ├── cleanup-docker
│ │ └── action.yml
│ ├── deploy-sdk-docker-compose
│ │ └── action.yml
│ ├── deploy-virtual-ap-instance
│ │ └── action.yml
│ ├── generate-allure-report
│ │ └── action.yml
│ └── run-tests
│ │ └── action.yml
├── tools
│ └── generate_directory_index.py
└── workflows
│ ├── advanced.yml
│ ├── cgw-dev-deployment.yaml
│ ├── enforce-jira-issue-key.yml
│ ├── get_redirector_url.yml
│ ├── interop.yml
│ ├── interop_modified.yml
│ ├── interop_performance.yml
│ ├── manual.yml
│ ├── ow_docker-compose-upgrade-test.yml
│ ├── ow_docker-compose.yml
│ ├── ow_k8s.yml
│ ├── performance.yml
│ ├── quali-advanced.yml
│ ├── quali-basic-manual.yml
│ ├── quali.yml
│ ├── regression.yml
│ ├── restart_gw.yml
│ ├── uc_loadsim.yml
│ ├── ucentralgw-cluster-cleanup.yaml
│ ├── ucentralgw-demo-deployment.yaml
│ ├── ucentralgw-dev-deployment.yaml
│ ├── ucentralgw-qa-deployment.yaml
│ ├── ucentralgw-qa2-deployment.yaml
│ ├── update-badges.yml
│ ├── update-overviews.yml
│ └── update-tests.yml
├── .gitignore
├── .img
├── Tools_and_Testing.png
├── automation_overview.png
├── interop-count.svg
├── performance-count.svg
├── sanity-count.svg
└── total-count.svg
├── .quali
├── common.py
├── get_configuration.py
├── requirements.txt
├── start_reservation.py
└── stop_reservation.py
├── LICENSE
├── NOTES.txt
├── README.md
├── TEST_PLANS.md
├── __init__.py
├── config
├── 5g_ssid.json
├── 5g_ssid1.json
├── 8ssid_2g.json
├── Bridge_6ssid.json
├── Nat.json
├── Ratelimit.json
├── VLAN_2GHz 8ssid.json
├── VLAN_4ssid_2g.json
├── VLAN_4ssid_5g.json
├── VLAN_5GHz 8ssid.json
├── VLAN_6ssid.json
├── nat_testcases.json
├── ratelimit_2.4_noteffect_otherSSID.json
├── ratelimit_2.4disabled_case.json
├── ratelimit_2.4enable_cases.json
├── ratelimit_5_noteffect_otherSSID.json
├── ratelimit_5disable_cases.json
├── ratelimit_5enable_cases.json
├── ratelimit_70mbps.json
├── ratelimt_2ssids.json
├── wpa 2.4 bridge.json
├── wpa2_2.4_bridge.json
└── wpa2_nat.json
├── dependencies.bash
├── docker
├── Dockerfile
└── README.md
├── dut_lib_template
├── README.md
├── SetupLibrary.py
├── __init__.py
├── ap_lib.py
├── dut_lib_template.py
├── openwrt_ctl.py
├── schemacheck.py
└── setup.py
├── grafana
└── performance.json
├── libs
├── README.md
├── SetupLibrary.py
├── __init__.py
├── apnos
│ ├── README.md
│ ├── __init__.py
│ ├── apnos.py
│ └── openwrt_ctl.py
├── controller
│ ├── README.md
│ ├── __init__.py
│ ├── controller_1x
│ │ ├── __init__.py
│ │ └── controller.py
│ ├── controller_2x
│ │ ├── __init__.py
│ │ └── controller.py
│ └── controller_3x
│ │ ├── __init__.py
│ │ └── controller.py
├── lanforge
│ └── lf_tests.py
├── network_connectivity
│ ├── NetworkConnectivity.py
│ └── __init__.py
├── openwrt_ctl.py
├── perfecto_interop
│ ├── README.md
│ ├── __init__.py
│ ├── android_libs.py
│ ├── android_tests.py
│ ├── ios_lib.py
│ ├── ios_libs.py
│ ├── ios_tests.py
│ ├── perfecto_interop.py
│ └── setup.py
├── testrails
│ ├── __init__.py
│ ├── reporting.py
│ └── testrail_api.py
├── tip_1x
│ ├── __init__.py
│ └── controller.py
└── tip_2x
│ ├── README.md
│ ├── SetupLibrary.py
│ ├── __init__.py
│ ├── ap_lib.py
│ ├── controller.py
│ ├── openwrt_ctl.py
│ ├── schemacheck.py
│ ├── setup.py
│ └── tip_2x.py
├── requirements.txt
├── setup_env.bash
├── setup_tunnel.bash
├── tests
├── .pylintrc
├── README.md
├── __init__.py
├── access_point_tests
│ ├── __init__.py
│ └── master_config_tests
│ │ ├── __init__.py
│ │ ├── master-config-1.json
│ │ ├── master-config-2.json
│ │ ├── master-config-3.json
│ │ └── test_master_config.py
├── configuration.py
├── conftest.py
├── controller_tests
│ ├── __init__.py
│ ├── conftest.py
│ └── ucentral_gateway
│ │ ├── __init__.py
│ │ ├── test_analyticservice.py
│ │ ├── test_fms_service.py
│ │ ├── test_gatewayservice.py
│ │ ├── test_provisionservice.py
│ │ └── test_securityservice.py
├── e2e
│ ├── UseCase
│ │ ├── __init__.py
│ │ └── test_API_provision.py
│ ├── __init__.py
│ ├── advanced
│ │ ├── __init__.py
│ │ ├── advanced-config.json
│ │ ├── air_time_fairness_test
│ │ │ ├── __init__.py
│ │ │ └── wpa2_personal
│ │ │ │ ├── __init__.py
│ │ │ │ └── test_bridge_air_time_fairness.py
│ │ ├── ap_co-existence
│ │ │ └── __init__.py
│ │ ├── conftest.py
│ │ ├── downlink_mu_mimo_test
│ │ │ ├── __init__.py
│ │ │ ├── open
│ │ │ │ ├── __init__.py
│ │ │ │ ├── test_bridge_mode.py
│ │ │ │ ├── test_nat_mode.py
│ │ │ │ └── test_vlan_mode.py
│ │ │ ├── wpa2_personal
│ │ │ │ ├── __init__.py
│ │ │ │ ├── test_bridge_mode.py
│ │ │ │ ├── test_nat_mode.py
│ │ │ │ └── test_vlan_mode.py
│ │ │ ├── wpa3_personal
│ │ │ │ ├── __init__.py
│ │ │ │ ├── test_bridge_mode.py
│ │ │ │ ├── test_nat_mode.py
│ │ │ │ └── test_vlan_mode.py
│ │ │ └── wpa_personal
│ │ │ │ ├── __init__.py
│ │ │ │ ├── test_bridge_mode.py
│ │ │ │ ├── test_nat_mode.py
│ │ │ │ └── test_vlan_mode.py
│ │ ├── maximum_connection
│ │ │ ├── __init__.py
│ │ │ └── wpa2_personal
│ │ │ │ ├── __init__.py
│ │ │ │ └── test_bridge_maximum_connection.py
│ │ ├── maximum_throughput_test
│ │ │ ├── __init__.py
│ │ │ └── wpa2_personal
│ │ │ │ ├── __init__.py
│ │ │ │ └── test_bridge_max_throughput.py
│ │ ├── multi_association_disassociation
│ │ │ ├── __init__.py
│ │ │ └── wpa2_personal
│ │ │ │ ├── __init__.py
│ │ │ │ └── test_bridge_association_disassociation.py
│ │ ├── multi_station_performance
│ │ │ ├── __init__.py
│ │ │ └── wpa2_personal
│ │ │ │ ├── __init__.py
│ │ │ │ └── test_bridge_multi_sta_performance.py
│ │ ├── rate_vs_range
│ │ │ ├── __init__.py
│ │ │ └── wpa2_personal
│ │ │ │ └── test_bridge_mode.py
│ │ ├── receiver_sensitivity
│ │ │ ├── __init__.py
│ │ │ └── test_rx_sens_bridge_mode.py
│ │ ├── roam_test
│ │ │ ├── __init__.py
│ │ │ ├── hard_roam
│ │ │ │ ├── OTA
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── roam-config.json
│ │ │ │ │ └── test_roam_ota.py
│ │ │ │ ├── OTD
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── roam-config.json
│ │ │ │ │ └── test_roam_otd.py
│ │ │ │ └── __init__.py
│ │ │ └── roam_by_attenuation
│ │ │ │ ├── __init__.py
│ │ │ │ ├── test_bridge_5g_to_5g.py
│ │ │ │ └── test_bridge_single_client.py
│ │ └── spatial_consistency
│ │ │ ├── __init__.py
│ │ │ └── wpa2_personal
│ │ │ ├── __init__.py
│ │ │ └── test_bridge_mode.py
│ ├── basic
│ │ ├── README.md
│ │ ├── __init__.py
│ │ ├── advanced_captive_portal_tests
│ │ │ ├── __init__.py
│ │ │ ├── external_captive_portal_tests
│ │ │ │ ├── __init__.py
│ │ │ │ └── open
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── test_click_to_continue_bridge.py
│ │ │ │ │ ├── test_click_to_continue_nat.py
│ │ │ │ │ ├── test_local_user_and_pass_bridge.py
│ │ │ │ │ └── test_local_user_and_pass_nat.py
│ │ │ └── internal_captive_portal_tests
│ │ │ │ ├── __init__.py
│ │ │ │ └── open
│ │ │ │ ├── __init__.py
│ │ │ │ ├── test_click_to_continue_bridge.py
│ │ │ │ ├── test_click_to_continue_nat.py
│ │ │ │ ├── test_local_user_and_pass_bridge.py
│ │ │ │ ├── test_local_user_and_pass_nat.py
│ │ │ │ ├── test_radius_user_and_pass_bridge.py
│ │ │ │ └── test_radius_user_and_pass_nat.py
│ │ ├── configuration_tests
│ │ │ ├── __init__.py
│ │ │ ├── bridge_mode
│ │ │ │ ├── __init__.py
│ │ │ │ ├── test_enterprise_security_modes_configuration.py
│ │ │ │ └── test_general_security_modes_configuration.py
│ │ │ ├── nat_mode
│ │ │ │ ├── __init__.py
│ │ │ │ ├── test_enterprise_security_modes_configuration.py
│ │ │ │ └── test_general_security_modes_configuration.py
│ │ │ └── vlan_mode
│ │ │ │ ├── __init__.py
│ │ │ │ ├── test_enterprise_security_modes_configuration.py
│ │ │ │ └── test_general_security_modes_configuration.py
│ │ ├── conftest.1
│ │ ├── conftest.py
│ │ ├── dfs_test
│ │ │ ├── __init__.py
│ │ │ └── wpa2_personal
│ │ │ │ ├── __init__.py
│ │ │ │ ├── dfs_20MHz
│ │ │ │ ├── __init__.py
│ │ │ │ └── test_dfs_20_bridge.py
│ │ │ │ ├── dfs_40MHz
│ │ │ │ ├── __init__.py
│ │ │ │ └── test_dfs_40_bridge.py
│ │ │ │ └── dfs_80MHz
│ │ │ │ ├── __init__.py
│ │ │ │ └── test_dfs_80_bridge.py
│ │ ├── endurance_test
│ │ │ ├── __init__.py
│ │ │ ├── bridge_mode
│ │ │ │ ├── __init__.py
│ │ │ │ └── test_ap_stability.py
│ │ │ └── nat_mode
│ │ │ │ └── __init__.py
│ │ ├── hot_configuration_reloads
│ │ │ ├── __init__.py
│ │ │ └── wpa2_personal
│ │ │ │ ├── __init__.py
│ │ │ │ └── test_hot_config_reload_bridge.py
│ │ ├── multi_ssid_tests
│ │ │ ├── __init__.py
│ │ │ └── bridge_mode
│ │ │ │ ├── __init__.py
│ │ │ │ └── test_multi_ssid.py
│ │ ├── performance_tests
│ │ │ ├── AX_capacity
│ │ │ │ ├── __init__.py
│ │ │ │ └── wpa2_personal
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── test_bridge_mode.py
│ │ │ │ │ ├── test_nat_mode.py
│ │ │ │ │ └── test_vlan_mode.py
│ │ │ ├── __init__.py
│ │ │ ├── client_scale_test
│ │ │ │ ├── __init__.py
│ │ │ │ ├── open
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── test_bridge_mode.py
│ │ │ │ │ └── test_nat_mode.py
│ │ │ │ ├── wpa2_personal
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── test_bridge_mode.py
│ │ │ │ │ └── test_nat_mode.py
│ │ │ │ ├── wpa3_personal
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ └── test_bridge_mode.py
│ │ │ │ └── wpa_personal
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ └── test_bridge_mode.py
│ │ │ ├── dataplane_throughput_test
│ │ │ │ ├── __init__.py
│ │ │ │ ├── open_security
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── test_bridge_mode.py
│ │ │ │ │ ├── test_nat_mode.py
│ │ │ │ │ └── test_vlan_mode.py
│ │ │ │ ├── wpa2_security
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── test_bridge_mode.py
│ │ │ │ │ ├── test_nat_mode.py
│ │ │ │ │ └── test_vlan_mode.py
│ │ │ │ ├── wpa3_security
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── test_bridge_mode.py
│ │ │ │ │ ├── test_nat_mode.py
│ │ │ │ │ └── test_vlan_mode.py
│ │ │ │ └── wpa_security
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── test_bridge_mode.py
│ │ │ │ │ ├── test_nat_mode.py
│ │ │ │ │ └── test_vlan_mode.py
│ │ │ ├── dual_band_performance_test
│ │ │ │ ├── __init__.py
│ │ │ │ ├── open
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── test_bridge_mode.py
│ │ │ │ │ ├── test_nat_mode.py
│ │ │ │ │ └── test_vlan_mode.py
│ │ │ │ ├── wap3_personal
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── test_bridge_mode.py
│ │ │ │ │ ├── test_nat_mode.py
│ │ │ │ │ └── test_vlan_mode.py
│ │ │ │ ├── wpa2_personal
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── test_bridge_mode.py
│ │ │ │ │ ├── test_nat_mode.py
│ │ │ │ │ └── test_vlan_mode.py
│ │ │ │ └── wpa_personal
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── test_bridge_mode.py
│ │ │ │ │ ├── test_nat_mode.py
│ │ │ │ │ └── test_vlan_mode.py
│ │ │ ├── multi_station_throughput
│ │ │ │ ├── __init__.py
│ │ │ │ └── wpa2_personal
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── bridge_mode
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── test_multi_sta_thpt_2g.py
│ │ │ │ │ └── test_mutli_sta_thpt_5g.py
│ │ │ │ │ ├── nat_mode
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── test_multi_sta_thpt_2g.py
│ │ │ │ │ └── test_mutli_sta_thpt_5g.py
│ │ │ │ │ └── vlan_mode
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── test_multi_sta_thpt_2g.py
│ │ │ │ │ └── test_mutli_sta_thpt_5g.py
│ │ │ ├── ofdma_test
│ │ │ │ ├── __init__.py
│ │ │ │ └── wpa2_personal
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── test_bridge_mode.py
│ │ │ │ │ ├── test_nat_mode.py
│ │ │ │ │ └── test_vlan_mode.py
│ │ │ ├── peak_throughput_tests
│ │ │ │ ├── __init__.py
│ │ │ │ ├── bridge_mode
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── wpa2_enterprise_encryption
│ │ │ │ │ │ ├── __init__.py
│ │ │ │ │ │ ├── test_peak_throughput_wpa2_eap_20Mhz_2g.py
│ │ │ │ │ │ ├── test_peak_throughput_wpa2_eap_20Mhz_5g.py
│ │ │ │ │ │ ├── test_peak_throughput_wpa2_eap_40Mhz_2g.py
│ │ │ │ │ │ ├── test_peak_throughput_wpa2_eap_40Mhz_5g.py
│ │ │ │ │ │ └── test_peak_throughput_wpa2_eap_80Mhz_5g.py
│ │ │ │ │ ├── wpa2_personal_encryption
│ │ │ │ │ │ ├── __init__.py
│ │ │ │ │ │ ├── test_peak_throughput_wpa2_20Mhz_2g.py
│ │ │ │ │ │ ├── test_peak_throughput_wpa2_20Mhz_5g.py
│ │ │ │ │ │ ├── test_peak_throughput_wpa2_40Mhz_2g.py
│ │ │ │ │ │ ├── test_peak_throughput_wpa2_40Mhz_5g.py
│ │ │ │ │ │ └── test_peak_throughput_wpa2_80Mhz_5g.py
│ │ │ │ │ ├── wpa3_enterprise_encryption
│ │ │ │ │ │ ├── __init__.py
│ │ │ │ │ │ ├── test_peak_throughput_wpa3_eap_20Mhz_2g.py
│ │ │ │ │ │ ├── test_peak_throughput_wpa3_eap_20Mhz_5g.py
│ │ │ │ │ │ ├── test_peak_throughput_wpa3_eap_40Mhz_2g.py
│ │ │ │ │ │ ├── test_peak_throughput_wpa3_eap_40Mhz_5g.py
│ │ │ │ │ │ └── test_peak_throughput_wpa3_eap_80Mhz_5g.py
│ │ │ │ │ ├── wpa3_personal_encryption
│ │ │ │ │ │ ├── __init__.py
│ │ │ │ │ │ ├── test_peak_throughput_wpa3_160Mhz_6g.py
│ │ │ │ │ │ ├── test_peak_throughput_wpa3_20Mhz_2g.py
│ │ │ │ │ │ ├── test_peak_throughput_wpa3_20Mhz_5g.py
│ │ │ │ │ │ ├── test_peak_throughput_wpa3_40Mhz_2g.py
│ │ │ │ │ │ ├── test_peak_throughput_wpa3_40Mhz_5g.py
│ │ │ │ │ │ ├── test_peak_throughput_wpa3_80Mhz_5g.py
│ │ │ │ │ │ └── test_peak_throughput_wpa3_80Mhz_6g.py
│ │ │ │ │ └── wpa_encryption
│ │ │ │ │ │ ├── __init__.py
│ │ │ │ │ │ ├── test_peak_throughput_wpa_20Mhz_2g.py
│ │ │ │ │ │ ├── test_peak_throughput_wpa_20Mhz_5g.py
│ │ │ │ │ │ ├── test_peak_throughput_wpa_40Mhz_2g.py
│ │ │ │ │ │ ├── test_peak_throughput_wpa_40Mhz_5g.py
│ │ │ │ │ │ └── test_peak_throughput_wpa_80Mhz_5g.py
│ │ │ │ └── nat_mode
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── open_encryption
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── test_peak_throughput_open_20Mhz_2g.py
│ │ │ │ │ ├── test_peak_throughput_open_20Mhz_5g.py
│ │ │ │ │ ├── test_peak_throughput_open_40Mhz_2g.py
│ │ │ │ │ ├── test_peak_throughput_open_40Mhz_5g.py
│ │ │ │ │ └── test_peak_throughput_open_80Mhz_5g.py
│ │ │ │ │ ├── wpa2_enterprise_encryption
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── test_peak_throughput_wpa2_eap_20Mhz_2g.py
│ │ │ │ │ ├── test_peak_throughput_wpa2_eap_20Mhz_5g.py
│ │ │ │ │ ├── test_peak_throughput_wpa2_eap_40Mhz_2g.py
│ │ │ │ │ ├── test_peak_throughput_wpa2_eap_40Mhz_5g.py
│ │ │ │ │ └── test_peak_throughput_wpa2_eap_80Mhz_5g.py
│ │ │ │ │ ├── wpa2_personal_encryption
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── test_peak_throughput_wpa2_20Mhz_2g.py
│ │ │ │ │ ├── test_peak_throughput_wpa2_20Mhz_5g.py
│ │ │ │ │ ├── test_peak_throughput_wpa2_40Mhz_2g.py
│ │ │ │ │ ├── test_peak_throughput_wpa2_40Mhz_5g.py
│ │ │ │ │ └── test_peak_throughput_wpa2_80Mhz_5g.py
│ │ │ │ │ ├── wpa3_enterprise_encryption
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── test_peak_throughput_wpa3_eap_20Mhz_2g.py
│ │ │ │ │ ├── test_peak_throughput_wpa3_eap_20Mhz_5g.py
│ │ │ │ │ ├── test_peak_throughput_wpa3_eap_40Mhz_2g.py
│ │ │ │ │ ├── test_peak_throughput_wpa3_eap_40Mhz_5g.py
│ │ │ │ │ └── test_peak_throughput_wpa3_eap_80Mhz_5g.py
│ │ │ │ │ ├── wpa3_personal_encryption
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── test_peak_throughput_wpa3_160Mhz_6g.py
│ │ │ │ │ ├── test_peak_throughput_wpa3_20Mhz_2g.py
│ │ │ │ │ ├── test_peak_throughput_wpa3_20Mhz_5g.py
│ │ │ │ │ ├── test_peak_throughput_wpa3_40Mhz_2g.py
│ │ │ │ │ ├── test_peak_throughput_wpa3_40Mhz_5g.py
│ │ │ │ │ ├── test_peak_throughput_wpa3_80Mhz_5g.py
│ │ │ │ │ └── test_peak_throughput_wpa3_80Mhz_6g.py
│ │ │ │ │ └── wpa_encryption
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── test_peak_throughput_wpa_20Mhz_2g.py
│ │ │ │ │ ├── test_peak_throughput_wpa_20Mhz_5g.py
│ │ │ │ │ ├── test_peak_throughput_wpa_40Mhz_2g.py
│ │ │ │ │ ├── test_peak_throughput_wpa_40Mhz_5g.py
│ │ │ │ │ └── test_peak_throughput_wpa_80Mhz_5g.py
│ │ │ ├── performance_pass_fail.json
│ │ │ └── throughput_benchmark
│ │ │ │ ├── __init__.py
│ │ │ │ ├── tcp_udp_upstream_downstream_bidirection_throughput_test
│ │ │ │ ├── __init__.py
│ │ │ │ └── wpa2_personal
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── test_bridge_mode.py
│ │ │ │ │ ├── test_nat_mode.py
│ │ │ │ │ └── test_vlan_mode.py
│ │ │ │ ├── throughput_across_channel_bw
│ │ │ │ ├── __init__.py
│ │ │ │ ├── test_bridge_mode.py
│ │ │ │ ├── test_nat_mode.py
│ │ │ │ └── test_vlan_mode.py
│ │ │ │ └── throughput_vs_various_pkt_sizes
│ │ │ │ ├── __init__.py
│ │ │ │ ├── open_security
│ │ │ │ ├── __init__.py
│ │ │ │ ├── test_bridge_mode.py
│ │ │ │ ├── test_nat_mode.py
│ │ │ │ └── test_vlan_mode.py
│ │ │ │ ├── wpa2_security
│ │ │ │ ├── __init__.py
│ │ │ │ ├── test_bridge_mode.py
│ │ │ │ ├── test_nat_mode.py
│ │ │ │ └── test_vlan_mode.py
│ │ │ │ ├── wpa3_security
│ │ │ │ ├── __init__.py
│ │ │ │ ├── test_bridge_mode.py
│ │ │ │ ├── test_nat_mode.py
│ │ │ │ └── test_vlan_mode.py
│ │ │ │ └── wpa_security
│ │ │ │ ├── __init__.py
│ │ │ │ ├── test_bridge_mode.py
│ │ │ │ ├── test_nat_mode.py
│ │ │ │ └── test_vlan_mode.py
│ │ ├── schema_validation
│ │ │ ├── __init__.py
│ │ │ ├── master-config-1.json
│ │ │ ├── master-config-2.json
│ │ │ ├── master-config-3.json
│ │ │ └── test_schema_validation.py
│ │ ├── strict_forwarding
│ │ │ ├── __init__.py
│ │ │ └── wpa2_personal
│ │ │ │ ├── __init__.py
│ │ │ │ └── test_strict_forwarding_bridge.py
│ │ ├── test_access_point.py
│ │ ├── test_e2e_sdk_ap_tests.py
│ │ ├── test_firmware.py
│ │ └── validation_of_operating_modes
│ │ │ ├── __init__.py
│ │ │ ├── bridge_mode
│ │ │ ├── __init__.py
│ │ │ ├── client_connectivity
│ │ │ │ ├── __init__.py
│ │ │ │ ├── test_enterprise_tls.py
│ │ │ │ ├── test_enterprise_ttls.py
│ │ │ │ └── test_general_security_modes.py
│ │ │ ├── dual_stack
│ │ │ │ └── __init__.py
│ │ │ ├── multi_psk
│ │ │ │ ├── __init__.py
│ │ │ │ ├── wpa2_security
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ └── test_multipsk_basic_wpa2.py
│ │ │ │ └── wpa_security
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ └── test_multipsk_basic_wpa.py
│ │ │ ├── rate_limiting
│ │ │ │ ├── __init__.py
│ │ │ │ └── test_rate_limiting.py
│ │ │ └── rate_limiting_with_radius
│ │ │ │ ├── __init__.py
│ │ │ │ └── test_rate_limiting_with_radius.py
│ │ │ ├── client_isolation
│ │ │ ├── __init__.py
│ │ │ └── test_client_isolation.py
│ │ │ ├── country_code_channel_division
│ │ │ ├── __init__.py
│ │ │ ├── country_code_CA
│ │ │ │ ├── __init__.py
│ │ │ │ ├── channel_width_20Mhz
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── fiveg_band
│ │ │ │ │ │ ├── __init__.py
│ │ │ │ │ │ └── test_CA_20Mhz_5g.py
│ │ │ │ │ └── twog_band
│ │ │ │ │ │ ├── __init__.py
│ │ │ │ │ │ └── test_CA_20Mhz_2g.py
│ │ │ │ ├── channel_width_40Mhz
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── fiveg_band
│ │ │ │ │ │ ├── __init__.py
│ │ │ │ │ │ └── test_CA_40Mhz_5g.py
│ │ │ │ │ └── twog_band
│ │ │ │ │ │ ├── __init__.py
│ │ │ │ │ │ └── test_CA_40Mhz_2g.py
│ │ │ │ └── channel_width_80Mhz
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ └── fiveg_band
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ └── test_CA_80Mhz_5g.py
│ │ │ ├── country_code_GB
│ │ │ │ ├── __init__.py
│ │ │ │ ├── channel_width_20Mhz
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── fiveg_band
│ │ │ │ │ │ ├── __init__.py
│ │ │ │ │ │ └── test_GB_20Mhz_5g.py
│ │ │ │ │ └── twog_band
│ │ │ │ │ │ ├── __init__.py
│ │ │ │ │ │ └── test_GB_20Mhz_2g.py
│ │ │ │ ├── channel_width_40Mhz
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── fiveg_band
│ │ │ │ │ │ ├── __init__.py
│ │ │ │ │ │ └── test_GB_40Mhz_5g.py
│ │ │ │ │ └── twog_band
│ │ │ │ │ │ ├── __init__.py
│ │ │ │ │ │ └── test_GB_40Mhz_2g.py
│ │ │ │ └── channel_width_80Mhz
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ └── fiveg_band
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ └── test_GB_80Mhz_5g.py
│ │ │ ├── country_code_IN
│ │ │ │ ├── __init__.py
│ │ │ │ ├── channel_width_20Mhz
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── fiveg_band
│ │ │ │ │ │ ├── __init__.py
│ │ │ │ │ │ └── test_IN_20Mhz_5g.py
│ │ │ │ │ └── twog_band
│ │ │ │ │ │ ├── __init__.py
│ │ │ │ │ │ └── test_IN_20Mhz_2g.py
│ │ │ │ ├── channel_width_40Mhz
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── fiveg_band
│ │ │ │ │ │ ├── __init__.py
│ │ │ │ │ │ └── test_IN_40Mhz_5g.py
│ │ │ │ │ └── twog_band
│ │ │ │ │ │ ├── __init__.py
│ │ │ │ │ │ └── test_IN_40Mhz_2g.py
│ │ │ │ └── channel_width_80Mhz
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ └── fiveg_band
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ └── test_IN_80Mhz_5g.py
│ │ │ ├── country_code_JP
│ │ │ │ ├── __init__.py
│ │ │ │ ├── channel_width_20Mhz
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── fiveg_band
│ │ │ │ │ │ ├── __init__.py
│ │ │ │ │ │ └── test_JP_20Mhz_5g.py
│ │ │ │ │ └── twog_band
│ │ │ │ │ │ ├── __init__.py
│ │ │ │ │ │ └── test_JP_20Mhz_2g.py
│ │ │ │ ├── channel_width_40Mhz
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── fiveg_band
│ │ │ │ │ │ ├── __init__.py
│ │ │ │ │ │ └── test_JP_40Mhz_5g.py
│ │ │ │ │ └── twog_band
│ │ │ │ │ │ ├── __init__.py
│ │ │ │ │ │ └── test_JP_40Mhz_2g.py
│ │ │ │ └── channel_width_80Mhz
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ └── fiveg_band
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ └── test_JP_80Mhz_5g.py
│ │ │ ├── country_code_RU
│ │ │ │ ├── channel_width_20Mhz
│ │ │ │ │ ├── fiveg_band
│ │ │ │ │ │ └── test_RU_20Mhz_5g.py
│ │ │ │ │ └── twog_band
│ │ │ │ │ │ └── test_RU_20Mhz_2g.py
│ │ │ │ ├── channel_width_40Mhz
│ │ │ │ │ ├── fiveg_band
│ │ │ │ │ │ └── test_RU_40Mhz_5g.py
│ │ │ │ │ └── twog_band
│ │ │ │ │ │ └── test_RU_40Mhz_2g.py
│ │ │ │ └── channel_width_80Mhz
│ │ │ │ │ └── fiveg_band
│ │ │ │ │ └── test_RU_80Mhz_5g.py
│ │ │ ├── country_code_SG
│ │ │ │ ├── channel_width_20Mhz
│ │ │ │ │ ├── fiveg_band
│ │ │ │ │ │ └── test_SG_20Mhz_5g.py
│ │ │ │ │ └── twog_band
│ │ │ │ │ │ └── test_SG_20Mhz_2g.py
│ │ │ │ ├── channel_width_40Mhz
│ │ │ │ │ ├── fiveg_band
│ │ │ │ │ │ └── test_SG_40Mhz_5g.py
│ │ │ │ │ └── twog_band
│ │ │ │ │ │ └── test_SG_40Mhz_2g.py
│ │ │ │ └── channel_width_80Mhz
│ │ │ │ │ └── fiveg_band
│ │ │ │ │ └── test_SG_80Mhz_5g.py
│ │ │ └── country_code_US
│ │ │ │ ├── __init__.py
│ │ │ │ ├── channel_width_20Mhz
│ │ │ │ ├── __init__.py
│ │ │ │ ├── fiveg_band
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ └── test_US_20Mhz_5g.py
│ │ │ │ └── twog_band
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ └── test_US_20Mhz_2g.py
│ │ │ │ ├── channel_width_40Mhz
│ │ │ │ ├── fiveg_band
│ │ │ │ │ └── test_US_40Mhz_5g.py
│ │ │ │ └── twog_band
│ │ │ │ │ └── test_US_40Mhz_2g.py
│ │ │ │ └── channel_width_80Mhz
│ │ │ │ ├── __init__.py
│ │ │ │ └── fiveg_band
│ │ │ │ ├── __init__.py
│ │ │ │ └── test_US_80Mhz_5g.py
│ │ │ ├── max_ssid
│ │ │ ├── __init__.py
│ │ │ └── test_max_ssid.py
│ │ │ ├── nat_mode
│ │ │ ├── __init__.py
│ │ │ ├── client_connectivity
│ │ │ │ ├── __init__.py
│ │ │ │ ├── test_enterprise_tls.py
│ │ │ │ ├── test_enterprise_ttls.py
│ │ │ │ └── test_general_security_modes.py
│ │ │ ├── dual_stack
│ │ │ │ └── __init__.py
│ │ │ ├── multi_psk
│ │ │ │ ├── __init__.py
│ │ │ │ ├── wpa2_security
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ └── test_multipsk_basic_wpa2.py
│ │ │ │ └── wpa_security
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ └── test_multipsk_basic_wpa.py
│ │ │ └── rate_limiting
│ │ │ │ ├── __init__.py
│ │ │ │ └── test_rate_limiting.py
│ │ │ └── vlan_mode
│ │ │ ├── __init__.py
│ │ │ ├── client_connectivity
│ │ │ ├── __init__.py
│ │ │ ├── test_enterprise_tls.py
│ │ │ ├── test_enterprise_ttls.py
│ │ │ └── test_general_security_modes.py
│ │ │ ├── dual_stack
│ │ │ └── __init__.py
│ │ │ ├── dynamic_vlan
│ │ │ ├── __init__.py
│ │ │ ├── wpa2_enterprise
│ │ │ │ ├── __init__.py
│ │ │ │ ├── fiveg
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── test_dynamic_over_ssid_fiveg_wpa2.py
│ │ │ │ │ └── test_dynamic_vlan_fiveg_wpa2.py
│ │ │ │ └── twog
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── test_dynamic_over_ssid_twog_wpa2.py
│ │ │ │ │ └── test_dynamic_vlan_twog_wpa2.py
│ │ │ └── wpa3_enterprise
│ │ │ │ ├── __init__.py
│ │ │ │ ├── fiveg
│ │ │ │ ├── __init__.py
│ │ │ │ ├── test_dynamic_over_ssid_fiveg_wpa3.py
│ │ │ │ └── test_dynamic_vlan_fiveg_wpa3.py
│ │ │ │ ├── sixg
│ │ │ │ ├── __init__.py
│ │ │ │ ├── test_dynamic_over_ssid_sixg_wpa3.py
│ │ │ │ └── test_dynamic_vlan_sixg_wpa3.py
│ │ │ │ └── twog
│ │ │ │ ├── __init__.py
│ │ │ │ ├── test_dynamic_over_ssid_twog_wpa3.py
│ │ │ │ └── test_dynamic_vlan_twog_wpa3.py
│ │ │ ├── multi_psk
│ │ │ └── __init__.py
│ │ │ ├── multi_vlan
│ │ │ ├── __init__.py
│ │ │ ├── test_multi_vlan_fiveg.py
│ │ │ ├── test_multi_vlan_sixg.py
│ │ │ └── test_multi_vlan_twog.py
│ │ │ └── rate_limiting
│ │ │ ├── __init__.py
│ │ │ └── test_rate_limiting.py
│ ├── conftest.1
│ ├── interOp
│ │ ├── __init__.py
│ │ ├── conftest.py
│ │ ├── openroaming_test
│ │ │ ├── __init__.py
│ │ │ └── test_openroaming_bridge.py
│ │ └── validation_of_operating_modes
│ │ │ ├── __init__.py
│ │ │ ├── bridge_mode
│ │ │ ├── __init__.py
│ │ │ ├── client_connect_test
│ │ │ │ ├── __init__.py
│ │ │ │ ├── test_enterprise_ttls.py
│ │ │ │ └── test_general_security_modes.py
│ │ │ ├── rate_limiting
│ │ │ │ ├── __init__.py
│ │ │ │ └── test_rate_limiting.py
│ │ │ ├── toggle_airplane_mode_test
│ │ │ │ ├── __init__.py
│ │ │ │ ├── test_enterprise_ttls.py
│ │ │ │ └── test_general_security_modes.py
│ │ │ └── toggle_wifi_mode_test
│ │ │ │ ├── __init__.py
│ │ │ │ ├── test_enterprise_ttls.py
│ │ │ │ └── test_general_security_modes.py
│ │ │ ├── nat_mode
│ │ │ ├── __init__.py
│ │ │ ├── client_connect_test
│ │ │ │ ├── __init__.py
│ │ │ │ ├── test_enterprise_ttls.py
│ │ │ │ └── test_general_security_modes.py
│ │ │ ├── rate_limiting
│ │ │ │ ├── __init__.py
│ │ │ │ └── test_rate_limiting.py
│ │ │ ├── toggle_airplane_mode_test
│ │ │ │ ├── __init__.py
│ │ │ │ ├── test_enterprise_ttls.py
│ │ │ │ └── test_general_security_modes.py
│ │ │ └── toggle_wifi_mode_test
│ │ │ │ ├── __init__.py
│ │ │ │ ├── test_enterprise_ttls.py
│ │ │ │ └── test_general_security_modes.py
│ │ │ └── vlan_mode
│ │ │ ├── __init__.py
│ │ │ ├── client_connect_test
│ │ │ ├── __init__.py
│ │ │ ├── test_enterprise_ttls.py
│ │ │ └── test_general_security_modes.py
│ │ │ ├── rate_limiting
│ │ │ ├── __init__.py
│ │ │ └── test_rate_limiting.py
│ │ │ ├── toggle_airplane_mode_test
│ │ │ ├── __init__.py
│ │ │ ├── test_enterprise_ttls.py
│ │ │ └── test_general_security_modes.py
│ │ │ └── toggle_wifi_mode_test
│ │ │ ├── __init__.py
│ │ │ ├── test_enterprise_ttls.py
│ │ │ └── test_general_security_modes.py
│ ├── mdu
│ │ ├── __init__.py
│ │ └── conftest.py
│ ├── mesh
│ │ ├── Mesh
│ │ │ ├── test_mesh_bridge.py
│ │ │ └── test_node_patterns.py
│ │ ├── __init__.py
│ │ └── conftest.py
│ └── scale
│ │ ├── __init__.py
│ │ └── conftest.py
├── kafka_tests
│ ├── __init__.py
│ └── ap_events
│ │ ├── __init__.py
│ │ ├── test-config.json
│ │ └── test_kafka_ap_events.py
├── lab_info.json
├── pyproject.toml
├── setup.cfg
├── test_connectivity.py
└── tox.ini
└── tools
├── ap_tools.py
├── config_test_load.py
├── digicert-change-ap-redirector.sh
├── interop_reboot_devices_thread.py
├── interop_tools.py
├── pdu.json
├── pdu_automation.py
├── pdu_v2.py
├── pdu_v3.py
├── perfecto_device_reservation.py
├── phone_tools.py
└── scp_util.py
/.allure-overview/generate_overview.py:
--------------------------------------------------------------------------------
1 | import json
2 | import os
3 | import pathlib
4 | import string
5 | import sys
6 |
7 | base = pathlib.Path(os.path.dirname(os.path.abspath(__file__)))
8 |
9 | def main():
10 | with open(base / 'index.html', 'r') as f:
11 | overview_template = string.Template(f.read())
12 |
13 | with open(base / 'overviews.json', 'r') as f:
14 | overview_config = json.load(f)[sys.argv[1]]
15 |
16 | print(overview_template.safe_substitute(**overview_config))
17 |
18 | if __name__ == '__main__':
19 | main()
--------------------------------------------------------------------------------
/.allure-overview/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |

13 |
14 |
15 |
16 |
17 |
18 |
19 |
50 |
51 |
52 |
--------------------------------------------------------------------------------
/.allure-overview/overviews.json:
--------------------------------------------------------------------------------
1 | {
2 | "sanity": {
3 | "OVERVIEW_TITLE": "'OpenWifi sanity results'",
4 | "OVERVIEW_TESTBEDS": ["edgecore_eap112","edgecore_eap104","yuncore_fap655","sonicfi_rap630c-311g","edgecore_oap103","hfcl_ion4xe","cig_wf189h","sonicfi_rap7110c-341x","edgecore_eap105","cig_wf189","edgecore_eap101","edgecore_eap111","yuncore_ax820","edgecore_eap102","sercomm_ap72tip","cig_wf196","udaya_a6-id2"]
5 | },
6 | "interop": {
7 | "OVERVIEW_TITLE": "'OpenWifi interop results'",
8 | "OVERVIEW_TESTBEDS": ["pixel-4","galaxy-s9","galaxy-s10","galaxy-s20","iphone-xr","iphone-7","iphone-11","iphone-12"]
9 | },
10 |
11 | "advanced": {
12 | "OVERVIEW_TITLE": "'OpenWifi advanced results'",
13 | "OVERVIEW_TESTBEDS": ["edgecore_eap104","edgecore_eap101","edgecore_eap111","hfcl_ion4xe","cig_wf189","edgecore_eap105","sonicfi_rap7110c-341x","cig_wf196","yuncore_fap655","udaya_a6-id2","sonicfi_rap630c-311g"]
14 | },
15 |
16 | "performance": {
17 | "OVERVIEW_TITLE": "'OpenWifi performance results'",
18 | "OVERVIEW_TESTBEDS": ["edgecore_eap112","edgecore_eap104","yuncore_fap655","sonicfi_rap630c-311g","edgecore_oap103","hfcl_ion4xe","cig_wf189h","sonicfi_rap7110c-341x","edgecore_eap105","cig_wf189","edgecore_eap101","edgecore_eap111","yuncore_ax820","edgecore_eap102","sercomm_ap72tip","cig_wf196","udaya_a6-id2"]
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/.ananda/requirements.txt:
--------------------------------------------------------------------------------
1 | requests==2.27.0
2 |
--------------------------------------------------------------------------------
/.dockerignore:
--------------------------------------------------------------------------------
1 | .git
2 |
--------------------------------------------------------------------------------
/.github/actions/allure-report-to-s3/action.yml:
--------------------------------------------------------------------------------
1 | name: upload report to S3
2 | description: upload an Allure report to AWS S3 and update the latest reference
3 |
4 | inputs:
5 | test_type:
6 | description: test type of the report
7 | required: true
8 | testbed:
9 | description: testbed the report is about
10 | required: true
11 | report_path:
12 | description: path to the Allure report folder
13 | required: true
14 | s3_access_key_id:
15 | description: AWS access key ID to access S3 bucket
16 | required: true
17 | s3_access_key_secret:
18 | description: AWS access key secret to access S3 bucket
19 | required: true
20 |
21 | runs:
22 | using: "composite"
23 | steps:
24 | - name: install AWS cli
25 | uses: unfor19/install-aws-cli-action@v1
26 |
27 | - name: upload report to AWS S3
28 | env:
29 | AWS_S3_BUCKET_NAME: openwifi-allure-reports
30 | AWS_ACCOUNT_ID: "289708231103"
31 | AWS_ACCESS_KEY_ID: ${{ inputs.s3_access_key_id }}
32 | AWS_SECRET_ACCESS_KEY: ${{ inputs.s3_access_key_secret }}
33 | AWS_DEFAULT_REGION: us-east-1
34 | AWS_DEFAULT_OUTPUT: json
35 | shell: bash
36 | run: aws s3 cp --acl public-read --recursive ${{ inputs.report_path }} s3://${AWS_S3_BUCKET_NAME}/${{ inputs.test_type }}/${{ inputs.testbed }}/${{ github.run_number }}
37 |
38 | - name: set annotation
39 | shell: bash
40 | env:
41 | AWS_S3_BUCKET_WEBSITE_BASE_URL: http://openwifi-allure-reports.s3-website-us-east-1.amazonaws.com
42 | run: echo "::notice title=Report uploaded::The test report has been uploaded to ${AWS_S3_BUCKET_WEBSITE_BASE_URL}/${{ inputs.test_type }}/${{ inputs.testbed }}/${{ github.run_number }}/"
43 |
44 | - name: update reference to latest report
45 | env:
46 | AWS_S3_BUCKET_NAME: openwifi-allure-reports
47 | AWS_ACCOUNT_ID: "289708231103"
48 | AWS_ACCESS_KEY_ID: ${{ inputs.s3_access_key_id }}
49 | AWS_SECRET_ACCESS_KEY: ${{ inputs.s3_access_key_secret }}
50 | AWS_DEFAULT_REGION: us-east-1
51 | AWS_DEFAULT_OUTPUT: json
52 | shell: bash
53 | run: |
54 | cat < index.html
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 | EOF
63 |
64 | # setting metadata to be able to easily determine latest run number
65 | aws s3 cp --acl public-read --metadata latest=${{ github.run_number }} --content-type text/html index.html s3://${AWS_S3_BUCKET_NAME}/${{ inputs.test_type }}/${{ inputs.testbed }}/latest/index.html
66 |
--------------------------------------------------------------------------------
/.github/actions/build-and-push-docker/action.yml:
--------------------------------------------------------------------------------
1 | name: build and push Docker image
2 | description: build and push the wlan-testing Docker image
3 |
4 | inputs:
5 | registry:
6 | description: the registry to push to
7 | required: true
8 | registry_user:
9 | description: the user to authenticate against the registry
10 | required: true
11 | registry_password:
12 | description: the password to authenticate against the registry
13 | required: true
14 |
15 | runs:
16 | using: "composite"
17 | steps:
18 | - name: Checkout Testing repo
19 | uses: actions/checkout@v3
20 | with:
21 | path: wlan-testing
22 |
23 | - name: Checkout LANforge scripts
24 | uses: actions/checkout@v3
25 | with:
26 | path: wlan-lanforge-scripts
27 | repository: Telecominfraproject/wlan-lanforge-scripts
28 |
29 | - name: docker login
30 | shell: bash
31 | run: docker login ${{ inputs.registry }} -u ${{ inputs.registry_user }} -p ${{ inputs.registry_password }}
32 |
33 | - name: build docker image
34 | working-directory: wlan-testing
35 | shell: bash
36 | run: docker build -t ${{ inputs.registry }}/cloud-sdk-nightly:${{ github.run_id }} -f docker/Dockerfile .
37 |
38 | - name: push docker image
39 | shell: bash
40 | run: docker push ${{ inputs.registry }}/cloud-sdk-nightly:${{ github.run_id }}
41 |
--------------------------------------------------------------------------------
/.github/actions/cleanup-docker/action.yml:
--------------------------------------------------------------------------------
1 | name: build and push Docker image
2 | description: build and push the wlan-testing Docker image
3 |
4 | inputs:
5 | registry_user:
6 | description: the user to authenticate against the registry
7 | required: true
8 | registry_password:
9 | description: the password to authenticate against the registry
10 | required: true
11 |
12 | runs:
13 | using: "composite"
14 | steps:
15 | - name: cleanup Docker image
16 | shell: bash
17 | run: curl -u ${{ inputs.registry_user }}:${{ inputs.registry_password }} -X DELETE "https://tip.jfrog.io/artifactory/tip-wlan-cloud-docker-repo/cloud-sdk-nightly/${{ github.run_id }}"
18 |
--------------------------------------------------------------------------------
/.github/actions/generate-allure-report/action.yml:
--------------------------------------------------------------------------------
1 | name: generate Allure report
2 | description: Generates an Allure report from Allure results and includes metadata
3 |
4 | inputs:
5 | results_path:
6 | description: path to the Allure results folder
7 | required: true
8 | history_path:
9 | description: path to the Allure history folder
10 | required: false
11 | allure_version:
12 | description: version of Allure to use
13 | required: false
14 | default: "2.25.0"
15 | report_path:
16 | description: output path of the Allure report folder
17 | required: false
18 | default: ./allure-report
19 | additional_metadata:
20 | description: metadata that will be added to the environment.properties file
21 | required: false
22 |
23 | runs:
24 | using: "composite"
25 | steps:
26 | - name: install Allure CLI tool
27 | shell: bash
28 | run: |
29 | wget https://repo.maven.apache.org/maven2/io/qameta/allure/allure-commandline/${{ inputs.allure_version }}/allure-commandline-${{ inputs.allure_version }}.tgz
30 | tar -xzf allure-commandline-${{ inputs.allure_version }}.tgz
31 |
32 | - name: copy history into results
33 | shell: bash
34 | run: |
35 | if [ -e "${{ inputs.history_path }}" ] ; then
36 | cp -r "${{ inputs.history_path }}" "${{ inputs.results_path }}/history"
37 | fi
38 |
39 | - name: create executor information
40 | shell: bash
41 | run: |
42 | cat << EOF >> "${{ inputs.results_path }}/executor.json"
43 | {
44 | "reportName": "${{ github.repository }} ${{ github.workflow }} #${{ github.run_number }}",
45 | "buildName": "${{ github.repository }} ${{ github.workflow }} #${{ github.run_number }}",
46 | "buildOrder": ${{ github.run_number }},
47 | "name": "Github runner",
48 | "reportUrl": "../${{ github.run_number }}/index.html",
49 | "buildUrl": "https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}",
50 | "type": "github"
51 | }
52 | EOF
53 |
54 | - name: add report metadata
55 | shell: bash
56 | run: |
57 | cat << EOF >> "${{ inputs.results_path }}/environment.properties"
58 |
59 | Tests.CommitId=${{ github.sha }}
60 | EOF
61 |
62 | - name: generate Allure report
63 | shell: bash
64 | run: allure-${{ inputs.allure_version }}/bin/allure generate "${{ inputs.results_path }}" -o "${{ inputs.report_path }}"
65 |
66 |
67 |
--------------------------------------------------------------------------------
/.github/workflows/enforce-jira-issue-key.yml:
--------------------------------------------------------------------------------
1 | name: Ensure Jira issue is linked
2 |
3 | on:
4 | pull_request:
5 | types: [opened, edited, reopened, synchronize]
6 |
7 | jobs:
8 | check_for_issue_key:
9 | runs-on: ubuntu-latest
10 | steps:
11 | - name: Checkout actions repo
12 | uses: actions/checkout@v3
13 | with:
14 | repository: Telecominfraproject/.github
15 | path: github
16 |
17 | - name: Run JIRA check
18 | uses: ./github/composite-actions/enforce-jira-issue-key
19 | with:
20 | jira_base_url: ${{ secrets.TIP_JIRA_URL }}
21 | jira_user_email: ${{ secrets.TIP_JIRA_USER_EMAIL }}
22 | jira_api_token: ${{ secrets.TIP_JIRA_API_TOKEN }}
23 |
--------------------------------------------------------------------------------
/.github/workflows/get_redirector_url.yml:
--------------------------------------------------------------------------------
1 | name: Get testbeds current redirector urls
2 |
3 | on:
4 | workflow_dispatch:
5 | inputs:
6 | testbeds:
7 | default: 'basic-01,basic-02,basic-03,basic-04,basic-05,basic-06,basic-07,basic-08'
8 | description: 'Testbed(s) to test'
9 | required: false
10 |
11 | defaults:
12 | run:
13 | shell: bash
14 |
15 | jobs:
16 | generate-matrix:
17 | name: generate testbed matrix
18 | runs-on: ubuntu-latest
19 | outputs:
20 | matrix: ${{ steps.set-matrix.outputs.matrix }}
21 | steps:
22 | - name: generate-matrix
23 | id: set-matrix
24 | run: |
25 | TESTBEDS="${{ github.event.inputs.testbeds || 'basic-01,basic-02,basic-03,basic-04,basic-05,basic-06,basic-07,basic-08' }}"
26 | TESTBEDS=$(echo $TESTBEDS | sed "s/,/\",\"/g" | sed 's/^/[\"/g' | sed 's/$/\"]/g')
27 | TESTBEDS=$(echo "$TESTBEDS" | jq -c 'map({"testbed":.})')
28 | cat >> $GITHUB_OUTPUT << EOF
29 | matrix=${TESTBEDS}
30 | EOF
31 |
32 | get-redirector-url:
33 | needs: [ generate-matrix ]
34 | runs-on: ubuntu-latest
35 | strategy:
36 | matrix: ${{ fromJson( needs.generate-matrix.outputs.matrix ) }}
37 | steps:
38 | - name: checkout testing repo
39 | uses: actions/checkout@v4
40 | with:
41 | repository: Telecominfraproject/wlan-testing
42 | path: wlan-testing
43 |
44 | - name: checkout pki cert scripts repo
45 | uses: actions/checkout@v4
46 | with:
47 | repository: Telecominfraproject/wlan-pki-cert-scripts
48 | path: wlan-pki-cert-scripts
49 |
50 | - name: install dependencies
51 | run: |
52 | sudo apt-get install -y python3-pip
53 | pip install paramiko scp
54 |
55 | - name: create configuration.py file
56 | run: |
57 | cat << EOF > configuration.py
58 | ${{ secrets.LAB_CONFIGURATION_JSON }}
59 | EOF
60 |
61 | - name: Get redirector URL
62 | env:
63 | DIGICERT_API_KEY: ${{ secrets.DIGICERT_API_KEY }}
64 | run: |
65 | for id in $(echo -e 'from configuration import CONFIGURATION\nfor ap in CONFIGURATION["${{ matrix.testbed }}"]["access_point"]: print(ap["serial"])' | python3)
66 | do
67 | ./wlan-pki-cert-scripts/digicert-get-ap-redirector.sh $id
68 | echo "Exit code - $?"
69 | done
70 |
--------------------------------------------------------------------------------
/.github/workflows/restart_gw.yml:
--------------------------------------------------------------------------------
1 | name: Restart OWGW
2 |
3 | defaults:
4 | run:
5 | shell: bash
6 |
7 | env:
8 | AWS_EKS_NAME: tip-wlan-main
9 | AWS_DEFAULT_OUTPUT: json
10 | AWS_DEFAULT_REGION: ap-south-1
11 | AWS_ACCOUNT_ID: ${{ secrets.AWS_ACCOUNT_ID }}
12 | AWS_ACCESS_KEY_ID: ${{ secrets.AWS_CLIENT_ID }}
13 | AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_CLIENT_KEY }}
14 |
15 | on:
16 | workflow_dispatch:
17 | inputs:
18 | environment:
19 | default: 'qa01'
20 | description: 'In which environment OWGW must be restarted (qa01 will restart OWGW in openwifi-qa01)'
21 | required: true
22 |
23 | jobs:
24 | restart-owgw:
25 | runs-on: ubuntu-latest
26 | steps:
27 | - name: Fetch kubeconfig
28 | run: aws eks update-kubeconfig --name ${{ env.AWS_EKS_NAME }}
29 |
30 | - name: Install kubectl
31 | run: |
32 | curl -s -LO "https://dl.k8s.io/release/v1.27.14/bin/linux/amd64/kubectl"
33 | sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl
34 |
35 | - name: Restart OWGW in defined namespace
36 | run: kubectl delete pod -n openwifi-${{ github.event.inputs.environment }} -l app.kubernetes.io/name=owgw
37 |
--------------------------------------------------------------------------------
/.github/workflows/ucentralgw-cluster-cleanup.yaml:
--------------------------------------------------------------------------------
1 | name: Cleanup OpenWIFI Cloud SDK Namespace
2 |
3 | defaults:
4 | run:
5 | shell: bash
6 |
7 | env:
8 | AWS_EKS_NAME: tip-wlan-main
9 | AWS_DEFAULT_OUTPUT: json
10 | AWS_DEFAULT_REGION: ap-south-1
11 | AWS_ACCOUNT_ID: ${{ secrets.AWS_ACCOUNT_ID }}
12 | AWS_ACCESS_KEY_ID: ${{ secrets.AWS_CLIENT_ID }}
13 | AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_CLIENT_KEY }}
14 |
15 | on:
16 | workflow_dispatch:
17 | inputs:
18 | namespace:
19 | default: 'none'
20 | description: 'Namespace to clean up eg. dev01'
21 | required: true
22 | full:
23 | default: 'false'
24 | description: 'Remove namespace if set to true'
25 | required: false
26 |
27 | jobs:
28 | undeploy:
29 | name: Cleanup OpenWIFI Cloud SDK Namespace
30 | runs-on: ubuntu-latest
31 | steps:
32 |
33 | - name: Checkout repo with Helm values
34 | uses: actions/checkout@v4
35 | with:
36 | repository: Telecominfraproject/wlan-cloud-ucentral-deploy
37 | path: wlan-cloud-ucentral-deploy
38 | ref: main
39 |
40 | - name: Fetch kubeconfig
41 | run: |
42 | aws eks update-kubeconfig --name ${{ env.AWS_EKS_NAME }}
43 |
44 | - name: Install kubectl
45 | run: |
46 | curl -s -LO "https://dl.k8s.io/release/v1.27.14/bin/linux/amd64/kubectl"
47 | sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl
48 |
49 | - name: Undeploy OpenWIFI Cloud SDK
50 | working-directory: wlan-cloud-ucentral-deploy/chart/environment-values
51 | run: |
52 | export NAMESPACE=${{ inputs.namespace }}
53 | opts=""
54 | if [[ "${{ inputs.full }}" == "true" ]] ; then
55 | opts="full"
56 | fi
57 | ./cleanup.sh $opts
58 |
--------------------------------------------------------------------------------
/.github/workflows/update-badges.yml:
--------------------------------------------------------------------------------
1 | name: Update test number badges
2 |
3 | on:
4 | push:
5 | branches:
6 | - master
7 | paths:
8 | - "tests/**"
9 | workflow_dispatch:
10 |
11 | jobs:
12 | update_badges:
13 | runs-on: ubuntu-latest
14 | container: python:3.8
15 | steps:
16 | - name: Checkout testing repo
17 | uses: actions/checkout@v3
18 | with:
19 | path: wlan-testing
20 |
21 | - uses: actions/checkout@v3
22 | with:
23 | ref: badges
24 | path: wlan-testing/badges
25 |
26 | - name: Run setup_env.bash
27 | working-directory: wlan-testing
28 | env:
29 | CLOUDSDK_LIBRARY: tip_2x
30 | TEST_DEVICE_NAME: all
31 | PYTHON: /usr/local/bin/python3
32 | PIP: /usr/local/bin/pip3
33 | run: |
34 | ./setup_env.bash -t $CLOUDSDK_LIBRARY -d $TEST_DEVICE_NAME -n "TIP Automation" -o TIP -e tip-automation@telecominfraproject.com -i "TIP OpenWIFI Library" && pip3 freeze
35 |
36 | - name: download badges
37 | working-directory: wlan-testing/tests
38 | run: |
39 | mkdir -p ../.img
40 | wget https://img.shields.io/badge/total_tests-$(pytest --collect-only -q | tail -1 | cut -d ' ' -f 1)-green?style=flat-square -O ../badges/total-count.svg
41 | wget https://img.shields.io/badge/interop_tests-$(pytest --collect-only -m "ow_sanity_interop" -q | tail -1 | cut -d '/' -f 1)-green?style=flat-square -O ../badges/interop-count.svg
42 | wget https://img.shields.io/badge/sanity_tests-$(pytest --collect-only -m "ow_sanity_lf" -q | tail -1 | cut -d '/' -f 1)-green?style=flat-square -O ../badges/sanity-count.svg
43 | wget https://img.shields.io/badge/performance_tests-$(pytest --collect-only -m "performance" -q | tail -1 | cut -d '/' -f 1)-green?style=flat-square -O ../badges/performance-count.svg
44 | wget https://img.shields.io/badge/advance_tests-$(pytest --collect-only -m "advance" -q | tail -1 | cut -d '/' -f 1)-green?style=flat-square -O ../badges/advance-count.svg
45 | wget https://img.shields.io/badge/regression_tests-$(pytest --collect-only -m "ow_regression_lf" -q | tail -1 | cut -d '/' -f 1)-green?style=flat-square -O ../badges/regression-count.svg
46 | # wget https://img.shields.io/badge/interop_performance_tests-$(pytest --collect-only -m "interop_uc_sanity and client_connectivity" -q | tail -1 | cut -d '/' -f 1)-green?style=flat-square -O ../badges/performance-interop-count.svg
47 |
48 | - name: commit changes
49 | working-directory: wlan-testing/badges
50 | run: |
51 | git config --global user.name "github-actions[bot]"
52 | git config --global user.email "41898282+github-actions[bot]@users.noreply.github.com"
53 |
54 | git add .
55 | git diff-index --quiet HEAD || git commit -m "Updating test count badges: $(date -u)"
56 |
57 | - name: push changes
58 | uses: ad-m/github-push-action@master
59 | with:
60 | github_token: ${{ secrets.GITHUB_TOKEN }}
61 | directory: wlan-testing/badges
62 | branch: badges
63 | force: true
64 |
--------------------------------------------------------------------------------
/.github/workflows/update-overviews.yml:
--------------------------------------------------------------------------------
1 | name: Update test report overview pages
2 |
3 | on:
4 | workflow_dispatch:
5 | push:
6 | paths:
7 | - ".allure-overview/**"
8 |
9 | jobs:
10 | update_overview:
11 | strategy:
12 | fail-fast: false
13 | matrix:
14 | test_type: ['sanity', 'interop', 'advanced', 'performance']
15 |
16 | runs-on: ubuntu-latest
17 | container: python:3.8
18 | steps:
19 | - uses: actions/checkout@v3
20 |
21 | - name: generate overview page
22 | run: |
23 | python .allure-overview/generate_overview.py ${{ matrix.test_type }} > index.html
24 | cat index.html
25 |
26 | - name: install aws CLI tool
27 | if: github.ref == 'refs/heads/master'
28 | run: |
29 | curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
30 | unzip awscliv2.zip
31 | ./aws/install
32 |
33 | - name: upload overview page
34 | if: github.ref == 'refs/heads/master'
35 | env:
36 | AWS_S3_BUCKET_NAME: openwifi-allure-reports
37 | AWS_ACCOUNT_ID: "289708231103"
38 | AWS_ACCESS_KEY_ID: ${{ secrets.ALLURE_S3_ACCESS_KEY_ID }}
39 | AWS_SECRET_ACCESS_KEY: ${{ secrets.ALLURE_S3_ACCESS_KEY_SECRET }}
40 | AWS_DEFAULT_REGION: us-east-1
41 | AWS_DEFAULT_OUTPUT: json
42 | run: aws s3 cp --acl public-read --content-type text/html index.html s3://${AWS_S3_BUCKET_NAME}/${{ matrix.test_type }}/overview/index.html
43 |
44 |
45 |
--------------------------------------------------------------------------------
/.github/workflows/update-tests.yml:
--------------------------------------------------------------------------------
1 | name: Update tests list from master branch
2 |
3 | on:
4 | push:
5 | paths:
6 | - 'tests/**'
7 | branches:
8 | - master
9 | workflow_dispatch:
10 |
11 | defaults:
12 | run:
13 | shell: bash
14 |
15 | jobs:
16 | build:
17 | runs-on: ubuntu-latest
18 | steps:
19 | - uses: actions/checkout@v3
20 | - name: build and push Docker image
21 | uses: ./.github/actions/build-and-push-docker
22 | with:
23 | registry: tip-tip-wlan-cloud-docker-repo.jfrog.io
24 | registry_user: ${{ secrets.DOCKER_USER_NAME }}
25 | registry_password: ${{ secrets.DOCKER_USER_PASSWORD }}
26 |
27 | testsgen:
28 | needs: [build]
29 | runs-on: ubuntu-latest
30 | steps:
31 | - uses: actions/checkout@v3
32 |
33 | - name: Generate tests as allure results
34 | run: |
35 | docker run -v $PWD/allure-results:/allure-results tip-tip-wlan-cloud-docker-repo.jfrog.io/cloud-sdk-nightly:${{ github.run_id }} -c "cd tests; pytest -s -vvv --alluredir=/allure-results --skip-all"
36 | sudo chown runner:docker -R $PWD/allure-results
37 |
38 | - name: Generate Allure report
39 | uses: ./.github/actions/generate-allure-report
40 | with:
41 | results_path: ./allure-results
42 |
43 | - name: Update allure report
44 | run: |
45 | mv allure-report tmp-docs
46 | rm -rf allure-*
47 | mkdir -p ~/.ssh
48 | ssh-keyscan -H github.com >> ~/.ssh/known_hosts
49 | echo https://tip-automation:${{ secrets.GIT_PUSH_PAT }}@github.com > ~/.git-credentials
50 | git config --global credential.helper store
51 | git config --global user.email "tip-automation@telecominfraproject.com"
52 | git config --global user.name "TIP Automation User"
53 | git pull
54 | git checkout gh-pages || git checkout -b gh-pages
55 | rm -rf docs/tmp-docs || true
56 | mv tmp-docs docs
57 | git add docs
58 | git commit -m'Update allure report for github pages'
59 |
60 | - name: Publish Allure report to GitHub Pages
61 | uses: ad-m/github-push-action@v0.6.0
62 | with:
63 | github_token: ${{ secrets.GITHUB_TOKEN }}
64 | branch: gh-pages
65 | directory: ./docs
66 |
67 | cleanup:
68 | needs: [build, testsgen]
69 | runs-on: ubuntu-latest
70 | if: always()
71 | steps:
72 | - uses: actions/checkout@v3
73 | - name: cleanup Docker image
74 | uses: ./.github/actions/cleanup-docker
75 | with:
76 | registry_user: ${{ secrets.DOCKER_USER_NAME }}
77 | registry_password: ${{ secrets.DOCKER_USER_PASSWORD }}
78 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Byte-compiled / optimized / DLL files
2 | __pycache__/
3 | *.py[cod]
4 | *$py.class
5 |
6 | # C extensions
7 | *.so
8 |
9 | # Distribution / packaging
10 | .Python
11 | build/
12 | develop-eggs/
13 | dist/
14 | downloads/
15 | eggs/
16 | .eggs/
17 | lib/
18 | lib64/
19 | parts/
20 | sdist/
21 | var/
22 | wheels/
23 | share/python-wheels/
24 | *.egg-info/
25 | .installed.cfg
26 | *.egg
27 | MANIFEST
28 |
29 | # PyInstaller
30 | # Usually these files are written by a python script from a template
31 | # before PyInstaller builds the exe, so as to inject date/other infos into it.
32 | *.manifest
33 | *.spec
34 |
35 | # Installer logs
36 | pip-log.txt
37 | pip-delete-this-directory.txt
38 |
39 | # Unit test / coverage reports
40 | htmlcov/
41 | .tox/
42 | .nox/
43 | .coverage
44 | .coverage.*
45 | .cache
46 | nosetests.xml
47 | coverage.xml
48 | *.cover
49 | *.py,cover
50 | .hypothesis/
51 | .pytest_cache/
52 | cover/
53 |
54 | # Translations
55 | *.mo
56 | *.pot
57 |
58 | # Django stuff:
59 | *.log
60 | local_settings.py
61 | db.sqlite3
62 | db.sqlite3-journal
63 |
64 | # Flask stuff:
65 | instance/
66 | .webassets-cache
67 |
68 | # Scrapy stuff:
69 | .scrapy
70 |
71 | # Sphinx documentation
72 | docs/_build/
73 |
74 | # PyBuilder
75 | .pybuilder/
76 | target/
77 |
78 | # Jupyter Notebook
79 | .ipynb_checkpoints
80 |
81 | # IPython
82 | profile_default/
83 | ipython_config.py
84 |
85 | # pyenv
86 | # For a library or package, you might want to ignore these files since the code is
87 | # intended to run in multiple environments; otherwise, check them in:
88 | # .python-version
89 |
90 | # pipenv
91 | # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
92 | # However, in case of collaboration, if having platform-specific dependencies or dependencies
93 | # having no cross-platform support, pipenv may install dependencies that don't work, or not
94 | # install all needed dependencies.
95 | #Pipfile.lock
96 |
97 | # PEP 582; used by e.g. github.com/David-OConnor/pyflow
98 | __pypackages__/
99 |
100 | # Celery stuff
101 | celerybeat-schedule
102 | celerybeat.pid
103 |
104 | # SageMath parsed files
105 | *.sage.py
106 |
107 | # Environments
108 | .env
109 | .venv
110 | env/
111 | venv/
112 | ENV/
113 | env.bak/
114 | venv.bak/
115 |
116 | # Spyder project settings
117 | .spyderproject
118 | .spyproject
119 |
120 | # Rope project settings
121 | .ropeproject
122 |
123 | # mkdocs documentation
124 | /site
125 |
126 | # mypy
127 | .mypy_cache/
128 | .dmypy.json
129 | dmypy.json
130 |
131 | # Pyre type checker
132 | .pyre/
133 |
134 | # pytype static type analyzer
135 | .pytype/
136 |
137 | # Cython debug symbols
138 | cython_debug/
139 |
140 | # nightlies
141 | docker/*
142 | !docker/nightly*
143 | docker/nightly*log
144 |
145 | # nightlies with pytest
146 | pytest/*
147 | !pytest/Dockerfile
148 | !pytest/conftest.py
149 | !pytest/test_*.py
150 | !pytest/helpers
151 | !pytest/pytest.ini
152 | pytest/nightly*log
153 |
154 | test_everything.xml
155 | .vscode
156 | .envrc
157 | .DS_Store
158 |
--------------------------------------------------------------------------------
/.img/Tools_and_Testing.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/.img/Tools_and_Testing.png
--------------------------------------------------------------------------------
/.img/automation_overview.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/.img/automation_overview.png
--------------------------------------------------------------------------------
/.img/interop-count.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/.img/performance-count.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/.img/sanity-count.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/.img/total-count.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/.quali/common.py:
--------------------------------------------------------------------------------
1 | import os
2 | import time
3 |
4 | from cloudshell.api.cloudshell_api import CloudShellAPISession
5 |
6 | TIMEOUT=3600
7 |
8 | def get_session() -> CloudShellAPISession:
9 | url = os.environ['CLOUDSHELL_URL']
10 | user = os.environ['CLOUDSHELL_USER']
11 | password = os.environ['CLOUDSHELL_PASSWORD']
12 |
13 | return CloudShellAPISession(url, user, password, "Global")
14 |
15 | def __wait_for_status(session, res_id, field, target_statuses=[], exit_statuses=[]):
16 | timer = 0
17 | sleep_time = 5
18 | while True:
19 | status = session.GetReservationStatus(res_id).ReservationSlimStatus.__dict__[field]
20 |
21 | if status in target_statuses:
22 | print(f'reached target status: {status}')
23 | break
24 |
25 | if status in exit_statuses:
26 | print(f'reached exit status: {status}')
27 | exit(1)
28 |
29 | print(f'current reservation status: {status}')
30 |
31 | if timer >= TIMEOUT:
32 | raise RuntimeError(f'waiting for reservation to reach one of {target_statuses} or {exit_statuses} statuses timed out')
33 |
34 | time.sleep(sleep_time)
35 | timer += sleep_time
36 |
37 | def wait_for_provisioning_status(session, res_id, target_statuses, exit_statuses=[]):
38 | __wait_for_status(session, res_id, 'ProvisioningStatus', target_statuses, exit_statuses)
39 |
40 | def wait_for_reservation_status(session, res_id, target_statuses, exit_statuses=[]):
41 | __wait_for_status(session, res_id, 'Status', target_statuses, exit_statuses)
42 |
--------------------------------------------------------------------------------
/.quali/requirements.txt:
--------------------------------------------------------------------------------
1 | cloudshell-automation-api==2021.1.0.181140
--------------------------------------------------------------------------------
/.quali/start_reservation.py:
--------------------------------------------------------------------------------
1 | import json
2 | import os
3 |
4 | from cloudshell.api.cloudshell_api import UpdateTopologyGlobalInputsRequest
5 |
6 | import argparse
7 |
8 | from common import wait_for_provisioning_status, get_session
9 |
10 | run_number = os.environ.get('GITHUB_RUN_NUMBER', 1)
11 | run_id = os.environ.get('GITHUB_JOB', 'job')
12 | workflow = os.environ.get('GITHUB_WORKFLOW', "workflow")
13 | marker_expression = os.environ.get('MARKER_EXPRESSION', 'sanity')
14 |
15 | def main():
16 | parser = argparse.ArgumentParser()
17 | parser.add_argument('--global-inputs', help="JSON dictionary that contains global inputs that will be passed to Quali", default="{}")
18 | parser.add_argument('--reservation-duration', help='duration of reservation', default=360)
19 | parser.add_argument('--reservation-id-file', help='file that the reservation ID will be written to', default='./reservation_id.txt')
20 | parser.add_argument('blueprint', help='name of blueprint to create reservation from')
21 | args = parser.parse_args()
22 |
23 | session = get_session()
24 |
25 | global_inputs = {}
26 | try:
27 | global_inputs = json.loads(args.global_inputs)
28 | except json.JSONDecodeError as e:
29 | print(f'failed to decode global inputs: {e}')
30 | exit(1)
31 |
32 | reservation = session.CreateImmediateTopologyReservation(
33 | reservationName=f'{workflow}/{run_number}/{run_id}',
34 | owner=session.username,
35 | durationInMinutes=args.reservation_duration,
36 | topologyFullPath=args.blueprint,
37 | globalInputs=[UpdateTopologyGlobalInputsRequest(key, value) for key, value in global_inputs.items()]
38 | ).Reservation
39 |
40 | with open(args.reservation_id_file, 'w') as f:
41 | f.write(reservation.Id)
42 |
43 | wait_for_provisioning_status(session, reservation.Id, ['Ready'], ['Teardown'])
44 |
45 | if __name__ == '__main__':
46 | main()
47 |
--------------------------------------------------------------------------------
/.quali/stop_reservation.py:
--------------------------------------------------------------------------------
1 | import sys
2 |
3 | from common import wait_for_reservation_status, get_session
4 |
5 | def main():
6 | session = get_session()
7 | res_id = sys.argv[1]
8 | session.EndReservation(res_id)
9 | wait_for_reservation_status(session, res_id, ['Completed'])
10 |
11 | if __name__ == '__main__':
12 | main()
13 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | BSD 3-Clause License
2 |
3 | Copyright (c) 2020, Telecom Infra Project
4 | All rights reserved.
5 |
6 | Redistribution and use in source and binary forms, with or without
7 | modification, are permitted provided that the following conditions are met:
8 |
9 | 1. Redistributions of source code must retain the above copyright notice, this
10 | list of conditions and the following disclaimer.
11 |
12 | 2. Redistributions in binary form must reproduce the above copyright notice,
13 | this list of conditions and the following disclaimer in the documentation
14 | and/or other materials provided with the distribution.
15 |
16 | 3. Neither the name of the copyright holder nor the names of its
17 | contributors may be used to endorse or promote products derived from
18 | this software without specific prior written permission.
19 |
20 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
21 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
23 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
24 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
25 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
26 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
27 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
28 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 |
--------------------------------------------------------------------------------
/NOTES.txt:
--------------------------------------------------------------------------------
1 | Notes for TIP WiFi testing related topics.
2 |
3 |
4 | # To pull the latest upstream lanforge-scripts repo into the wlan-lanforge-scripts
5 | # repository, use this or similar command. This action will probably only be done
6 | # by whoever is curating the wlan-lanforge-scripts repository.
7 |
8 | git pull git@github.com:greearb/lanforge-scripts.git
9 |
10 |
11 | # Testbed setup
12 |
13 | Test-Controller system must be able to ssh into the LANforge system w/out a password
14 | (use authorized_keys ssh setup) as both user lanforge and user root.
15 |
16 | Test-Controller will need to be able to access the Cloud-SDK machines. Not sure
17 | exact details on this yet.
18 |
19 | Serial ports must be make available to non-root users, command like this for each serial port:
20 | chmod a+rwx /dev/ttyUSB0
21 |
22 | For each new test-bed hardware config (including LANforge and AP hardware types and radio
23 | layouts), a new directory in testbeds/ should be created, and populated with test-bed specific
24 | LANforge scenario and test configuration files. See 'ben-home' for examples.
25 | See lanforge/lanforge-scripts/gui/README.txt for details on ways to grab the appropriate text,
26 | but you will also need familiarity with LANforge to accomplish this easily.
27 |
28 |
29 | # Test controller setup. Assuming Fedora-30 or similar is installed.
30 |
31 | # Enable vnc, install some things, disable selinux so vnc will work.
32 | ./lf_kinstall.pl --do_vnc --do_pkgs --do_selinux 0
33 |
34 | # As user lanforge (or other user should work too)
35 | # You will need to put the proper keys in ~/.ssh/ in order to
36 | # do the clone.
37 | mkdir ~/git
38 | cd ~/git
39 | git clone git@github.com:Telecominfraproject/wlan-testing.git
40 | git clone git@github.com:Telecominfraproject/wlan-lanforge-scripts.git
41 | cd wlan-testing/lanforge
42 | ln -s ../../wlan-lanforge-scripts lanforge-scripts
43 |
44 | # Make a copy of a test bed similar to what you have, for instance:
45 | cd ~/git/wlan-testing/testbeds
46 | cp -ar example_test_bed my_new_test_bed
47 |
48 | # Edit the new test bed details as needed, this may be somewhat tricky
49 | # if your test bed is different from others.
50 | # See ~/git/wlan-lanforge-scripts/gui/README.txt for some hints on setting up
51 | # scenarios and such.
52 |
53 |
54 |
55 | # On LANforge machine, make sure GUI is in auto-start mode:
56 | https://www.candelatech.com/cookbook/misc/autostart
57 |
58 | * Create uplink-nat profile.
59 | * Create upstream DUT
60 | * Create AP DUT
61 | * Create scenario that uses uplink-nat profile and upstream-dhcp to provide VR+NAT access to the world.
62 | * Add stations for the radios, properly linked to DUT radio(s).
63 |
64 | * Create WCT test, verify it works OK, save scenario
65 | * Interleave sort, set pass/fail limits
66 |
67 | * Create AP-Auto test
68 | * configure DUT
69 | * configure radios
70 | * configure advanced (dual-band only in our case)
71 | * configure stability settings
72 |
--------------------------------------------------------------------------------
/TEST_PLANS.md:
--------------------------------------------------------------------------------
1 | ## Test Plans and Markers associated with them are provided in this file :ledger:
2 |
3 | :speaking_head: SANITY
4 |
5 | 1. Client Connectivity Tests
6 | client_connectivity_tests and tls and bridge
7 | client_connectivity_tests and ttls and nat
8 | client_connectivity_tests and general and vlan
9 | 2. DFS Test
10 | dfs_tests and wpa2_personal and bandwidth_80MHz
11 | 3. Dynamic Vlan Test
12 | dynamic_vlan_tests and wpa2_enterprise and dynamic_precedence_over_ssid or absence_of_radius_vlan_identifier and wpa2_enterprise
13 | 4. MULTI VLAN Test
14 | multi_vlan_tests and wpa2_personal or multi_vlan_tests and wpa
15 | 5. Rate Limiting Tests
16 | rate_limiting_tests and upload_download and batch_size_125 and twog
17 | 6. Rate Limiting With Radius Test
18 | rate_limiting_with_radius_tests and twog_upload_per_ssid or twog_download_perssid_persta
19 | 7. MultiPsk Test
20 | multi_psk_tests
21 | 8. Throughput Benchmark Test
22 | peak_throughput_tests and channel_11 and tcp_download and bridge and twog and channel_width_40 and wpa2_personal or peak_throughput_tests and channel_36 and tcp_download and bridge and fiveg and channel_width_80 and wpa2_personal
23 | 9. Test Connectivity
24 | test_resources
25 | 10. SDK Tests
26 | ow_sanity_lf and ow_sdk_tests
27 |
28 |
29 | :speaking_head: INTEROP
30 |
31 | 1. Client Connect Tests
32 | client_connect_tests and general and bridge
33 | client_connect_tests and general and nat
34 | client_connect_tests and general and vlan
35 | client_connect_tests and enterprise and bridge
36 | client_connect_tests and enterprise and nat
37 | client_connect_tests and enterprise and vlan
38 | 2. Client Connectivity Tests
39 | client_connectivity_tests and general and bridge
40 | client_connectivity_tests and general and nat
41 | client_connectivity_tests and general and vlan
42 | client_connectivity_tests and enterprise and bridge
43 | client_connectivity_tests and enterprise and nat
44 | client_connectivity_tests and enterprise and vlan
45 | 3. Rate Limiting Tests
46 | rate_limiting_tests and bridge
47 | rate_limiting_tests and nat
48 | rate_limiting_tests and vlan
49 | 4. Toggle Airplane mode Tests (Client Reconnect Tests)
50 | toggle_airplane_tests and general and bridge
51 | toggle_airplane_tests and general and nat
52 | toggle_airplane_tests and general and vlan
53 | toggle_airplane_tests and enterprise and bridge
54 | toggle_airplane_tests and enterprise and nat
55 | toggle_airplane_tests and enterprise and vlan
56 | 5. Toggle Wifi mode Tests (Client Reconnect Tests)
57 | toggle_wifi_mode and general and bridge
58 | toggle_wifi_mode and general and nat
59 | toggle_wifi_mode and general and vlan
60 | toggle_wifi_mode and enterprise and bridge
61 | toggle_wifi_mode and enterprise and nat
62 | toggle_wifi_mode and enterprise and vlan
63 |
64 |
65 |
66 | More Markers related to other test plans will be added soon in the future
--------------------------------------------------------------------------------
/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/__init__.py
--------------------------------------------------------------------------------
/config/Nat.json:
--------------------------------------------------------------------------------
1 | {
2 | "uuid": 2,
3 | "radios": [
4 | {
5 | "band": "5G",
6 | "channel": 52,
7 | "channel-mode": "HE",
8 | "channel-width": 80,
9 | "country": "CA"
10 | },
11 | {
12 | "band": "2G",
13 | "channel": 11,
14 | "channel-mode": "HE",
15 | "channel-width": 20,
16 | "country": "CA"
17 | }
18 | ],
19 |
20 | "interfaces": [
21 | {
22 | "name": "WAN",
23 | "role": "upstream",
24 | "services": [ "lldp" ],
25 | "ethernet": [
26 | {
27 | "select-ports": [
28 | "WAN*"
29 | ]
30 | }
31 | ],
32 | "ipv4": {
33 | "addressing": "dynamic"
34 | }
35 | },
36 | {
37 | "name": "LAN",
38 | "role": "downstream",
39 | "services": [ "ssh", "lldp" ],
40 | "ethernet": [
41 | {
42 | "select-ports": [
43 | "LAN*"
44 | ]
45 | }
46 | ],
47 | "ipv4": {
48 | "addressing": "static",
49 | "subnet": "192.168.1.1/24",
50 | "dhcp": {
51 | "lease-first": 10,
52 | "lease-count": 100,
53 | "lease-time": "6h"
54 | }
55 | },
56 | "ssids": [
57 | {
58 | "name": "OpenWifi",
59 | "role": "downstream",
60 | "wifi-bands": [
61 | "2G", "5G"
62 | ],
63 | "bss-mode": "ap",
64 | "encryption": {
65 | "proto": "psk2",
66 | "key": "OpenWifi",
67 | "ieee80211w": "optional"
68 | }
69 | }
70 | ]
71 |
72 | }
73 | ],
74 | "metrics": {
75 | "statistics": {
76 | "interval": 120,
77 | "types": [ "ssids", "lldp", "clients" ]
78 | },
79 | "health": {
80 | "interval": 120
81 | },
82 | "wifi-frames": {
83 | "filters": [ "probe", "auth" ]
84 | }
85 | },
86 | "services": {
87 | "lldp": {
88 | "describe": "uCentral",
89 | "location": "universe"
90 | },
91 | "ssh": {
92 | "port": 22
93 | }
94 | }
95 | }
--------------------------------------------------------------------------------
/config/nat_testcases.json:
--------------------------------------------------------------------------------
1 | Create SSID Profile - 2.4 GHz WPA - NAT Mode
2 | Create SSID Profile - 2.4 GHz WPA2 - NAT Mode
3 | Create SSID Profile - 5 GHz WPA - NAT Mode
4 | Create SSID Profile - 5 GHz WPA2 - NAT Mode
5 | Validate client connectivity to 2.4 GHz WPA SSID - NAT Mode
6 | Validate client connectivity to 2.4 GHz WPA2 SSID - NAT Mode
7 | Validate client connectivity to 5 GHz WPA SSID - NAT Mode
8 | Validate client connectivity to 5 GHz WPA2 SSID - - NAT Mode
9 | Validate client connectivity to 5 GHz Open SSID - NAT Mode
10 | Validate client connectivity to 2.4 GHz Open SSID - NAT Mode
--------------------------------------------------------------------------------
/config/ratelimit_2.4_noteffect_otherSSID.json:
--------------------------------------------------------------------------------
1 | {
2 | "uuid": 2,
3 | "radios": [
4 |
5 | {
6 | "band": "2G",
7 | "channel": 6,
8 | "channel-mode": "HE",
9 | "channel-width": 20,
10 | "country": "CA"
11 | }
12 | ],
13 |
14 | "interfaces": [
15 | {
16 | "name": "WAN",
17 | "role": "upstream",
18 | "services": [ "lldp" ],
19 | "ethernet": [
20 | {
21 | "select-ports": [
22 | "WAN*"
23 | ]
24 | }
25 | ],
26 | "ipv4": {
27 | "addressing": "dynamic"
28 | },
29 | "ssids": [
30 | {
31 | "name": "SSID1",
32 | "wifi-bands": [
33 | "2G"
34 | ],
35 | "bss-mode": "ap",
36 | "encryption": {
37 | "proto": "psk2",
38 | "key": "OpenWifi",
39 | "ieee80211w": "optional"
40 | },
41 | "rate-limit": {
42 | "ingress-rate": 30,
43 | "egress-rate": 30
44 | }
45 | },
46 | {
47 | "name": "SSID2",
48 | "wifi-bands": [
49 | "2G"
50 | ],
51 | "bss-mode": "ap",
52 | "encryption": {
53 | "proto": "psk2",
54 | "key": "OpenWifi",
55 | "ieee80211w": "optional"
56 | },
57 | "rate-limit": {
58 | "ingress-rate": 0,
59 | "egress-rate": 0
60 | }
61 | }
62 | ]
63 | },
64 | {
65 | "name": "LAN",
66 | "role": "downstream",
67 | "services": [ "ssh", "lldp" ],
68 | "ethernet": [
69 | {
70 | "select-ports": [
71 | "LAN*"
72 | ]
73 | }
74 | ],
75 | "ipv4": {
76 | "addressing": "static",
77 | "subnet": "192.168.1.1/24",
78 | "dhcp": {
79 | "lease-first": 10,
80 | "lease-count": 100,
81 | "lease-time": "6h"
82 | }
83 | }
84 | }
85 | ],
86 | "metrics": {
87 | "statistics": {
88 | "interval": 120,
89 | "types": [ "ssids", "lldp", "clients" ]
90 | },
91 | "health": {
92 | "interval": 120
93 | },
94 | "wifi-frames": {
95 | "filters": [ "probe", "auth" ]
96 | }
97 | },
98 | "services": {
99 | "lldp": {
100 | "describe": "uCentral",
101 | "location": "universe"
102 | },
103 | "ssh": {
104 | "port": 22
105 | }
106 | }
107 | }
--------------------------------------------------------------------------------
/config/ratelimit_2.4disabled_case.json:
--------------------------------------------------------------------------------
1 | {
2 | "uuid": 2,
3 | "radios": [
4 |
5 | {
6 | "band": "2G",
7 | "channel": 11,
8 | "channel-mode": "HE",
9 | "channel-width": 20,
10 | "country": "CA"
11 | }
12 | ],
13 |
14 | "interfaces": [
15 | {
16 | "name": "WAN",
17 | "role": "upstream",
18 | "services": [ "lldp" ],
19 | "ethernet": [
20 | {
21 | "select-ports": [
22 | "WAN*"
23 | ]
24 | }
25 | ],
26 | "ipv4": {
27 | "addressing": "dynamic"
28 | },
29 | "ssids": [
30 | {
31 | "name": "SSID1",
32 | "wifi-bands": [
33 | "2G"
34 | ],
35 | "bss-mode": "ap",
36 | "encryption": {
37 | "proto": "psk2",
38 | "key": "OpenWifi",
39 | "ieee80211w": "optional"
40 | },
41 | "rate-limit": {
42 | "ingress-rate": 0,
43 | "egress-rate": 0
44 | }
45 | }
46 | ]
47 | },
48 | {
49 | "name": "LAN",
50 | "role": "downstream",
51 | "services": [ "ssh", "lldp" ],
52 | "ethernet": [
53 | {
54 | "select-ports": [
55 | "LAN*"
56 | ]
57 | }
58 | ],
59 | "ipv4": {
60 | "addressing": "static",
61 | "subnet": "192.168.1.1/24",
62 | "dhcp": {
63 | "lease-first": 10,
64 | "lease-count": 100,
65 | "lease-time": "6h"
66 | }
67 | }
68 | }
69 | ],
70 | "metrics": {
71 | "statistics": {
72 | "interval": 120,
73 | "types": [ "ssids", "lldp", "clients" ]
74 | },
75 | "health": {
76 | "interval": 120
77 | },
78 | "wifi-frames": {
79 | "filters": [ "probe", "auth" ]
80 | }
81 | },
82 | "services": {
83 | "lldp": {
84 | "describe": "uCentral",
85 | "location": "universe"
86 | },
87 | "ssh": {
88 | "port": 22
89 | }
90 | }
91 | }
--------------------------------------------------------------------------------
/config/ratelimit_2.4enable_cases.json:
--------------------------------------------------------------------------------
1 | {
2 | "uuid": 2,
3 | "radios": [
4 |
5 | {
6 | "band": "2G",
7 | "channel": 11,
8 | "channel-mode": "HE",
9 | "channel-width": 20,
10 | "country": "CA"
11 | }
12 | ],
13 |
14 | "interfaces": [
15 | {
16 | "name": "WAN",
17 | "role": "upstream",
18 | "services": [ "lldp" ],
19 | "ethernet": [
20 | {
21 | "select-ports": [
22 | "WAN*"
23 | ]
24 | }
25 | ],
26 | "ipv4": {
27 | "addressing": "dynamic"
28 | },
29 | "ssids": [
30 | {
31 | "name": "SSID1",
32 | "wifi-bands": [
33 | "2G"
34 | ],
35 | "bss-mode": "ap",
36 | "encryption": {
37 | "proto": "psk2",
38 | "key": "OpenWifi",
39 | "ieee80211w": "optional"
40 | },
41 | "rate-limit": {
42 | "ingress-rate": 50,
43 | "egress-rate": 50
44 | }
45 | }
46 | ]
47 | },
48 | {
49 | "name": "LAN",
50 | "role": "downstream",
51 | "services": [ "ssh", "lldp" ],
52 | "ethernet": [
53 | {
54 | "select-ports": [
55 | "LAN*"
56 | ]
57 | }
58 | ],
59 | "ipv4": {
60 | "addressing": "static",
61 | "subnet": "192.168.1.1/24",
62 | "dhcp": {
63 | "lease-first": 10,
64 | "lease-count": 100,
65 | "lease-time": "6h"
66 | }
67 | }
68 | }
69 | ],
70 | "metrics": {
71 | "statistics": {
72 | "interval": 120,
73 | "types": [ "ssids", "lldp", "clients" ]
74 | },
75 | "health": {
76 | "interval": 120
77 | },
78 | "wifi-frames": {
79 | "filters": [ "probe", "auth" ]
80 | }
81 | },
82 | "services": {
83 | "lldp": {
84 | "describe": "uCentral",
85 | "location": "universe"
86 | },
87 | "ssh": {
88 | "port": 22
89 | }
90 | }
91 | }
--------------------------------------------------------------------------------
/config/ratelimit_5_noteffect_otherSSID.json:
--------------------------------------------------------------------------------
1 | {
2 | "uuid": 2,
3 | "radios": [
4 | {
5 | "band": "5G",
6 | "channel": 149,
7 | "channel-mode": "HE",
8 | "channel-width": 80,
9 | "country": "CA"
10 | }
11 | ],
12 |
13 | "interfaces": [
14 | {
15 | "name": "WAN",
16 | "role": "upstream",
17 | "services": [ "lldp" ],
18 | "ethernet": [
19 | {
20 | "select-ports": [
21 | "WAN*"
22 | ]
23 | }
24 | ],
25 | "ipv4": {
26 | "addressing": "dynamic"
27 | },
28 | "ssids": [
29 | {
30 | "name": "SSID1",
31 | "wifi-bands": [
32 | "5G"
33 | ],
34 | "bss-mode": "ap",
35 | "encryption": {
36 | "proto": "psk2",
37 | "key": "OpenWifi",
38 | "ieee80211w": "optional"
39 | },
40 | "rate-limit": {
41 | "ingress-rate": 20,
42 | "egress-rate": 20
43 | }
44 | },
45 | {
46 | "name": "SSID2",
47 | "wifi-bands": [
48 | "5G"
49 | ],
50 | "bss-mode": "ap",
51 | "encryption": {
52 | "proto": "psk2",
53 | "key": "OpenWifi",
54 | "ieee80211w": "optional"
55 | },
56 | "rate-limit": {
57 | "ingress-rate": 0,
58 | "egress-rate": 0
59 | }
60 | }
61 | ]
62 | },
63 | {
64 | "name": "LAN",
65 | "role": "downstream",
66 | "services": [ "ssh", "lldp" ],
67 | "ethernet": [
68 | {
69 | "select-ports": [
70 | "LAN*"
71 | ]
72 | }
73 | ],
74 | "ipv4": {
75 | "addressing": "static",
76 | "subnet": "192.168.1.1/24",
77 | "dhcp": {
78 | "lease-first": 10,
79 | "lease-count": 100,
80 | "lease-time": "6h"
81 | }
82 | }
83 | }
84 | ],
85 | "metrics": {
86 | "statistics": {
87 | "interval": 120,
88 | "types": [ "ssids", "lldp", "clients" ]
89 | },
90 | "health": {
91 | "interval": 120
92 | },
93 | "wifi-frames": {
94 | "filters": [ "probe", "auth" ]
95 | }
96 | },
97 | "services": {
98 | "lldp": {
99 | "describe": "uCentral",
100 | "location": "universe"
101 | },
102 | "ssh": {
103 | "port": 22
104 | }
105 | }
106 | }
--------------------------------------------------------------------------------
/config/ratelimit_5disable_cases.json:
--------------------------------------------------------------------------------
1 | {
2 | "uuid": 2,
3 | "radios": [
4 | {
5 | "band": "5G",
6 | "channel": 149,
7 | "channel-mode": "HE",
8 | "channel-width": 80,
9 | "country": "CA"
10 | }
11 | ],
12 |
13 | "interfaces": [
14 | {
15 | "name": "WAN",
16 | "role": "upstream",
17 | "services": [ "lldp" ],
18 | "ethernet": [
19 | {
20 | "select-ports": [
21 | "WAN*"
22 | ]
23 | }
24 | ],
25 | "ipv4": {
26 | "addressing": "dynamic"
27 | },
28 | "ssids": [
29 |
30 | {
31 | "name": "SSID1",
32 | "wifi-bands": [
33 | "5G"
34 | ],
35 | "bss-mode": "ap",
36 | "encryption": {
37 | "proto": "psk2",
38 | "key": "OpenWifi",
39 | "ieee80211w": "optional"
40 | },
41 | "rate-limit": {
42 | "ingress-rate": 0,
43 | "egress-rate": 0
44 | }
45 | }
46 | ]
47 | },
48 | {
49 | "name": "LAN",
50 | "role": "downstream",
51 | "services": [ "ssh", "lldp" ],
52 | "ethernet": [
53 | {
54 | "select-ports": [
55 | "LAN*"
56 | ]
57 | }
58 | ],
59 | "ipv4": {
60 | "addressing": "static",
61 | "subnet": "192.168.1.1/24",
62 | "dhcp": {
63 | "lease-first": 10,
64 | "lease-count": 100,
65 | "lease-time": "6h"
66 | }
67 | }
68 | }
69 | ],
70 | "metrics": {
71 | "statistics": {
72 | "interval": 120,
73 | "types": [ "ssids", "lldp", "clients" ]
74 | },
75 | "health": {
76 | "interval": 120
77 | },
78 | "wifi-frames": {
79 | "filters": [ "probe", "auth" ]
80 | }
81 | },
82 | "services": {
83 | "lldp": {
84 | "describe": "uCentral",
85 | "location": "universe"
86 | },
87 | "ssh": {
88 | "port": 22
89 | }
90 | }
91 | }
--------------------------------------------------------------------------------
/config/ratelimit_5enable_cases.json:
--------------------------------------------------------------------------------
1 | {
2 | "uuid": 2,
3 | "radios": [
4 | {
5 | "band": "5G",
6 | "channel": 149,
7 | "channel-mode": "HE",
8 | "channel-width": 80,
9 | "country": "CA"
10 | }
11 | ],
12 |
13 | "interfaces": [
14 | {
15 | "name": "WAN",
16 | "role": "upstream",
17 | "services": [ "lldp" ],
18 | "ethernet": [
19 | {
20 | "select-ports": [
21 | "WAN*"
22 | ]
23 | }
24 | ],
25 | "ipv4": {
26 | "addressing": "dynamic"
27 | },
28 | "ssids": [
29 |
30 | {
31 | "name": "SSID1",
32 | "wifi-bands": [
33 | "5G"
34 | ],
35 | "bss-mode": "ap",
36 | "encryption": {
37 | "proto": "psk2",
38 | "key": "OpenWifi",
39 | "ieee80211w": "optional"
40 | },
41 | "rate-limit": {
42 | "ingress-rate": 50,
43 | "egress-rate": 50
44 | }
45 | }
46 | ]
47 | },
48 | {
49 | "name": "LAN",
50 | "role": "downstream",
51 | "services": [ "ssh", "lldp" ],
52 | "ethernet": [
53 | {
54 | "select-ports": [
55 | "LAN*"
56 | ]
57 | }
58 | ],
59 | "ipv4": {
60 | "addressing": "static",
61 | "subnet": "192.168.1.1/24",
62 | "dhcp": {
63 | "lease-first": 10,
64 | "lease-count": 100,
65 | "lease-time": "6h"
66 | }
67 | }
68 | }
69 | ],
70 | "metrics": {
71 | "statistics": {
72 | "interval": 120,
73 | "types": [ "ssids", "lldp", "clients" ]
74 | },
75 | "health": {
76 | "interval": 120
77 | },
78 | "wifi-frames": {
79 | "filters": [ "probe", "auth" ]
80 | }
81 | },
82 | "services": {
83 | "lldp": {
84 | "describe": "uCentral",
85 | "location": "universe"
86 | },
87 | "ssh": {
88 | "port": 22
89 | }
90 | }
91 | }
--------------------------------------------------------------------------------
/config/ratelimit_70mbps.json:
--------------------------------------------------------------------------------
1 | {
2 | "uuid": 2,
3 | "radios": [
4 |
5 | {
6 | "band": "2G",
7 | "channel": 6,
8 | "channel-mode": "HE",
9 | "channel-width": 20,
10 | "country": "CA"
11 | }
12 | ],
13 |
14 | "interfaces": [
15 | {
16 | "name": "WAN",
17 | "role": "upstream",
18 | "services": [ "lldp" ],
19 | "ethernet": [
20 | {
21 | "select-ports": [
22 | "WAN*"
23 | ]
24 | }
25 | ],
26 | "ipv4": {
27 | "addressing": "dynamic"
28 | },
29 | "ssids": [
30 | {
31 | "name": "SSID1",
32 | "wifi-bands": [
33 | "2G"
34 | ],
35 | "bss-mode": "ap",
36 | "encryption": {
37 | "proto": "psk2",
38 | "key": "OpenWifi",
39 | "ieee80211w": "optional"
40 | },
41 | "rate-limit": {
42 | "ingress-rate": 70,
43 | "egress-rate": 70
44 | }
45 | }
46 | ]
47 | },
48 | {
49 | "name": "LAN",
50 | "role": "downstream",
51 | "services": [ "ssh", "lldp" ],
52 | "ethernet": [
53 | {
54 | "select-ports": [
55 | "LAN*"
56 | ]
57 | }
58 | ],
59 | "ipv4": {
60 | "addressing": "static",
61 | "subnet": "192.168.1.1/24",
62 | "dhcp": {
63 | "lease-first": 10,
64 | "lease-count": 100,
65 | "lease-time": "6h"
66 | }
67 | }
68 | }
69 | ],
70 | "metrics": {
71 | "statistics": {
72 | "interval": 120,
73 | "types": [ "ssids", "lldp", "clients" ]
74 | },
75 | "health": {
76 | "interval": 120
77 | },
78 | "wifi-frames": {
79 | "filters": [ "probe", "auth" ]
80 | }
81 | },
82 | "services": {
83 | "lldp": {
84 | "describe": "uCentral",
85 | "location": "universe"
86 | },
87 | "ssh": {
88 | "port": 22
89 | }
90 | }
91 | }
92 |
--------------------------------------------------------------------------------
/config/ratelimt_2ssids.json:
--------------------------------------------------------------------------------
1 | {
2 | "uuid": 2,
3 | "radios": [
4 |
5 | {
6 | "band": "2G",
7 | "channel": 6,
8 | "channel-mode": "HE",
9 | "channel-width": 20,
10 | "country": "CA"
11 | }
12 | ],
13 |
14 | "interfaces": [
15 | {
16 | "name": "WAN",
17 | "role": "upstream",
18 | "services": [ "lldp" ],
19 | "ethernet": [
20 | {
21 | "select-ports": [
22 | "WAN*"
23 | ]
24 | }
25 | ],
26 | "ipv4": {
27 | "addressing": "dynamic"
28 | },
29 | "ssids": [
30 | {
31 | "name": "SSID1",
32 | "wifi-bands": [
33 | "2G"
34 | ],
35 | "bss-mode": "ap",
36 | "encryption": {
37 | "proto": "psk2",
38 | "key": "OpenWifi",
39 | "ieee80211w": "optional"
40 | },
41 | "rate-limit": {
42 | "ingress-rate": 20,
43 | "egress-rate": 20
44 | }
45 | },
46 | {
47 | "name": "SSID2",
48 | "wifi-bands": [
49 | "2G"
50 | ],
51 | "bss-mode": "ap",
52 | "encryption": {
53 | "proto": "psk2",
54 | "key": "OpenWifi",
55 | "ieee80211w": "optional"
56 | },
57 | "rate-limit": {
58 | "ingress-rate": 0,
59 | "egress-rate": 0
60 | }
61 | }
62 | ]
63 | },
64 | {
65 | "name": "LAN",
66 | "role": "downstream",
67 | "services": [ "ssh", "lldp" ],
68 | "ethernet": [
69 | {
70 | "select-ports": [
71 | "LAN*"
72 | ]
73 | }
74 | ],
75 | "ipv4": {
76 | "addressing": "static",
77 | "subnet": "192.168.1.1/24",
78 | "dhcp": {
79 | "lease-first": 10,
80 | "lease-count": 100,
81 | "lease-time": "6h"
82 | }
83 | }
84 | }
85 | ],
86 | "metrics": {
87 | "statistics": {
88 | "interval": 120,
89 | "types": [ "ssids", "lldp", "clients" ]
90 | },
91 | "health": {
92 | "interval": 120
93 | },
94 | "wifi-frames": {
95 | "filters": [ "probe", "auth" ]
96 | }
97 | },
98 | "services": {
99 | "lldp": {
100 | "describe": "uCentral",
101 | "location": "universe"
102 | },
103 | "ssh": {
104 | "port": 22
105 | }
106 | }
107 | }
108 |
--------------------------------------------------------------------------------
/config/wpa 2.4 bridge.json:
--------------------------------------------------------------------------------
1 | {
2 | "configuration": {
3 | "uuid": 1,
4 | "radios": [
5 | {
6 | "band": "2G",
7 | "country": "US",
8 | "channel-width": 20
9 | }
10 | ],
11 | "interfaces": [
12 | {
13 | "name": "WAN",
14 | "role": "upstream",
15 | "services": [
16 | "lldp"
17 | ],
18 | "ethernet": [
19 | {
20 | "select-ports": [
21 | "WAN*"
22 | ]
23 | }
24 | ],
25 | "ipv4": {
26 | "addressing": "dynamic"
27 | },
28 | "ssids": [
29 |
30 | {
31 | "name": "ssid_wpa_2g",
32 | "bss-mode": "ap",
33 | "wifi-bands": [
34 | "2G"
35 | ],
36 | "encryption": {
37 | "proto": "psk",
38 | "key": "something",
39 | "ieee80211w": "optional"
40 | }
41 | }
42 | ]
43 | }
44 | ],
45 | "metrics": {
46 | "statistics": {
47 | "interval": 120,
48 | "types": [
49 | "ssids",
50 | "lldp",
51 | "clients"
52 | ]
53 | },
54 | "health": {
55 | "interval": 120
56 | }
57 | },
58 | "services": {
59 | "lldp": {
60 | "describe": "uCentral",
61 | "location": "universe"
62 | },
63 | "ssh": {
64 | "port": 22
65 | }
66 | }
67 | },
68 | "serialNumber": "903cb39d6918",
69 | "UUID": 0
70 | }
--------------------------------------------------------------------------------
/config/wpa2_2.4_bridge.json:
--------------------------------------------------------------------------------
1 | {
2 | "uuid": 1,
3 | "radios": [
4 | {
5 | "band": "2G",
6 | "country": "US",
7 | "channel-width": 20
8 | }
9 | ],
10 | "interfaces": [
11 | {
12 | "name": "WAN",
13 | "role": "upstream",
14 | "services": [
15 | "lldp"
16 | ],
17 | "ethernet": [
18 | {
19 | "select-ports": [
20 | "WAN*"
21 | ]
22 | }
23 | ],
24 | "ipv4": {
25 | "addressing": "dynamic"
26 | },
27 | "ssids": [
28 |
29 |
30 | {
31 | "name": "ssid_wpa2_2g",
32 | "bss-mode": "ap",
33 | "wifi-bands": [
34 | "2G"
35 | ],
36 | "encryption": {
37 | "proto": "psk2",
38 | "key": "something",
39 | "ieee80211w": "optional"
40 | }
41 |
42 | }
43 | ]
44 | }
45 | ],
46 | "metrics": {
47 | "statistics": {
48 | "interval": 120,
49 | "types": [
50 | "ssids",
51 | "lldp",
52 | "clients"
53 | ]
54 | },
55 | "health": {
56 | "interval": 120
57 | }
58 | },
59 | "services": {
60 | "lldp": {
61 | "describe": "uCentral",
62 | "location": "universe"
63 | },
64 | "ssh": {
65 | "port": 22
66 | }
67 | }
68 | }
--------------------------------------------------------------------------------
/config/wpa2_nat.json:
--------------------------------------------------------------------------------
1 | {
2 | "uuid": 1,
3 | "radios": [
4 | {
5 | "band": "2G",
6 | "country": "US",
7 | "channel-width": 20
8 | },
9 | {
10 | "band": "5G",
11 | "country": "US",
12 | "channel-width": 80
13 | }
14 | ],
15 | "interfaces": [
16 | {
17 | "name": "WAN",
18 | "role": "upstream",
19 | "services": [
20 | "lldp"
21 | ],
22 | "ethernet": [
23 | {
24 | "select-ports": [
25 | "WAN*"
26 | ]
27 | }
28 | ],
29 | "ipv4": {
30 | "addressing": "dynamic"
31 | }
32 | },
33 | {
34 | "name": "LAN",
35 | "role": "downstream",
36 | "services": [
37 | "ssh",
38 | "lldp"
39 | ],
40 | "ethernet": [
41 | {
42 | "select-ports": [
43 | "LAN*"
44 | ]
45 | }
46 | ],
47 | "ipv4": {
48 | "addressing": "static",
49 | "subnet": "192.168.1.1/16",
50 | "dhcp": {
51 | "lease-first": 10,
52 | "lease-count": 10000,
53 | "lease-time": "6h"
54 | }
55 | },
56 | "ssids": [
57 |
58 | {
59 | "name": "ssid_wpa2_2g",
60 | "bss-mode": "ap",
61 | "wifi-bands": [
62 | "2G"
63 | ],
64 | "encryption": {
65 | "proto": "psk2",
66 | "key": "something",
67 | "ieee80211w": "optional"
68 | }
69 | },
70 | {
71 | "name": "ssid_wpa2_5g",
72 | "bss-mode": "ap",
73 | "wifi-bands": [
74 | "5G"
75 | ],
76 | "encryption": {
77 | "proto": "psk2",
78 | "key": "something",
79 | "ieee80211w": "optional"
80 | }
81 | }
82 | ]
83 | }
84 | ],
85 | "metrics": {
86 | "statistics": {
87 | "interval": 120,
88 | "types": [
89 | "ssids",
90 | "lldp",
91 | "clients"
92 | ]
93 | },
94 | "health": {
95 | "interval": 120
96 | }
97 | },
98 | "services": {
99 | "lldp": {
100 | "describe": "uCentral",
101 | "location": "universe"
102 | },
103 | "ssh": {
104 | "port": 22
105 | }
106 | }
107 | }
--------------------------------------------------------------------------------
/dependencies.bash:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 |
4 | if [ -d ../lanforge-scripts ]
5 | then
6 | rm -fr lanforge/lanforge-scripts
7 |
8 | cp -a ../lanforge-scripts lanforge/lanforge-scripts
9 | fi
--------------------------------------------------------------------------------
/docker/Dockerfile:
--------------------------------------------------------------------------------
1 | FROM python:3.8
2 | # Version of cloudsdk to be tested
3 | ARG CLOUDSDK_LIBRARY=tip_2x
4 | ARG TEST_DEVICE_NAME=all
5 |
6 | RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y \
7 | tshark \
8 | && rm -rf /var/lib/apt/lists/*
9 | RUN mkdir ~/.pip
10 | RUN echo "[global]" > ~/.pip/pip.conf
11 | RUN echo "index-url = https://pypi.org/simple" >> ~/.pip/pip.conf
12 | RUN echo "extra-index-url = https://tip.jfrog.io/artifactory/api/pypi/tip-wlan-python-pypi-local/simple/" >> ~/.pip/pip.conf
13 | COPY requirements.txt /wlan-testing/requirements.txt
14 | RUN pip3 install -r /wlan-testing/requirements.txt
15 | COPY tests /wlan-testing/tests
16 | COPY libs /wlan-testing/libs
17 | COPY setup_env.bash /wlan-testing/setup_env.bash
18 | ENV PYTHON=/usr/local/bin/python3
19 | ENV PIP=/usr/local/bin/pip3
20 | RUN /wlan-testing/setup_env.bash -t $CLOUDSDK_LIBRARY -d $TEST_DEVICE_NAME -n "TIP Automation" -o TIP -e tip-automation@telecominfraproject.com -i "TIP OpenWIFI Library" && pip3 freeze
21 | WORKDIR /wlan-testing
22 | ENTRYPOINT ["/bin/bash"]
23 |
--------------------------------------------------------------------------------
/docker/README.md:
--------------------------------------------------------------------------------
1 | ## Docker based environment
2 |
3 | ### Building a docker image
4 |
5 | From the root directory of this repository (wlan-testing) run the following command:
6 |
7 | ```bash
8 | docker build -f ./docker/Dockerfile -t wlantest .
9 | ```
10 |
11 | This will produce a docker image, which you can verify by running docker images command.
12 |
13 | By default image will run [setup_env.bash](../setup_env.bash) that will install all required dependencies for tests against all supported devices and version 2 of Cloud SDK (see https://github.com/Telecominfraproject/wlan-cloud-ucentral-deploy/ for details).
14 |
15 | If you want to modify this logic, you may pass different build arguments to the build. Supported arguments:
16 |
17 | - CLOUDSDK_LIBRARY - Cloud SDK library that should be used for tests (by default `tip_2x` will be used);
18 | - TEST_DEVICE_NAME - device type that should be installed as a depencency (by default `all` will be used).
19 |
20 | Check [setup_env.bash](../setup_env.bash) for more details on supported parameters.
21 |
22 | Example on how to pass build arguments:
23 |
24 | ```bash
25 | docker build -f ./docker/Dockerfile -t wlantest --build-arg TEST_DEVICE_NAME=lanforge .
26 | ```
27 |
28 | ### Running a docker image
29 |
30 | From the root directory of this repository (wlan-testing) run the following command. This command executes
31 | connectivity tests on a specific lab. **NOTE:** Use appropriate marker for your pytest execution,
32 | configuration.py and replace ${YOUR_ALLURE_RESULTS_DIR} with your allure result dir.
33 |
34 | ```bash
35 | docker run -i -t -v $(YOUR_ALLURE_RESULT_DIR):/allure-results -v $(pwd)/configuration.py:/wlan-testing/configuration.py wlantest -c "cd tests; pytest -s -vvv --testbed=basic-02 -m client_connectivity_test --skip-testrail --alluredir=/allure-result"
36 | ```
37 |
--------------------------------------------------------------------------------
/dut_lib_template/README.md:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/dut_lib_template/README.md
--------------------------------------------------------------------------------
/dut_lib_template/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/dut_lib_template/__init__.py
--------------------------------------------------------------------------------
/dut_lib_template/setup.py:
--------------------------------------------------------------------------------
1 | import setuptools
2 |
3 | with open("README.md", "r") as fh:
4 | long_description = fh.read()
5 |
6 | setuptools.setup(
7 | name='dut_lib_template',
8 | version='0.1',
9 | scripts=['dut_lib_template.py', 'controller.py', 'ap_lib.py', 'SetupLibrary.py', 'openwrt_ctl.py'],
10 | author="Shivam Thakur",
11 | author_email="shivam.thakur@candelatech.com",
12 | description="TIP OpenWIFI 2.X Library",
13 | long_description=long_description,
14 | long_description_content_type="text/markdown",
15 | packages=setuptools.find_packages(),
16 | classifiers=[
17 | "Programming Language :: Python :: 3",
18 | "License :: OSI Approved :: MIT License",
19 | "Operating System :: OS Independent",
20 | ],
21 | )
22 |
--------------------------------------------------------------------------------
/libs/README.md:
--------------------------------------------------------------------------------
1 | ## Libraries
2 | This directory contains all the relevant libraries for APNOS, Cloud Controller, LANForge, Perfecto and others
3 |
--------------------------------------------------------------------------------
/libs/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/libs/__init__.py
--------------------------------------------------------------------------------
/libs/apnos/README.md:
--------------------------------------------------------------------------------
1 | ## AP NOS Library
2 | ###apnos.py : This Library Consists of the following-
3 | 1. class APNOS : Library to SSH and Pull the information from AP
4 |
5 |
--------------------------------------------------------------------------------
/libs/apnos/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/libs/apnos/__init__.py
--------------------------------------------------------------------------------
/libs/controller/README.md:
--------------------------------------------------------------------------------
1 | # Controller Library
2 |
3 | ###cloudsdk.py : This Library Consists of the following-
4 | 1. class ConfigureController : Base Configuration Class
5 | 2. class Controller(ConfigureController) : Main Cloudsdk Class
6 | 3. class ProfileUtility : Used to CRUD over CloudSDK Profiles Utility
7 | 4. class JFrogUtility : Used for Artifactory Utils, Get latest Build, Upload Firmware etc.
8 |
9 | ###Note: cloudsdk.py has libraries that uses Swagger Autogenerated Code.
10 | ### Setup The Environment For using the cloudsdk library
11 |
12 | Using Swagger Autogenerated CloudSDK Library pypi package (implemented with [swagger codegen](https://github.com/swagger-api/swagger-codegen)).
13 | Using [pytest] as the test execution framework.
14 | Using [pylint](http://pylint.pycqa.org) for code quality monitoring.
15 | Using [allure](https://docs.qameta.io/allure/#_about) with Github Pages to report test outcome.
16 |
17 | ### Follow the setps below to setup the environment for your development Environment
18 |
19 | ```shell
20 | mkdir ~/.pip
21 | echo "[global]" > ~/.pip/pip.conf
22 | echo "index-url = https://pypi.org/simple" >> ~/.pip/pip.conf
23 | echo "extra-index-url = https://tip-read:tip-read@tip.jfrog.io/artifactory/api/pypi/tip-wlan-python-pypi-local/simple" >> ~/.pip/pip.conf
24 | ```
25 |
26 | after that do the following in this folder
27 | ```shell
28 | pip3 install -r requirements.txt
29 | ```
30 |
31 | Now your cloud sdk code is downloaded with all of the dependencies and you can start working on the solution
32 |
33 | ### Docker
34 |
35 | Alternatively you can use provided dockerfiles to develop\lint your code:
36 |
37 | ```shell
38 | docker build -t wlan-cloud-test -f Dockerfile .
39 | docker build -t wlan-cloud-lint -f Dockerfile-lint .
40 | ```
41 |
42 | and then you can do something like this to lint your code:
43 |
44 | ```shell
45 | docker run -it --rm -v %path_to_this_dir%/old_pytest wlan-tip-lint -d protected-access *py # for now
46 | docker run -it --rm -v %path_to_this_dir%/old_pytest wlan-tip-lint *py # for future
47 | ```
48 |
49 | to have a better output (sorted by line numbers) you can do something like this:
50 |
51 | ```shell
52 | docker run -it --rm --entrypoint sh -v %path_to_this_dir%/old_pytest wlan-tip-lint -- -c 'pylint *py | sort -t ":" -k 2,2n'
53 | ```
54 |
55 | and you can use something like this to develop your code:
56 |
57 | ```shell
58 | docker run -it -v %path_to_this_dir%/old_pytest wlan-tip-test
59 | ```
--------------------------------------------------------------------------------
/libs/controller/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/libs/controller/__init__.py
--------------------------------------------------------------------------------
/libs/controller/controller_1x/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/libs/controller/controller_1x/__init__.py
--------------------------------------------------------------------------------
/libs/controller/controller_2x/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/libs/controller/controller_2x/__init__.py
--------------------------------------------------------------------------------
/libs/controller/controller_3x/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/libs/controller/controller_3x/__init__.py
--------------------------------------------------------------------------------
/libs/network_connectivity/NetworkConnectivity.py:
--------------------------------------------------------------------------------
1 | REMOTE_SERVER_IP = "3.130.51.163"
2 | import subprocess
3 | import time
4 | import threading
5 |
6 |
7 | class SshTunnel(threading.Thread):
8 | def __init__(self, localport, remoteport, remoteuser, remotehost):
9 | threading.Thread.__init__(self)
10 | self.localport = localport # Local port to listen to
11 | self.remoteport = remoteport # Remote port on remotehost
12 | self.remoteuser = remoteuser # Remote user on remotehost
13 | self.remotehost = remotehost # What host do we send traffic to
14 | self.daemon = True # So that thread will exit when
15 | # main non-daemon thread finishes
16 |
17 | def run(self):
18 | a = subprocess.call([
19 | 'ssh', '-C',
20 | '-L', str(self.localport) + ':' + "10.28.3.10" + ':' + str(self.remoteport),
21 | self.remoteuser + '@' + self.remotehost])
22 |
23 |
24 |
25 | if __name__ == '__main__':
26 | tunnel = SshTunnel(8800, 8080, 'ubuntu', REMOTE_SERVER_IP)
27 | tunnel.start()
28 | tunnel.join()
29 | # subprocess.call(['curl', 'http://10.28.3.10:8800'])
30 |
--------------------------------------------------------------------------------
/libs/network_connectivity/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/libs/network_connectivity/__init__.py
--------------------------------------------------------------------------------
/libs/perfecto_interop/README.md:
--------------------------------------------------------------------------------
1 | ## Perfecto libraries
2 | #Initial Check in - Raj
3 |
--------------------------------------------------------------------------------
/libs/perfecto_interop/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/libs/perfecto_interop/__init__.py
--------------------------------------------------------------------------------
/libs/perfecto_interop/setup.py:
--------------------------------------------------------------------------------
1 | import setuptools
2 |
3 | with open("README.md", "r") as fh:
4 | long_description = fh.read()
5 |
6 | setuptools.setup(
7 | name='perfecto_interop',
8 | version='0.1',
9 | scripts=["perfecto_interop.py", "android_libs.py", "ios_libs.py", "android_tests.py", "ios_tests.py"],
10 | author="Shivam Thakur",
11 | author_email="shivam.thakur@candelatech.com",
12 | description="TIP OpenWIFI Perfecto Test Automation",
13 | long_description=long_description,
14 | long_description_content_type="text/markdown",
15 | packages=setuptools.find_packages(),
16 | classifiers=[
17 | "Programming Language :: Python :: 3",
18 | "License :: OSI Approved :: MIT License",
19 | "Operating System :: OS Independent",
20 | ],
21 | )
22 |
23 |
--------------------------------------------------------------------------------
/libs/testrails/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/libs/testrails/__init__.py
--------------------------------------------------------------------------------
/libs/testrails/reporting.py:
--------------------------------------------------------------------------------
1 | import allure
2 |
3 |
4 | class Reporting:
5 |
6 | def __init__(self):
7 | self.rid = None
8 | pass
9 |
10 | def update_testrail(self, case_id=None, run_id=None, status_id=1, msg=None):
11 | allure.attach(name=str(msg), body="")
12 | pass
13 |
--------------------------------------------------------------------------------
/libs/tip_1x/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/libs/tip_1x/__init__.py
--------------------------------------------------------------------------------
/libs/tip_2x/README.md:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/libs/tip_2x/README.md
--------------------------------------------------------------------------------
/libs/tip_2x/setup.py:
--------------------------------------------------------------------------------
1 | import setuptools
2 |
3 | with open("README.md", "r") as fh:
4 | long_description = fh.read()
5 |
6 | setuptools.setup(
7 | name='tip_2x',
8 | version='0.1',
9 | scripts=['tip_2x.py', 'controller.py', 'ap_lib.py', 'SetupLibrary.py', 'openwrt_ctl.py'],
10 | author="Shivam Thakur",
11 | author_email="shivam.thakur@candelatech.com",
12 | description="TIP OpenWIFI 2.X Library",
13 | long_description=long_description,
14 | long_description_content_type="text/markdown",
15 | packages=setuptools.find_packages(),
16 | classifiers=[
17 | "Programming Language :: Python :: 3",
18 | "License :: OSI Approved :: MIT License",
19 | "Operating System :: OS Independent",
20 | ],
21 | )
22 |
--------------------------------------------------------------------------------
/requirements.txt:
--------------------------------------------------------------------------------
1 | allure-pytest
2 | Appium-Python-Client==1.2.0
3 | bs4
4 | influxdb
5 | influxdb-client
6 | pandas
7 | paramiko
8 | perfecto-py37
9 | pyshark
10 | pytest==6.2.2
11 | requests
12 | scp
13 | selenium
14 | tip-wlan-cloud
15 | xlsxwriter
16 | tabulate
17 | pdfkit
18 | matplotlib
19 | kafka-python
20 | jsonschema
--------------------------------------------------------------------------------
/tests/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/__init__.py
--------------------------------------------------------------------------------
/tests/access_point_tests/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/access_point_tests/__init__.py
--------------------------------------------------------------------------------
/tests/access_point_tests/master_config_tests/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/access_point_tests/master_config_tests/__init__.py
--------------------------------------------------------------------------------
/tests/configuration.py:
--------------------------------------------------------------------------------
1 | """
2 | ec420 basic-03
3 | ecw5410 basic-04
4 | ecw5211 not available in basic
5 | wf188n config
6 | eap102 basic-06
7 | eap101 basic-02
8 | wf194c baisc-08-02
9 |
10 | ssh -C -L 8800:lf1:4002 -L 8801:lf1:5901 -L 8802:lf1:8080 -L 8803:lab-ctlr:22 \ # basic-01
11 | -L 8720:lf2:4002 -L 8721:lf2:5901 -L 8722:lf2:8080 -L 8723:lab-ctlr:22 \ # basic-02
12 | -L 8830:lf3:4002 -L 8831:lf3:5901 -L 8832:lf3:8080 -L 8833:lab-ctlr:22 \ # basic-03
13 | -L 8810:lf4:4002 -L 8811:lf4:5901 -L 8812:lf4:8080 -L 8813:lab-ctlr:22 \ # basic-04
14 | -L 8850:lf12:4002 -L 8851:lf12:5901 -L 8852:lf12:8080 -L 8853:lab-ctlr4:22 \ # config
15 | -L 8860:lf13:4002 -L 8861:lf13:5901 -L 8862:lf13:8080 -L 8863:lab-ctlr4:22 \ # basic-06
16 | -L 8870:lf14:4002 -L 8871:lf14:5901 -L 8872:lf14:8080 -L 8873:lab-ctlr4:22 \ # basic-07
17 | -L 8880:lf15:4002 -L 8881:lf15:5901 -L 8882:lf15:8080 -L 8883:lab-ctlr4:22 \ # basic-08
18 | ubuntu@3.130.51.163
19 |
20 |
21 |
22 | ssh -C -L 8800:lf1:4002 -L 8801:lf1:5901 -L 8802:lf1:8080 -L 8803:lab-ctlr:22 \
23 | -L 8720:lf2:4002 -L 8721:lf2:5901 -L 8722:lf2:8080 -L 8723:lab-ctlr:22 \
24 | -L 8830:lf3:4002 -L 8831:lf3:5901 -L 8832:lf3:8080 -L 8833:lab-ctlr:22 \
25 | -L 8810:lf4:4002 -L 8811:lf4:5901 -L 8812:lf4:8080 -L 8813:lab-ctlr:22 \
26 | -L 8850:lf12:4002 -L 8851:lf12:5901 -L 8852:lf12:8080 -L 8853:lab-ctlr4:22 \
27 | -L 8860:lf13:4002 -L 8861:lf13:5901 -L 8862:lf13:8080 -L 8863:lab-ctlr4:22 \
28 | -L 8870:lf14:4002 -L 8871:lf14:5901 -L 8872:lf14:8080 -L 8873:lab-ctlr4:22 \
29 | -L 8880:lf15:4002 -L 8881:lf15:5901 -L 8882:lf15:8080 -L 8883:lab-ctlr4:22 \
30 | ubuntu@3.130.51.163
31 |
32 | """
33 |
34 | import json
35 | with open('lab_info.json', 'r') as f:
36 | data = json.load(f)
37 |
38 | CONFIGURATION = data["CONFIGURATION"]
39 |
40 | PERFECTO_DETAILS = data["PERFECTO_DETAILS"]
41 |
42 | RADIUS_SERVER_DATA = data["RADIUS_SERVER_DATA"]
43 |
44 | RADIUS_ACCOUNTING_DATA = data["RADIUS_ACCOUNTING_DATA"]
45 |
46 | RATE_LIMITING_RADIUS_SERVER_DATA = data["RATE_LIMITING_RADIUS_SERVER_DATA"]
47 |
48 | RATE_LIMITING_RADIUS_ACCOUNTING_DATA = data["RATE_LIMITING_RADIUS_ACCOUNTING_DATA"]
49 |
50 | DYNAMIC_VLAN_RADIUS_SERVER_DATA = data["DYNAMIC_VLAN_RADIUS_SERVER_DATA"]
51 |
52 | DYNAMIC_VLAN_RADIUS_ACCOUNTING_DATA = data["DYNAMIC_VLAN_RADIUS_ACCOUNTING_DATA"]
53 |
54 | PASSPOINT_RADIUS_SERVER_DATA = data["PASSPOINT_RADIUS_SERVER_DATA"]
55 |
56 | PASSPOINT_RADIUS_ACCOUNTING_SERVER_DATA = data["PASSPOINT_RADIUS_ACCOUNTING_SERVER_DATA"]
57 |
58 | PASSPOINT = data["PASSPOINT"]
59 |
60 | PASSPOINT = data["PASSPOINT"]
61 |
62 | open_flow = data["open_flow"]
63 |
64 | influx_params = data["influx_params"]
--------------------------------------------------------------------------------
/tests/controller_tests/__init__.py:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/tests/controller_tests/conftest.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/controller_tests/conftest.py
--------------------------------------------------------------------------------
/tests/controller_tests/ucentral_gateway/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/controller_tests/ucentral_gateway/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/UseCase/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/UseCase/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/advanced/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/advanced/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/advanced/air_time_fairness_test/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/advanced/air_time_fairness_test/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/advanced/air_time_fairness_test/wpa2_personal/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/advanced/air_time_fairness_test/wpa2_personal/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/advanced/ap_co-existence/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/advanced/ap_co-existence/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/advanced/conftest.py:
--------------------------------------------------------------------------------
1 | import allure
2 | import pytest
3 | import logging
4 |
5 | @pytest.fixture(scope="class")
6 | def setup_configuration(request, get_markers, get_target_object, run_lf):
7 | # Predefined selected markers and selected configuration
8 |
9 | conf = dict(request.param)
10 | configuration = conf.copy()
11 | requested_combination = []
12 | for key in get_markers:
13 | if get_markers[key]:
14 | requested_combination.append(get_markers[key])
15 |
16 | # Method to setup the basic configuration
17 | data = {}
18 | if not run_lf:
19 | data = get_target_object.setup_basic_configuration(configuration=configuration,
20 | requested_combination=requested_combination)
21 | logging.info("dut_data after config applied: " + str(data))
22 | yield data
23 |
24 |
25 | @pytest.fixture(scope="function")
26 | def check_connectivity(request, get_testbed_details, get_target_object, run_lf):
27 | def collect_logs():
28 | for i in range(len(get_testbed_details["device_under_tests"])):
29 | ret_val = get_target_object.get_dut_library_object().ubus_call_ucentral_status(idx=i, attach_allure=True,
30 | retry=10)
31 | if not ret_val["connected"] or ret_val["connected"] is None:
32 | ap_logs = get_target_object.get_dut_library_object().get_dut_logs()
33 | allure.attach(name='Logs - ' + get_testbed_details["device_under_tests"][i]["identifier"],
34 | body=str(ap_logs))
35 |
36 | allure.attach(name='Device : ' + get_testbed_details["device_under_tests"][i]["identifier"] +
37 | " is connected after Test", body="")
38 |
39 | if not run_lf:
40 | request.addfinalizer(collect_logs)
--------------------------------------------------------------------------------
/tests/e2e/advanced/downlink_mu_mimo_test/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/advanced/downlink_mu_mimo_test/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/advanced/downlink_mu_mimo_test/open/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/advanced/downlink_mu_mimo_test/open/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/advanced/downlink_mu_mimo_test/wpa2_personal/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/advanced/downlink_mu_mimo_test/wpa2_personal/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/advanced/downlink_mu_mimo_test/wpa3_personal/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/advanced/downlink_mu_mimo_test/wpa3_personal/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/advanced/downlink_mu_mimo_test/wpa_personal/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/advanced/downlink_mu_mimo_test/wpa_personal/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/advanced/maximum_connection/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/advanced/maximum_connection/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/advanced/maximum_connection/wpa2_personal/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/advanced/maximum_connection/wpa2_personal/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/advanced/maximum_throughput_test/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/advanced/maximum_throughput_test/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/advanced/maximum_throughput_test/wpa2_personal/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/advanced/maximum_throughput_test/wpa2_personal/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/advanced/multi_association_disassociation/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/advanced/multi_association_disassociation/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/advanced/multi_association_disassociation/wpa2_personal/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/advanced/multi_association_disassociation/wpa2_personal/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/advanced/multi_station_performance/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/advanced/multi_station_performance/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/advanced/multi_station_performance/wpa2_personal/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/advanced/multi_station_performance/wpa2_personal/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/advanced/rate_vs_range/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/advanced/rate_vs_range/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/advanced/receiver_sensitivity/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/advanced/receiver_sensitivity/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/advanced/roam_test/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/advanced/roam_test/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/advanced/roam_test/hard_roam/OTA/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/advanced/roam_test/hard_roam/OTA/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/advanced/roam_test/hard_roam/OTA/roam-config.json:
--------------------------------------------------------------------------------
1 | {
2 | "uuid": 2,
3 | "radios": [
4 | {
5 | "band": "2G",
6 | "channel": 11,
7 | "channel-mode": "HE",
8 | "channel-width": 40,
9 | "country": "CA"
10 | },
11 | {
12 | "band": "5G",
13 | "channel": 36,
14 | "channel-mode": "HE",
15 | "channel-width": 80,
16 | "country": "CA"
17 | }
18 | ],
19 | "interfaces": [
20 | {
21 | "name": "WAN",
22 | "role": "upstream",
23 | "services": [
24 | "lldp"
25 | ],
26 | "ethernet": [
27 | {
28 | "select-ports": [
29 | "WAN*"
30 | ]
31 | }
32 | ],
33 | "ipv4": {
34 | "addressing": "dynamic"
35 | },
36 | "ssids": [
37 | {
38 | "name": "OpenWifi",
39 | "wifi-bands": [
40 | "2G","5G"
41 | ],
42 | "bss-mode": "ap",
43 | "encryption": {
44 | "proto": "psk2",
45 | "key": "Openwifi",
46 | "ieee80211w": "optional"
47 | },
48 | "roaming": true,
49 | "services": [
50 | "wifi-steering"
51 | ]
52 | }
53 | ]
54 | },
55 | {
56 | "name": "LAN",
57 | "role": "downstream",
58 | "services": [
59 | "ssh",
60 | "lldp"
61 | ],
62 | "ethernet": [
63 | {
64 | "select-ports": [
65 | "LAN*"
66 | ]
67 | }
68 | ],
69 | "ipv4": {
70 | "addressing": "static",
71 | "subnet": "192.168.1.1/24",
72 | "dhcp": {
73 | "lease-first": 10,
74 | "lease-count": 100,
75 | "lease-time": "6h"
76 | }
77 | }
78 | }
79 | ],
80 | "metrics": {
81 | "statistics": {
82 | "interval": 120,
83 | "types": [
84 | "ssids",
85 | "lldp",
86 | "clients"
87 | ]
88 | },
89 | "health": {
90 | "interval": 120
91 | },
92 | "wifi-frames": {
93 | "filters": [
94 | "probe",
95 | "auth"
96 | ]
97 | }
98 | },
99 | "services": {
100 | "wifi-steering": {
101 | "mode": "local",
102 | "network": "upstream",
103 | "assoc-steering": true,
104 | "required-snr": -85,
105 | "required-probe-snr": -80,
106 | "required-roam-snr": -80,
107 | "load-kick-threshold": 90
108 | },
109 | "ssh": {
110 | "port": 22
111 | }
112 | }
113 | }
--------------------------------------------------------------------------------
/tests/e2e/advanced/roam_test/hard_roam/OTD/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/advanced/roam_test/hard_roam/OTD/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/advanced/roam_test/hard_roam/OTD/roam-config.json:
--------------------------------------------------------------------------------
1 | {
2 | "uuid": 2,
3 | "radios": [
4 | {
5 | "band": "2G",
6 | "channel": 11,
7 | "channel-mode": "HE",
8 | "channel-width": 40,
9 | "country": "CA"
10 | },
11 | {
12 | "band": "5G",
13 | "channel": 36,
14 | "channel-mode": "HE",
15 | "channel-width": 80,
16 | "country": "CA"
17 | }
18 | ],
19 | "interfaces": [
20 | {
21 | "name": "WAN",
22 | "role": "upstream",
23 | "services": [
24 | "lldp"
25 | ],
26 | "ethernet": [
27 | {
28 | "select-ports": [
29 | "WAN*"
30 | ]
31 | }
32 | ],
33 | "ipv4": {
34 | "addressing": "dynamic"
35 | },
36 | "ssids": [
37 | {
38 | "name": "OpenWifi",
39 | "wifi-bands": [
40 | "2G","5G"
41 | ],
42 | "bss-mode": "ap",
43 | "encryption": {
44 | "proto": "psk2",
45 | "key": "OpenWifi",
46 | "ieee80211w": "optional"
47 | },
48 | "roaming": {
49 | "message-exchange": "ds",
50 | "generate-psk": true
51 | },
52 | "services": [
53 | "wifi-steering"
54 | ]
55 | }
56 | ]
57 | },
58 | {
59 | "name": "LAN",
60 | "role": "downstream",
61 | "services": [
62 | "ssh",
63 | "lldp"
64 | ],
65 | "ethernet": [
66 | {
67 | "select-ports": [
68 | "LAN*"
69 | ]
70 | }
71 | ],
72 | "ipv4": {
73 | "addressing": "static",
74 | "subnet": "192.168.1.1/24",
75 | "dhcp": {
76 | "lease-first": 10,
77 | "lease-count": 100,
78 | "lease-time": "6h"
79 | }
80 | }
81 | }
82 | ],
83 | "metrics": {
84 | "statistics": {
85 | "interval": 120,
86 | "types": [
87 | "ssids",
88 | "lldp",
89 | "clients"
90 | ]
91 | },
92 | "health": {
93 | "interval": 120
94 | },
95 | "wifi-frames": {
96 | "filters": [
97 | "probe",
98 | "auth"
99 | ]
100 | }
101 | },
102 | "services": {
103 | "wifi-steering": {
104 | "mode": "local",
105 | "network": "upstream",
106 | "assoc-steering": true,
107 | "required-snr": -85,
108 | "required-probe-snr": -80,
109 | "required-roam-snr": -80,
110 | "load-kick-threshold": 90
111 | },
112 | "ssh": {
113 | "port": 22
114 | }
115 | }
116 | }
--------------------------------------------------------------------------------
/tests/e2e/advanced/roam_test/hard_roam/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/advanced/roam_test/hard_roam/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/advanced/roam_test/roam_by_attenuation/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/advanced/roam_test/roam_by_attenuation/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/advanced/spatial_consistency/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/advanced/spatial_consistency/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/advanced/spatial_consistency/wpa2_personal/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/advanced/spatial_consistency/wpa2_personal/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/basic/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/basic/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/basic/advanced_captive_portal_tests/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/basic/advanced_captive_portal_tests/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/basic/advanced_captive_portal_tests/external_captive_portal_tests/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/basic/advanced_captive_portal_tests/external_captive_portal_tests/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/basic/advanced_captive_portal_tests/external_captive_portal_tests/open/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/basic/advanced_captive_portal_tests/external_captive_portal_tests/open/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/basic/advanced_captive_portal_tests/internal_captive_portal_tests/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/basic/advanced_captive_portal_tests/internal_captive_portal_tests/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/basic/advanced_captive_portal_tests/internal_captive_portal_tests/open/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/basic/advanced_captive_portal_tests/internal_captive_portal_tests/open/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/basic/configuration_tests/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/basic/configuration_tests/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/basic/configuration_tests/bridge_mode/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/basic/configuration_tests/bridge_mode/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/basic/configuration_tests/nat_mode/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/basic/configuration_tests/nat_mode/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/basic/configuration_tests/vlan_mode/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/basic/configuration_tests/vlan_mode/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/basic/conftest.py:
--------------------------------------------------------------------------------
1 | import allure
2 | import pytest
3 | import logging
4 |
5 | @pytest.fixture(scope="class")
6 | def setup_configuration(request, get_markers, get_target_object, run_lf):
7 | # Predefined selected markers and selected configuration
8 |
9 | conf = dict(request.param)
10 | configuration = conf.copy()
11 | requested_combination = []
12 | for key in get_markers:
13 | if get_markers[key]:
14 | requested_combination.append(get_markers[key])
15 |
16 | # Method to setup the basic configuration
17 | data = {}
18 | if not run_lf:
19 | data = get_target_object.setup_basic_configuration(configuration=configuration,
20 | requested_combination=requested_combination)
21 | logging.info("dut_data after config applied: " + str(data))
22 | yield data
23 |
--------------------------------------------------------------------------------
/tests/e2e/basic/dfs_test/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/basic/dfs_test/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/basic/dfs_test/wpa2_personal/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/basic/dfs_test/wpa2_personal/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/basic/dfs_test/wpa2_personal/dfs_20MHz/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/basic/dfs_test/wpa2_personal/dfs_20MHz/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/basic/dfs_test/wpa2_personal/dfs_40MHz/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/basic/dfs_test/wpa2_personal/dfs_40MHz/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/basic/dfs_test/wpa2_personal/dfs_80MHz/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/basic/dfs_test/wpa2_personal/dfs_80MHz/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/basic/endurance_test/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/basic/endurance_test/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/basic/endurance_test/bridge_mode/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/basic/endurance_test/bridge_mode/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/basic/endurance_test/bridge_mode/test_ap_stability.py:
--------------------------------------------------------------------------------
1 | """
2 |
3 | Stability Test: Bridge Mode
4 | pytest -m "regression and bridge"
5 |
6 | """
7 |
8 | import os
9 | import allure
10 | import pytest
11 |
12 | pytestmark = [pytest.mark.ow_stability_lf,
13 | pytest.mark.bridge]
14 |
15 | setup_params_general = {
16 | "mode": "BRIDGE",
17 | "ssid_modes": {
18 | "wpa2_personal": [
19 | {"ssid_name": "ssid_wpa2_2g", "appliedRadios": ["2G"], "security_key": "something"},
20 | {"ssid_name": "ssid_wpa2_5g", "appliedRadios": ["5G"], "security_key": "something"}]},
21 | "rf": {},
22 | "radius": False
23 | }
24 |
25 |
26 | @pytest.mark.regression
27 | @pytest.mark.wifi5
28 | @pytest.mark.wifi6
29 | @pytest.mark.parametrize(
30 | 'setup_configuration',
31 | [setup_params_general],
32 | indirect=True,
33 | scope="class"
34 | )
35 | @pytest.mark.usefixtures("setup_configuration")
36 | class TestAPStabilityBridge(object):
37 | """
38 | pytest -m "regression and bridge and wpa2_personal and twog and fiveg"
39 | """
40 |
41 | @pytest.mark.wpa2_personal
42 | @pytest.mark.twog
43 | @pytest.mark.fiveg
44 | @allure.testcase(name="test_ap_stability_wpa2_personal",
45 | url="https://telecominfraproject.atlassian.net/browse/WIFI-3035")
46 | def test_ap_stability_wpa2_personal(self, lf_tools,
47 | create_lanforge_chamberview_dut, lf_test, get_configuration):
48 | profile_data = setup_params_general["ssid_modes"]["wpa2_personal"]
49 | ssid_2G = profile_data[0]["ssid_name"]
50 | ssid_5G = profile_data[0]["ssid_name"]
51 | dut_name = create_lanforge_chamberview_dut
52 | mode = "BRIDGE"
53 | vlan = 1
54 | print(lf_tools.dut_idx_mapping)
55 | dut_5g = ""
56 | dut_2g = ""
57 | for i in lf_tools.dut_idx_mapping:
58 | if lf_tools.dut_idx_mapping[i][3] == "5G":
59 | dut_5g = dut_name + ' ' + lf_tools.dut_idx_mapping[i][0] + ' ' + lf_tools.dut_idx_mapping[i][4]
60 | print(dut_5g)
61 | if lf_tools.dut_idx_mapping[i][3] == "2G":
62 | dut_2g = dut_name + ' ' + lf_tools.dut_idx_mapping[i][0] + ' ' + lf_tools.dut_idx_mapping[i][4]
63 | print(dut_2g)
64 | apstab_obj = lf_test.apstabilitytest(mode=mode, ssid_2G=ssid_2G, ssid_5G=ssid_5G,
65 | instance_name="stability_instance_wpa2p_bridge",
66 | vlan_id=vlan, dut_5g=dut_5g, dut_2g=dut_2g)
67 |
68 | report_name = apstab_obj.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1]
69 | lf_tools.attach_report_graphs(report_name=report_name, pdf_name="AP Stability Test")
70 | assert True
71 |
--------------------------------------------------------------------------------
/tests/e2e/basic/endurance_test/nat_mode/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/basic/endurance_test/nat_mode/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/basic/hot_configuration_reloads/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/basic/hot_configuration_reloads/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/basic/hot_configuration_reloads/wpa2_personal/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/basic/hot_configuration_reloads/wpa2_personal/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/basic/multi_ssid_tests/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/basic/multi_ssid_tests/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/basic/multi_ssid_tests/bridge_mode/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/basic/multi_ssid_tests/bridge_mode/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/basic/performance_tests/AX_capacity/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/basic/performance_tests/AX_capacity/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/basic/performance_tests/AX_capacity/wpa2_personal/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/basic/performance_tests/AX_capacity/wpa2_personal/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/basic/performance_tests/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/basic/performance_tests/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/basic/performance_tests/client_scale_test/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/basic/performance_tests/client_scale_test/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/basic/performance_tests/client_scale_test/open/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/basic/performance_tests/client_scale_test/open/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/basic/performance_tests/client_scale_test/wpa2_personal/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/basic/performance_tests/client_scale_test/wpa2_personal/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/basic/performance_tests/client_scale_test/wpa3_personal/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/basic/performance_tests/client_scale_test/wpa3_personal/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/basic/performance_tests/client_scale_test/wpa_personal/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/basic/performance_tests/client_scale_test/wpa_personal/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/basic/performance_tests/dataplane_throughput_test/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/basic/performance_tests/dataplane_throughput_test/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/basic/performance_tests/dataplane_throughput_test/open_security/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/basic/performance_tests/dataplane_throughput_test/open_security/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/basic/performance_tests/dataplane_throughput_test/wpa2_security/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/basic/performance_tests/dataplane_throughput_test/wpa2_security/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/basic/performance_tests/dataplane_throughput_test/wpa3_security/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/basic/performance_tests/dataplane_throughput_test/wpa3_security/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/basic/performance_tests/dataplane_throughput_test/wpa_security/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/basic/performance_tests/dataplane_throughput_test/wpa_security/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/basic/performance_tests/dual_band_performance_test/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/basic/performance_tests/dual_band_performance_test/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/basic/performance_tests/dual_band_performance_test/open/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/basic/performance_tests/dual_band_performance_test/open/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/basic/performance_tests/dual_band_performance_test/open/test_bridge_mode.py:
--------------------------------------------------------------------------------
1 | """
2 | Dual Band Performance Test : BRIDGE Mode
3 | pytest -m "performance and dual_band_tests and bridge"
4 |
5 |
6 | """
7 |
8 | import allure
9 | import pytest
10 |
11 | pytestmark = [pytest.mark.dual_band_tests, pytest.mark.bridge, pytest.mark.performance_release]
12 |
13 | setup_params_general = {
14 | "mode": "BRIDGE",
15 | "ssid_modes": {
16 | "open": [
17 | {"ssid_name": "ssid_openp_2g", "appliedRadios": ["2G", "5G"], "security_key": "something"}
18 | ]},
19 | "rf": {},
20 | "radius": False
21 | }
22 |
23 |
24 | @pytest.mark.dual_band_tests
25 | @pytest.mark.wifi5
26 | @pytest.mark.wifi6
27 | @pytest.mark.parametrize(
28 | 'setup_configuration',
29 | [setup_params_general],
30 | indirect=True,
31 | scope="class"
32 | )
33 | @allure.parent_suite("Dual Band Tests")
34 | @allure.suite("Dual Band Tests: Bridge mode")
35 | @allure.sub_suite("Open security")
36 | @allure.feature("Dual band performance test")
37 | @pytest.mark.usefixtures("setup_configuration")
38 | class TestOpenDualbandPerformanceBridge(object):
39 | """
40 | pytest -m "performance and dual_band_tests and bridge and open and twog and fiveg"
41 | """
42 |
43 | @allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-3724", name="WIFI-3724")
44 | @pytest.mark.open
45 | @pytest.mark.twog
46 | @pytest.mark.fiveg
47 | @allure.title("Test Dual Band with ApAuto test of bridge mode")
48 | def test_client_open_bridge(self, get_test_library, setup_configuration, check_connectivity):
49 | """
50 | Dual Band Test with open encryption
51 | pytest -m "dual_band_tests and open"
52 | """
53 | profile_data = setup_params_general["ssid_modes"]["open"]
54 | ssid_2G, ssid_5G = profile_data[0]["ssid_name"], profile_data[0]["ssid_name"]
55 | dut_name = list(setup_configuration.keys())[0]
56 | mode = "BRIDGE"
57 | vlan = 1
58 | dut_5g, dut_2g = "", ""
59 | influx_tags = "dual-band-bridge-open"
60 | for i in setup_configuration[dut_name]['ssid_data']:
61 | get_test_library.dut_idx_mapping[str(i)] = list(setup_configuration[dut_name]['ssid_data'][i].values())
62 | if get_test_library.dut_idx_mapping[str(i)][3] == "5G":
63 | dut_5g = dut_name + ' ' + get_test_library.dut_idx_mapping[str(i)][0] + ' ' + \
64 | get_test_library.dut_idx_mapping[str(i)][4]
65 | if get_test_library.dut_idx_mapping[str(i)][3] == "2G":
66 | dut_2g = dut_name + ' ' + get_test_library.dut_idx_mapping[str(i)][0] + ' ' + \
67 | get_test_library.dut_idx_mapping[str(i)][4]
68 |
69 | get_test_library.dual_band_performance_test(mode=mode, ssid_2G=ssid_2G, ssid_5G=ssid_5G, vlan_id=vlan,
70 | dut_5g=dut_5g, dut_2g=dut_2g, influx_tags=influx_tags,
71 | move_to_influx=False, dut_data=setup_configuration)
72 | assert True
73 |
--------------------------------------------------------------------------------
/tests/e2e/basic/performance_tests/dual_band_performance_test/open/test_nat_mode.py:
--------------------------------------------------------------------------------
1 | """
2 | Dual Band Performance Test : NAT Mode
3 | pytest -m "performance and dual_band_tests and nat"
4 |
5 |
6 | """
7 |
8 | import allure
9 | import pytest
10 |
11 | pytestmark = [pytest.mark.dual_band_tests, pytest.mark.nat, pytest.mark.performance_release]#,
12 |
13 | setup_params_general = {
14 | "mode": "NAT",
15 | "ssid_modes": {
16 | "open": [
17 | {"ssid_name": "ssid_wpa2p_2g", "appliedRadios": ["2G", "5G"], "security_key": "something"}
18 | ]},
19 | "rf": {},
20 | "radius": False
21 | }
22 |
23 |
24 | @pytest.mark.dual_band_tests
25 | @pytest.mark.wifi5
26 | @pytest.mark.wifi6
27 | @pytest.mark.parametrize(
28 | 'setup_configuration',
29 | [setup_params_general],
30 | indirect=True,
31 | scope="class"
32 | )
33 | @allure.parent_suite("Dual Band Tests")
34 | @allure.suite("Dual Band Tests: NAT mode")
35 | @allure.sub_suite("Open security")
36 | @allure.feature("Dual band performance test")
37 | @pytest.mark.usefixtures("setup_configuration")
38 | class TestOpenDualbandPerformanceNat(object):
39 | """
40 | pytest -m "performance and dual_band_tests and nat and open and twog and fiveg"
41 | """
42 |
43 | @allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-3724", name="WIFI-3724")
44 | @pytest.mark.open
45 | @pytest.mark.twog
46 | @pytest.mark.fiveg
47 | @allure.title("Test Dual Band with ApAuto test of NAT mode")
48 | def test_client_open_bridge(self, get_test_library, setup_configuration, check_connectivity):
49 | """
50 | Dual Band Test with open encryption
51 | pytest -m "dual_band_tests and open"
52 | """
53 | profile_data = setup_params_general["ssid_modes"]["open"]
54 | ssid_2G, ssid_5G = profile_data[0]["ssid_name"], profile_data[0]["ssid_name"]
55 | dut_name = list(setup_configuration.keys())[0]
56 | mode = "NAT-WAN"
57 | vlan = 1
58 | dut_5g, dut_2g = "", ""
59 | influx_tags = "dual-band-bridge-open"
60 | for i in setup_configuration[dut_name]['ssid_data']:
61 | get_test_library.dut_idx_mapping[str(i)] = list(setup_configuration[dut_name]['ssid_data'][i].values())
62 | if get_test_library.dut_idx_mapping[str(i)][3] == "5G":
63 | dut_5g = dut_name + ' ' + get_test_library.dut_idx_mapping[str(i)][0] + ' ' + \
64 | get_test_library.dut_idx_mapping[str(i)][4]
65 | if get_test_library.dut_idx_mapping[str(i)][3] == "2G":
66 | dut_2g = dut_name + ' ' + get_test_library.dut_idx_mapping[str(i)][0] + ' ' + \
67 | get_test_library.dut_idx_mapping[str(i)][4]
68 |
69 | get_test_library.dual_band_performance_test(mode=mode, ssid_2G=ssid_2G, ssid_5G=ssid_5G, vlan_id=vlan,
70 | dut_5g=dut_5g, dut_2g=dut_2g, influx_tags=influx_tags,
71 | move_to_influx=False, dut_data=setup_configuration)
72 |
73 | assert True
74 |
--------------------------------------------------------------------------------
/tests/e2e/basic/performance_tests/dual_band_performance_test/open/test_vlan_mode.py:
--------------------------------------------------------------------------------
1 | """
2 | Dual Band Performance Test : VLAN Mode
3 | pytest -m "performance and dual_band_tests and vlan"
4 |
5 |
6 | """
7 |
8 | import os
9 | import allure
10 | import pytest
11 |
12 | pytestmark = [pytest.mark.dual_band_tests, pytest.mark.vlan, pytest.mark.performance_release]
13 |
14 | setup_params_general = {
15 | "mode": "VLAN",
16 | "ssid_modes": {
17 | "open": [
18 | {"ssid_name": "ssid_openp_2g", "appliedRadios": ["2G", "5G"], "security_key": "something", "vlan": 100}
19 | ]},
20 | "rf": {},
21 | "radius": False
22 | }
23 |
24 |
25 | @pytest.mark.dual_band_tests
26 | @pytest.mark.wifi5
27 | @pytest.mark.wifi6
28 | @pytest.mark.parametrize(
29 | 'setup_configuration',
30 | [setup_params_general],
31 | indirect=True,
32 | scope="class"
33 | )
34 | @allure.parent_suite("Dual Band Tests")
35 | @allure.suite("Dual Band Tests: VLAN mode")
36 | @allure.sub_suite("Open security")
37 | @allure.feature("Dual band performance test")
38 | @pytest.mark.usefixtures("setup_configuration")
39 | class TestOpenDualbandPerformanceVLAN(object):
40 | """
41 | pytest -m "performance and dual_band_tests and vlan and open and twog and fiveg"
42 | """
43 |
44 | @allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-3724", name="WIFI-3724")
45 | @pytest.mark.open
46 | @pytest.mark.twog
47 | @pytest.mark.fiveg
48 | @allure.title("Test Dual Band with ApAuto test of and VLAN mode")
49 | def test_client_open_bridge(self, get_test_library, setup_configuration, check_connectivity):
50 | """
51 | Dual Band Test with open encryption
52 | pytest -m "dual_band_tests and open"
53 | """
54 | profile_data = setup_params_general["ssid_modes"]["open"]
55 | ssid_2G, ssid_5G = profile_data[0]["ssid_name"], profile_data[0]["ssid_name"]
56 | dut_name = list(setup_configuration.keys())[0]
57 | mode = "VLAN"
58 | vlan = [100]
59 | dut_5g, dut_2g = "", ""
60 | influx_tags = "dual-band-bridge-open"
61 | for i in setup_configuration[dut_name]['ssid_data']:
62 | get_test_library.dut_idx_mapping[str(i)] = list(setup_configuration[dut_name]['ssid_data'][i].values())
63 | if get_test_library.dut_idx_mapping[str(i)][3] == "5G":
64 | dut_5g = dut_name + ' ' + get_test_library.dut_idx_mapping[str(i)][0] + ' ' + \
65 | get_test_library.dut_idx_mapping[str(i)][4]
66 | if get_test_library.dut_idx_mapping[str(i)][3] == "2G":
67 | dut_2g = dut_name + ' ' + get_test_library.dut_idx_mapping[str(i)][0] + ' ' + \
68 | get_test_library.dut_idx_mapping[str(i)][4]
69 |
70 | get_test_library.dual_band_performance_test(mode=mode, ssid_2G=ssid_2G, ssid_5G=ssid_5G, vlan_id=vlan,
71 | dut_5g=dut_5g, dut_2g=dut_2g, influx_tags=influx_tags,
72 | move_to_influx=False, dut_data=setup_configuration)
73 |
74 | assert True
75 |
--------------------------------------------------------------------------------
/tests/e2e/basic/performance_tests/dual_band_performance_test/wap3_personal/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/basic/performance_tests/dual_band_performance_test/wap3_personal/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/basic/performance_tests/dual_band_performance_test/wap3_personal/test_nat_mode.py:
--------------------------------------------------------------------------------
1 | """
2 | Dual Band Performance Test : NAT Mode
3 | pytest -m "performance and dual_band_tests and nat"
4 |
5 |
6 | """
7 |
8 | import allure
9 | import pytest
10 |
11 | pytestmark = [pytest.mark.nat, pytest.mark.dual_band_tests]
12 |
13 | setup_params_general = {
14 | "mode": "NAT",
15 | "ssid_modes": {
16 | "wpa3_personal": [
17 | {"ssid_name": "ssid_wpa3_personal_dual_band", "appliedRadios": ["2G", "5G"], "security_key": "something"}
18 | ]},
19 | "rf": {},
20 | "radius": False
21 | }
22 |
23 |
24 | @pytest.mark.dual_band_tests
25 | @pytest.mark.wifi5
26 | @pytest.mark.wifi6
27 | @pytest.mark.parametrize(
28 | 'setup_configuration',
29 | [setup_params_general],
30 | indirect=True,
31 | scope="class"
32 | )
33 | @allure.parent_suite("Dual Band Tests")
34 | @allure.suite("Dual Band Tests: NAT mode")
35 | @allure.sub_suite("wpa3_personal security")
36 | @allure.feature("Dual band performance test")
37 | @pytest.mark.usefixtures("setup_configuration")
38 | class TestWpa3DualbandPerformanceNat(object):
39 | """
40 | pytest -m "performance and dual_band_tests and nat and wpa3_personal and twog and fiveg."
41 | """
42 |
43 | @allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-3728", name="WIFI-3728")
44 | @pytest.mark.wpa3_personal
45 | @pytest.mark.twog
46 | @pytest.mark.fiveg
47 | @allure.title("Test Dual Band with ApAuto test of NAT mode")
48 | def test_client_wpa3_personal_nat(self, get_test_library, setup_configuration, check_connectivity):
49 | """
50 | Dual Band Test with wpa3_personal encryption
51 | pytest -m "dual_band_tests and wpa3_personal"
52 | """
53 | profile_data = setup_params_general["ssid_modes"]["wpa3_personal"]
54 | ssid_2G, ssid_5G = profile_data[0]["ssid_name"], profile_data[0]["ssid_name"]
55 | dut_name = list(setup_configuration.keys())[0]
56 | mode = "NAT-WAN"
57 | vlan = 1
58 | dut_5g, dut_2g = "", ""
59 | influx_tags = "dual-band-nat-wpa3"
60 | for i in setup_configuration[dut_name]['ssid_data']:
61 | get_test_library.dut_idx_mapping[str(i)] = list(setup_configuration[dut_name]['ssid_data'][i].values())
62 | if get_test_library.dut_idx_mapping[str(i)][3] == "5G":
63 | dut_5g = dut_name + ' ' + get_test_library.dut_idx_mapping[str(i)][0] + ' ' + \
64 | get_test_library.dut_idx_mapping[str(i)][4]
65 | if get_test_library.dut_idx_mapping[str(i)][3] == "2G":
66 | dut_2g = dut_name + ' ' + get_test_library.dut_idx_mapping[str(i)][0] + ' ' + \
67 | get_test_library.dut_idx_mapping[str(i)][4]
68 |
69 | get_test_library.dual_band_performance_test(mode=mode, ssid_2G=ssid_2G, ssid_5G=ssid_5G, vlan_id=vlan,
70 | dut_5g=dut_5g, dut_2g=dut_2g, influx_tags=influx_tags,
71 | move_to_influx=False, dut_data=setup_configuration)
72 |
73 | assert True
74 |
--------------------------------------------------------------------------------
/tests/e2e/basic/performance_tests/dual_band_performance_test/wap3_personal/test_vlan_mode.py:
--------------------------------------------------------------------------------
1 | """
2 | Dual Band Performance Test : VLAN Mode
3 | pytest -m "performance and dual_band_tests and vlan"
4 |
5 |
6 | """
7 |
8 | import allure
9 | import pytest
10 |
11 | pytestmark = [pytest.mark.vlan, pytest.mark.dual_band_tests]
12 |
13 | setup_params_general = {
14 | "mode": "VLAN",
15 | "ssid_modes": {
16 | "wpa3_personal": [
17 | {"ssid_name": "ssid_wpa3_personal_dual_band", "appliedRadios": ["2G", "5G"], "security_key": "something",
18 | "vlan": 100}
19 | ]},
20 | "rf": {},
21 | "radius": False
22 | }
23 |
24 |
25 | @pytest.mark.dual_band_tests
26 | @pytest.mark.wifi5
27 | @pytest.mark.wifi6
28 | @pytest.mark.parametrize(
29 | 'setup_configuration',
30 | [setup_params_general],
31 | indirect=True,
32 | scope="class"
33 | )
34 | @allure.parent_suite("Dual Band Tests")
35 | @allure.suite("Dual Band Tests: VLAN mode")
36 | @allure.sub_suite("wpa3_personal security")
37 | @allure.feature("Dual band performance test")
38 | @pytest.mark.usefixtures("setup_configuration")
39 | class TestWpa3DualbandPerformanceVlan(object):
40 | """
41 | pytest -m "performance and dual_band_tests and vlan and wpa3_personal and twog and fiveg"
42 | """
43 |
44 | @allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-3728", name="WIFI-3728")
45 | @pytest.mark.wpa3_personal
46 | @pytest.mark.twog
47 | @pytest.mark.fiveg
48 | @allure.title("Test Dual Band with ApAuto test of VLAN mode")
49 | def test_client_wpa3_personal_vlan(self, get_test_library, setup_configuration, check_connectivity):
50 | """
51 | Dual Band Test with wpa3_personal encryption
52 | pytest -m "dual_band_tests and wpa3_personal"
53 | """
54 | profile_data = setup_params_general["ssid_modes"]["wpa3_personal"]
55 | ssid_2G, ssid_5G = profile_data[0]["ssid_name"], profile_data[0]["ssid_name"]
56 | dut_name = list(setup_configuration.keys())[0]
57 | mode = "VLAN"
58 | vlan = [100]
59 | dut_5g, dut_2g = "", ""
60 | influx_tags = "dual-band-vlan-wpa3"
61 | for i in setup_configuration[dut_name]['ssid_data']:
62 | get_test_library.dut_idx_mapping[str(i)] = list(setup_configuration[dut_name]['ssid_data'][i].values())
63 | if get_test_library.dut_idx_mapping[str(i)][3] == "5G":
64 | dut_5g = dut_name + ' ' + get_test_library.dut_idx_mapping[str(i)][0] + ' ' + \
65 | get_test_library.dut_idx_mapping[str(i)][4]
66 | if get_test_library.dut_idx_mapping[str(i)][3] == "2G":
67 | dut_2g = dut_name + ' ' + get_test_library.dut_idx_mapping[str(i)][0] + ' ' + \
68 | get_test_library.dut_idx_mapping[str(i)][4]
69 |
70 | get_test_library.dual_band_performance_test(mode=mode, ssid_2G=ssid_2G, ssid_5G=ssid_5G, vlan_id=vlan,
71 | dut_5g=dut_5g, dut_2g=dut_2g, influx_tags=influx_tags,
72 | move_to_influx=False, dut_data=setup_configuration)
73 |
74 | assert True
75 |
--------------------------------------------------------------------------------
/tests/e2e/basic/performance_tests/dual_band_performance_test/wpa2_personal/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/basic/performance_tests/dual_band_performance_test/wpa2_personal/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/basic/performance_tests/dual_band_performance_test/wpa2_personal/test_vlan_mode.py:
--------------------------------------------------------------------------------
1 | """
2 | Dual Band Performance Test : VLAN Mode
3 | pytest -m "performance and dual_band_tests and vlan"
4 |
5 |
6 | """
7 |
8 | import os
9 | import allure
10 | import pytest
11 |
12 | pytestmark = [pytest.mark.performance, pytest.mark.vlan]
13 |
14 | setup_params_general = {
15 | "mode": "VLAN",
16 | "ssid_modes": {
17 | "wpa2_personal": [
18 | {"ssid_name": "ssid_wpa2_personal_dual_band", "appliedRadios": ["2G", "5G"], "security_key": "something",
19 | "vlan": 100}
20 | ]},
21 | "rf": {},
22 | "radius": False
23 | }
24 |
25 |
26 | @pytest.mark.wifi5
27 | @pytest.mark.wifi6
28 | @pytest.mark.parametrize(
29 | 'setup_configuration',
30 | [setup_params_general],
31 | indirect=True,
32 | scope="class"
33 | )
34 | @allure.parent_suite("Dual Band Tests")
35 | @allure.suite("Dual Band Tests: VLAN mode")
36 | @allure.sub_suite("wpa2_personal security")
37 | @allure.feature("Dual band performance test")
38 | @pytest.mark.usefixtures("setup_configuration")
39 | class TestWpa2DualbandPerformanceVLAN(object):
40 | """
41 | pytest -m "performance and dual_band_tests and VLAN and wpa2_personal and twog and fiveg"
42 | """
43 |
44 | @allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-3918", name="WIFI-3918")
45 | @pytest.mark.wpa2_personal
46 | @pytest.mark.twog
47 | @pytest.mark.fiveg
48 | @allure.title("Test Dual Band with ApAuto test of VLAN mode")
49 | def test_client_wpa2_personal_bridge(self, get_test_library, setup_configuration, check_connectivity):
50 | """
51 | Dual Band Test with wpa2_personal encryption
52 | pytest -m "dual_band_tests and wpa2_personal"
53 | """
54 | profile_data = setup_params_general["ssid_modes"]["wpa2_personal"]
55 | ssid_2G, ssid_5G = profile_data[0]["ssid_name"], profile_data[0]["ssid_name"]
56 | dut_name = list(setup_configuration.keys())[0]
57 | mode = "VLAN"
58 | vlan = [100]
59 | dut_5g, dut_2g = "", ""
60 | influx_tags = "dual-band-vlan-wpa2"
61 | for i in setup_configuration[dut_name]['ssid_data']:
62 | get_test_library.dut_idx_mapping[str(i)] = list(setup_configuration[dut_name]['ssid_data'][i].values())
63 | if get_test_library.dut_idx_mapping[str(i)][3] == "5G":
64 | dut_5g = dut_name + ' ' + get_test_library.dut_idx_mapping[str(i)][0] + ' ' + \
65 | get_test_library.dut_idx_mapping[str(i)][4]
66 | if get_test_library.dut_idx_mapping[str(i)][3] == "2G":
67 | dut_2g = dut_name + ' ' + get_test_library.dut_idx_mapping[str(i)][0] + ' ' + \
68 | get_test_library.dut_idx_mapping[str(i)][4]
69 |
70 | get_test_library.dual_band_performance_test(mode=mode, ssid_2G=ssid_2G, ssid_5G=ssid_5G, vlan_id=vlan,
71 | dut_5g=dut_5g, dut_2g=dut_2g, influx_tags=influx_tags,
72 | move_to_influx=False, dut_data=setup_configuration)
73 |
74 | assert True
75 |
--------------------------------------------------------------------------------
/tests/e2e/basic/performance_tests/dual_band_performance_test/wpa_personal/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/basic/performance_tests/dual_band_performance_test/wpa_personal/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/basic/performance_tests/dual_band_performance_test/wpa_personal/test_bridge_mode.py:
--------------------------------------------------------------------------------
1 | """
2 | Dual Band Performance Test : BRIDGE Mode
3 | pytest -m "performance and dual_band_tests and bridge"
4 |
5 |
6 | """
7 |
8 | import os
9 | import allure
10 | import pytest
11 |
12 | pytestmark = [pytest.mark.dual_band_tests, pytest.mark.bridge,
13 | pytest.mark.single_station_dual_band_throughput]
14 |
15 | setup_params_general = {
16 | "mode": "BRIDGE",
17 | "ssid_modes": {
18 | "wpa": [
19 | {"ssid_name": "ssid_wpa_personal_dual_band", "appliedRadios": ["2G", "5G"], "security_key": "something"}
20 | ]},
21 | "rf": {},
22 | "radius": False
23 | }
24 |
25 |
26 | @pytest.mark.dual_band_tests
27 | @pytest.mark.wifi5
28 | @pytest.mark.wifi6
29 | @pytest.mark.parametrize(
30 | 'setup_configuration',
31 | [setup_params_general],
32 | indirect=True,
33 | scope="class"
34 | )
35 | @allure.parent_suite("Dual Band Tests")
36 | @allure.suite("Dual Band Tests: Bridge mode")
37 | @allure.sub_suite("wpa security")
38 | @allure.feature("Dual band performance test")
39 | @pytest.mark.usefixtures("setup_configuration")
40 | @pytest.mark.usefixtures("setup_configuration")
41 | class TestWpaDualbandPerformanceBridge(object):
42 | """
43 | pytest -m "performance and dual_band_tests and bridge and wpa_personal and twog and fiveg"
44 | """
45 |
46 | @allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-3726", name="WIFI-3726")
47 | @pytest.mark.wpa
48 | @pytest.mark.twog
49 | @pytest.mark.fiveg
50 | @allure.title("Test Dual Band with ApAuto test of bridge mode")
51 | def test_client_wpa_personal_bridge(self, get_test_library, setup_configuration, check_connectivity):
52 | """
53 | Dual Band Test with wpa encryption
54 | pytest -m "dual_band_tests and wpa"
55 | """
56 | profile_data = setup_params_general["ssid_modes"]["wpa"]
57 | ssid_2G, ssid_5G = profile_data[0]["ssid_name"], profile_data[0]["ssid_name"]
58 | dut_name = list(setup_configuration.keys())[0]
59 | mode = "BRIDGE"
60 | vlan = 1
61 | dut_5g, dut_2g = "", ""
62 | influx_tags = "dual-band-bridge-wpa"
63 | for i in setup_configuration[dut_name]['ssid_data']:
64 | get_test_library.dut_idx_mapping[str(i)] = list(setup_configuration[dut_name]['ssid_data'][i].values())
65 | if get_test_library.dut_idx_mapping[str(i)][3] == "5G":
66 | dut_5g = dut_name + ' ' + get_test_library.dut_idx_mapping[str(i)][0] + ' ' + \
67 | get_test_library.dut_idx_mapping[str(i)][4]
68 | if get_test_library.dut_idx_mapping[str(i)][3] == "2G":
69 | dut_2g = dut_name + ' ' + get_test_library.dut_idx_mapping[str(i)][0] + ' ' + \
70 | get_test_library.dut_idx_mapping[str(i)][4]
71 |
72 | get_test_library.dual_band_performance_test(mode=mode, ssid_2G=ssid_2G, ssid_5G=ssid_5G, vlan_id=vlan,
73 | dut_5g=dut_5g, dut_2g=dut_2g, influx_tags=influx_tags,
74 | move_to_influx=False, dut_data=setup_configuration)
75 |
76 | assert True
77 |
--------------------------------------------------------------------------------
/tests/e2e/basic/performance_tests/dual_band_performance_test/wpa_personal/test_nat_mode.py:
--------------------------------------------------------------------------------
1 | """
2 | Dual Band Performance Test : NAT Mode
3 | pytest -m "performance and dual_band_tests and nat"
4 |
5 |
6 | """
7 |
8 | import os
9 | import allure
10 | import pytest
11 |
12 | pytestmark = [pytest.mark.dual_band_tests, pytest.mark.nat,
13 | pytest.mark.single_station_dual_band_throughput]
14 | setup_params_general = {
15 | "mode": "NAT",
16 | "ssid_modes": {
17 | "wpa": [
18 | {"ssid_name": "ssid_wpa_personal_dual_band", "appliedRadios": ["2G", "5G"], "security_key": "something"}
19 | ]},
20 | "rf": {},
21 | "radius": False
22 | }
23 |
24 |
25 | @pytest.mark.dual_band_tests
26 | @pytest.mark.wifi5
27 | @pytest.mark.wifi6
28 | @pytest.mark.parametrize(
29 | 'setup_configuration',
30 | [setup_params_general],
31 | indirect=True,
32 | scope="class"
33 | )
34 | @allure.parent_suite("Dual Band Tests")
35 | @allure.suite("Dual Band Tests: NAT mode")
36 | @allure.sub_suite("wpa security")
37 | @allure.feature("Dual band performance test")
38 | @pytest.mark.usefixtures("setup_configuration")
39 | class TestWpaDualbandPerformanceNat(object):
40 | """
41 | pytest -m "performance and dual_band_tests and nat and wpa_personal and twog and fiveg"
42 | """
43 |
44 | @allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-3726", name="WIFI-3726")
45 | @pytest.mark.wpa
46 | @pytest.mark.twog
47 | @pytest.mark.fiveg
48 | @allure.title("Test Dual Band with ApAuto test of NAT mode")
49 | def test_client_wpa_personal_nat(self, get_test_library, setup_configuration, check_connectivity):
50 | """
51 | Dual Band Test with wpa encryption
52 | pytest -m "dual_band_tests and wpa"
53 | """
54 | profile_data = setup_params_general["ssid_modes"]["wpa"]
55 | ssid_2G, ssid_5G = profile_data[0]["ssid_name"], profile_data[0]["ssid_name"]
56 | dut_name = list(setup_configuration.keys())[0]
57 | mode = "NAT-WAN"
58 | vlan = 1
59 | dut_5g, dut_2g = "", ""
60 | influx_tags = "dual-band-bridge-wpa"
61 | for i in setup_configuration[dut_name]['ssid_data']:
62 | get_test_library.dut_idx_mapping[str(i)] = list(setup_configuration[dut_name]['ssid_data'][i].values())
63 | if get_test_library.dut_idx_mapping[str(i)][3] == "5G":
64 | dut_5g = dut_name + ' ' + get_test_library.dut_idx_mapping[str(i)][0] + ' ' + \
65 | get_test_library.dut_idx_mapping[str(i)][4]
66 | if get_test_library.dut_idx_mapping[str(i)][3] == "2G":
67 | dut_2g = dut_name + ' ' + get_test_library.dut_idx_mapping[str(i)][0] + ' ' + \
68 | get_test_library.dut_idx_mapping[str(i)][4]
69 |
70 | get_test_library.dual_band_performance_test(mode=mode, ssid_2G=ssid_2G, ssid_5G=ssid_5G, vlan_id=vlan,
71 | dut_5g=dut_5g, dut_2g=dut_2g, influx_tags=influx_tags,
72 | move_to_influx=False, dut_data=setup_configuration)
73 |
74 | assert True
75 |
--------------------------------------------------------------------------------
/tests/e2e/basic/performance_tests/dual_band_performance_test/wpa_personal/test_vlan_mode.py:
--------------------------------------------------------------------------------
1 | """
2 | Dual Band Performance Test : VLAN Mode
3 | pytest -m "performance and dual_band_tests and vlan"
4 |
5 |
6 | """
7 |
8 | import os
9 | import allure
10 | import pytest
11 |
12 | pytestmark = [pytest.mark.vlan, pytest.mark.dual_band_tests]
13 |
14 | setup_params_general = {
15 | "mode": "VLAN",
16 | "ssid_modes": {
17 | "wpa": [
18 | {"ssid_name": "ssid_wpa_personal_dual_band", "appliedRadios": ["2G", "5G"], "security_key": "something",
19 | "vlan": 100}
20 | ]},
21 | "rf": {},
22 | "radius": False
23 | }
24 |
25 |
26 | @pytest.mark.dual_band_tests
27 | @pytest.mark.wifi5
28 | @pytest.mark.wifi6
29 | @pytest.mark.parametrize(
30 | 'setup_configuration',
31 | [setup_params_general],
32 | indirect=True,
33 | scope="class"
34 | )
35 | @allure.parent_suite("Dual Band Tests")
36 | @allure.suite("Dual Band Tests: VLAN mode")
37 | @allure.sub_suite("wpa security")
38 | @allure.feature("Dual band performance test")
39 | @pytest.mark.usefixtures("setup_configuration")
40 | class TestWpaDualbandPerformanceVLAN(object):
41 | """
42 | pytest -m "performance and dual_band_tests and vlan and wpa_personal and twog and fiveg"
43 | """
44 |
45 | @allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-3726", name="WIFI-3726")
46 | @pytest.mark.wpa
47 | @pytest.mark.twog
48 | @pytest.mark.fiveg
49 | @allure.title("Test Dual Band with ApAuto test of VLAN mode")
50 | def test_client_wpa_personal_vlan(self, get_test_library, setup_configuration, check_connectivity):
51 | """
52 | Dual Band Test with wpa encryption
53 | pytest -m "dual_band_tests and wpa"
54 | """
55 | profile_data = setup_params_general["ssid_modes"]["wpa"]
56 | ssid_2G, ssid_5G = profile_data[0]["ssid_name"], profile_data[0]["ssid_name"]
57 | dut_name = list(setup_configuration.keys())[0]
58 | mode = "BRIDGE"
59 | vlan = [100]
60 | dut_5g, dut_2g = "", ""
61 | influx_tags = "dual-band-bridge-wpa"
62 | for i in setup_configuration[dut_name]['ssid_data']:
63 | get_test_library.dut_idx_mapping[str(i)] = list(setup_configuration[dut_name]['ssid_data'][i].values())
64 | if get_test_library.dut_idx_mapping[str(i)][3] == "5G":
65 | dut_5g = dut_name + ' ' + get_test_library.dut_idx_mapping[str(i)][0] + ' ' + \
66 | get_test_library.dut_idx_mapping[str(i)][4]
67 | if get_test_library.dut_idx_mapping[str(i)][3] == "2G":
68 | dut_2g = dut_name + ' ' + get_test_library.dut_idx_mapping[str(i)][0] + ' ' + \
69 | get_test_library.dut_idx_mapping[str(i)][4]
70 |
71 | get_test_library.dual_band_performance_test(mode=mode, ssid_2G=ssid_2G, ssid_5G=ssid_5G, vlan_id=vlan,
72 | dut_5g=dut_5g, dut_2g=dut_2g, influx_tags=influx_tags,
73 | move_to_influx=False, dut_data=setup_configuration)
74 |
75 | assert True
76 |
--------------------------------------------------------------------------------
/tests/e2e/basic/performance_tests/multi_station_throughput/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/basic/performance_tests/multi_station_throughput/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/basic/performance_tests/multi_station_throughput/wpa2_personal/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/basic/performance_tests/multi_station_throughput/wpa2_personal/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/basic/performance_tests/multi_station_throughput/wpa2_personal/bridge_mode/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/basic/performance_tests/multi_station_throughput/wpa2_personal/bridge_mode/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/basic/performance_tests/multi_station_throughput/wpa2_personal/nat_mode/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/basic/performance_tests/multi_station_throughput/wpa2_personal/nat_mode/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/basic/performance_tests/multi_station_throughput/wpa2_personal/vlan_mode/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/basic/performance_tests/multi_station_throughput/wpa2_personal/vlan_mode/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/basic/performance_tests/ofdma_test/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/basic/performance_tests/ofdma_test/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/basic/performance_tests/ofdma_test/wpa2_personal/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/basic/performance_tests/ofdma_test/wpa2_personal/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/basic/performance_tests/peak_throughput_tests/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/basic/performance_tests/peak_throughput_tests/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/basic/performance_tests/peak_throughput_tests/bridge_mode/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/basic/performance_tests/peak_throughput_tests/bridge_mode/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/basic/performance_tests/peak_throughput_tests/bridge_mode/wpa2_enterprise_encryption/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/basic/performance_tests/peak_throughput_tests/bridge_mode/wpa2_enterprise_encryption/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/basic/performance_tests/peak_throughput_tests/bridge_mode/wpa2_personal_encryption/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/basic/performance_tests/peak_throughput_tests/bridge_mode/wpa2_personal_encryption/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/basic/performance_tests/peak_throughput_tests/bridge_mode/wpa3_enterprise_encryption/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/basic/performance_tests/peak_throughput_tests/bridge_mode/wpa3_enterprise_encryption/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/basic/performance_tests/peak_throughput_tests/bridge_mode/wpa3_personal_encryption/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/basic/performance_tests/peak_throughput_tests/bridge_mode/wpa3_personal_encryption/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/basic/performance_tests/peak_throughput_tests/bridge_mode/wpa_encryption/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/basic/performance_tests/peak_throughput_tests/bridge_mode/wpa_encryption/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/basic/performance_tests/peak_throughput_tests/nat_mode/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/basic/performance_tests/peak_throughput_tests/nat_mode/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/basic/performance_tests/peak_throughput_tests/nat_mode/open_encryption/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/basic/performance_tests/peak_throughput_tests/nat_mode/open_encryption/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/basic/performance_tests/peak_throughput_tests/nat_mode/wpa2_enterprise_encryption/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/basic/performance_tests/peak_throughput_tests/nat_mode/wpa2_enterprise_encryption/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/basic/performance_tests/peak_throughput_tests/nat_mode/wpa2_personal_encryption/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/basic/performance_tests/peak_throughput_tests/nat_mode/wpa2_personal_encryption/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/basic/performance_tests/peak_throughput_tests/nat_mode/wpa3_enterprise_encryption/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/basic/performance_tests/peak_throughput_tests/nat_mode/wpa3_enterprise_encryption/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/basic/performance_tests/peak_throughput_tests/nat_mode/wpa3_personal_encryption/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/basic/performance_tests/peak_throughput_tests/nat_mode/wpa3_personal_encryption/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/basic/performance_tests/peak_throughput_tests/nat_mode/wpa_encryption/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/basic/performance_tests/peak_throughput_tests/nat_mode/wpa_encryption/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/basic/performance_tests/throughput_benchmark/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/basic/performance_tests/throughput_benchmark/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/basic/performance_tests/throughput_benchmark/tcp_udp_upstream_downstream_bidirection_throughput_test/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/basic/performance_tests/throughput_benchmark/tcp_udp_upstream_downstream_bidirection_throughput_test/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/basic/performance_tests/throughput_benchmark/tcp_udp_upstream_downstream_bidirection_throughput_test/wpa2_personal/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/basic/performance_tests/throughput_benchmark/tcp_udp_upstream_downstream_bidirection_throughput_test/wpa2_personal/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/basic/performance_tests/throughput_benchmark/throughput_across_channel_bw/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/basic/performance_tests/throughput_benchmark/throughput_across_channel_bw/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/basic/performance_tests/throughput_benchmark/throughput_vs_various_pkt_sizes/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/basic/performance_tests/throughput_benchmark/throughput_vs_various_pkt_sizes/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/basic/performance_tests/throughput_benchmark/throughput_vs_various_pkt_sizes/open_security/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/basic/performance_tests/throughput_benchmark/throughput_vs_various_pkt_sizes/open_security/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/basic/performance_tests/throughput_benchmark/throughput_vs_various_pkt_sizes/wpa2_security/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/basic/performance_tests/throughput_benchmark/throughput_vs_various_pkt_sizes/wpa2_security/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/basic/performance_tests/throughput_benchmark/throughput_vs_various_pkt_sizes/wpa3_security/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/basic/performance_tests/throughput_benchmark/throughput_vs_various_pkt_sizes/wpa3_security/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/basic/performance_tests/throughput_benchmark/throughput_vs_various_pkt_sizes/wpa_security/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/basic/performance_tests/throughput_benchmark/throughput_vs_various_pkt_sizes/wpa_security/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/basic/schema_validation/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/basic/schema_validation/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/basic/strict_forwarding/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/basic/strict_forwarding/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/basic/strict_forwarding/wpa2_personal/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/basic/strict_forwarding/wpa2_personal/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/basic/test_firmware.py:
--------------------------------------------------------------------------------
1 | # """
2 | # Test Case Module: setup test cases for basic test cases
3 | # Details: Firmware Upgrade
4 | #
5 | # """
6 | # import allure
7 | # import pytest
8 | #
9 | # pytestmark = [pytest.mark.firmware, pytest.mark.sanity, pytest.mark.sanity_light,
10 | # pytest.mark.usefixtures("setup_test_run")]
11 | #
12 | #
13 | # @allure.testcase("firmware upgrade from Cloud")
14 | # @pytest.mark.firmware_cloud
15 | # class TestFirmware(object):
16 | #
17 | # @pytest.mark.firmware_create
18 | # def test_firmware_create(self, upload_firmware, update_report, test_cases):
19 | # if upload_firmware != 0:
20 | # PASS = True
21 | # else:
22 | # PASS = False
23 | # assert PASS
24 | #
25 | # @pytest.mark.firmware_upgrade
26 | # def test_firmware_upgrade_request(self, upgrade_firmware, update_report, test_cases):
27 | # print(upgrade_firmware)
28 | # if not upgrade_firmware:
29 | # PASS = False
30 | # else:
31 | # PASS = True
32 | # assert PASS
33 | #
34 | # @pytest.mark.check_active_firmware_cloud
35 | # def test_active_version_cloud(self, get_latest_firmware, get_equipment_ref, setup_controller,
36 | # update_report, test_cases):
37 | # ap_fw_list = []
38 | # for i in get_equipment_ref:
39 | # ap_fw_list.append(setup_controller.get_ap_firmware_old_method(equipment_id=i))
40 | #
41 | # assert get_latest_firmware == ap_fw_list
42 | #
43 | #
44 | # @pytest.mark.firmware_ap
45 | # def test_ap_firmware(get_configuration, get_apnos, get_latest_firmware, update_report,
46 | # test_cases):
47 | # """yields the active version of firmware on ap"""
48 | # active_fw_list = []
49 | # try:
50 | # for access_point in get_configuration['access_point']:
51 | # ap_ssh = get_apnos(access_point, sdk="1.x")
52 | # active_fw = ap_ssh.get_active_firmware()
53 | # active_fw_list.append(active_fw)
54 | # except Exception as e:
55 | # print(e)
56 | # active_fw_list = []
57 | # assert active_fw_list == get_latest_firmware
58 |
--------------------------------------------------------------------------------
/tests/e2e/basic/validation_of_operating_modes/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/basic/validation_of_operating_modes/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/basic/validation_of_operating_modes/bridge_mode/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/basic/validation_of_operating_modes/bridge_mode/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/basic/validation_of_operating_modes/bridge_mode/client_connectivity/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/basic/validation_of_operating_modes/bridge_mode/client_connectivity/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/basic/validation_of_operating_modes/bridge_mode/dual_stack/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/basic/validation_of_operating_modes/bridge_mode/dual_stack/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/basic/validation_of_operating_modes/bridge_mode/multi_psk/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/basic/validation_of_operating_modes/bridge_mode/multi_psk/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/basic/validation_of_operating_modes/bridge_mode/multi_psk/wpa2_security/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/basic/validation_of_operating_modes/bridge_mode/multi_psk/wpa2_security/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/basic/validation_of_operating_modes/bridge_mode/multi_psk/wpa_security/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/basic/validation_of_operating_modes/bridge_mode/multi_psk/wpa_security/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/basic/validation_of_operating_modes/bridge_mode/rate_limiting/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/basic/validation_of_operating_modes/bridge_mode/rate_limiting/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/basic/validation_of_operating_modes/bridge_mode/rate_limiting_with_radius/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/basic/validation_of_operating_modes/bridge_mode/rate_limiting_with_radius/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/basic/validation_of_operating_modes/client_isolation/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/basic/validation_of_operating_modes/client_isolation/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/basic/validation_of_operating_modes/country_code_channel_division/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/basic/validation_of_operating_modes/country_code_channel_division/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/basic/validation_of_operating_modes/country_code_channel_division/country_code_CA/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/basic/validation_of_operating_modes/country_code_channel_division/country_code_CA/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/basic/validation_of_operating_modes/country_code_channel_division/country_code_CA/channel_width_20Mhz/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/basic/validation_of_operating_modes/country_code_channel_division/country_code_CA/channel_width_20Mhz/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/basic/validation_of_operating_modes/country_code_channel_division/country_code_CA/channel_width_20Mhz/fiveg_band/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/basic/validation_of_operating_modes/country_code_channel_division/country_code_CA/channel_width_20Mhz/fiveg_band/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/basic/validation_of_operating_modes/country_code_channel_division/country_code_CA/channel_width_20Mhz/twog_band/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/basic/validation_of_operating_modes/country_code_channel_division/country_code_CA/channel_width_20Mhz/twog_band/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/basic/validation_of_operating_modes/country_code_channel_division/country_code_CA/channel_width_40Mhz/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/basic/validation_of_operating_modes/country_code_channel_division/country_code_CA/channel_width_40Mhz/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/basic/validation_of_operating_modes/country_code_channel_division/country_code_CA/channel_width_40Mhz/fiveg_band/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/basic/validation_of_operating_modes/country_code_channel_division/country_code_CA/channel_width_40Mhz/fiveg_band/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/basic/validation_of_operating_modes/country_code_channel_division/country_code_CA/channel_width_40Mhz/twog_band/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/basic/validation_of_operating_modes/country_code_channel_division/country_code_CA/channel_width_40Mhz/twog_band/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/basic/validation_of_operating_modes/country_code_channel_division/country_code_CA/channel_width_80Mhz/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/basic/validation_of_operating_modes/country_code_channel_division/country_code_CA/channel_width_80Mhz/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/basic/validation_of_operating_modes/country_code_channel_division/country_code_CA/channel_width_80Mhz/fiveg_band/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/basic/validation_of_operating_modes/country_code_channel_division/country_code_CA/channel_width_80Mhz/fiveg_band/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/basic/validation_of_operating_modes/country_code_channel_division/country_code_GB/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/basic/validation_of_operating_modes/country_code_channel_division/country_code_GB/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/basic/validation_of_operating_modes/country_code_channel_division/country_code_GB/channel_width_20Mhz/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/basic/validation_of_operating_modes/country_code_channel_division/country_code_GB/channel_width_20Mhz/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/basic/validation_of_operating_modes/country_code_channel_division/country_code_GB/channel_width_20Mhz/fiveg_band/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/basic/validation_of_operating_modes/country_code_channel_division/country_code_GB/channel_width_20Mhz/fiveg_band/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/basic/validation_of_operating_modes/country_code_channel_division/country_code_GB/channel_width_20Mhz/twog_band/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/basic/validation_of_operating_modes/country_code_channel_division/country_code_GB/channel_width_20Mhz/twog_band/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/basic/validation_of_operating_modes/country_code_channel_division/country_code_GB/channel_width_40Mhz/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/basic/validation_of_operating_modes/country_code_channel_division/country_code_GB/channel_width_40Mhz/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/basic/validation_of_operating_modes/country_code_channel_division/country_code_GB/channel_width_40Mhz/fiveg_band/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/basic/validation_of_operating_modes/country_code_channel_division/country_code_GB/channel_width_40Mhz/fiveg_band/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/basic/validation_of_operating_modes/country_code_channel_division/country_code_GB/channel_width_40Mhz/twog_band/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/basic/validation_of_operating_modes/country_code_channel_division/country_code_GB/channel_width_40Mhz/twog_band/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/basic/validation_of_operating_modes/country_code_channel_division/country_code_GB/channel_width_80Mhz/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/basic/validation_of_operating_modes/country_code_channel_division/country_code_GB/channel_width_80Mhz/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/basic/validation_of_operating_modes/country_code_channel_division/country_code_GB/channel_width_80Mhz/fiveg_band/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/basic/validation_of_operating_modes/country_code_channel_division/country_code_GB/channel_width_80Mhz/fiveg_band/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/basic/validation_of_operating_modes/country_code_channel_division/country_code_IN/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/basic/validation_of_operating_modes/country_code_channel_division/country_code_IN/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/basic/validation_of_operating_modes/country_code_channel_division/country_code_IN/channel_width_20Mhz/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/basic/validation_of_operating_modes/country_code_channel_division/country_code_IN/channel_width_20Mhz/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/basic/validation_of_operating_modes/country_code_channel_division/country_code_IN/channel_width_20Mhz/fiveg_band/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/basic/validation_of_operating_modes/country_code_channel_division/country_code_IN/channel_width_20Mhz/fiveg_band/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/basic/validation_of_operating_modes/country_code_channel_division/country_code_IN/channel_width_20Mhz/twog_band/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/basic/validation_of_operating_modes/country_code_channel_division/country_code_IN/channel_width_20Mhz/twog_band/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/basic/validation_of_operating_modes/country_code_channel_division/country_code_IN/channel_width_40Mhz/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/basic/validation_of_operating_modes/country_code_channel_division/country_code_IN/channel_width_40Mhz/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/basic/validation_of_operating_modes/country_code_channel_division/country_code_IN/channel_width_40Mhz/fiveg_band/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/basic/validation_of_operating_modes/country_code_channel_division/country_code_IN/channel_width_40Mhz/fiveg_band/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/basic/validation_of_operating_modes/country_code_channel_division/country_code_IN/channel_width_40Mhz/twog_band/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/basic/validation_of_operating_modes/country_code_channel_division/country_code_IN/channel_width_40Mhz/twog_band/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/basic/validation_of_operating_modes/country_code_channel_division/country_code_IN/channel_width_80Mhz/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/basic/validation_of_operating_modes/country_code_channel_division/country_code_IN/channel_width_80Mhz/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/basic/validation_of_operating_modes/country_code_channel_division/country_code_IN/channel_width_80Mhz/fiveg_band/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/basic/validation_of_operating_modes/country_code_channel_division/country_code_IN/channel_width_80Mhz/fiveg_band/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/basic/validation_of_operating_modes/country_code_channel_division/country_code_JP/__init__.py:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/tests/e2e/basic/validation_of_operating_modes/country_code_channel_division/country_code_JP/channel_width_20Mhz/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/basic/validation_of_operating_modes/country_code_channel_division/country_code_JP/channel_width_20Mhz/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/basic/validation_of_operating_modes/country_code_channel_division/country_code_JP/channel_width_20Mhz/fiveg_band/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/basic/validation_of_operating_modes/country_code_channel_division/country_code_JP/channel_width_20Mhz/fiveg_band/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/basic/validation_of_operating_modes/country_code_channel_division/country_code_JP/channel_width_20Mhz/twog_band/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/basic/validation_of_operating_modes/country_code_channel_division/country_code_JP/channel_width_20Mhz/twog_band/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/basic/validation_of_operating_modes/country_code_channel_division/country_code_JP/channel_width_40Mhz/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/basic/validation_of_operating_modes/country_code_channel_division/country_code_JP/channel_width_40Mhz/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/basic/validation_of_operating_modes/country_code_channel_division/country_code_JP/channel_width_40Mhz/fiveg_band/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/basic/validation_of_operating_modes/country_code_channel_division/country_code_JP/channel_width_40Mhz/fiveg_band/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/basic/validation_of_operating_modes/country_code_channel_division/country_code_JP/channel_width_40Mhz/twog_band/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/basic/validation_of_operating_modes/country_code_channel_division/country_code_JP/channel_width_40Mhz/twog_band/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/basic/validation_of_operating_modes/country_code_channel_division/country_code_JP/channel_width_80Mhz/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/basic/validation_of_operating_modes/country_code_channel_division/country_code_JP/channel_width_80Mhz/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/basic/validation_of_operating_modes/country_code_channel_division/country_code_JP/channel_width_80Mhz/fiveg_band/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/basic/validation_of_operating_modes/country_code_channel_division/country_code_JP/channel_width_80Mhz/fiveg_band/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/basic/validation_of_operating_modes/country_code_channel_division/country_code_US/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/basic/validation_of_operating_modes/country_code_channel_division/country_code_US/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/basic/validation_of_operating_modes/country_code_channel_division/country_code_US/channel_width_20Mhz/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/basic/validation_of_operating_modes/country_code_channel_division/country_code_US/channel_width_20Mhz/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/basic/validation_of_operating_modes/country_code_channel_division/country_code_US/channel_width_20Mhz/fiveg_band/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/basic/validation_of_operating_modes/country_code_channel_division/country_code_US/channel_width_20Mhz/fiveg_band/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/basic/validation_of_operating_modes/country_code_channel_division/country_code_US/channel_width_20Mhz/twog_band/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/basic/validation_of_operating_modes/country_code_channel_division/country_code_US/channel_width_20Mhz/twog_band/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/basic/validation_of_operating_modes/country_code_channel_division/country_code_US/channel_width_80Mhz/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/basic/validation_of_operating_modes/country_code_channel_division/country_code_US/channel_width_80Mhz/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/basic/validation_of_operating_modes/country_code_channel_division/country_code_US/channel_width_80Mhz/fiveg_band/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/basic/validation_of_operating_modes/country_code_channel_division/country_code_US/channel_width_80Mhz/fiveg_band/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/basic/validation_of_operating_modes/max_ssid/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/basic/validation_of_operating_modes/max_ssid/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/basic/validation_of_operating_modes/nat_mode/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/basic/validation_of_operating_modes/nat_mode/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/basic/validation_of_operating_modes/nat_mode/client_connectivity/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/basic/validation_of_operating_modes/nat_mode/client_connectivity/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/basic/validation_of_operating_modes/nat_mode/dual_stack/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/basic/validation_of_operating_modes/nat_mode/dual_stack/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/basic/validation_of_operating_modes/nat_mode/multi_psk/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/basic/validation_of_operating_modes/nat_mode/multi_psk/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/basic/validation_of_operating_modes/nat_mode/multi_psk/wpa2_security/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/basic/validation_of_operating_modes/nat_mode/multi_psk/wpa2_security/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/basic/validation_of_operating_modes/nat_mode/multi_psk/wpa_security/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/basic/validation_of_operating_modes/nat_mode/multi_psk/wpa_security/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/basic/validation_of_operating_modes/nat_mode/rate_limiting/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/basic/validation_of_operating_modes/nat_mode/rate_limiting/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/basic/validation_of_operating_modes/vlan_mode/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/basic/validation_of_operating_modes/vlan_mode/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/basic/validation_of_operating_modes/vlan_mode/client_connectivity/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/basic/validation_of_operating_modes/vlan_mode/client_connectivity/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/basic/validation_of_operating_modes/vlan_mode/dual_stack/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/basic/validation_of_operating_modes/vlan_mode/dual_stack/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/basic/validation_of_operating_modes/vlan_mode/dynamic_vlan/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/basic/validation_of_operating_modes/vlan_mode/dynamic_vlan/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/basic/validation_of_operating_modes/vlan_mode/dynamic_vlan/wpa2_enterprise/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/basic/validation_of_operating_modes/vlan_mode/dynamic_vlan/wpa2_enterprise/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/basic/validation_of_operating_modes/vlan_mode/dynamic_vlan/wpa2_enterprise/fiveg/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/basic/validation_of_operating_modes/vlan_mode/dynamic_vlan/wpa2_enterprise/fiveg/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/basic/validation_of_operating_modes/vlan_mode/dynamic_vlan/wpa2_enterprise/twog/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/basic/validation_of_operating_modes/vlan_mode/dynamic_vlan/wpa2_enterprise/twog/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/basic/validation_of_operating_modes/vlan_mode/dynamic_vlan/wpa3_enterprise/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/basic/validation_of_operating_modes/vlan_mode/dynamic_vlan/wpa3_enterprise/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/basic/validation_of_operating_modes/vlan_mode/dynamic_vlan/wpa3_enterprise/fiveg/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/basic/validation_of_operating_modes/vlan_mode/dynamic_vlan/wpa3_enterprise/fiveg/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/basic/validation_of_operating_modes/vlan_mode/dynamic_vlan/wpa3_enterprise/sixg/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/basic/validation_of_operating_modes/vlan_mode/dynamic_vlan/wpa3_enterprise/sixg/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/basic/validation_of_operating_modes/vlan_mode/dynamic_vlan/wpa3_enterprise/twog/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/basic/validation_of_operating_modes/vlan_mode/dynamic_vlan/wpa3_enterprise/twog/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/basic/validation_of_operating_modes/vlan_mode/multi_psk/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/basic/validation_of_operating_modes/vlan_mode/multi_psk/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/basic/validation_of_operating_modes/vlan_mode/multi_vlan/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/basic/validation_of_operating_modes/vlan_mode/multi_vlan/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/basic/validation_of_operating_modes/vlan_mode/rate_limiting/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/basic/validation_of_operating_modes/vlan_mode/rate_limiting/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/interOp/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/interOp/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/interOp/conftest.py:
--------------------------------------------------------------------------------
1 | import allure
2 | import pytest
3 | import logging
4 |
5 | @pytest.fixture(scope="class")
6 | def setup_configuration(request, get_markers, get_target_object, run_lf):
7 | # Predefined selected markers and selected configuration
8 |
9 | conf = dict(request.param)
10 | configuration = conf.copy()
11 | requested_combination = []
12 | for key in get_markers:
13 | if get_markers[key]:
14 | requested_combination.append(get_markers[key])
15 |
16 | # Method to setup the basic configuration
17 | data = {}
18 | if not run_lf:
19 | data = get_target_object.setup_basic_configuration(configuration=configuration,
20 | requested_combination=requested_combination)
21 | logging.info("dut_data after config applied: " + str(data))
22 | yield data
23 |
24 | @pytest.fixture(scope="class")
25 | def setup_open_roaming_configuration(request, get_markers, get_target_object, run_lf):
26 | # Predefined selected markers and selected configuration
27 |
28 | conf = dict(request.param)
29 | configuration = conf.copy()
30 | requested_combination = []
31 | for key in get_markers:
32 | if get_markers[key]:
33 | requested_combination.append(get_markers[key])
34 |
35 | # Method to setup the basic configuration
36 | data = {}
37 | if not run_lf:
38 | data = get_target_object.setup_basic_configuration(configuration=configuration, requested_combination=
39 | requested_combination, open_roaming=True)
40 | logging.info("dut_data after config applied: " + str(data))
41 | yield data
--------------------------------------------------------------------------------
/tests/e2e/interOp/openroaming_test/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/interOp/openroaming_test/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/interOp/openroaming_test/test_openroaming_bridge.py:
--------------------------------------------------------------------------------
1 | """
2 | Dummy Testcase for checking
3 | Client Connect : BRIDGE Mode
4 | pytest -m "client_connect_tests and nat and enterprise"
5 |
6 | """
7 | import logging
8 | import random
9 | import string
10 | import time
11 |
12 | import allure
13 | import pytest
14 |
15 | pytestmark = [pytest.mark.open_roaming, pytest.mark.bridge, pytest.mark.enterprise]
16 |
17 | setup_params_enterprise_two_br = {
18 | "mode": "BRIDGE",
19 | "ssid_modes": {
20 | "open": [{"ssid_name": "pass_point", "appliedRadios": ["5G"]}],
21 | "wpa_wpa2_enterprise_mixed": [
22 | {"ssid_name": "wpa_wpa2_eap_2g", "appliedRadios": ["2G"]},
23 | {"ssid_name": "Meta_secure", "appliedRadios": ["5G"]}],
24 | "wpa3_enterprise_mixed": [
25 | {"ssid_name": "wpa3_m_eap_2g", "appliedRadios": ["2G"]},
26 | {"ssid_name": "wpa3_m_eap_5g", "appliedRadios": ["5G"]}]
27 | },
28 | "rf": {},
29 | "radius": True
30 | }
31 | @allure.feature("BRIDGE MODE CLIENT CONNECT")
32 | @allure.parent_suite("Client Connect Tests")
33 | @allure.suite(suite_name="BRIDGE Mode")
34 | @allure.sub_suite(sub_suite_name="Enterprise security mode Client Connect")
35 | @pytest.mark.parametrize(
36 | 'setup_open_roaming_configuration',
37 | [setup_params_enterprise_two_br],
38 | indirect=True,
39 | scope="class"
40 | )
41 | @pytest.mark.usefixtures("setup_open_roaming_configuration")
42 | class TestBridgeModeConnectSuiteTwo(object):
43 | @pytest.mark.wpa_wpa2_enterprise_mixed
44 | @pytest.mark.fiveg
45 | @allure.story('wpa_wpa2_enterprise_mixed 5 GHZ Band')
46 | @pytest.mark.usefixtures("setup_open_roaming_configuration")
47 | @allure.title("BRIDGE Mode Client Connect Test with wpa_wpa2_enterprise_mixed encryption 5 GHz Band")
48 | @allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-4572", name="JIRA LINK")
49 | def test_bridge_wpa_wpa2_eap_mixed_5g_client_connect(self,
50 | num_stations, setup_open_roaming_configuration):
51 | print("1.Config:", setup_open_roaming_configuration)
52 | assert True
53 |
--------------------------------------------------------------------------------
/tests/e2e/interOp/validation_of_operating_modes/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/interOp/validation_of_operating_modes/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/interOp/validation_of_operating_modes/bridge_mode/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/interOp/validation_of_operating_modes/bridge_mode/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/interOp/validation_of_operating_modes/bridge_mode/client_connect_test/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/interOp/validation_of_operating_modes/bridge_mode/client_connect_test/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/interOp/validation_of_operating_modes/bridge_mode/rate_limiting/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/interOp/validation_of_operating_modes/bridge_mode/rate_limiting/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/interOp/validation_of_operating_modes/bridge_mode/toggle_airplane_mode_test/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/interOp/validation_of_operating_modes/bridge_mode/toggle_airplane_mode_test/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/interOp/validation_of_operating_modes/bridge_mode/toggle_wifi_mode_test/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/interOp/validation_of_operating_modes/bridge_mode/toggle_wifi_mode_test/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/interOp/validation_of_operating_modes/nat_mode/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/interOp/validation_of_operating_modes/nat_mode/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/interOp/validation_of_operating_modes/nat_mode/client_connect_test/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/interOp/validation_of_operating_modes/nat_mode/client_connect_test/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/interOp/validation_of_operating_modes/nat_mode/rate_limiting/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/interOp/validation_of_operating_modes/nat_mode/rate_limiting/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/interOp/validation_of_operating_modes/nat_mode/toggle_airplane_mode_test/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/interOp/validation_of_operating_modes/nat_mode/toggle_airplane_mode_test/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/interOp/validation_of_operating_modes/nat_mode/toggle_wifi_mode_test/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/interOp/validation_of_operating_modes/nat_mode/toggle_wifi_mode_test/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/interOp/validation_of_operating_modes/vlan_mode/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/interOp/validation_of_operating_modes/vlan_mode/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/interOp/validation_of_operating_modes/vlan_mode/client_connect_test/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/interOp/validation_of_operating_modes/vlan_mode/client_connect_test/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/interOp/validation_of_operating_modes/vlan_mode/rate_limiting/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/interOp/validation_of_operating_modes/vlan_mode/rate_limiting/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/interOp/validation_of_operating_modes/vlan_mode/toggle_airplane_mode_test/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/interOp/validation_of_operating_modes/vlan_mode/toggle_airplane_mode_test/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/interOp/validation_of_operating_modes/vlan_mode/toggle_wifi_mode_test/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/interOp/validation_of_operating_modes/vlan_mode/toggle_wifi_mode_test/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/mdu/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/mdu/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/mdu/conftest.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/mdu/conftest.py
--------------------------------------------------------------------------------
/tests/e2e/mesh/Mesh/test_mesh_bridge.py:
--------------------------------------------------------------------------------
1 | import pytest
2 | import allure
3 | import os
4 |
5 | pytestmark = [pytest.mark.mesh, pytest.mark.bridge]
6 |
7 | setup_params_general = {
8 | "mode": "BRIDGE",
9 | "ssid_modes": {
10 | "wpa2_personal": [
11 | {"ssid_name": "ssid_wpa2_5g_1", "appliedRadios": ["5G"], "security_key": "something"},
12 | {"ssid_name": "ssid_wpa2_2g_1", "appliedRadios": ["2G"], "security_key": "something"}
13 | ]
14 | },
15 | "mesh": "yes",
16 | "rf": {},
17 | "radius": False
18 | }
19 |
20 |
21 | @allure.feature("MESH BASIC")
22 | # @pytest.mark.parametrize(
23 | # 'setup_mesh_profile_fix',
24 | # [setup_params_general],
25 | # indirect=True,
26 | # scope="class"
27 | # )
28 | # @pytest.mark.usefixtures("setup_configuration")
29 | class TestMesh(object):
30 |
31 | @pytest.mark.wpa2_personal
32 | def testmesh_2g(self):
33 | raw_lines = [['selected_dut2: tip-node-2 ssid_wpa2_2g_1 90:3c:b3:9d:69:2f (2)'], ['selected_dut5: tip-node-2 ssid_wpa2_5g_1 90:3c:b3:9d:69:2e (1)'], ['sta_amount-2: 2'], ['radios-2-0: 1.4.6 wiphy0'],
34 | ['ap_arrangements: Current Position'], ['sta_position: Current Position'],['chamber-0: RootAP'],['chamber-1: Node1'],
35 | ['chamber-2: Node2'],['chamber-4: MobileStations'],
36 | ['path: Orbit Current'], ['traffic_types: TCP'], ['direction: Both'], ['tests: Throughput'], ['traf_combo: N2'],
37 | ["skip_dhcp: 1"], ["skip_5: 1"] ]
38 |
39 | # mesh_o = lf_test.mesh_test(instance_name="test_mesh1_1", raw_lines=raw_lines,duration="5m")
40 | # report_name = mesh_o.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1]
41 | # print("report name ", report_name)
42 | # entries = os.listdir("../reports/" + report_name + '/')
43 | # print("entries", entries)
44 | # lf_tools.attach_report_graphs(report_name=report_name, pdf_name="Basic Mesh Test")
45 |
46 | assert True
47 |
--------------------------------------------------------------------------------
/tests/e2e/mesh/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/mesh/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/scale/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/scale/__init__.py
--------------------------------------------------------------------------------
/tests/e2e/scale/conftest.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/e2e/scale/conftest.py
--------------------------------------------------------------------------------
/tests/kafka_tests/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/kafka_tests/__init__.py
--------------------------------------------------------------------------------
/tests/kafka_tests/ap_events/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Telecominfraproject/wlan-testing/ae0fb31623c5b1c93d82d6d6ba4cc94771a07d92/tests/kafka_tests/ap_events/__init__.py
--------------------------------------------------------------------------------
/tests/kafka_tests/ap_events/test-config.json:
--------------------------------------------------------------------------------
1 | {
2 | "uuid": 2,
3 | "radios": [
4 | {
5 | "band": "5G",
6 | "channel": 52,
7 | "channel-mode": "HE",
8 | "channel-width": 80,
9 | "country": "CA"
10 | },
11 | {
12 | "band": "2G",
13 | "channel": 11,
14 | "channel-mode": "HE",
15 | "channel-width": 20,
16 | "country": "CA"
17 | }
18 | ],
19 | "interfaces": [
20 | {
21 | "name": "WAN",
22 | "role": "upstream",
23 | "services": [ "lldp", "dhcp-snooping" ],
24 | "ethernet": [
25 | {
26 | "select-ports": [
27 | "WAN*"
28 | ]
29 | }
30 | ],
31 | "ipv4": {
32 | "addressing": "dynamic"
33 | },
34 | "ssids": [
35 | {
36 | "name": "OpenWifi",
37 | "wifi-bands": [
38 | "2G", "5G"
39 | ],
40 | "bss-mode": "ap",
41 | "encryption": {
42 | "proto": "psk2",
43 | "key": "OpenWifi@123",
44 | "ieee80211w": "optional"
45 | }
46 | }
47 | ]
48 | },
49 | {
50 | "name": "LAN",
51 | "role": "downstream",
52 | "services": [ "ssh", "lldp" ],
53 | "ethernet": [
54 | {
55 | "select-ports": [
56 | "LAN*"
57 | ]
58 | }
59 | ],
60 | "ipv4": {
61 | "addressing": "static",
62 | "subnet": "192.168.1.1/24",
63 | "dhcp": {
64 | "lease-first": 10,
65 | "lease-count": 100,
66 | "lease-time": "6h"
67 | }
68 | }
69 | }
70 | ],
71 | "metrics": {
72 | "statistics": {
73 | "interval": 120,
74 | "types": [ "ssids", "lldp", "clients" ]
75 | },
76 | "dhcp-snooping": {
77 | "filters": [ "ack", "discover", "offer", "request", "solicit", "reply", "renew" ]
78 | },
79 | "wifi-frames": {
80 | "filters": [ "probe", "auth", "assoc", "disassoc", "deauth", "local-deauth", "inactive-deauth", "key-mismatch", "beacon-report", "radar-detected"]
81 | },
82 | "telemetry": {
83 | "interval": 15,
84 | "types": [ "ssh" ]
85 | },
86 | "realtime": {
87 | "types": [ "wifi.start"]
88 | },
89 | "health": {
90 | "interval": 120
91 | }
92 | },
93 | "services": {
94 | "lldp": {
95 | "describe": "uCentral",
96 | "location": "universe"
97 | },
98 | "ssh": {
99 | "port": 22
100 | }
101 | }
102 | }
--------------------------------------------------------------------------------
/tests/pyproject.toml:
--------------------------------------------------------------------------------
1 | [tool.pytest.ini_options]
2 | minversion = "6.0"
3 | addopts = "-ra -q"
4 | testpaths = [
5 | "tests",
6 | "integration",
7 | ]
8 |
--------------------------------------------------------------------------------
/tests/setup.cfg:
--------------------------------------------------------------------------------
1 | # setup.cfg
2 | [tool:pytest]
3 | minversion = 6.0
4 | addopts = -ra -q
5 | testpaths =
6 | tests
7 | integration
--------------------------------------------------------------------------------
/tests/tox.ini:
--------------------------------------------------------------------------------
1 | # tox.ini
2 | [pytest]
3 | minversion = 6.0
4 | addopts = -ra -q
5 | testpaths =
6 | tests
7 | integration
--------------------------------------------------------------------------------
/tools/digicert-change-ap-redirector.sh:
--------------------------------------------------------------------------------
1 | # normalizes a MAC address by removing all non alphanumeric and uppercasing all characters
2 | function normalize_mac() {
3 | local mac=$1
4 | echo "$mac" | tr -d ":" | tr -d "-" | tr "[:lower:]" "[:upper:]"
5 | }
6 |
7 | DIGICERT_BASE_URL="https://one.digicert.com/iot/api/"
8 |
9 | set -e
10 |
11 | # Print usage
12 | if [ $# -lt 2 ]; then
13 | echo "Not enough arguments provided!"
14 | echo "This script changes the redirector URL for an AP identified by the provided MAC address."
15 | echo "Usage: $0 "
16 | echo "mac-address - the primary MAC address of your AP device"
17 | echo "redirector - the new redirector URL"
18 | exit 1
19 | fi
20 |
21 | mac="$(normalize_mac "$1")"
22 | redirector="$2"
23 |
24 | device_details=$(curl \
25 | --silent \
26 | --request GET "${DIGICERT_BASE_URL}v2/device?limit=1&device_identifier=${mac}" \
27 | --header "x-api-key: $DIGICERT_API_KEY" | jq --raw-output .records[0])
28 |
29 | device_id=$(echo "$device_details" | jq --raw-output .id)
30 | current_fields=$(echo "$device_details" | jq --raw-output .fields)
31 | new_fields=$(echo "$current_fields" | jq --raw-output "(.[] | select(.name == \"Redirector\") | .value) |= \"$redirector\"")
32 |
33 | curl \
34 | --request PUT "${DIGICERT_BASE_URL}v2/device/$device_id" \
35 | --header "x-api-key: $DIGICERT_API_KEY" -H "Content-Type: application/json" -d "{\"fields\":$new_fields}"
--------------------------------------------------------------------------------
/tools/scp_util.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python3
2 | import argparse
3 |
4 | import paramiko
5 | from scp import SCPClient
6 |
7 |
8 | class SCP_File:
9 | def __init__(self, ip="localhost", port=22, username="lanforge", password="lanforge", remote_path="/home/lanforge/",
10 | local_path="."):
11 | self.ip = ip
12 | self.port = port
13 | self.remote_path = remote_path
14 | self.local_path = local_path
15 | self.username = username
16 | self.password = password
17 |
18 | def pull_file(self):
19 | ssh = paramiko.SSHClient()
20 | ssh.load_system_host_keys()
21 | ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
22 | ssh.connect(hostname=self.ip, username=self.username, password=self.password, port=self.port, allow_agent=False,
23 | look_for_keys=False)
24 | # ssh.close()
25 |
26 | with SCPClient(ssh.get_transport()) as scp:
27 | scp.get(remote_path=self.remote_path, local_path=self.local_path, recursive=True)
28 | scp.close()
29 |
30 |
31 | def main():
32 | parser = argparse.ArgumentParser(prog="lf_utils",
33 | formatter_class=argparse.RawTextHelpFormatter,
34 | allow_abbrev=True,
35 | epilog="About lf_tools.py",
36 | description="Tools for LANforge System")
37 | parser.add_argument('--host', type=str, help=' --host : IP Address f LANforge System', default="localhost")
38 | parser.add_argument('--port', type=int, help='--passwd of dut', default=22)
39 | parser.add_argument('--username', type=str, help='--username to use on LANforge', default="lanforge")
40 | parser.add_argument('--password', type=str, help='--password to use on LANforge', default="lanforge")
41 | parser.add_argument('--remote_path', type=str, help='--password to the given username',
42 | default="/home/lanforge/lf_kinstall.pl")
43 | parser.add_argument('--local_path', type=str, help='--action to perform'
44 | 'reboot | run_cmd', default=".")
45 | args = parser.parse_args()
46 | lf_tools = SCP_File(ip=args.host, port=args.port,
47 | username=args.username, password=args.password,
48 | remote_path=args.remote_path, local_path=args.local_path)
49 | lf_tools.pull_file()
50 |
51 |
52 |
53 |
54 | if __name__ == '__main__':
55 | main()
56 |
--------------------------------------------------------------------------------