Files
wlan-testing/tests/conftest.py
jitendracandela bd97a51bf7 Wifi 1321 create a lan forge pip module (#745)
* Added rate-limiting in both android_test and ios_test

* Removed ow_sanity_lf marker

Signed-off-by: jitendracandela <jitendra.kushavah@candelatech.com>

* Added ow_sanity_lf marker

Signed-off-by: jitendracandela <jitendra.kushavah@candelatech.com>

* Removed ow_sanity_lf marker

Signed-off-by: jitendracandela <jitendra.kushavah@candelatech.com>

* Removed ow_sanity_lf marker

Signed-off-by: jitendracandela <jitendra.kushavah@candelatech.com>

* Added ow_sanity_lf marker

Signed-off-by: jitendracandela <jitendra.kushavah@candelatech.com>

* Added missing methods

Signed-off-by: jitendracandela <jitendra.kushavah@candelatech.com>

* Modified as per new framework

Signed-off-by: jitendracandela <jitendra.kushavah@candelatech.com>

* Added ow_sanity_lf marker for channel 11

Signed-off-by: jitendracandela <jitendra.kushavah@candelatech.com>

* Added rate-limiting test_cases

* added ow_sanity_lf marker to multipsk & multivlan tests

* Added allure_testcase-links for client_connect in validation_of_operating_modes(bridge,nat,vlan)

* Added ow_sanity_lf marker

* Removed unwanted  ow_sanity_lf marker

* allure suite and titles changed for mpsk & mvlan tests

Signed-off-by: anil-tegala <anil.tegala@candelatech.com>

* Added rate_limiting test_cases with jira links in validation_of_operating_mode(bridge,nat,vlan)

* Added rate_radius_info and rate_radius_accounting_info

Signed-off-by: jitendracandela <jitendra.kushavah@candelatech.com>

* Modified code for two test cases as per new infra

Signed-off-by: jitendracandela <jitendra.kushavah@candelatech.com>

* Addded radius_auth_data radius_acc_data

Signed-off-by: jitendracandela <jitendra.kushavah@candelatech.com>

* Added radius_auth_data and radius_acc_data for rate limiting with radius test cases

Signed-off-by: jitendracandela <jitendra.kushavah@candelatech.com>

* Added basic-07

Signed-off-by: jitendracandela <jitendra.kushavah@candelatech.com>

* Converted num station in int

Signed-off-by: jitendracandela <jitendra.kushavah@candelatech.com>

* Removed unnecessary interop testbed details from lab_info

Signed-off-by: haricharan-jaka <haricharan.jaka@candelatech.com>

* Added Enterprise cleint connect and client connectivity tests in Android

Signed-off-by: haricharan-jaka <haricharan.jaka@candelatech.com>

* Added Enterprise cleint connect and client connectivity tests in iOS

Signed-off-by: haricharan-jaka <haricharan.jaka@candelatech.com>

* Added new sanity marker for Interop testcases

Signed-off-by: haricharan-jaka <haricharan.jaka@candelatech.com>

* Added Enterprise mode client connect test cases in Interop

Signed-off-by: haricharan-jaka <haricharan.jaka@candelatech.com>

* Added random string addition in Interop testcases for setup profiles ssids

Signed-off-by: haricharan-jaka <haricharan.jaka@candelatech.com>

* Added random string addition in Interop testcases for setup profiles ssids

Signed-off-by: haricharan-jaka <haricharan.jaka@candelatech.com>

* changed WAN upstream port for interop testbeds

* Added the logic for retest the ucentral connectivity if it is disconnected

Signed-off-by: shivam <shivam.thakur@candelatech.com>

* Added NAT-WAN

Signed-off-by: jitendracandela <jitendra.kushavah@candelatech.com>

* gw - get commands api fix

* Removed sanity marker on vlan testcases

Signed-off-by: haricharan-jaka <haricharan.jaka@candelatech.com>

* FIxed issue in DFS

Signed-off-by: jitendracandela <jitendra.kushavah@candelatech.com>

* Changed allure report name for Enterprise mode

Signed-off-by: haricharan-jaka <haricharan.jaka@candelatech.com>

* Added Pytest exit in case of error when testbed data is not available

Signed-off-by: shivam <shivam.thakur@candelatech.com>

* Fixed the string concat from previous commit

Signed-off-by: shivam <shivam.thakur@candelatech.com>

* Added check_connectivity fixture on every client_connectivity and dfs test  case

Signed-off-by: shivam <shivam.thakur@candelatech.com>

* Made some bug fixes on testcases

Signed-off-by: haricharan-jaka <haricharan.jaka@candelatech.com>

* Changed profile data in testcases to match setup params

Signed-off-by: haricharan-jaka <haricharan.jaka@candelatech.com>

* Added new fix in manual pytest execution workflow as per master

Signed-off-by: haricharan-jaka <haricharan.jaka@candelatech.com>

* Added new fix in sanity workflow as per master

Signed-off-by: haricharan-jaka <haricharan.jaka@candelatech.com>

* Changed ssid names in setup params of general test cases

Signed-off-by: haricharan-jaka <haricharan.jaka@candelatech.com>

* Added Enterprise mode library support for wifi connect

Signed-off-by: haricharan-jaka <haricharan.jaka@candelatech.com>

* Removed Interop sanity marker from test connectivity file

Signed-off-by: haricharan-jaka <haricharan.jaka@candelatech.com>

* commented newly added methods for test connectivity

Signed-off-by: jitendracandela <jitendra.kushavah@candelatech.com>

* commented traffic_generator_connectivity

Signed-off-by: jitendracandela <jitendra.kushavah@candelatech.com>

* changed as new infra

Signed-off-by: jitendracandela <jitendra.kushavah@candelatech.com>

* Removed interop_uc_sanity

Signed-off-by: jitendracandela <jitendra.kushavah@candelatech.com>

* Removed marker description

Signed-off-by: jitendracandela <jitendra.kushavah@candelatech.com>

* Added needed step for S20,S10 for forget ssid

Signed-off-by: haricharan-jaka <haricharan.jaka@candelatech.com>

* Fixed the ap libs command for ucentral restart

Signed-off-by: shivam <shivam.thakur@candelatech.com>

* Added test controller connectivity

Signed-off-by: shivam <shivam.thakur@candelatech.com>

* Changed markers as per pytest.ini

Signed-off-by: jitendracandela <jitendra.kushavah@candelatech.com>

* Refractored dvlan

Signed-off-by: karthikaeyetea <karthika.subramani@candelatech.com>

* Added eth table and max station table in allure for test_traffic_generator_connectivity

Signed-off-by: jitendracandela <jitendra.kushavah@candelatech.com>

* changed scope of Interop testcase name fixture

Signed-off-by: haricharan-jaka <haricharan.jaka@candelatech.com>

* Added the fix for rate limiting test with vlans. Added Access Point connectivity Tests

Signed-off-by: shivam <shivam.thakur@candelatech.com>

* Changed scope of get test lib fixture

Signed-off-by: haricharan-jaka <haricharan.jaka@candelatech.com>

* Changed markers

Signed-off-by: jitendracandela <jitendra.kushavah@candelatech.com>

* Added run-lf condition in check_connectivity

Signed-off-by: jitendracandela <jitendra.kushavah@candelatech.com>

* Added test case in the library function of setup_perfecto mobile data

Signed-off-by: haricharan-jaka <haricharan.jaka@candelatech.com>

* Removed interop testcase name fixture

Signed-off-by: haricharan-jaka <haricharan.jaka@candelatech.com>

* Added new fail msg for Interop tests for better debugging

Signed-off-by: haricharan-jaka <haricharan.jaka@candelatech.com>

* Added fix for testcase name in setup perfecto data

Signed-off-by: haricharan-jaka <haricharan.jaka@candelatech.com>

* Added check_connectivity

Signed-off-by: jitendracandela <jitendra.kushavah@candelatech.com>

* Added ow_sanity_lf marker

Signed-off-by: jitendracandela <jitendra.kushavah@candelatech.com>

* Refractored DVLAN

Signed-off-by: karthikaeyetea <karthika.subramani@candelatech.com>

* Added lab_info.json back due to unexpected deletion

Signed-off-by: karthikaeyetea <karthika.subramani@candelatech.com>

* Added skip-all work with all test cases and removed the broken test cases

Signed-off-by: shivam <shivam.thakur@candelatech.com>

* Renoved the unwanted print for getting marker

Signed-off-by: shivam <shivam.thakur@candelatech.com>

* Provided vlan id in list

Signed-off-by: jitendracandela <jitendra.kushavah@candelatech.com>

* Added proper feature and parent suite

Signed-off-by: jitendracandela <jitendra.kushavah@candelatech.com>

* [WIFI-11228] Add: manual workflow step with details on namespace (#727)

Signed-off-by: Dmitry Dunaev <dmitry@opsfleet.com>

Signed-off-by: Dmitry Dunaev <dmitry@opsfleet.com>

* fixed incorrect security parameter in MVLAN test functions

Signed-off-by: anil-tegala <anil.tegala@candelatech.com>

* Added Comments on the Library Functions for Proper Understanding

Signed-off-by: haricharan-jaka <haricharan.jaka@candelatech.com>

* Added 6G RADIO Config data

Signed-off-by: shivam <shivam.thakur@candelatech.com>

* Removed the sync_repos.bash as it is not needed now

Signed-off-by: shivam <shivam.thakur@candelatech.com>

* Added proper suite, subsuite, parent suite, feature, title

Signed-off-by: jitendracandela <jitendra.kushavah@candelatech.com>

* Changed method name  wifi_capacity to rate_limiting_test

Signed-off-by: jitendracandela <jitendra.kushavah@candelatech.com>

* Refactored dvlan in wpa3_eap

Signed-off-by: karthikaeyetea <karthika.subramani@candelatech.com>

* old mvlan test files removed

Signed-off-by: anil-tegala <anil.tegala@candelatech.com>

* marker name corrections in SDK API tests

Signed-off-by: anil-tegala <anil.tegala@candelatech.com>

* descritpion and marker changes in mvlan tests

Signed-off-by: anil-tegala <anil.tegala@candelatech.com>

* Added suite,sub_suite,parent,feature for IN,RU,SG

Signed-off-by: karthikaeyetea <karthika.subramani@candelatech.com>

* Modified as per new freamework and enhanced allure and changed file name to dynamic qos

Signed-off-by: jitendracandela <jitendra.kushavah@candelatech.com>

* Changed country from CA to US

Signed-off-by: jitendracandela <jitendra.kushavah@candelatech.com>

* Added 6g in get_applied_ssid_info method

Signed-off-by: jitendracandela <jitendra.kushavah@candelatech.com>

* Changed manager ip to localhost

Signed-off-by: jitendracandela <jitendra.kushavah@candelatech.com>

* Added FMS Tests

Signed-off-by: shivam <shivam.thakur@candelatech.com>

* added basic-08 & advance-01 info for tunneling

Signed-off-by: anil-tegala <anil.tegala@candelatech.com>

* Added improvements around pass and fail for ap connectivity and added basic lab_info format

Signed-off-by: shivam <shivam.thakur@candelatech.com>

* Added proper feature, parent suite, suite, sub_suite and title

Signed-off-by: jitendracandela <jitendra.kushavah@candelatech.com>

* Added Toggle-Wifi Button Functionality for both android and ios tests file

Signed-off-by: tarun-candela <tarunkumar.madabathula@candelatech.com>

* Added toggle_wifi_mode test-cases for bridge,nat,vlan modes

Signed-off-by: tarun-candela <tarunkumar.madabathula@candelatech.com>

* Added fix for 2.4g based bssid band data

Signed-off-by: shivam <shivam.thakur@candelatech.com>

* rempved rate_limiting_tests marker

Signed-off-by: jitendracandela <jitendra.kushavah@candelatech.com>

* Refractored channel vs country code

* Corrected setup_basic_configuration

Signed-off-by: karthikaeyetea <karthika.subramani@candelatech.com>

* Added reports dir creation logic

Signed-off-by: jitendracandela <jitendra.kushavah@candelatech.com>

* vlan id's passed to test functions in mvlan

Signed-off-by: anil-tegala <anil.tegala@candelatech.com>

* removed security_key from open test case

Signed-off-by: jitendracandela <jitendra.kushavah@candelatech.com>

* Fixed scan ssid issue in vlan

Signed-off-by: jitendracandela <jitendra.kushavah@candelatech.com>

* Fixed scan ssid issue and wrong security issue

Signed-off-by: jitendracandela <jitendra.kushavah@candelatech.com>

* changed vlan id for test_disable_vlan_wpa2_2g test case

Signed-off-by: jitendracandela <jitendra.kushavah@candelatech.com>

* Changed dataplane_throughput_test marker to dataplane_tests

Signed-off-by: jitendracandela <jitendra.kushavah@candelatech.com>

* Changed password for controller

Signed-off-by: jitendracandela <jitendra.kushavah@candelatech.com>

* updated controller credentials in lab-info & tunnel_bash

Signed-off-by: anil-tegala <anil.tegala@candelatech.com>

* Fixed TypeError: can only concatenate str (not dict) to str issue

Signed-off-by: jitendracandela <jitendra.kushavah@candelatech.com>

* Changed parent_suite from OpenWifi Dynamic Vlan Test to Dynamic Vlan Test

Signed-off-by: jitendracandela <jitendra.kushavah@candelatech.com>

* Fix: resolved Pixel 4 scroll down issue, by modifying scrollDown() in android_libs.py

Signed-off-by: tarun-candela <tarunkumar.madabathula@candelatech.com>

* reverted old password in controller info

Signed-off-by: anil-tegala <anil.tegala@candelatech.com>

* IP validation  issue in DVLAN

Signed-off-by: karthikaeyetea <karthika.subramani@candelatech.com>

* Removed traffic_generator_connectivity test case and Modification for allure enhancement

Signed-off-by: jitendracandela <jitendra.kushavah@candelatech.com>

* Changed parent suite and suite

Signed-off-by: jitendracandela <jitendra.kushavah@candelatech.com>

* Renamed dynamic_qos_tests to rate_limiting_with_radius_tests

Signed-off-by: jitendracandela <jitendra.kushavah@candelatech.com>

* Changed parent suite to Throughput Benchmark Test

Signed-off-by: jitendracandela <jitendra.kushavah@candelatech.com>

* Added missing key_mgmt for wp3

Signed-off-by: jitendracandela <jitendra.kushavah@candelatech.com>

* key_mgmt issue in DVLAN-wpa3e

Signed-off-by: karthikaeyetea <karthika.subramani@candelatech.com>

* Added security markers

Signed-off-by: jitendracandela <jitendra.kushavah@candelatech.com>

* [WIFI-11619] Upd: Docker instructions update (#739)

Signed-off-by: Dmitry Dunaev <dmitry@opsfleet.com>

Signed-off-by: Dmitry Dunaev <dmitry@opsfleet.com>

* DVLAN admin_up issue

Signed-off-by: karthikaeyetea <karthika.subramani@candelatech.com>

* Added pk_passwd and num_stations

Signed-off-by: jitendracandela <jitendra.kushavah@candelatech.com>

* Added num_stations

Signed-off-by: jitendracandela <jitendra.kushavah@candelatech.com>

* Added num_stations, execution_number and In tls added pk_passwd argument

Signed-off-by: jitendracandela <jitendra.kushavah@candelatech.com>

* Added max stations

Signed-off-by: jitendracandela <jitendra.kushavah@candelatech.com>

* Added client_scale_tests

Signed-off-by: jitendracandela <jitendra.kushavah@candelatech.com>

* Added 6GHz test cases

Signed-off-by: jitendracandela <jitendra.kushavah@candelatech.com>

* Added new test channels

Signed-off-by: karthikaeyetea <karthika.subramani@candelatech.com>

* Added execution_number in parametrize

Signed-off-by: jitendracandela <jitendra.kushavah@candelatech.com>

* added new marker for general security mode testcases in Interop

Signed-off-by: haricharan-jaka <haricharan.jaka@candelatech.com>

* Changed one ssid with internet variable logic for Interop android

Signed-off-by: haricharan-jaka <haricharan.jaka@candelatech.com>

* Added proper feature, parent_suite, suite, sub_suite, title in allure report for client_scale_test and dataplane_throughput_test

Signed-off-by: jitendracandela <jitendra.kushavah@candelatech.com>

* Changed the teardown logic in android tests

Signed-off-by: haricharan-jaka <haricharan.jaka@candelatech.com>

* Added global devicemodel in teardown function of Android

Signed-off-by: haricharan-jaka <haricharan.jaka@candelatech.com>

* Added return statement for IP address

Signed-off-by: haricharan-jaka <haricharan.jaka@candelatech.com>

* Added return statement for IP address

Signed-off-by: haricharan-jaka <haricharan.jaka@candelatech.com>

* Changed ip addr of rate limiting radius server to 10.28.3.100

Signed-off-by: jitendracandela <jitendra.kushavah@candelatech.com>

* Changed ingress-rate to 10 and egress-rate to 5

Signed-off-by: jitendracandela <jitendra.kushavah@candelatech.com>

* Added pre-cleanup for deleting existing stations

Signed-off-by: jitendracandela <jitendra.kushavah@candelatech.com>

* [WIFI-11619] Fix: Docker example command

Signed-off-by: Dmitry Dunaev <dmitry@opsfleet.com>

* Changed RATE LIMITING RADIUS SERVER ip to 10.28.3.100

Signed-off-by: jitendracandela <jitendra.kushavah@candelatech.com>

* Added wpa personal and open bridge test cases for client scale test

Signed-off-by: jitendracandela <jitendra.kushavah@candelatech.com>

* Added Toggle Airplane Mode

* Added toggle airplane mode test-cases (NAT, VLAN)

Signed-off-by: karthikeyan <karthikeyan.thirumurthy@candelatech.com>

* Added toggle airplane mode functionality in perfecto library

Signed-off-by: karthikeyan <karthikeyan.thirumurthy@candelatech.com>

* Changed teardown func placement in android tests to accomodate perfecto report

Signed-off-by: haricharan-jaka <haricharan.jaka@candelatech.com>

* Refactored client-isolation test-cases

Signed-off-by: tarun-candela <tarunkumar.madabathula@candelatech.com>

* refactored multi-station performance test-cases

Signed-off-by: tarun-candela <tarunkumar.madabathula@candelatech.com>

* Added logic to setup_configuration_data() to support for multi-band combinations

Signed-off-by: tarun-candela <tarunkumar.madabathula@candelatech.com>

* allure attachments for client-isolation test_cases

Signed-off-by: tarun-candela <tarunkumar.madabathula@candelatech.com>

* [WIFI-11619] Fix: workflow dependencies

Signed-off-by: Dmitry Dunaev <dmitry@opsfleet.com>

* [WIFI-11619] Dbg: runtime user

Signed-off-by: Dmitry Dunaev <dmitry@opsfleet.com>

* [WIFI-11619] Chg: set files permissions

Signed-off-by: Dmitry Dunaev <dmitry@opsfleet.com>

* [WIFI-11619] Dbg: add step for status

Signed-off-by: Dmitry Dunaev <dmitry@opsfleet.com>

* Adjusted parameters in rate limiting for perfecto interop

Signed-off-by: jitendracandela <jitendra.kushavah@candelatech.com>

* [WIFI-11619] Add: git commit the changes

Signed-off-by: Dmitry Dunaev <dmitry@opsfleet.com>

* [WIFI-11619] Add: git commit the changes

Signed-off-by: Dmitry Dunaev <dmitry@opsfleet.com>

* [WIFI-11619] Add: git commit the changes

Signed-off-by: Dmitry Dunaev <dmitry@opsfleet.com>

* [WIFI-11619] Add: git commit the changes

Signed-off-by: Dmitry Dunaev <dmitry@opsfleet.com>

* [WIFI-11619] Add: git commit the changes

Signed-off-by: Dmitry Dunaev <dmitry@opsfleet.com>

* [WIFI-11619] Chg: GitHub Pages dir

Signed-off-by: Dmitry Dunaev <dmitry@opsfleet.com>

* [WIFI-11619] Chg: GitHub Pages dir

Signed-off-by: Dmitry Dunaev <dmitry@opsfleet.com>

* Added extra parameters in rate limiting test to accomodate lanforge testcases in Perfecto Interop

Signed-off-by: haricharan-jaka <haricharan.jaka@candelatech.com>

* [WIFI-11619] Add: README note

Signed-off-by: Dmitry Dunaev <dmitry@opsfleet.com>

* Rectified ssid parameter in Perfecto Interop

Signed-off-by: haricharan-jaka <haricharan.jaka@candelatech.com>

* Changed ssid to ssid_name in Interop rate limiting testcases

Signed-off-by: haricharan-jaka <haricharan.jaka@candelatech.com>

* Removed execution number logic (NAT-LAN logic) for NAT mode ttls test cases

Signed-off-by: jitendracandela <jitendra.kushavah@candelatech.com>

* Refactored multi-asso-disasso

Signed-off-by: karthikaeyetea <karthika.subramani@candelatech.com>

* Revert "Added logic to setup_configuration_data() to support for multi-band combinations"

This reverts commit cef8a23315.

* Added try and except logic in push_config

Signed-off-by: jitendracandela <jitendra.kushavah@candelatech.com>

* Fixed Config sent from Gateway is Received by AP, But not Applied by AP issue and added AP logs during config fails

Signed-off-by: jitendracandela <jitendra.kushavah@candelatech.com>

* Removed resp is None logic

Signed-off-by: jitendracandela <jitendra.kushavah@candelatech.com>

* Added Interop sanity marker in connectivity tests

Signed-off-by: haricharan-jaka <haricharan.jaka@candelatech.com>

* Updated nat mode & create_vlan parameter for Multi Station Performance test-cases

Signed-off-by: tarun-candela <tarunkumar.madabathula@candelatech.com>

* Added title, suite for multi-asso-disasso

Signed-off-by: karthikaeyetea <karthika.subramani@candelatech.com>

* Added table results for multi-station-performance test-cases

Signed-off-by: tarun-candela <tarunkumar.madabathula@candelatech.com>

* Updated Readme file in wlan-testing

Signed-off-by: shivam <shivam.thakur@candelatech.com>

* Added check_connectivity arg

Signed-off-by: karthikaeyetea <karthika.subramani@candelatech.com>

* Added title,suite for VLAN-multi-asso-disasso

Signed-off-by: karthikaeyetea <karthika.subramani@candelatech.com>

* Refactored rx_sens from rx_sensitivity test to TR-398 Issue 2

Signed-off-by: karthikaeyetea <karthika.subramani@candelatech.com>

* Resolved conflicts in Lab_info.json

Signed-off-by: haricharan-jaka <haricharan.jaka@candelatech.com>

* Added Open Passpoint required data in Configuration.py

Signed-off-by: haricharan-jaka <haricharan.jaka@candelatech.com>

* Added Open roaming configuration Fixture

Signed-off-by: haricharan-jaka <haricharan.jaka@candelatech.com>

* Added Open Roaming support code in Controller libs and tip_2x

Signed-off-by: haricharan-jaka <haricharan.jaka@candelatech.com>

* Added sample testcase of open roaming for checking

Signed-off-by: haricharan-jaka <haricharan.jaka@candelatech.com>

* Added Comments in Open roaming testcase

Signed-off-by: haricharan-jaka <haricharan.jaka@candelatech.com>

* Modified upload_rate for wifi_capacity

Signed-off-by: tarun-candela <tarunkumar.madabathula@candelatech.com>

* Removed unnecessary Passpoint data

Signed-off-by: haricharan-jaka <haricharan.jaka@candelatech.com>

* Removed unnecessary Passpoint data in configuration.py

Signed-off-by: haricharan-jaka <haricharan.jaka@candelatech.com>

* Adding new Jira links and Descriptions

Signed-off-by: Rajendra <rajendra.pappu@candelatech.com>

* added passpoint info to tunnel bash

Signed-off-by: anil-tegala <anil.tegala@candelatech.com>

* created 5g tests for rxsens

Signed-off-by: karthikaeyetea <karthika.subramani@candelatech.com>

* Modified multi station performance udp_download test-cases for test result table

Signed-off-by: tarun-candela <tarunkumar.madabathula@candelatech.com>

* Deleted wifi_capacity_test

Signed-off-by: jitendracandela <jitendra.kushavah@candelatech.com>

* Added or removed performance marker for performance suite

Signed-off-by: jitendracandela <jitendra.kushavah@candelatech.com>

* Enhanced allure report for sanity

Signed-off-by: jitendracandela <jitendra.kushavah@candelatech.com>

* Added sanity test plans and markers

Signed-off-by: jitendracandela <jitendra.kushavah@candelatech.com>

* Removed unnecessary marker

Signed-off-by: haricharan-jaka <haricharan.jaka@candelatech.com>

* Added Interop Testplan markers in testplan.md file

Signed-off-by: haricharan-jaka <haricharan.jaka@candelatech.com>

* Removed emoji's from testplan file

Signed-off-by: haricharan-jaka <haricharan.jaka@candelatech.com>

* Added emoji's from testplan file

Signed-off-by: haricharan-jaka <haricharan.jaka@candelatech.com>

* Added some formatting in texts in testplan file

Signed-off-by: haricharan-jaka <haricharan.jaka@candelatech.com>

* Removed some formatting in texts in testplan file

Signed-off-by: haricharan-jaka <haricharan.jaka@candelatech.com>

* Added some formatting in texts in testplan file

Signed-off-by: haricharan-jaka <haricharan.jaka@candelatech.com>

* Added jira links, description and markers for new sanity testcases

Signed-off-by: anil-tegala <anil.tegala@candelatech.com>

* Added markers and description for some more of sanity suite testcases

Signed-off-by: Jyothsna-setti <jyothsna.polamarasetty@candelatech.com>

* Added test plans md file in readme.md file

Signed-off-by: haricharan-jaka <haricharan.jaka@candelatech.com>

* Added test plans md file in readme.md file

Signed-off-by: haricharan-jaka <haricharan.jaka@candelatech.com>

* Changed marker expressions in Testplans.md file

Signed-off-by: haricharan-jaka <haricharan.jaka@candelatech.com>

* Removed wrong duplicate parent_suite

Signed-off-by: jitendracandela <jitendra.kushavah@candelatech.com>

* Added test description

Signed-off-by: jitendracandela <jitendra.kushavah@candelatech.com>

* Removed unwanted marker and Added test description

Signed-off-by: jitendracandela <jitendra.kushavah@candelatech.com>

* Removed duplicate function name

Signed-off-by: jitendracandela <jitendra.kushavah@candelatech.com>

* Modified parent suite

Signed-off-by: jitendracandela <jitendra.kushavah@candelatech.com>

* Modified parent suite and feature name

Signed-off-by: jitendracandela <jitendra.kushavah@candelatech.com>

* modified mode of udaya AP from wifi6 to wifi5

Signed-off-by: anil-tegala <anil.tegala@candelatech.com>

* Logging response info for configuration push

Signed-off-by: jitendracandela <jitendra.kushavah@candelatech.com>

Signed-off-by: jitendracandela <jitendra.kushavah@candelatech.com>
Signed-off-by: anil-tegala <anil.tegala@candelatech.com>
Signed-off-by: haricharan-jaka <haricharan.jaka@candelatech.com>
Signed-off-by: shivam <shivam.thakur@candelatech.com>
Signed-off-by: karthikaeyetea <karthika.subramani@candelatech.com>
Signed-off-by: Dmitry Dunaev <dmitry@opsfleet.com>
Signed-off-by: tarun-candela <tarunkumar.madabathula@candelatech.com>
Signed-off-by: karthikeyan <karthikeyan.thirumurthy@candelatech.com>
Signed-off-by: Rajendra <rajendra.pappu@candelatech.com>
Signed-off-by: Jyothsna-setti <jyothsna.polamarasetty@candelatech.com>
Co-authored-by: tarun-candela <tarunkumar.madabathula@candelatech.com>
Co-authored-by: anil-tegala <anil.tegala@candelatech.com>
Co-authored-by: haricharan-jaka <haricharan.jaka@candelatech.com>
Co-authored-by: shivam <shivam.thakur@candelatech.com>
Co-authored-by: karthikaeyetea <karthika.subramani@candelatech.com>
Co-authored-by: Dmitry Dunaev <83591011+dunaev-opsfleet@users.noreply.github.com>
Co-authored-by: Dmitry Dunaev <dmitry@opsfleet.com>
Co-authored-by: karthikeyan <karthikeyan.thirumurthy@candelatech.com>
Co-authored-by: Rajendra <rajendra.pappu@candelatech.com>
Co-authored-by: Jyothsna-setti <jyothsna.polamarasetty@candelatech.com>
2022-12-12 17:04:47 +05:30

485 lines
16 KiB
Python

import json
import logging
import os
import re
import string
import sys
import random
import allure
import pytest
from _pytest.fixtures import SubRequest
from typing import Any, Callable, Optional
ALLURE_ENVIRONMENT_PROPERTIES_FILE = 'environment.properties'
ALLUREDIR_OPTION = '--alluredir'
logging.basicConfig(format='%(asctime)s - %(message)s', level=logging.INFO)
log_filename = "logs/pytest_logs.log"
os.makedirs(os.path.dirname(log_filename), exist_ok=True)
file_handler = logging.FileHandler(log_filename, mode="w", encoding=None, delay=False)
try:
import importlib
# sys.path.append(os.path.join(os.path.abspath(__file__ + "../../../")))
sys.path.append("../tests")
imports = importlib.import_module("imports")
target = imports.target
lf_libs = imports.lf_libs
lf_tests = imports.lf_tests
scp_file = imports.scp_file
perfecto_interop = imports.perfecto_interop
android_tests = imports.android_tests
ios_tests = imports.ios_tests
configuration = importlib.import_module("configuration")
CONFIGURATION = configuration.CONFIGURATION
PERFECTO_DETAILS = configuration.PERFECTO_DETAILS
# cv_test_manager = importlib.import_module("py-json.cv_test_manager")
# cv_test = cv_test_manager.cv_test
except ImportError as e:
print(e)
sys.exit("Python Import Error: " + str(e))
def pytest_addoption(parser):
"""pytest addoption function: contains ini objects and options"""
parser.addini("controller_url", type='string', help="controller_url_parameter_override", default="0")
parser.addini(name="firmware", type='string', help="AP Firmware build URL", default="0")
parser.addoption(
"--testbed",
# nargs="+",
default="basic-01",
help="AP Model which is needed to test"
)
parser.addoption(
"--num_stations",
default=1,
help="Number of Stations"
)
parser.addoption(
"--max_stations",
default=64,
help=" Max Number of Stations of AP"
)
parser.addoption(
"--device",
# nargs="+",
default="lanforge",
help="Test Traffic Generator which can be used, lanforge | perfecto"
)
parser.addoption(
"--run-lf",
action="store_true",
default=False,
help="Test Traffic Generator which can be used, lanforge | perfecto"
)
parser.addoption(
"--skip-lf",
action="store_true",
default=False,
help="Skips the Lanforge Usage"
)
parser.addoption(
"--skip-all",
action="store_true",
default=False,
help="Skips the Lanforge Usage"
)
parser.addoption(
"--skip-env",
action="store_true",
default=False,
help="skip adding to env data"
)
parser.addoption(
"--client-type",
default="ac",
help="Select the client type for test ac | ax"
)
parser.addoption(
"--use-perfecto-android",
action="store_true",
default=False,
help="Use Interop Android Test Package for tests"
)
parser.addoption(
"--use-perfecto-ios",
action="store_true",
default=False,
help="Use Interop IoS Test Package for tests"
)
parser.addoption(
"--port",
default=False,
help="Select the port for AP Up Down tests"
)
@pytest.fixture(scope="session")
def get_lab_info():
yield configuration
@pytest.fixture(scope="session")
def run_lf(request):
"""yields the testbed option selection"""
run_lf = request.config.getoption("--run-lf")
yield run_lf
@pytest.fixture(scope="session")
def skip_lf(request):
"""yields the testbed option selection"""
skip_lf = request.config.getoption("--skip-lf")
yield skip_lf
@pytest.fixture(scope="session")
def selected_testbed(request):
"""yields the testbed option selection"""
current_testbed = request.config.getoption("--testbed")
yield current_testbed
@pytest.fixture(scope="session")
def selected_port(request):
"""yields the port option selection"""
current_port = request.config.getoption("--port")
yield current_port
@pytest.fixture(scope="session")
def num_stations(request):
"""yields the testbed option selection"""
num_stations = request.config.getoption("--num_stations")
yield int(num_stations)
@pytest.fixture(scope="session")
def max_stations(request):
"""yields the max stations supported by AP"""
if run_lf:
"""User will give max stations for run_lf"""
max_stations = request.config.getoption("--max_stations")
else:
"""Fetch max stations from AP"""
max_stations = 64
yield int(max_stations)
@pytest.fixture(scope="session")
def device(request):
"""yields the device option selection"""
var = request.config.getoption("--device")
yield var
@pytest.fixture(scope="session")
def get_device_configuration(device, request):
"""yields the selected device information from lab info file (configuration.py)"""
if device != "lanforge":
logging.info("Selected the lab Info data: " + str((PERFECTO_DETAILS[device])))
print(PERFECTO_DETAILS[device])
yield PERFECTO_DETAILS[device]
else:
yield ""
@pytest.fixture(scope="session")
def client_type(request):
"""yields the testbed option selection"""
client_type = request.config.getoption("--client-type")
yield client_type
@pytest.fixture(scope="session")
def get_security_flags():
"""used to get the essential markers on security and band"""
# Add more classifications as we go
security = ["open", "wpa", "wep", "wpa2_personal", "wpa3_personal", "wpa3_personal_mixed",
"wpa_wpa2_enterprise_mixed", "wpa2_eap", "wpa2_only_eap",
"wpa_wpa2_personal_mixed", "wpa_enterprise", "wpa2_enterprise", "wpa3_enterprise_mixed",
"wpa3_enterprise", "twog", "fiveg", "sixg", "fiveg_lower", "fiveg_upper", "radius"]
yield security
@pytest.fixture(scope="session")
def get_markers(request, get_security_flags):
"""used to get the markers on the selected test case class, used in setup_configuration"""
session = request.node
markers = list()
security = get_security_flags
data = dict()
for item in session.items:
data[item] = []
for j in item.iter_markers():
for i in security:
if j.name == i:
if j.name == "twog":
data[item].append("2G")
continue
if j.name == "fiveg":
data[item].append("5G")
continue
if j.name == "sixg":
data[item].append("6G")
continue
if j.name == "fiveg_lower":
data[item].append("5G-lower")
continue
if j.name == "fiveg_upper":
data[item].append("5G-upper")
continue
data[item].append(j.name)
print(j.name)
markers.append(j.name)
print(data)
yield data
@pytest.fixture(scope="session")
def get_target_object(request, run_lf, get_testbed_details, add_allure_environment_property: Callable) -> None:
"""yields the testbed option selection"""
if request.config.getoption("--skip-all"):
pytest.skip("Skipping all")
t_object = None
if not run_lf:
try:
t_object = target(controller_data=get_testbed_details["controller"], target=get_testbed_details["target"],
configuration=configuration,
device_under_tests_info=get_testbed_details["device_under_tests"])
if not request.config.getoption("--skip-env"):
if get_testbed_details["target"] == "tip_2x":
t_object.setup_environment_properties(add_allure_environment_property=
add_allure_environment_property)
except Exception as e:
t_object = None
logging.error(
"Exception is setting up Target Library Object: " + str(
e) + " Check the lab_info.json for the Data and ")
pytest.exit("Exception is setting up Target Library Object: " + str(e))
def teardown_target():
if t_object is not None:
t_object.teardown_objects()
request.addfinalizer(teardown_target)
yield t_object
@pytest.fixture(scope="session")
def get_testbed_details(selected_testbed, request):
"""yields the selected testbed information from lab info file (configuration.py)"""
try:
TESTBED = CONFIGURATION[selected_testbed]
except Exception as e:
logging.error("Error in Fetching Testbed: " + str(e))
pytest.exit("Exception in getting Testbed Details. Testbed Details are not available : " + selected_testbed)
if request.config.getini("controller_url") != "0":
TESTBED["controller"]["url"] = request.config.getini("controller_url")
if request.config.getini("firmware") != "0":
version = request.config.getini("firmware")
version_list = version.split(",")
for i in range(len(TESTBED["device_under_tests"])):
TESTBED["device_under_tests"][i]["version"] = version_list[0]
allure.attach(name="Testbed Details", body=str(json.dumps(TESTBED, indent=2)),
attachment_type=allure.attachment_type.JSON)
yield TESTBED
@pytest.fixture(scope="session")
def get_controller_version(fixtures_ver, run_lf, cc_1):
version = ""
if not run_lf and not cc_1:
version = fixtures_ver.get_sdk_version()
print(version)
yield version
@pytest.fixture(scope="session")
def get_dut_versions(fixtures_ver, run_lf, cc_1):
version = ""
if not run_lf and not cc_1:
version = fixtures_ver.get_sdk_version()
print(version)
yield version
@pytest.fixture(scope="session")
def is_test_library_perfecto_android(request):
interop = request.config.getoption("--use-perfecto-android")
yield interop
@pytest.fixture(scope="session")
def is_test_library_perfecto_ios(request):
interop = request.config.getoption("--use-perfecto-ios")
yield interop
@pytest.fixture(scope="session")
def get_test_library(get_testbed_details, is_test_library_perfecto_android, is_test_library_perfecto_ios, request,
get_device_configuration, device, run_lf):
if request.config.getoption("--skip-all"):
pytest.skip("Skipping all")
if is_test_library_perfecto_android:
obj = android_tests.AndroidTests(perfecto_data=PERFECTO_DETAILS,
dut_data=get_testbed_details["device_under_tests"], device=device)
elif is_test_library_perfecto_ios:
obj = ios_tests.ios_tests(perfecto_data=PERFECTO_DETAILS, dut_data=get_testbed_details["device_under_tests"],
device=device)
else:
obj = lf_tests(lf_data=get_testbed_details["traffic_generator"],
dut_data=get_testbed_details["device_under_tests"],
log_level=logging.DEBUG,
run_lf=run_lf,
influx_params=None)
pwd = os.getcwd()
isExist = os.path.exists(str(pwd) + "/../reports")
if not isExist:
os.mkdir(str(pwd) + "/../reports")
def teardown_test():
if is_test_library_perfecto_android:
try:
obj.teardown()
except Exception as e:
print(e)
logging.error("Exception in teardown")
elif is_test_library_perfecto_ios:
try:
obj.teardown()
except Exception as e:
print(e)
logging.error("Exception in teardown")
else:
pass
request.addfinalizer(teardown_test)
yield obj
@pytest.fixture(scope="session")
def execution_number(request):
number = int(request.param)
print(number)
mode = "NAT-WAN"
if number == 0:
mode = "NAT-WAN"
if number == 1:
mode = "NAT-LAN"
yield mode
@pytest.fixture(scope="session")
def radius_info():
"""yields the radius server information from lab info file"""
yield configuration.RADIUS_SERVER_DATA
@pytest.fixture(scope="session")
def rate_radius_info():
"""yields the radius server information from lab info file"""
yield configuration.RATE_LIMITING_RADIUS_SERVER_DATA
@pytest.fixture(scope="session")
def rate_radius_accounting_info():
"""yields the radius accounting information from lab info file"""
yield configuration.RATE_LIMITING_RADIUS_ACCOUNTING_DATA
@pytest.fixture(scope='session', autouse=True)
def add_allure_environment_property(request: SubRequest) -> Optional[Callable]:
environment_properties = dict()
def maker(key: str, value: Any):
environment_properties.update({key: value})
yield maker
alluredir = request.config.getoption(ALLUREDIR_OPTION)
if not alluredir or not os.path.isdir(alluredir) or not environment_properties:
return
allure_env_path = os.path.join(alluredir, ALLURE_ENVIRONMENT_PROPERTIES_FILE)
with open(allure_env_path, 'w') as _f:
data = '\n'.join([f'{variable}={value}' for variable, value in environment_properties.items()])
_f.write(data)
@pytest.fixture(scope="function")
def get_dut_logs_per_test_case(request, run_lf, get_testbed_details, get_target_object):
if not run_lf:
S = 9
instance_name = ''.join(random.choices(string.ascii_uppercase + string.digits, k=S))
for i in range(len(get_testbed_details["device_under_tests"])):
get_target_object.get_dut_library_object().run_generic_command(
cmd="logger start testcase: " + instance_name,
idx=i)
def collect_logs():
for i in range(len(get_testbed_details["device_under_tests"])):
get_target_object.get_dut_library_object().run_generic_command(
cmd="logger stop testcase: " + instance_name,
idx=i)
ap_logs = get_target_object.get_dut_library_object().get_logread(
start_ref="start testcase: " + instance_name,
stop_ref="stop testcase: " + instance_name)
allure.attach(name='Logs - ' + get_testbed_details["device_under_tests"][i]["identifier"],
body=str(ap_logs))
request.addfinalizer(collect_logs)
@pytest.fixture(scope="function")
def get_test_device_logs(request, get_testbed_details, get_target_object, skip_lf):
if not skip_lf:
ip = get_testbed_details["traffic_generator"]["details"]["manager_ip"]
port = get_testbed_details["traffic_generator"]["details"]["ssh_port"]
def collect_logs_tg():
log_0 = "/home/lanforge/lanforge_log_0.txt"
log_1 = "/home/lanforge/lanforge_log_1.txt"
obj = scp_file(ip=ip, port=port, username="root", password="lanforge", remote_path=log_0,
local_path=".")
obj.pull_file()
allure.attach.file(source="lanforge_log_0.txt",
name="lanforge_log_0")
obj = scp_file(ip=ip, port=port, username="root", password="lanforge", remote_path=log_1,
local_path=".")
obj.pull_file()
allure.attach.file(source="lanforge_log_1.txt",
name="lanforge_log_1")
request.addfinalizer(collect_logs_tg)
@pytest.fixture(scope="function")
def check_connectivity(request, get_testbed_details, get_target_object, run_lf):
def collect_logs():
for i in range(len(get_testbed_details["device_under_tests"])):
ret_val = get_target_object.get_dut_library_object().ubus_call_ucentral_status(idx=i, attach_allure=True,
retry=10)
if not ret_val["connected"] or ret_val["connected"] is None:
ap_logs = get_target_object.get_dut_library_object().get_dut_logs()
allure.attach(name='Logs - ' + get_testbed_details["device_under_tests"][i]["identifier"],
body=str(ap_logs))
allure.attach(name='Device : ' + get_testbed_details["device_under_tests"][i]["identifier"] +
" is connected after Test", body="")
if not run_lf:
request.addfinalizer(collect_logs)