Files
wlan-testing/tests/e2e/basic
Jitendrakumar Kushavah f4e7d51366 Wifi 13777 (#968)
* Removed performance marker from peak_throughput_tests for twog and fiveg, Added AX_capacity testplan in performance for twog and fiveg

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

* Added pass_fail_criteria argument

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

* Removed performance marker from bidirectional test cases

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

* Removed ow_sanity_lf marker from schema validation (#940)

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

* add roam otd twog same channel wpa3 eap test (#941)

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

* add roam otd fiveg wpa3eap test (#942)

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

* Update test_bridge_mode.py (#944)

Co-authored-by: Gopi Raga <117985788+GopiRaga7@users.noreply.github.com>

* Update ucentralgw-qa-deployment.yaml (#945)

* Added sleep time in the rate limiting test case (#946)

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

* Fix roam OTA test issues with iwinfo output & Add Pass/Fail (#947)

* improve re pattern to fetch ap data from iwconfig

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

* fix config issue in wpa2 tests

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

* fix key,value issues in config creation

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

* fix empty radio & wifi-bands config issue

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

* replace global config_data with local config in test

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

* add ap logs per testcase to allure

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

* fix missing underscore to get dut logs function

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

* refine selected testbed logic as per testbed names in lab-info

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

* marker and pass/fail addtions to roam ota tests

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

---------

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

* Add hfcl_ion4xi to the overview page (#948)

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

* Update ucentralgw-qa-deployment.yaml (#949)

* Added udaya_a6-id2 to the sanity and performance overview page (#950)

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

* WIFI-13871 CGW deploy testing (#951)

Signed-off-by: Carsten Schafer <Carsten.Schafer@kinarasystems.com>
Co-authored-by: Carsten Schafer <Carsten.Schafer@kinarasystems.com>

* add roam ota twog & fiveg wpa2psk test (#952)

* add roam ota twog and fiveg wpa2 psk test

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

* set missing band in 2G config

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

---------

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

* Wifi 13874 (#953)

* Added more logs to asb script

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

* Increased sleep time after factory reset for ASB tests

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

---------

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

* roam ota twog and fiveg wpa3psk test (#954)

* add roam ota twog and fiveg wpa2 psk test

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

* add roam ota twog and fiveg wpa3 psk test

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

* set missing band in 2G config

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

---------

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

* add roam ota twog and fiveg wpa2-eap test (#955)

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

* WIFI-13871: CGW deployment (#956)

* WIFI-13871 CGW deploy testing

Signed-off-by: Carsten Schafer <Carsten.Schafer@kinarasystems.com>

* WIFI-13871 CGW deploy testing

Signed-off-by: Carsten Schafer <Carsten.Schafer@kinarasystems.com>

---------

Signed-off-by: Carsten Schafer <Carsten.Schafer@kinarasystems.com>
Co-authored-by: Carsten Schafer <Carsten.Schafer@kinarasystems.com>

* Update cgw-dev-deployment.yaml

* WIFI-13871 Correct branch for deploy repo

Signed-off-by: Carsten Schafer <Carsten.Schafer@kinarasystems.com>

* add roam ota twog and fiveg wpa3 enterprise test (#958)

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

* WIFI-13871 Need sops installed as well

Signed-off-by: Carsten Schafer <Carsten.Schafer@kinarasystems.com>

* add roam ota 5g and 6g wpa2psk test (#959)

* add roam ota fiveg and sixg wpa2psk test

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

* change security type to wpa3

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

---------

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

* Wifi 13853 (#960)

* Removed >/dev/null 2>&1 for logs purpose

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

* Added Verbosity for logs

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

* Added retries=3 in the kubectl cp command

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

* Added list of files in the pod /tmp/allure-results

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

---------

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

* Wifi 13859 (#961)

* Added hfcl_ion4xi in the sanity, performance, regression workflows and overview page

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

* Removed hfcl_ion4xi from overview page

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

---------

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

* Added wifi_capacity_ax_tests in the performance workflow

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

* Modified marker name for ax capacity

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

* Added performance pass-fail criteria file

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

* Added pass-fail values for edgecore_eap105,sercomm_ap72tip

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

* Added pass-fail values for udaya_a6-id2

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

* Added pass-fail values for edgecore_eap111

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

* add roam ota fiveg and sixg wpa3 enterprise test (#963)

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

* add roam ota twog and sixg sae test (#964)

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

* add roam ota twog and sixg wpa3 enterprise test (#965)

* add roam ota twog and sixg wpa3 enterprise test

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

---------

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

* Handle locations inside deploy repo (#966)

Co-authored-by: Carsten Schafer <Carsten.Schafer@kinarasystems.com>

* Added edgecore_eap105,sercomm_ap72tip to the sanity and performance overview page (#967)

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

* Wifi 13921 (#969)

* Modified as per new lab infra and Added udaya_a6-id2,edgecore_eap105,sercomm_ap72tip in the performance workflow

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

* Modified as per new lab infra and Added udaya_a6-id2,edgecore_eap105,sercomm_ap72tip in the sanity workflow

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

* Modified as per new lab infra and Added udaya_a6-id2,edgecore_eap105,sercomm_ap72tip in the regression workflow

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

---------

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

* Replaced advanced-3b with advanced-1c (#971)

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

* Added wifi_capacity_ax_tests for udaya_a6-id2,edgecore_eap105,sercomm_ap72tip APs

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: Carsten Schafer <Carsten.Schafer@kinarasystems.com>
Co-authored-by: Anil Kumar Tegala <anil.tegala@candelatech.com>
Co-authored-by: Gopi Raga <117985788+GopiRaga7@users.noreply.github.com>
Co-authored-by: GowthamPrajwal <86651786+GowthamPrajwal@users.noreply.github.com>
Co-authored-by: mythri-candela <168416732+mythri-candela@users.noreply.github.com>
Co-authored-by: Carsten Schafer <49571202+carsten989@users.noreply.github.com>
Co-authored-by: Carsten Schafer <Carsten.Schafer@kinarasystems.com>
2024-08-01 14:47:44 +05:30
..
2023-04-24 14:44:17 +05:30
2024-08-01 14:47:44 +05:30
2024-07-18 16:18:07 +05:30
2023-09-26 18:54:28 +05:30
2021-04-12 23:05:22 +05:30

wlan-testing framework Information

e2e/basic

Basic test environment has 1 Access Point, 1 Cloud Controller, and 1 Candela LANforge Unit.

Setup

There are 3 different Configuration Modes in an Access Point

  1. Bridge
  2. NAT
  3. VLAN

####Any one mode of setup can be done in an Access Point at a time.

Within each mode, n number of SSID's can be provisioned from the controller to the AP

setup will take the inputs from the Test cases

Test cases can be bunched on a

  1. class level (have a module/ test_xx.py , have one or more classes, do setup once for each class)
  2. function level (have a module/ test_xx.py , have one or more functions, do setup once for each function)

Use the below sample template for starting to write test cases in basic

SAMPLE Test Case Example:

test_featureA_bridge.py

import pytest
import allure

# Module level Marking
pytestmark = [pytest.mark.usefixtures("setup_test_run"), pytest.mark.featureA]

# It is compulsory to put pytest.mark.usefixtures("setup_test_run")   in module level marking

profile_config = {
    "mode": "NAT",      # Mode of config ("BRIDGE"/"NAT"/"VLAN")
    
    # SSID modes and its Config: Enter the json data structure in the below format for test cases
    "ssid_modes": {
        # Enter the ssid modes:
        # (open/wpa/wpa2_personal/wpa3_personal/wpa3_personal_mixed/wpa_wpa2_personal_mixed/
        #  wpa_enterprise/wpa2_enterprise/wpa3_enterprise/wpa_wpa2_enterprise_mixed/wpa3_enterprise_mixed
        #  /wep)
        # Each security type can have multiple ssid config placed in a list and is customizable
        "wpa": [
            {"ssid_name": "ssid_wpa_eap_2g", "appliedRadios": ["is2dot4GHz"], "vlan": 1 },
            {"ssid_name": "ssid_wpa_eap_5g", "appliedRadios": ["is5GHzU", "is5GHz", "is5GHzL"]}],
        "wpa2_personal": [
            {"ssid_name": "ssid_wpa2_eap_2g", "appliedRadios": ["is2dot4GHz"]},
            {"ssid_name": "ssid_wpa2_eap_5g", "appliedRadios": ["is5GHzU", "is5GHz", "is5GHzL"]}]
    },
    # rf config data that is need to be pushed, 
    # Leave Blank for default (default config is taken from configuration.py for the selected testbed and AP Model)
    "rf": {},
    # True if you want to create a Radius Profile(Radius config by default is taken from configuration.py)
    "radius": True
}


# Class level Marking
@pytest.mark.suite_a
@pytest.mark.parametrize(
    'setup_configuration',   # Name of the fixture
    [profile_config],   # Passing the above static profile_config data for setup for tests in this class
    indirect=True,
    scope="class"       # Scope of the fixture (Its experimental for current framework (keep it "class" for default scenario))
)
@pytest.mark.usefixtures("setup_configuration")
class TestFeatureABridge(object):

    @pytest.mark.wpa        # Marker for the wifi encryption needed - Compulsory
    @pytest.mark.twog       # Marker for band (twog/fiveg) - Compulsory
    def test_client_wpa_2g(self):
        profile_data = profile_config["ssid_modes"]["wpa"][0]
        ssid_name = profile_data["ssid_name"]
        security_key = profile_data["security_key"]
        security = "wpa"
        mode = "BRIDGE"
        band = "twog"  # refer to appliedRadios in ssid_modes config   (twog/fiveg)
        #        vlan = 1        # 1 for "BRIDGE"/"NAT"  # Can be customised in the ssid config json
        
        # Write Your test case Here
        # Some Recommendations: 
        #        If your test case has components that are to be used by other test case,
        #        then make it library and call its instance from fixture.
        #        If your test case has some reports, then attach it as an allure report
        
        allure.attach(name="Test case report", body="Test case result description") # Check its usages for more detail
        
        PASS_FAIL_CONDITION = True
        assert PASS_FAIL_CONDITION

    @pytest.mark.wpa
    @pytest.mark.fiveg
    def test_client_wpa_5g(self):
        profile_data = profile_config["ssid_modes"]["wpa"][1]
        ssid_name = profile_data["ssid_name"]
        security_key = profile_data["security_key"]
        security = "wpa"
        mode = "BRIDGE"
        band = "fiveg"  # refer to appliedRadios in ssid_modes config   (twog/fiveg)
        vlan = 1        # 1 for "BRIDGE"/"NAT"  # Can be customised in the ssid config json
        
        # Write Your test case Here
        # Some Recommendations: 
        #        If your test case has components that are to be used by other test case,
        #        then make it library and call its instance from fixture.
        #        If your test case has some reports, then attach it as an allure report
        
        allure.attach(name="Test case report", body="Test case result description") # Check its usages for more detail
        
        PASS_FAIL_CONDITION = True
        assert PASS_FAIL_CONDITION
    
    @pytest.mark.wpa2_personal        # Marker for the wifi encryption needed - Compulsory
    @pytest.mark.twog       # Marker for band (twog/fiveg) - Compulsory
    def test_client_wpa2_personal_2g(self):
        profile_data = profile_config["ssid_modes"]["wpa2_personal"][0]
        ssid_name = profile_data["ssid_name"]
        security_key = profile_data["security_key"]
        security = "wpa2"
        mode = "BRIDGE"
        band = "twog"  # refer to appliedRadios in ssid_modes config   (twog/fiveg)
        #        vlan = 1        # 1 for "BRIDGE"/"NAT"  # Can be customised in the ssid config json
        
        # Write Your test case Here
        # Some Recommendations: 
        #        If your test case has components that are to be used by other test case,
        #        then make it library and call its instance from fixture.
        #        If your test case has some reports, then attach it as an allure report
        
        allure.attach(name="Test case report", body="Test case result description") # Check its usages for more detail
        
        PASS_FAIL_CONDITION = True
        assert PASS_FAIL_CONDITION

    @pytest.mark.wpa2_personal
    @pytest.mark.fiveg
    def test_client_wpa2_personal_5g(self):
        profile_data = profile_config["ssid_modes"]["wpa2_personal"][1]
        ssid_name = profile_data["ssid_name"]
        security_key = profile_data["security_key"]
        security = "wpa2"
        mode = "BRIDGE"
        band = "fiveg"  # refer to appliedRadios in ssid_modes config   (twog/fiveg)
        vlan = 1        # 1 for "BRIDGE"/"NAT"  # Can be customised in the ssid config json
        
        # Write Your test case Here
        # Some Recommendations: 
        #        If your test case has components that are to be used by other test case,
        #        then make it library and call its instance from fixture.
        #        If your test case has some reports, then attach it as an allure report
        
        allure.attach(name="Test case report", body="Test case result description") # Check its usages for more detail
        
        PASS_FAIL_CONDITION = True
        assert PASS_FAIL_CONDITION

    



##General Guardrails:

setup_profile is a Fixture that collects markers 
from the test case to decide which security modes and band is need to be applied on the Access Point

Test cases can be selected based upon the markers 

# This selection will push all the config for the above scenario, considering that you have specified all required markers
pytest -m featureA

# This selection will select only wpa test cases and will push the config for wpa mode only because wpa2_personal marker is not selected
pytest -m "featureA and wpa"

Conclusion: Security modes for SSID has some specific markers which are specified as follows

open/wpa/wpa2_personal/wpa3_personal/wpa3_personal_mixed/wpa_wpa2_personal_mixed
wpa_enterprise/wpa2_enterprise/wpa3_enterprise/wpa_wpa2_enterprise_mixed/wpa3_enterprise_mixed/wep

and for band, its (twog/fiveg)

if you don't specifi the marker, then no matter what profile_config you are passing to setup_profile fixture,
it will not be pushed

Refer other test cases for more reference



If you have special Config requirements for test case, then reach out to Shivam Thakur on Slack, or email (shivam.thakur@candelatech.com)