diff --git a/libs/lanforge/lf_tests.py b/libs/lanforge/lf_tests.py index 7b5421e01..766ab0e63 100644 --- a/libs/lanforge/lf_tests.py +++ b/libs/lanforge/lf_tests.py @@ -40,7 +40,7 @@ from lf_rx_sensitivity_test import RxSensitivityTest from lf_ap_auto_test import ApAutoTest from csv_to_influx import CSVtoInflux from influx2 import RecordInflux -#from lf_multipsk import MultiPsk +from lf_multipsk import MultiPsk class RunTest: @@ -231,7 +231,7 @@ class RunTest: def wifi_capacity(self, mode="BRIDGE", vlan_id=100, batch_size="1,5,10,20,40,64,128", instance_name="wct_instance", download_rate="1Gbps", influx_tags=[], - upload_rate="1Gbps", protocol="TCP-IPv4", duration="60000"): + upload_rate="1Gbps", protocol="TCP-IPv4", duration="60000", raw_lines=[]): instance_name = ''.join(random.choices(string.ascii_uppercase + string.digits, k=S)) if mode == "BRIDGE": upstream_port = self.upstream_port @@ -242,6 +242,7 @@ class RunTest: '''SINGLE WIFI CAPACITY using lf_wifi_capacity.py''' wificapacity_obj = WiFiCapacityTest(lfclient_host=self.lanforge_ip, lf_port=self.lanforge_port, + ssh_port=self.lf_ssh_port, lf_user="lanforge", lf_password="lanforge", local_lf_report_dir=self.local_report_path, @@ -264,7 +265,7 @@ class RunTest: ssid=None, enables=[], disables=[], - raw_lines=[], + raw_lines=raw_lines, raw_lines_file="", sets=[]) diff --git a/tests/e2e/basic/validation_of_operating_modes/bridge_mode/rate_limiting/test_rate_limiting.py b/tests/e2e/basic/validation_of_operating_modes/bridge_mode/rate_limiting/test_rate_limiting.py index 17d7100b8..d75080dad 100644 --- a/tests/e2e/basic/validation_of_operating_modes/bridge_mode/rate_limiting/test_rate_limiting.py +++ b/tests/e2e/basic/validation_of_operating_modes/bridge_mode/rate_limiting/test_rate_limiting.py @@ -65,7 +65,7 @@ class TestRateLimitingBridge(object): pytest.xfail("SSID NOT AVAILABLE IN VIF STATE") lf_tools.add_stations(band="2G", num_stations=5, dut=lf_tools.dut_name, ssid_name=ssid_name) lf_tools.Chamber_View() - wct_obj = lf_test.wifi_capacity(instance_name="test_client_wpa2_BRIDGE_tcp_dl", mode=mode, vlan_id=vlan, + wct_obj = lf_test.wifi_capacity(instance_name="test_client_wpa2_BRIDGE_up", mode=mode, vlan_id=vlan, download_rate="0Gbps", batch_size="1,2,5", upload_rate="1Gbps", protocol="UDP-IPv4", duration="60000") @@ -97,7 +97,7 @@ class TestRateLimitingBridge(object): pytest.xfail("SSID NOT AVAILABLE IN VIF STATE") lf_tools.add_stations(band="2G", num_stations=5, dut=lf_tools.dut_name, ssid_name=ssid_name) lf_tools.Chamber_View() - wct_obj = lf_test.wifi_capacity(instance_name="test_client_wpa2_BRIDGE_tcp_dl", mode=mode, vlan_id=vlan, + wct_obj = lf_test.wifi_capacity(instance_name="test_client_wpa2_BRIDGE_dw", mode=mode, vlan_id=vlan, download_rate="1Gbps", batch_size="1,2,5", upload_rate="0Gbps", protocol="UDP-IPv4", duration="60000") @@ -129,7 +129,7 @@ class TestRateLimitingBridge(object): pytest.xfail("SSID NOT AVAILABLE IN VIF STATE") lf_tools.add_stations(band="2G", num_stations=5, dut=lf_tools.dut_name, ssid_name=ssid_name) lf_tools.Chamber_View() - wct_obj = lf_test.wifi_capacity(instance_name="test_client_wpa2_BRIDGE_tcp_dl", mode=mode, vlan_id=vlan, + wct_obj = lf_test.wifi_capacity(instance_name="test_client_wpa2_BRIDGE_up_dw", mode=mode, vlan_id=vlan, download_rate="1Gbps", batch_size="1,2,5", upload_rate="1Gbps", protocol="UDP-IPv4", duration="60000") @@ -139,6 +139,131 @@ class TestRateLimitingBridge(object): print("Test Completed... Cleaning up Stations") assert True + @pytest.mark.wpa2_personal + @pytest.mark.twog + @pytest.mark.disable_up_dw + def test_wpa2_personal_ssid_disable_up_dw_batch_size_125_2g(self, lf_test, get_vif_state, lf_tools): + """ + Test Rate Limiting Scenario + pytest -m "rate_limiting and bridge and wpa2_personal and twog and disable_up_dw" + """ + # run wifi capacity test here + profile_data = setup_params_general["ssid_modes"]["wpa2_personal"][0] + ssid_name = profile_data["ssid_name"] + profile_data["rate-limit"][0] = 0 + profile_data["rate-limit"][1] = 0 + mode = "BRIDGE" + vlan = 1 + allure.attach(name="ssid-rates", body=str(profile_data["rate-limit"])) + get_vif_state.append(ssid_name) + if ssid_name not in get_vif_state: + allure.attach(name="retest,vif state ssid not available:", body=str(get_vif_state)) + pytest.xfail("SSID NOT AVAILABLE IN VIF STATE") + lf_tools.add_stations(band="2G", num_stations=5, dut=lf_tools.dut_name, ssid_name=ssid_name) + lf_tools.Chamber_View() + wct_obj = lf_test.wifi_capacity(instance_name="test_client_wpa2_BRIDGE_up_dw_di", mode=mode, vlan_id=vlan, + download_rate="1Gbps", batch_size="1,2,5", + upload_rate="1Gbps", protocol="UDP-IPv4", duration="60000") + + report_name = wct_obj.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1] + + lf_tools.attach_report_graphs(report_name=report_name) + print("Test Completed... Cleaning up Stations") + assert True + + @pytest.mark.wpa2_personal + @pytest.mark.twog + @pytest.mark.up_dw_per_client + def test_wpa2_personal_ssid_up_dw_per_client_batch_size_125_2g(self, lf_test, get_vif_state, lf_tools): + """ + Test Rate Limiting Scenario + pytest -m "rate_limiting and bridge and wpa2_personal and twog and up_dw_per_client" + """ + # run wifi capacity test here + profile_data = setup_params_general["ssid_modes"]["wpa2_personal"][0] + ssid_name = profile_data["ssid_name"] + mode = "BRIDGE" + vlan = 1 + raw_lines = [["dl_rate_sel: Per-Station Download Rate:"], ["ul_rate_sel: Per-Station Download Rate:"]] + allure.attach(name="ssid-rates", body=str(profile_data["rate-limit"])) + get_vif_state.append(ssid_name) + if ssid_name not in get_vif_state: + allure.attach(name="retest,vif state ssid not available:", body=str(get_vif_state)) + pytest.xfail("SSID NOT AVAILABLE IN VIF STATE") + lf_tools.add_stations(band="2G", num_stations=5, dut=lf_tools.dut_name, ssid_name=ssid_name) + lf_tools.Chamber_View() + wct_obj = lf_test.wifi_capacity(instance_name="test_client_wpa2_bridge_up_dw_per_cl", mode=mode, vlan_id=vlan, + download_rate="1Gbps", batch_size="1,2,5", + upload_rate="1Gbps", protocol="UDP-IPv4", duration="60000", raw_lines=raw_lines) + + report_name = wct_obj.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1] + + lf_tools.attach_report_graphs(report_name=report_name) + print("Test Completed... Cleaning up Stations") + assert True + + @pytest.mark.wpa2_personal + @pytest.mark.twog + @pytest.mark.up_per_client + def test_wpa2_personal_ssid_up_per_client_batch_size_125_2g(self, lf_test, get_vif_state, lf_tools): + """ + Test Rate Limiting Scenario + pytest -m "rate_limiting and bridge and wpa2_personal and twog and up_per_client" + """ + # run wifi capacity test here + profile_data = setup_params_general["ssid_modes"]["wpa2_personal"][0] + ssid_name = profile_data["ssid_name"] + mode = "BRIDGE" + vlan = 1 + raw_lines = [["ul_rate_sel: Per-Station Download Rate:"]] + allure.attach(name="ssid-rates", body=str(profile_data["rate-limit"])) + get_vif_state.append(ssid_name) + if ssid_name not in get_vif_state: + allure.attach(name="retest,vif state ssid not available:", body=str(get_vif_state)) + pytest.xfail("SSID NOT AVAILABLE IN VIF STATE") + lf_tools.add_stations(band="2G", num_stations=5, dut=lf_tools.dut_name, ssid_name=ssid_name) + lf_tools.Chamber_View() + wct_obj = lf_test.wifi_capacity(instance_name="test_client_wpa2_BRIDGE_up_per_cl", mode=mode, vlan_id=vlan, + download_rate="0Gbps", batch_size="1,2,5", + upload_rate="1Gbps", protocol="UDP-IPv4", duration="60000", raw_lines=raw_lines) + + report_name = wct_obj.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1] + + lf_tools.attach_report_graphs(report_name=report_name) + print("Test Completed... Cleaning up Stations") + assert True + + @pytest.mark.wpa2_personal + @pytest.mark.twog + @pytest.mark.dw_per_client + def test_wpa2_personal_ssid_dw_per_client_batch_size_125_2g(self, lf_test, get_vif_state, lf_tools): + """ + Test Rate Limiting Scenario + pytest -m "rate_limiting and bridge and wpa2_personal and twog and dw_per_client" + """ + # run wifi capacity test here + profile_data = setup_params_general["ssid_modes"]["wpa2_personal"][0] + ssid_name = profile_data["ssid_name"] + mode = "BRIDGE" + vlan = 1 + raw_lines = [["dw_rate_sel: Per-Station Download Rate:"]] + allure.attach(name="ssid-rates", body=str(profile_data["rate-limit"])) + get_vif_state.append(ssid_name) + if ssid_name not in get_vif_state: + allure.attach(name="retest,vif state ssid not available:", body=str(get_vif_state)) + pytest.xfail("SSID NOT AVAILABLE IN VIF STATE") + lf_tools.add_stations(band="2G", num_stations=5, dut=lf_tools.dut_name, ssid_name=ssid_name) + lf_tools.Chamber_View() + wct_obj = lf_test.wifi_capacity(instance_name="test_client_wpa2_BRIDGE_dw_per_cl", mode=mode, vlan_id=vlan, + download_rate="1Gbps", batch_size="1,2,5", + upload_rate="0Gbps", protocol="UDP-IPv4", duration="60000", raw_lines=raw_lines) + + report_name = wct_obj.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1] + + lf_tools.attach_report_graphs(report_name=report_name) + print("Test Completed... Cleaning up Stations") + assert True + @pytest.mark.wpa2_personal @pytest.mark.fiveg @pytest.mark.up @@ -161,7 +286,7 @@ class TestRateLimitingBridge(object): pytest.xfail("SSID NOT AVAILABLE IN VIF STATE") lf_tools.add_stations(band="5G", num_stations=5, dut=lf_tools.dut_name, ssid_name=ssid_name) lf_tools.Chamber_View() - wct_obj = lf_test.wifi_capacity(instance_name="test_client_wpa2_BRIDGE_tcp_dl", mode=mode, vlan_id=vlan, + wct_obj = lf_test.wifi_capacity(instance_name="test_client_wpa2_BRIDGE_up_125", mode=mode, vlan_id=vlan, download_rate="0Gbps", batch_size="1,2,5", upload_rate="1Gbps", protocol="UDP-IPv4", duration="60000") @@ -193,7 +318,7 @@ class TestRateLimitingBridge(object): pytest.xfail("SSID NOT AVAILABLE IN VIF STATE") lf_tools.add_stations(band="5G", num_stations=5, dut=lf_tools.dut_name, ssid_name=ssid_name) lf_tools.Chamber_View() - wct_obj = lf_test.wifi_capacity(instance_name="test_client_wpa2_BRIDGE_tcp_dl", mode=mode, vlan_id=vlan, + wct_obj = lf_test.wifi_capacity(instance_name="test_client_wpa2_BRIDGE_dw_125", mode=mode, vlan_id=vlan, download_rate="1Gbps", batch_size="1,2,5", upload_rate="0Gbps", protocol="UDP-IPv4", duration="60000") @@ -225,7 +350,7 @@ class TestRateLimitingBridge(object): pytest.xfail("SSID NOT AVAILABLE IN VIF STATE") lf_tools.add_stations(band="5G", num_stations=5, dut=lf_tools.dut_name, ssid_name=ssid_name) lf_tools.Chamber_View() - wct_obj = lf_test.wifi_capacity(instance_name="test_client_wpa2_BRIDGE_tcp_dl", mode=mode, vlan_id=vlan, + wct_obj = lf_test.wifi_capacity(instance_name="test_client_wpa2_BRIDGE_up_dw_125", mode=mode, vlan_id=vlan, download_rate="1Gbps", batch_size="1,2,5", upload_rate="1Gbps", protocol="UDP-IPv4", duration="60000") @@ -257,7 +382,7 @@ class TestRateLimitingBridge(object): pytest.xfail("SSID NOT AVAILABLE IN VIF STATE") lf_tools.add_stations(band="2G", num_stations=1, dut=lf_tools.dut_name, ssid_name=ssid_name) lf_tools.Chamber_View() - wct_obj = lf_test.wifi_capacity(instance_name="test_client_wpa2_BRIDGE_tcp_dl", mode=mode, vlan_id=vlan, + wct_obj = lf_test.wifi_capacity(instance_name="test_client_wpa2_BRIDGE_up_1", mode=mode, vlan_id=vlan, download_rate="0Gbps", batch_size="1", upload_rate="1Gbps", protocol="UDP-IPv4", duration="60000") @@ -289,7 +414,7 @@ class TestRateLimitingBridge(object): pytest.xfail("SSID NOT AVAILABLE IN VIF STATE") lf_tools.add_stations(band="2G", num_stations=1, dut=lf_tools.dut_name, ssid_name=ssid_name) lf_tools.Chamber_View() - wct_obj = lf_test.wifi_capacity(instance_name="test_client_wpa2_BRIDGE_tcp_dl", mode=mode, vlan_id=vlan, + wct_obj = lf_test.wifi_capacity(instance_name="test_client_wpa2_BRIDGE_tcp_dl_dw_1", mode=mode, vlan_id=vlan, download_rate="1Gbps", batch_size="1", upload_rate="0Gbps", protocol="UDP-IPv4", duration="60000") @@ -321,7 +446,7 @@ class TestRateLimitingBridge(object): pytest.xfail("SSID NOT AVAILABLE IN VIF STATE") lf_tools.add_stations(band="2G", num_stations=1, dut=lf_tools.dut_name, ssid_name=ssid_name) lf_tools.Chamber_View() - wct_obj = lf_test.wifi_capacity(instance_name="test_client_wpa2_BRIDGE_tcp_dl", mode=mode, vlan_id=vlan, + wct_obj = lf_test.wifi_capacity(instance_name="test_client_wpa2_BRIDGE_tcp_dl_up_dw_1", mode=mode, vlan_id=vlan, download_rate="1Gbps", batch_size="1", upload_rate="1Gbps", protocol="UDP-IPv4", duration="60000") @@ -353,7 +478,7 @@ class TestRateLimitingBridge(object): pytest.xfail("SSID NOT AVAILABLE IN VIF STATE") lf_tools.add_stations(band="5G", num_stations=1, dut=lf_tools.dut_name, ssid_name=ssid_name) lf_tools.Chamber_View() - wct_obj = lf_test.wifi_capacity(instance_name="test_client_wpa2_BRIDGE_tcp_dl", mode=mode, vlan_id=vlan, + wct_obj = lf_test.wifi_capacity(instance_name="test_client_wpa2_BRIDGE_up_1_5g", mode=mode, vlan_id=vlan, download_rate="0Gbps", batch_size="1", upload_rate="1Gbps", protocol="UDP-IPv4", duration="60000") @@ -385,7 +510,7 @@ class TestRateLimitingBridge(object): pytest.xfail("SSID NOT AVAILABLE IN VIF STATE") lf_tools.add_stations(band="5G", num_stations=1, dut=lf_tools.dut_name, ssid_name=ssid_name) lf_tools.Chamber_View() - wct_obj = lf_test.wifi_capacity(instance_name="test_client_wpa2_BRIDGE_tcp_dl", mode=mode, vlan_id=vlan, + wct_obj = lf_test.wifi_capacity(instance_name="test_client_wpa2_BRIDGE_dw_1_5g", mode=mode, vlan_id=vlan, download_rate="1Gbps", batch_size="1", upload_rate="0Gbps", protocol="UDP-IPv4", duration="60000") @@ -417,7 +542,7 @@ class TestRateLimitingBridge(object): pytest.xfail("SSID NOT AVAILABLE IN VIF STATE") lf_tools.add_stations(band="5G", num_stations=1, dut=lf_tools.dut_name, ssid_name=ssid_name) lf_tools.Chamber_View() - wct_obj = lf_test.wifi_capacity(instance_name="test_client_wpa2_BRIDGE_tcp_dl", mode=mode, vlan_id=vlan, + wct_obj = lf_test.wifi_capacity(instance_name="test_client_wpa2_BRIDGE_up_dw_1_5g", mode=mode, vlan_id=vlan, download_rate="1Gbps", batch_size="1", upload_rate="1Gbps", protocol="UDP-IPv4", duration="60000") @@ -426,3 +551,128 @@ class TestRateLimitingBridge(object): lf_tools.attach_report_graphs(report_name=report_name) print("Test Completed... Cleaning up Stations") assert True + + @pytest.mark.wpa2_personal + @pytest.mark.fiveg + @pytest.mark.disable_up_dw + def test_wpa2_personal_ssid_disable_up_dw_batch_size_125_5g(self, lf_test, get_vif_state, lf_tools): + """ + Test Rate Limiting Scenario + pytest -m "rate_limiting and bridge and wpa2_personal and fiveg and disable_up_dw" + """ + # run wifi capacity test here + profile_data = setup_params_general["ssid_modes"]["wpa2_personal"][1] + ssid_name = profile_data["ssid_name"] + profile_data["rate-limit"][0] = 0 + profile_data["rate-limit"][1] = 0 + mode = "BRIDGE" + vlan = 1 + allure.attach(name="ssid-rates", body=str(profile_data["rate-limit"])) + get_vif_state.append(ssid_name) + if ssid_name not in get_vif_state: + allure.attach(name="retest,vif state ssid not available:", body=str(get_vif_state)) + pytest.xfail("SSID NOT AVAILABLE IN VIF STATE") + lf_tools.add_stations(band="5G", num_stations=5, dut=lf_tools.dut_name, ssid_name=ssid_name) + lf_tools.Chamber_View() + wct_obj = lf_test.wifi_capacity(instance_name="test_client_wpa2_BRIDGE_up_dw_di_5g", mode=mode, vlan_id=vlan, + download_rate="1Gbps", batch_size="1,2,5", + upload_rate="1Gbps", protocol="UDP-IPv4", duration="60000") + + report_name = wct_obj.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1] + + lf_tools.attach_report_graphs(report_name=report_name) + print("Test Completed... Cleaning up Stations") + assert True + + @pytest.mark.wpa2_personal + @pytest.mark.fiveg + @pytest.mark.up_dw_per_client + def test_wpa2_personal_ssid_up_dw_per_client_batch_size_125_5g(self, lf_test, get_vif_state, lf_tools): + """ + Test Rate Limiting Scenario + pytest -m "rate_limiting and bridge and wpa2_personal and fiveg and up_dw_per_client" + """ + # run wifi capacity test here + profile_data = setup_params_general["ssid_modes"]["wpa2_personal"][1] + ssid_name = profile_data["ssid_name"] + mode = "BRIDGE" + vlan = 1 + raw_lines = [["dl_rate_sel: Per-Station Download Rate:"], ["ul_rate_sel: Per-Station Download Rate:"]] + allure.attach(name="ssid-rates", body=str(profile_data["rate-limit"])) + get_vif_state.append(ssid_name) + if ssid_name not in get_vif_state: + allure.attach(name="retest,vif state ssid not available:", body=str(get_vif_state)) + pytest.xfail("SSID NOT AVAILABLE IN VIF STATE") + lf_tools.add_stations(band="5G", num_stations=5, dut=lf_tools.dut_name, ssid_name=ssid_name) + lf_tools.Chamber_View() + wct_obj = lf_test.wifi_capacity(instance_name="test_client_wpa2_BRIDGE_per_cl_5g", mode=mode, vlan_id=vlan, + download_rate="1Gbps", batch_size="1,2,5", + upload_rate="1Gbps", protocol="UDP-IPv4", duration="60000", raw_lines=raw_lines) + + report_name = wct_obj.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1] + + lf_tools.attach_report_graphs(report_name=report_name) + print("Test Completed... Cleaning up Stations") + assert True + + @pytest.mark.wpa2_personal + @pytest.mark.fiveg + @pytest.mark.up_per_client + def test_wpa2_personal_ssid_up_per_client_batch_size_125_5g(self, lf_test, get_vif_state, lf_tools): + """ + Test Rate Limiting Scenario + pytest -m "rate_limiting and bridge and wpa2_personal and fiveg and up_per_client" + """ + # run wifi capacity test here + profile_data = setup_params_general["ssid_modes"]["wpa2_personal"][1] + ssid_name = profile_data["ssid_name"] + mode = "BRIDGE" + vlan = 1 + raw_lines = [["ul_rate_sel: Per-Station Download Rate:"]] + allure.attach(name="ssid-rates", body=str(profile_data["rate-limit"])) + get_vif_state.append(ssid_name) + if ssid_name not in get_vif_state: + allure.attach(name="retest,vif state ssid not available:", body=str(get_vif_state)) + pytest.xfail("SSID NOT AVAILABLE IN VIF STATE") + lf_tools.add_stations(band="5G", num_stations=5, dut=lf_tools.dut_name, ssid_name=ssid_name) + lf_tools.Chamber_View() + wct_obj = lf_test.wifi_capacity(instance_name="test_client_wpa2_BRIDGE_up_per_cl_5g", mode=mode, vlan_id=vlan, + download_rate="0Gbps", batch_size="1,2,5", + upload_rate="1Gbps", protocol="UDP-IPv4", duration="60000", raw_lines=raw_lines) + + report_name = wct_obj.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1] + + lf_tools.attach_report_graphs(report_name=report_name) + print("Test Completed... Cleaning up Stations") + assert True + + @pytest.mark.wpa2_personal + @pytest.mark.fiveg + @pytest.mark.dw_per_client + def test_wpa2_personal_ssid_dw_per_client_batch_size_125_5g(self, lf_test, get_vif_state, lf_tools): + """ + Test Rate Limiting Scenario + pytest -m "rate_limiting and bridge and wpa2_personal and fiveg and dw_per_client" + """ + # run wifi capacity test here + profile_data = setup_params_general["ssid_modes"]["wpa2_personal"][1] + ssid_name = profile_data["ssid_name"] + mode = "BRIDGE" + vlan = 1 + raw_lines = [["dw_rate_sel: Per-Station Download Rate:"]] + allure.attach(name="ssid-rates", body=str(profile_data["rate-limit"])) + get_vif_state.append(ssid_name) + if ssid_name not in get_vif_state: + allure.attach(name="retest,vif state ssid not available:", body=str(get_vif_state)) + pytest.xfail("SSID NOT AVAILABLE IN VIF STATE") + lf_tools.add_stations(band="5G", num_stations=5, dut=lf_tools.dut_name, ssid_name=ssid_name) + lf_tools.Chamber_View() + wct_obj = lf_test.wifi_capacity(instance_name="test_client_wpa2_BRIDGE_dw_per_cl_5g", mode=mode, vlan_id=vlan, + download_rate="1Gbps", batch_size="1,2,5", + upload_rate="0Gbps", protocol="UDP-IPv4", duration="60000", raw_lines=raw_lines) + + report_name = wct_obj.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1] + + lf_tools.attach_report_graphs(report_name=report_name) + print("Test Completed... Cleaning up Stations") + assert True diff --git a/tests/e2e/basic/validation_of_operating_modes/nat_mode/rate_limiting/test_rate_limiting.py b/tests/e2e/basic/validation_of_operating_modes/nat_mode/rate_limiting/test_rate_limiting.py new file mode 100644 index 000000000..5ed200198 --- /dev/null +++ b/tests/e2e/basic/validation_of_operating_modes/nat_mode/rate_limiting/test_rate_limiting.py @@ -0,0 +1,678 @@ +""" +Rate LImiting Nat Mode Scenario +""" + +import allure +import pytest + +pytestmark = [pytest.mark.rate_limiting, pytest.mark.nat, pytest.mark.general, pytest.mark.ucentral, + pytest.mark.regression] + +setup_params_general = { + "mode": "NAT", + "ssid_modes": { + "wpa2_personal": [ + {"ssid_name": "ssid_wpa2_2g_br", + "appliedRadios": ["2G"], + "security_key": "something", + "rate-limit": { + "ingress-rate": 100, + "egress-rate": 100 + } + }, + {"ssid_name": "ssid_wpa2_5g_br", + "appliedRadios": ["5G"], + "security_key": "something", + "rate-limit": { + "ingress-rate": 100, + "egress-rate": 100 + } + }]}, + "rf": {}, + "radius": False +} + + +@allure.feature("Nat Mode Rate Limiting") +@pytest.mark.parametrize( + 'setup_profiles', + [setup_params_general], + indirect=True, + scope="class" +) +@pytest.mark.usefixtures("setup_profiles") +class TestRateLimitingNat(object): + + @pytest.mark.wpa2_personal + @pytest.mark.twog + @pytest.mark.up + @pytest.mark.batch_size_125 + @allure.story('Rate Limiting Open SSID 2.4 GHZ Band') + def test_wpa2_personal_nat_ssid_up_batch_size_125_2g(self, lf_test, get_vif_state, lf_tools): + """ + Test Rate Limiting Scenario + pytest -m "rate_limiting and nat and wpa2_personal and twog and up and batch_size_125" + """ + # run wifi capacity test here + profile_data = setup_params_general["ssid_modes"]["wpa2_personal"][0] + ssid_name = profile_data["ssid_name"] + mode = "NAT" + vlan = 1 + allure.attach(name="ssid-rates", body=str(profile_data["rate-limit"])) + get_vif_state.append(ssid_name) + if ssid_name not in get_vif_state: + allure.attach(name="retest,vif state ssid not available:", body=str(get_vif_state)) + pytest.xfail("SSID NOT AVAILABLE IN VIF STATE") + lf_tools.add_stations(band="2G", num_stations=5, dut=lf_tools.dut_name, ssid_name=ssid_name) + lf_tools.Chamber_View() + wct_obj = lf_test.wifi_capacity(instance_name="test_client_wpa2_nat_up", mode=mode, vlan_id=vlan, + download_rate="0Gbps", batch_size="1,2,5", + upload_rate="1Gbps", protocol="UDP-IPv4", duration="60000") + + report_name = wct_obj.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1] + + lf_tools.attach_report_graphs(report_name=report_name) + print("Test Completed... Cleaning up Stations") + assert True + + @pytest.mark.wpa2_personal + @pytest.mark.twog + @pytest.mark.dw + @pytest.mark.batch_size_125 + @allure.story('Rate Limiting Open SSID 2.4 GHZ Band') + def test_wpa2_personal_nat_ssid_dw_batch_size_125_2g(self, lf_test, get_vif_state, lf_tools): + """ + Test Rate Limiting Scenario + pytest -m "rate_limiting and nat and wpa2_personal and twog and dw and batch_size_125" + """ + # run wifi capacity test here + profile_data = setup_params_general["ssid_modes"]["wpa2_personal"][0] + ssid_name = profile_data["ssid_name"] + mode = "NAT" + vlan = 1 + allure.attach(name="ssid-rates", body=str(profile_data["rate-limit"])) + get_vif_state.append(ssid_name) + if ssid_name not in get_vif_state: + allure.attach(name="retest,vif state ssid not available:", body=str(get_vif_state)) + pytest.xfail("SSID NOT AVAILABLE IN VIF STATE") + lf_tools.add_stations(band="2G", num_stations=5, dut=lf_tools.dut_name, ssid_name=ssid_name) + lf_tools.Chamber_View() + wct_obj = lf_test.wifi_capacity(instance_name="test_client_wpa2_nat_dw", mode=mode, vlan_id=vlan, + download_rate="1Gbps", batch_size="1,2,5", + upload_rate="0Gbps", protocol="UDP-IPv4", duration="60000") + + report_name = wct_obj.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1] + + lf_tools.attach_report_graphs(report_name=report_name) + print("Test Completed... Cleaning up Stations") + assert True + + @pytest.mark.wpa2_personal + @pytest.mark.twog + @pytest.mark.up_dw + @pytest.mark.batch_size_125 + @allure.story('Rate Limiting Open SSID 2.4 GHZ Band') + def test_wpa2_personal_nat_ssid_up_dw_batch_size_125_2g(self, lf_test, get_vif_state, lf_tools): + """ + Test Rate Limiting Scenario + pytest -m "rate_limiting and nat and wpa2_personal and twog and up_dw and batch_size_125" + """ + # run wifi capacity test here + profile_data = setup_params_general["ssid_modes"]["wpa2_personal"][0] + ssid_name = profile_data["ssid_name"] + mode = "NAT" + vlan = 1 + allure.attach(name="ssid-rates", body=str(profile_data["rate-limit"])) + get_vif_state.append(ssid_name) + if ssid_name not in get_vif_state: + allure.attach(name="retest,vif state ssid not available:", body=str(get_vif_state)) + pytest.xfail("SSID NOT AVAILABLE IN VIF STATE") + lf_tools.add_stations(band="2G", num_stations=5, dut=lf_tools.dut_name, ssid_name=ssid_name) + lf_tools.Chamber_View() + wct_obj = lf_test.wifi_capacity(instance_name="test_client_wpa2_nat_up_dw", mode=mode, vlan_id=vlan, + download_rate="1Gbps", batch_size="1,2,5", + upload_rate="1Gbps", protocol="UDP-IPv4", duration="60000") + + report_name = wct_obj.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1] + + lf_tools.attach_report_graphs(report_name=report_name) + print("Test Completed... Cleaning up Stations") + assert True + + @pytest.mark.wpa2_personal + @pytest.mark.twog + @pytest.mark.disable_up_dw + def test_wpa2_personal_nat_ssid_disable_up_dw_batch_size_125_2g(self, lf_test, get_vif_state, lf_tools): + """ + Test Rate Limiting Scenario + pytest -m "rate_limiting and nat and wpa2_personal and twog and disable_up_dw" + """ + # run wifi capacity test here + profile_data = setup_params_general["ssid_modes"]["wpa2_personal"][0] + ssid_name = profile_data["ssid_name"] + profile_data["rate-limit"][0] = 0 + profile_data["rate-limit"][1] = 0 + mode = "NAT" + vlan = 1 + allure.attach(name="ssid-rates", body=str(profile_data["rate-limit"])) + get_vif_state.append(ssid_name) + if ssid_name not in get_vif_state: + allure.attach(name="retest,vif state ssid not available:", body=str(get_vif_state)) + pytest.xfail("SSID NOT AVAILABLE IN VIF STATE") + lf_tools.add_stations(band="2G", num_stations=5, dut=lf_tools.dut_name, ssid_name=ssid_name) + lf_tools.Chamber_View() + wct_obj = lf_test.wifi_capacity(instance_name="test_client_wpa2_nat_up_dw_di", mode=mode, vlan_id=vlan, + download_rate="1Gbps", batch_size="1,2,5", + upload_rate="1Gbps", protocol="UDP-IPv4", duration="60000") + + report_name = wct_obj.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1] + + lf_tools.attach_report_graphs(report_name=report_name) + print("Test Completed... Cleaning up Stations") + assert True + + @pytest.mark.wpa2_personal + @pytest.mark.twog + @pytest.mark.up_dw_per_client + def test_wpa2_personal_nat_ssid_up_dw_per_client_batch_size_125_2g(self, lf_test, get_vif_state, lf_tools): + """ + Test Rate Limiting Scenario + pytest -m "rate_limiting and nat and wpa2_personal and twog and up_dw_per_client" + """ + # run wifi capacity test here + profile_data = setup_params_general["ssid_modes"]["wpa2_personal"][0] + ssid_name = profile_data["ssid_name"] + mode = "NAT" + vlan = 1 + raw_lines = [["dl_rate_sel: Per-Station Download Rate:"], ["ul_rate_sel: Per-Station Download Rate:"]] + allure.attach(name="ssid-rates", body=str(profile_data["rate-limit"])) + get_vif_state.append(ssid_name) + if ssid_name not in get_vif_state: + allure.attach(name="retest,vif state ssid not available:", body=str(get_vif_state)) + pytest.xfail("SSID NOT AVAILABLE IN VIF STATE") + lf_tools.add_stations(band="2G", num_stations=5, dut=lf_tools.dut_name, ssid_name=ssid_name) + lf_tools.Chamber_View() + wct_obj = lf_test.wifi_capacity(instance_name="test_client_wpa2_nat_up_dw_per_cl", mode=mode, vlan_id=vlan, + download_rate="1Gbps", batch_size="1,2,5", + upload_rate="1Gbps", protocol="UDP-IPv4", duration="60000", raw_lines=raw_lines) + + report_name = wct_obj.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1] + + lf_tools.attach_report_graphs(report_name=report_name) + print("Test Completed... Cleaning up Stations") + assert True + + @pytest.mark.wpa2_personal + @pytest.mark.twog + @pytest.mark.up_per_client + def test_wpa2_personal_nat_ssid_up_per_client_batch_size_125_2g(self, lf_test, get_vif_state, lf_tools): + """ + Test Rate Limiting Scenario + pytest -m "rate_limiting and nat and wpa2_personal and twog and up_per_client" + """ + # run wifi capacity test here + profile_data = setup_params_general["ssid_modes"]["wpa2_personal"][0] + ssid_name = profile_data["ssid_name"] + mode = "NAT" + vlan = 1 + raw_lines = [["ul_rate_sel: Per-Station Download Rate:"]] + allure.attach(name="ssid-rates", body=str(profile_data["rate-limit"])) + get_vif_state.append(ssid_name) + if ssid_name not in get_vif_state: + allure.attach(name="retest,vif state ssid not available:", body=str(get_vif_state)) + pytest.xfail("SSID NOT AVAILABLE IN VIF STATE") + lf_tools.add_stations(band="2G", num_stations=5, dut=lf_tools.dut_name, ssid_name=ssid_name) + lf_tools.Chamber_View() + wct_obj = lf_test.wifi_capacity(instance_name="test_client_wpa2_nat_up_per_cl", mode=mode, vlan_id=vlan, + download_rate="0Gbps", batch_size="1,2,5", + upload_rate="1Gbps", protocol="UDP-IPv4", duration="60000", raw_lines=raw_lines) + + report_name = wct_obj.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1] + + lf_tools.attach_report_graphs(report_name=report_name) + print("Test Completed... Cleaning up Stations") + assert True + + @pytest.mark.wpa2_personal + @pytest.mark.twog + @pytest.mark.dw_per_client + def test_wpa2_personal_nat_ssid_dw_per_client_batch_size_125_2g(self, lf_test, get_vif_state, lf_tools): + """ + Test Rate Limiting Scenario + pytest -m "rate_limiting and nat and wpa2_personal and twog and dw_per_client" + """ + # run wifi capacity test here + profile_data = setup_params_general["ssid_modes"]["wpa2_personal"][0] + ssid_name = profile_data["ssid_name"] + mode = "NAT" + vlan = 1 + raw_lines = [["dw_rate_sel: Per-Station Download Rate:"]] + allure.attach(name="ssid-rates", body=str(profile_data["rate-limit"])) + get_vif_state.append(ssid_name) + if ssid_name not in get_vif_state: + allure.attach(name="retest,vif state ssid not available:", body=str(get_vif_state)) + pytest.xfail("SSID NOT AVAILABLE IN VIF STATE") + lf_tools.add_stations(band="2G", num_stations=5, dut=lf_tools.dut_name, ssid_name=ssid_name) + lf_tools.Chamber_View() + wct_obj = lf_test.wifi_capacity(instance_name="test_client_wpa2_nat_dw_per_cl", mode=mode, vlan_id=vlan, + download_rate="1Gbps", batch_size="1,2,5", + upload_rate="0Gbps", protocol="UDP-IPv4", duration="60000", raw_lines=raw_lines) + + report_name = wct_obj.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1] + + lf_tools.attach_report_graphs(report_name=report_name) + print("Test Completed... Cleaning up Stations") + assert True + + @pytest.mark.wpa2_personal + @pytest.mark.fiveg + @pytest.mark.up + @pytest.mark.batch_size_125 + @allure.story('Rate Limiting Open SSID 2.4 GHZ Band') + def test_wpa2_personal_nat_ssid_up_batch_size_125_5g(self, lf_test, get_vif_state, lf_tools): + """ + Test Rate Limiting Scenario + pytest -m "rate_limiting and nat and wpa2_personal and fiveg and up and batch_size_125" + """ + # run wifi capacity test here + profile_data = setup_params_general["ssid_modes"]["wpa2_personal"][1] + ssid_name = profile_data["ssid_name"] + mode = "NAT" + vlan = 1 + allure.attach(name="ssid-rates", body=str(profile_data["rate-limit"])) + get_vif_state.append(ssid_name) + if ssid_name not in get_vif_state: + allure.attach(name="retest,vif state ssid not available:", body=str(get_vif_state)) + pytest.xfail("SSID NOT AVAILABLE IN VIF STATE") + lf_tools.add_stations(band="5G", num_stations=5, dut=lf_tools.dut_name, ssid_name=ssid_name) + lf_tools.Chamber_View() + wct_obj = lf_test.wifi_capacity(instance_name="test_client_wpa2_nat_125", mode=mode, vlan_id=vlan, + download_rate="0Gbps", batch_size="1,2,5", + upload_rate="1Gbps", protocol="UDP-IPv4", duration="60000") + + report_name = wct_obj.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1] + + lf_tools.attach_report_graphs(report_name=report_name) + print("Test Completed... Cleaning up Stations") + assert True + + @pytest.mark.wpa2_personal + @pytest.mark.fiveg + @pytest.mark.dw + @pytest.mark.batch_size_125 + @allure.story('Rate Limiting Open SSID 2.4 GHZ Band') + def test_wpa2_personal_nat_ssid_dw_batch_size_125_5g(self, lf_test, get_vif_state, lf_tools): + """ + Test Rate Limiting Scenario + pytest -m "rate_limiting and nat and wpa2_personal and fiveg and dw and batch_size_125" + """ + # run wifi capacity test here + profile_data = setup_params_general["ssid_modes"]["wpa2_personal"][1] + ssid_name = profile_data["ssid_name"] + mode = "NAT" + vlan = 1 + allure.attach(name="ssid-rates", body=str(profile_data["rate-limit"])) + get_vif_state.append(ssid_name) + if ssid_name not in get_vif_state: + allure.attach(name="retest,vif state ssid not available:", body=str(get_vif_state)) + pytest.xfail("SSID NOT AVAILABLE IN VIF STATE") + lf_tools.add_stations(band="5G", num_stations=5, dut=lf_tools.dut_name, ssid_name=ssid_name) + lf_tools.Chamber_View() + wct_obj = lf_test.wifi_capacity(instance_name="test_client_wpa2_nat_dw_125", mode=mode, vlan_id=vlan, + download_rate="1Gbps", batch_size="1,2,5", + upload_rate="0Gbps", protocol="UDP-IPv4", duration="60000") + + report_name = wct_obj.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1] + + lf_tools.attach_report_graphs(report_name=report_name) + print("Test Completed... Cleaning up Stations") + assert True + + @pytest.mark.wpa2_personal + @pytest.mark.fiveg + @pytest.mark.up_dw + @pytest.mark.batch_size_125 + @allure.story('Rate Limiting Open SSID 2.4 GHZ Band') + def test_wpa2_personal_nat_ssid_up_dw_batch_size_125_5g(self, lf_test, get_vif_state, lf_tools): + """ + Test Rate Limiting Scenario + pytest -m "rate_limiting and nat and wpa2_personal and fiveg and up_dw and batch_size_125" + """ + # run wifi capacity test here + profile_data = setup_params_general["ssid_modes"]["wpa2_personal"][1] + ssid_name = profile_data["ssid_name"] + mode = "NAT" + vlan = 1 + allure.attach(name="ssid-rates", body=str(profile_data["rate-limit"])) + get_vif_state.append(ssid_name) + if ssid_name not in get_vif_state: + allure.attach(name="retest,vif state ssid not available:", body=str(get_vif_state)) + pytest.xfail("SSID NOT AVAILABLE IN VIF STATE") + lf_tools.add_stations(band="5G", num_stations=5, dut=lf_tools.dut_name, ssid_name=ssid_name) + lf_tools.Chamber_View() + wct_obj = lf_test.wifi_capacity(instance_name="test_client_wpa2_nat_up_dw_125", mode=mode, vlan_id=vlan, + download_rate="1Gbps", batch_size="1,2,5", + upload_rate="1Gbps", protocol="UDP-IPv4", duration="60000") + + report_name = wct_obj.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1] + + lf_tools.attach_report_graphs(report_name=report_name) + print("Test Completed... Cleaning up Stations") + assert True + + @pytest.mark.wpa2_personal + @pytest.mark.twog + @pytest.mark.up + @pytest.mark.batch_size_1 + @allure.story('Rate Limiting Open SSID 2.4 GHZ Band') + def test_wpa2_personal_nat_ssid_up_batch_size_1_2g(self, lf_test, get_vif_state, lf_tools): + """ + Test Rate Limiting Scenario + pytest -m "rate_limiting and nat and wpa2_personal and twog and up and batch_size_1" + """ + # run wifi capacity test here + profile_data = setup_params_general["ssid_modes"]["wpa2_personal"][0] + ssid_name = profile_data["ssid_name"] + mode = "NAT" + vlan = 1 + allure.attach(name="ssid-rates", body=str(profile_data["rate-limit"])) + get_vif_state.append(ssid_name) + if ssid_name not in get_vif_state: + allure.attach(name="retest,vif state ssid not available:", body=str(get_vif_state)) + pytest.xfail("SSID NOT AVAILABLE IN VIF STATE") + lf_tools.add_stations(band="2G", num_stations=1, dut=lf_tools.dut_name, ssid_name=ssid_name) + lf_tools.Chamber_View() + wct_obj = lf_test.wifi_capacity(instance_name="test_client_wpa2_nat_up_1", mode=mode, vlan_id=vlan, + download_rate="0Gbps", batch_size="1", + upload_rate="1Gbps", protocol="UDP-IPv4", duration="60000") + + report_name = wct_obj.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1] + + lf_tools.attach_report_graphs(report_name=report_name) + print("Test Completed... Cleaning up Stations") + assert True + + @pytest.mark.wpa2_personal + @pytest.mark.twog + @pytest.mark.dw + @pytest.mark.batch_size_1 + @allure.story('Rate Limiting Open SSID 2.4 GHZ Band') + def test_wpa2_personal_nat_ssid_dw_batch_size_1_2g(self, lf_test, get_vif_state, lf_tools): + """ + Test Rate Limiting Scenario + pytest -m "rate_limiting and nat and wpa2_personal and twog and dw and batch_size_1" + """ + # run wifi capacity test here + profile_data = setup_params_general["ssid_modes"]["wpa2_personal"][0] + ssid_name = profile_data["ssid_name"] + mode = "NAT" + vlan = 1 + allure.attach(name="ssid-rates", body=str(profile_data["rate-limit"])) + get_vif_state.append(ssid_name) + if ssid_name not in get_vif_state: + allure.attach(name="retest,vif state ssid not available:", body=str(get_vif_state)) + pytest.xfail("SSID NOT AVAILABLE IN VIF STATE") + lf_tools.add_stations(band="2G", num_stations=1, dut=lf_tools.dut_name, ssid_name=ssid_name) + lf_tools.Chamber_View() + wct_obj = lf_test.wifi_capacity(instance_name="test_client_wpa2_nat_tcp_dl", mode=mode, vlan_id=vlan, + download_rate="1Gbps", batch_size="1", + upload_rate="0Gbps", protocol="UDP-IPv4", duration="60000") + + report_name = wct_obj.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1] + + lf_tools.attach_report_graphs(report_name=report_name) + print("Test Completed... Cleaning up Stations") + assert True + + @pytest.mark.wpa2_personal + @pytest.mark.twog + @pytest.mark.up_dw + @pytest.mark.batch_size_1 + @allure.story('Rate Limiting Open SSID 2.4 GHZ Band') + def test_wpa2_personal_nat_ssid_up_dw_batch_size_1_2g(self, lf_test, get_vif_state, lf_tools): + """ + Test Rate Limiting Scenario + pytest -m "rate_limiting and nat and wpa2_personal and twog and up_dw and batch_size_1" + """ + # run wifi capacity test here + profile_data = setup_params_general["ssid_modes"]["wpa2_personal"][0] + ssid_name = profile_data["ssid_name"] + mode = "NAT" + vlan = 1 + allure.attach(name="ssid-rates", body=str(profile_data["rate-limit"])) + get_vif_state.append(ssid_name) + if ssid_name not in get_vif_state: + allure.attach(name="retest,vif state ssid not available:", body=str(get_vif_state)) + pytest.xfail("SSID NOT AVAILABLE IN VIF STATE") + lf_tools.add_stations(band="2G", num_stations=1, dut=lf_tools.dut_name, ssid_name=ssid_name) + lf_tools.Chamber_View() + wct_obj = lf_test.wifi_capacity(instance_name="test_client_wpa2_nat_up_dw_1", mode=mode, vlan_id=vlan, + download_rate="1Gbps", batch_size="1", + upload_rate="1Gbps", protocol="UDP-IPv4", duration="60000") + + report_name = wct_obj.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1] + + lf_tools.attach_report_graphs(report_name=report_name) + print("Test Completed... Cleaning up Stations") + assert True + + @pytest.mark.wpa2_personal + @pytest.mark.fiveg + @pytest.mark.up + @pytest.mark.batch_size_1 + @allure.story('Rate Limiting Open SSID 2.4 GHZ Band') + def test_wpa2_personal_nat_ssid_up_batch_size_1_5g(self, lf_test, get_vif_state, lf_tools): + """ + Test Rate Limiting Scenario + pytest -m "rate_limiting and nat and wpa2_personal and fiveg and up and batch_size_1" + """ + # run wifi capacity test here + profile_data = setup_params_general["ssid_modes"]["wpa2_personal"][1] + ssid_name = profile_data["ssid_name"] + mode = "NAT" + vlan = 1 + allure.attach(name="ssid-rates", body=str(profile_data["rate-limit"])) + get_vif_state.append(ssid_name) + if ssid_name not in get_vif_state: + allure.attach(name="retest,vif state ssid not available:", body=str(get_vif_state)) + pytest.xfail("SSID NOT AVAILABLE IN VIF STATE") + lf_tools.add_stations(band="5G", num_stations=1, dut=lf_tools.dut_name, ssid_name=ssid_name) + lf_tools.Chamber_View() + wct_obj = lf_test.wifi_capacity(instance_name="test_client_wpa2_nat_up_1_5g", mode=mode, vlan_id=vlan, + download_rate="0Gbps", batch_size="1", + upload_rate="1Gbps", protocol="UDP-IPv4", duration="60000") + + report_name = wct_obj.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1] + + lf_tools.attach_report_graphs(report_name=report_name) + print("Test Completed... Cleaning up Stations") + assert True + + @pytest.mark.wpa2_personal + @pytest.mark.fiveg + @pytest.mark.dw + @pytest.mark.batch_size_1 + @allure.story('Rate Limiting Open SSID 2.4 GHZ Band') + def test_wpa2_personal_nat_ssid_dw_batch_size_1_5g(self, lf_test, get_vif_state, lf_tools): + """ + Test Rate Limiting Scenario + pytest -m "rate_limiting and nat and wpa2_personal and fiveg and dw and batch_size_1" + """ + # run wifi capacity test here + profile_data = setup_params_general["ssid_modes"]["wpa2_personal"][1] + ssid_name = profile_data["ssid_name"] + mode = "NAT" + vlan = 1 + allure.attach(name="ssid-rates", body=str(profile_data["rate-limit"])) + get_vif_state.append(ssid_name) + if ssid_name not in get_vif_state: + allure.attach(name="retest,vif state ssid not available:", body=str(get_vif_state)) + pytest.xfail("SSID NOT AVAILABLE IN VIF STATE") + lf_tools.add_stations(band="5G", num_stations=1, dut=lf_tools.dut_name, ssid_name=ssid_name) + lf_tools.Chamber_View() + wct_obj = lf_test.wifi_capacity(instance_name="test_client_wpa2_nat_dw_1_5g", mode=mode, vlan_id=vlan, + download_rate="1Gbps", batch_size="1", + upload_rate="0Gbps", protocol="UDP-IPv4", duration="60000") + + report_name = wct_obj.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1] + + lf_tools.attach_report_graphs(report_name=report_name) + print("Test Completed... Cleaning up Stations") + assert True + + @pytest.mark.wpa2_personal + @pytest.mark.fiveg + @pytest.mark.up_dw + @pytest.mark.batch_size_1 + @allure.story('Rate Limiting Open SSID 2.4 GHZ Band') + def test_wpa2_personal_nat_ssid_up_dw_batch_size_1_5g(self, lf_test, get_vif_state, lf_tools): + """ + Test Rate Limiting Scenario + pytest -m "rate_limiting and nat and wpa2_personal and fiveg and up_dw and batch_size_1" + """ + # run wifi capacity test here + profile_data = setup_params_general["ssid_modes"]["wpa2_personal"][1] + ssid_name = profile_data["ssid_name"] + mode = "NAT" + vlan = 1 + allure.attach(name="ssid-rates", body=str(profile_data["rate-limit"])) + get_vif_state.append(ssid_name) + if ssid_name not in get_vif_state: + allure.attach(name="retest,vif state ssid not available:", body=str(get_vif_state)) + pytest.xfail("SSID NOT AVAILABLE IN VIF STATE") + lf_tools.add_stations(band="5G", num_stations=1, dut=lf_tools.dut_name, ssid_name=ssid_name) + lf_tools.Chamber_View() + wct_obj = lf_test.wifi_capacity(instance_name="test_client_wpa2_nat_up_dw_5g", mode=mode, vlan_id=vlan, + download_rate="1Gbps", batch_size="1", + upload_rate="1Gbps", protocol="UDP-IPv4", duration="60000") + + report_name = wct_obj.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1] + + lf_tools.attach_report_graphs(report_name=report_name) + print("Test Completed... Cleaning up Stations") + assert True + + @pytest.mark.wpa2_personal + @pytest.mark.fiveg + @pytest.mark.disable_up_dw + def test_wpa2_personal_nat_ssid_disable_up_dw_batch_size_125_5g(self, lf_test, get_vif_state, lf_tools): + """ + Test Rate Limiting Scenario + pytest -m "rate_limiting and nat and wpa2_personal and fiveg and disable_up_dw" + """ + # run wifi capacity test here + profile_data = setup_params_general["ssid_modes"]["wpa2_personal"][1] + ssid_name = profile_data["ssid_name"] + profile_data["rate-limit"][0] = 0 + profile_data["rate-limit"][1] = 0 + mode = "NAT" + vlan = 1 + allure.attach(name="ssid-rates", body=str(profile_data["rate-limit"])) + get_vif_state.append(ssid_name) + if ssid_name not in get_vif_state: + allure.attach(name="retest,vif state ssid not available:", body=str(get_vif_state)) + pytest.xfail("SSID NOT AVAILABLE IN VIF STATE") + lf_tools.add_stations(band="5G", num_stations=5, dut=lf_tools.dut_name, ssid_name=ssid_name) + lf_tools.Chamber_View() + wct_obj = lf_test.wifi_capacity(instance_name="test_client_wpa2_nat_up_dw_di", mode=mode, vlan_id=vlan, + download_rate="1Gbps", batch_size="1,2,5", + upload_rate="1Gbps", protocol="UDP-IPv4", duration="60000") + + report_name = wct_obj.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1] + + lf_tools.attach_report_graphs(report_name=report_name) + print("Test Completed... Cleaning up Stations") + assert True + + @pytest.mark.wpa2_personal + @pytest.mark.fiveg + @pytest.mark.up_dw_per_client + def test_wpa2_personal_nat_ssid_up_dw_per_client_batch_size_125_5g(self, lf_test, get_vif_state, lf_tools): + """ + Test Rate Limiting Scenario + pytest -m "rate_limiting and nat and wpa2_personal and fiveg and up_dw_per_client" + """ + # run wifi capacity test here + profile_data = setup_params_general["ssid_modes"]["wpa2_personal"][1] + ssid_name = profile_data["ssid_name"] + mode = "NAT" + vlan = 1 + raw_lines = [["dl_rate_sel: Per-Station Download Rate:"], ["ul_rate_sel: Per-Station Download Rate:"]] + allure.attach(name="ssid-rates", body=str(profile_data["rate-limit"])) + get_vif_state.append(ssid_name) + if ssid_name not in get_vif_state: + allure.attach(name="retest,vif state ssid not available:", body=str(get_vif_state)) + pytest.xfail("SSID NOT AVAILABLE IN VIF STATE") + lf_tools.add_stations(band="5G", num_stations=5, dut=lf_tools.dut_name, ssid_name=ssid_name) + lf_tools.Chamber_View() + wct_obj = lf_test.wifi_capacity(instance_name="test_client_wpa2_nat_up_dw_per_cl_5g", mode=mode, vlan_id=vlan, + download_rate="1Gbps", batch_size="1,2,5", + upload_rate="1Gbps", protocol="UDP-IPv4", duration="60000", raw_lines=raw_lines) + + report_name = wct_obj.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1] + + lf_tools.attach_report_graphs(report_name=report_name) + print("Test Completed... Cleaning up Stations") + assert True + + @pytest.mark.wpa2_personal + @pytest.mark.fiveg + @pytest.mark.up_per_client + def test_wpa2_personal_nat_ssid_up_per_client_batch_size_125_5g(self, lf_test, get_vif_state, lf_tools): + """ + Test Rate Limiting Scenario + pytest -m "rate_limiting and nat and wpa2_personal and fiveg and up_per_client" + """ + # run wifi capacity test here + profile_data = setup_params_general["ssid_modes"]["wpa2_personal"][1] + ssid_name = profile_data["ssid_name"] + mode = "NAT" + vlan = 1 + raw_lines = [["ul_rate_sel: Per-Station Download Rate:"]] + allure.attach(name="ssid-rates", body=str(profile_data["rate-limit"])) + get_vif_state.append(ssid_name) + if ssid_name not in get_vif_state: + allure.attach(name="retest,vif state ssid not available:", body=str(get_vif_state)) + pytest.xfail("SSID NOT AVAILABLE IN VIF STATE") + lf_tools.add_stations(band="5G", num_stations=5, dut=lf_tools.dut_name, ssid_name=ssid_name) + lf_tools.Chamber_View() + wct_obj = lf_test.wifi_capacity(instance_name="test_client_wpa2_nat_up_per_cl_5g", mode=mode, vlan_id=vlan, + download_rate="0Gbps", batch_size="1,2,5", + upload_rate="1Gbps", protocol="UDP-IPv4", duration="60000", raw_lines=raw_lines) + + report_name = wct_obj.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1] + + lf_tools.attach_report_graphs(report_name=report_name) + print("Test Completed... Cleaning up Stations") + assert True + + @pytest.mark.wpa2_personal + @pytest.mark.fiveg + @pytest.mark.dw_per_client + def test_wpa2_personal_nat_ssid_dw_per_client_batch_size_125_5g(self, lf_test, get_vif_state, lf_tools): + """ + Test Rate Limiting Scenario + pytest -m "rate_limiting and nat and wpa2_personal and fiveg and dw_per_client" + """ + # run wifi capacity test here + profile_data = setup_params_general["ssid_modes"]["wpa2_personal"][1] + ssid_name = profile_data["ssid_name"] + mode = "NAT" + vlan = 1 + raw_lines = [["dw_rate_sel: Per-Station Download Rate:"]] + allure.attach(name="ssid-rates", body=str(profile_data["rate-limit"])) + get_vif_state.append(ssid_name) + if ssid_name not in get_vif_state: + allure.attach(name="retest,vif state ssid not available:", body=str(get_vif_state)) + pytest.xfail("SSID NOT AVAILABLE IN VIF STATE") + lf_tools.add_stations(band="5G", num_stations=5, dut=lf_tools.dut_name, ssid_name=ssid_name) + lf_tools.Chamber_View() + wct_obj = lf_test.wifi_capacity(instance_name="test_client_wpa2_nat_dw_per_cl_5g", mode=mode, vlan_id=vlan, + download_rate="1Gbps", batch_size="1,2,5", + upload_rate="0Gbps", protocol="UDP-IPv4", duration="60000", raw_lines=raw_lines) + + report_name = wct_obj.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1] + + lf_tools.attach_report_graphs(report_name=report_name) + print("Test Completed... Cleaning up Stations") + assert True diff --git a/tests/e2e/basic/validation_of_operating_modes/vlan_mode/rate_limiting/test_rate_limiting.py b/tests/e2e/basic/validation_of_operating_modes/vlan_mode/rate_limiting/test_rate_limiting.py new file mode 100644 index 000000000..20f6d5405 --- /dev/null +++ b/tests/e2e/basic/validation_of_operating_modes/vlan_mode/rate_limiting/test_rate_limiting.py @@ -0,0 +1,678 @@ +""" +Rate LImiting Vlan Mode Scenario +""" + +import allure +import pytest + +pytestmark = [pytest.mark.rate_limiting, pytest.mark.vlan, pytest.mark.general, pytest.mark.ucentral, + pytest.mark.regression] + +setup_params_general = { + "mode": "VLAN", + "ssid_modes": { + "wpa2_personal": [ + {"ssid_name": "ssid_wpa2_2g_br", + "appliedRadios": ["2G"], + "security_key": "something", + "rate-limit": { + "ingress-rate": 100, + "egress-rate": 100 + } + }, + {"ssid_name": "ssid_wpa2_5g_br", + "appliedRadios": ["5G"], + "security_key": "something", + "rate-limit": { + "ingress-rate": 100, + "egress-rate": 100 + } + }]}, + "rf": {}, + "radius": False +} + + +@allure.feature("Vlan Mode Rate Limiting") +@pytest.mark.parametrize( + 'setup_profiles', + [setup_params_general], + indirect=True, + scope="class" +) +@pytest.mark.usefixtures("setup_profiles") +class TestRateLimitingVlan(object): + + @pytest.mark.wpa2_personal + @pytest.mark.twog + @pytest.mark.up + @pytest.mark.batch_size_125 + @allure.story('Rate Limiting Open SSID 2.4 GHZ Band') + def test_wpa2_personal_vlan_ssid_up_batch_size_125_2g(self, lf_test, get_vif_state, lf_tools): + """ + Test Rate Limiting Scenario + pytest -m "rate_limiting and vlan and wpa2_personal and twog and up and batch_size_125" + """ + # run wifi capacity test here + profile_data = setup_params_general["ssid_modes"]["wpa2_personal"][0] + ssid_name = profile_data["ssid_name"] + mode = "VLAN" + vlan = 1 + allure.attach(name="ssid-rates", body=str(profile_data["rate-limit"])) + get_vif_state.append(ssid_name) + if ssid_name not in get_vif_state: + allure.attach(name="retest,vif state ssid not available:", body=str(get_vif_state)) + pytest.xfail("SSID NOT AVAILABLE IN VIF STATE") + lf_tools.add_stations(band="2G", num_stations=5, dut=lf_tools.dut_name, ssid_name=ssid_name) + lf_tools.Chamber_View() + wct_obj = lf_test.wifi_capacity(instance_name="test_client_wpa2_vlan_up_125", mode=mode, vlan_id=vlan, + download_rate="0Gbps", batch_size="1,2,5", + upload_rate="1Gbps", protocol="UDP-IPv4", duration="60000") + + report_name = wct_obj.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1] + + lf_tools.attach_report_graphs(report_name=report_name) + print("Test Completed... Cleaning up Stations") + assert True + + @pytest.mark.wpa2_personal + @pytest.mark.twog + @pytest.mark.dw + @pytest.mark.batch_size_125 + @allure.story('Rate Limiting Open SSID 2.4 GHZ Band') + def test_wpa2_personal_vlan_ssid_dw_batch_size_125_2g(self, lf_test, get_vif_state, lf_tools): + """ + Test Rate Limiting Scenario + pytest -m "rate_limiting and vlan and wpa2_personal and twog and dw and batch_size_125" + """ + # run wifi capacity test here + profile_data = setup_params_general["ssid_modes"]["wpa2_personal"][0] + ssid_name = profile_data["ssid_name"] + mode = "VLAN" + vlan = 1 + allure.attach(name="ssid-rates", body=str(profile_data["rate-limit"])) + get_vif_state.append(ssid_name) + if ssid_name not in get_vif_state: + allure.attach(name="retest,vif state ssid not available:", body=str(get_vif_state)) + pytest.xfail("SSID NOT AVAILABLE IN VIF STATE") + lf_tools.add_stations(band="2G", num_stations=5, dut=lf_tools.dut_name, ssid_name=ssid_name) + lf_tools.Chamber_View() + wct_obj = lf_test.wifi_capacity(instance_name="test_client_wpa2_vlan_dw_125", mode=mode, vlan_id=vlan, + download_rate="1Gbps", batch_size="1,2,5", + upload_rate="0Gbps", protocol="UDP-IPv4", duration="60000") + + report_name = wct_obj.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1] + + lf_tools.attach_report_graphs(report_name=report_name) + print("Test Completed... Cleaning up Stations") + assert True + + @pytest.mark.wpa2_personal + @pytest.mark.twog + @pytest.mark.up_dw + @pytest.mark.batch_size_125 + @allure.story('Rate Limiting Open SSID 2.4 GHZ Band') + def test_wpa2_personal_vlan_ssid_up_dw_batch_size_125_2g(self, lf_test, get_vif_state, lf_tools): + """ + Test Rate Limiting Scenario + pytest -m "rate_limiting and vlan and wpa2_personal and twog and up_dw and batch_size_125" + """ + # run wifi capacity test here + profile_data = setup_params_general["ssid_modes"]["wpa2_personal"][0] + ssid_name = profile_data["ssid_name"] + mode = "VLAN" + vlan = 1 + allure.attach(name="ssid-rates", body=str(profile_data["rate-limit"])) + get_vif_state.append(ssid_name) + if ssid_name not in get_vif_state: + allure.attach(name="retest,vif state ssid not available:", body=str(get_vif_state)) + pytest.xfail("SSID NOT AVAILABLE IN VIF STATE") + lf_tools.add_stations(band="2G", num_stations=5, dut=lf_tools.dut_name, ssid_name=ssid_name) + lf_tools.Chamber_View() + wct_obj = lf_test.wifi_capacity(instance_name="test_client_wpa2_vlan_up_dw_125", mode=mode, vlan_id=vlan, + download_rate="1Gbps", batch_size="1,2,5", + upload_rate="1Gbps", protocol="UDP-IPv4", duration="60000") + + report_name = wct_obj.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1] + + lf_tools.attach_report_graphs(report_name=report_name) + print("Test Completed... Cleaning up Stations") + assert True + + @pytest.mark.wpa2_personal + @pytest.mark.twog + @pytest.mark.disable_up_dw + def test_wpa2_personal_vlan_ssid_disable_up_dw_batch_size_125_2g(self, lf_test, get_vif_state, lf_tools): + """ + Test Rate Limiting Scenario + pytest -m "rate_limiting and vlan and wpa2_personal and twog and disable_up_dw" + """ + # run wifi capacity test here + profile_data = setup_params_general["ssid_modes"]["wpa2_personal"][0] + ssid_name = profile_data["ssid_name"] + profile_data["rate-limit"][0] = 0 + profile_data["rate-limit"][1] = 0 + mode = "VLAN" + vlan = 1 + allure.attach(name="ssid-rates", body=str(profile_data["rate-limit"])) + get_vif_state.append(ssid_name) + if ssid_name not in get_vif_state: + allure.attach(name="retest,vif state ssid not available:", body=str(get_vif_state)) + pytest.xfail("SSID NOT AVAILABLE IN VIF STATE") + lf_tools.add_stations(band="2G", num_stations=5, dut=lf_tools.dut_name, ssid_name=ssid_name) + lf_tools.Chamber_View() + wct_obj = lf_test.wifi_capacity(instance_name="test_client_wpa2_vlan_up_dw_dis", mode=mode, vlan_id=vlan, + download_rate="1Gbps", batch_size="1,2,5", + upload_rate="1Gbps", protocol="UDP-IPv4", duration="60000") + + report_name = wct_obj.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1] + + lf_tools.attach_report_graphs(report_name=report_name) + print("Test Completed... Cleaning up Stations") + assert True + + @pytest.mark.wpa2_personal + @pytest.mark.twog + @pytest.mark.up_dw_per_client + def test_wpa2_personal_vlan_ssid_up_dw_per_client_batch_size_125_2g(self, lf_test, get_vif_state, lf_tools): + """ + Test Rate Limiting Scenario + pytest -m "rate_limiting and vlan and wpa2_personal and twog and up_dw_per_client" + """ + # run wifi capacity test here + profile_data = setup_params_general["ssid_modes"]["wpa2_personal"][0] + ssid_name = profile_data["ssid_name"] + mode = "VLAN" + vlan = 1 + raw_lines = [["dl_rate_sel: Per-Station Download Rate:"], ["ul_rate_sel: Per-Station Download Rate:"]] + allure.attach(name="ssid-rates", body=str(profile_data["rate-limit"])) + get_vif_state.append(ssid_name) + if ssid_name not in get_vif_state: + allure.attach(name="retest,vif state ssid not available:", body=str(get_vif_state)) + pytest.xfail("SSID NOT AVAILABLE IN VIF STATE") + lf_tools.add_stations(band="2G", num_stations=5, dut=lf_tools.dut_name, ssid_name=ssid_name) + lf_tools.Chamber_View() + wct_obj = lf_test.wifi_capacity(instance_name="test_client_wpa2_vlan_up_dw_per_client", mode=mode, vlan_id=vlan, + download_rate="1Gbps", batch_size="1,2,5", + upload_rate="1Gbps", protocol="UDP-IPv4", duration="60000", raw_lines=raw_lines) + + report_name = wct_obj.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1] + + lf_tools.attach_report_graphs(report_name=report_name) + print("Test Completed... Cleaning up Stations") + assert True + + @pytest.mark.wpa2_personal + @pytest.mark.twog + @pytest.mark.up_per_client + def test_wpa2_personal_vlan_ssid_up_per_client_batch_size_125_2g(self, lf_test, get_vif_state, lf_tools): + """ + Test Rate Limiting Scenario + pytest -m "rate_limiting and vlan and wpa2_personal and twog and up_per_client" + """ + # run wifi capacity test here + profile_data = setup_params_general["ssid_modes"]["wpa2_personal"][0] + ssid_name = profile_data["ssid_name"] + mode = "VLAN" + vlan = 1 + raw_lines = [["ul_rate_sel: Per-Station Download Rate:"]] + allure.attach(name="ssid-rates", body=str(profile_data["rate-limit"])) + get_vif_state.append(ssid_name) + if ssid_name not in get_vif_state: + allure.attach(name="retest,vif state ssid not available:", body=str(get_vif_state)) + pytest.xfail("SSID NOT AVAILABLE IN VIF STATE") + lf_tools.add_stations(band="2G", num_stations=5, dut=lf_tools.dut_name, ssid_name=ssid_name) + lf_tools.Chamber_View() + wct_obj = lf_test.wifi_capacity(instance_name="test_client_wpa2_vlan_up_per_cl", mode=mode, vlan_id=vlan, + download_rate="0Gbps", batch_size="1,2,5", + upload_rate="1Gbps", protocol="UDP-IPv4", duration="60000", raw_lines=raw_lines) + + report_name = wct_obj.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1] + + lf_tools.attach_report_graphs(report_name=report_name) + print("Test Completed... Cleaning up Stations") + assert True + + @pytest.mark.wpa2_personal + @pytest.mark.twog + @pytest.mark.dw_per_client + def test_wpa2_personal_vlan_ssid_dw_per_client_batch_size_125_2g(self, lf_test, get_vif_state, lf_tools): + """ + Test Rate Limiting Scenario + pytest -m "rate_limiting and vlan and wpa2_personal and twog and dw_per_client" + """ + # run wifi capacity test here + profile_data = setup_params_general["ssid_modes"]["wpa2_personal"][0] + ssid_name = profile_data["ssid_name"] + mode = "VLAN" + vlan = 1 + raw_lines = [["dw_rate_sel: Per-Station Download Rate:"]] + allure.attach(name="ssid-rates", body=str(profile_data["rate-limit"])) + get_vif_state.append(ssid_name) + if ssid_name not in get_vif_state: + allure.attach(name="retest,vif state ssid not available:", body=str(get_vif_state)) + pytest.xfail("SSID NOT AVAILABLE IN VIF STATE") + lf_tools.add_stations(band="2G", num_stations=5, dut=lf_tools.dut_name, ssid_name=ssid_name) + lf_tools.Chamber_View() + wct_obj = lf_test.wifi_capacity(instance_name="test_client_wpa2_vlan_dw_per_cl", mode=mode, vlan_id=vlan, + download_rate="1Gbps", batch_size="1,2,5", + upload_rate="0Gbps", protocol="UDP-IPv4", duration="60000", raw_lines=raw_lines) + + report_name = wct_obj.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1] + + lf_tools.attach_report_graphs(report_name=report_name) + print("Test Completed... Cleaning up Stations") + assert True + + @pytest.mark.wpa2_personal + @pytest.mark.fiveg + @pytest.mark.up + @pytest.mark.batch_size_125 + @allure.story('Rate Limiting Open SSID 2.4 GHZ Band') + def test_wpa2_personal_vlan_ssid_up_batch_size_125_5g(self, lf_test, get_vif_state, lf_tools): + """ + Test Rate Limiting Scenario + pytest -m "rate_limiting and vlan and wpa2_personal and fiveg and up and batch_size_125" + """ + # run wifi capacity test here + profile_data = setup_params_general["ssid_modes"]["wpa2_personal"][1] + ssid_name = profile_data["ssid_name"] + mode = "VLAN" + vlan = 1 + allure.attach(name="ssid-rates", body=str(profile_data["rate-limit"])) + get_vif_state.append(ssid_name) + if ssid_name not in get_vif_state: + allure.attach(name="retest,vif state ssid not available:", body=str(get_vif_state)) + pytest.xfail("SSID NOT AVAILABLE IN VIF STATE") + lf_tools.add_stations(band="5G", num_stations=5, dut=lf_tools.dut_name, ssid_name=ssid_name) + lf_tools.Chamber_View() + wct_obj = lf_test.wifi_capacity(instance_name="test_client_wpa2_vlan_up_125_5g", mode=mode, vlan_id=vlan, + download_rate="0Gbps", batch_size="1,2,5", + upload_rate="1Gbps", protocol="UDP-IPv4", duration="60000") + + report_name = wct_obj.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1] + + lf_tools.attach_report_graphs(report_name=report_name) + print("Test Completed... Cleaning up Stations") + assert True + + @pytest.mark.wpa2_personal + @pytest.mark.fiveg + @pytest.mark.dw + @pytest.mark.batch_size_125 + @allure.story('Rate Limiting Open SSID 2.4 GHZ Band') + def test_wpa2_personal_vlan_ssid_dw_batch_size_125_5g(self, lf_test, get_vif_state, lf_tools): + """ + Test Rate Limiting Scenario + pytest -m "rate_limiting and vlan and wpa2_personal and fiveg and dw and batch_size_125" + """ + # run wifi capacity test here + profile_data = setup_params_general["ssid_modes"]["wpa2_personal"][1] + ssid_name = profile_data["ssid_name"] + mode = "VLAN" + vlan = 1 + allure.attach(name="ssid-rates", body=str(profile_data["rate-limit"])) + get_vif_state.append(ssid_name) + if ssid_name not in get_vif_state: + allure.attach(name="retest,vif state ssid not available:", body=str(get_vif_state)) + pytest.xfail("SSID NOT AVAILABLE IN VIF STATE") + lf_tools.add_stations(band="5G", num_stations=5, dut=lf_tools.dut_name, ssid_name=ssid_name) + lf_tools.Chamber_View() + wct_obj = lf_test.wifi_capacity(instance_name="test_client_wpa2_vlan_dw_125_5g", mode=mode, vlan_id=vlan, + download_rate="1Gbps", batch_size="1,2,5", + upload_rate="0Gbps", protocol="UDP-IPv4", duration="60000") + + report_name = wct_obj.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1] + + lf_tools.attach_report_graphs(report_name=report_name) + print("Test Completed... Cleaning up Stations") + assert True + + @pytest.mark.wpa2_personal + @pytest.mark.fiveg + @pytest.mark.up_dw + @pytest.mark.batch_size_125 + @allure.story('Rate Limiting Open SSID 2.4 GHZ Band') + def test_wpa2_personal_vlan_ssid_up_dw_batch_size_125_5g(self, lf_test, get_vif_state, lf_tools): + """ + Test Rate Limiting Scenario + pytest -m "rate_limiting and vlan and wpa2_personal and fiveg and up_dw and batch_size_125" + """ + # run wifi capacity test here + profile_data = setup_params_general["ssid_modes"]["wpa2_personal"][1] + ssid_name = profile_data["ssid_name"] + mode = "VLAN" + vlan = 1 + allure.attach(name="ssid-rates", body=str(profile_data["rate-limit"])) + get_vif_state.append(ssid_name) + if ssid_name not in get_vif_state: + allure.attach(name="retest,vif state ssid not available:", body=str(get_vif_state)) + pytest.xfail("SSID NOT AVAILABLE IN VIF STATE") + lf_tools.add_stations(band="5G", num_stations=5, dut=lf_tools.dut_name, ssid_name=ssid_name) + lf_tools.Chamber_View() + wct_obj = lf_test.wifi_capacity(instance_name="test_client_wpa2_vlan_up_dw_125_5g", mode=mode, vlan_id=vlan, + download_rate="1Gbps", batch_size="1,2,5", + upload_rate="1Gbps", protocol="UDP-IPv4", duration="60000") + + report_name = wct_obj.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1] + + lf_tools.attach_report_graphs(report_name=report_name) + print("Test Completed... Cleaning up Stations") + assert True + + @pytest.mark.wpa2_personal + @pytest.mark.twog + @pytest.mark.up + @pytest.mark.batch_size_1 + @allure.story('Rate Limiting Open SSID 2.4 GHZ Band') + def test_wpa2_personal_vlan_ssid_up_batch_size_1_2g(self, lf_test, get_vif_state, lf_tools): + """ + Test Rate Limiting Scenario + pytest -m "rate_limiting and vlan and wpa2_personal and twog and up and batch_size_1" + """ + # run wifi capacity test here + profile_data = setup_params_general["ssid_modes"]["wpa2_personal"][0] + ssid_name = profile_data["ssid_name"] + mode = "VLAN" + vlan = 1 + allure.attach(name="ssid-rates", body=str(profile_data["rate-limit"])) + get_vif_state.append(ssid_name) + if ssid_name not in get_vif_state: + allure.attach(name="retest,vif state ssid not available:", body=str(get_vif_state)) + pytest.xfail("SSID NOT AVAILABLE IN VIF STATE") + lf_tools.add_stations(band="2G", num_stations=1, dut=lf_tools.dut_name, ssid_name=ssid_name) + lf_tools.Chamber_View() + wct_obj = lf_test.wifi_capacity(instance_name="test_client_wpa2_vlan_up_1_5g", mode=mode, vlan_id=vlan, + download_rate="0Gbps", batch_size="1", + upload_rate="1Gbps", protocol="UDP-IPv4", duration="60000") + + report_name = wct_obj.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1] + + lf_tools.attach_report_graphs(report_name=report_name) + print("Test Completed... Cleaning up Stations") + assert True + + @pytest.mark.wpa2_personal + @pytest.mark.twog + @pytest.mark.dw + @pytest.mark.batch_size_1 + @allure.story('Rate Limiting Open SSID 2.4 GHZ Band') + def test_wpa2_personal_vlan_ssid_dw_batch_size_1_2g(self, lf_test, get_vif_state, lf_tools): + """ + Test Rate Limiting Scenario + pytest -m "rate_limiting and vlan and wpa2_personal and twog and dw and batch_size_1" + """ + # run wifi capacity test here + profile_data = setup_params_general["ssid_modes"]["wpa2_personal"][0] + ssid_name = profile_data["ssid_name"] + mode = "VLAN" + vlan = 1 + allure.attach(name="ssid-rates", body=str(profile_data["rate-limit"])) + get_vif_state.append(ssid_name) + if ssid_name not in get_vif_state: + allure.attach(name="retest,vif state ssid not available:", body=str(get_vif_state)) + pytest.xfail("SSID NOT AVAILABLE IN VIF STATE") + lf_tools.add_stations(band="2G", num_stations=1, dut=lf_tools.dut_name, ssid_name=ssid_name) + lf_tools.Chamber_View() + wct_obj = lf_test.wifi_capacity(instance_name="test_client_wpa2_vlan_dw_1_5g", mode=mode, vlan_id=vlan, + download_rate="1Gbps", batch_size="1", + upload_rate="0Gbps", protocol="UDP-IPv4", duration="60000") + + report_name = wct_obj.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1] + + lf_tools.attach_report_graphs(report_name=report_name) + print("Test Completed... Cleaning up Stations") + assert True + + @pytest.mark.wpa2_personal + @pytest.mark.twog + @pytest.mark.up_dw + @pytest.mark.batch_size_1 + @allure.story('Rate Limiting Open SSID 2.4 GHZ Band') + def test_wpa2_personal_vlan_ssid_up_dw_batch_size_1_2g(self, lf_test, get_vif_state, lf_tools): + """ + Test Rate Limiting Scenario + pytest -m "rate_limiting and vlan and wpa2_personal and twog and up_dw and batch_size_1" + """ + # run wifi capacity test here + profile_data = setup_params_general["ssid_modes"]["wpa2_personal"][0] + ssid_name = profile_data["ssid_name"] + mode = "VLAN" + vlan = 1 + allure.attach(name="ssid-rates", body=str(profile_data["rate-limit"])) + get_vif_state.append(ssid_name) + if ssid_name not in get_vif_state: + allure.attach(name="retest,vif state ssid not available:", body=str(get_vif_state)) + pytest.xfail("SSID NOT AVAILABLE IN VIF STATE") + lf_tools.add_stations(band="2G", num_stations=1, dut=lf_tools.dut_name, ssid_name=ssid_name) + lf_tools.Chamber_View() + wct_obj = lf_test.wifi_capacity(instance_name="test_client_wpa2_vlan_up_dw_5g", mode=mode, vlan_id=vlan, + download_rate="1Gbps", batch_size="1", + upload_rate="1Gbps", protocol="UDP-IPv4", duration="60000") + + report_name = wct_obj.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1] + + lf_tools.attach_report_graphs(report_name=report_name) + print("Test Completed... Cleaning up Stations") + assert True + + @pytest.mark.wpa2_personal + @pytest.mark.fiveg + @pytest.mark.up + @pytest.mark.batch_size_1 + @allure.story('Rate Limiting Open SSID 2.4 GHZ Band') + def test_wpa2_personal_vlan_ssid_up_batch_size_1_5g(self, lf_test, get_vif_state, lf_tools): + """ + Test Rate Limiting Scenario + pytest -m "rate_limiting and vlan and wpa2_personal and fiveg and up and batch_size_1" + """ + # run wifi capacity test here + profile_data = setup_params_general["ssid_modes"]["wpa2_personal"][1] + ssid_name = profile_data["ssid_name"] + mode = "VLAN" + vlan = 1 + allure.attach(name="ssid-rates", body=str(profile_data["rate-limit"])) + get_vif_state.append(ssid_name) + if ssid_name not in get_vif_state: + allure.attach(name="retest,vif state ssid not available:", body=str(get_vif_state)) + pytest.xfail("SSID NOT AVAILABLE IN VIF STATE") + lf_tools.add_stations(band="5G", num_stations=1, dut=lf_tools.dut_name, ssid_name=ssid_name) + lf_tools.Chamber_View() + wct_obj = lf_test.wifi_capacity(instance_name="test_client_wpa2_vlan_up_1_5g", mode=mode, vlan_id=vlan, + download_rate="0Gbps", batch_size="1", + upload_rate="1Gbps", protocol="UDP-IPv4", duration="60000") + + report_name = wct_obj.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1] + + lf_tools.attach_report_graphs(report_name=report_name) + print("Test Completed... Cleaning up Stations") + assert True + + @pytest.mark.wpa2_personal + @pytest.mark.fiveg + @pytest.mark.dw + @pytest.mark.batch_size_1 + @allure.story('Rate Limiting Open SSID 2.4 GHZ Band') + def test_wpa2_personal_vlan_ssid_dw_batch_size_1_5g(self, lf_test, get_vif_state, lf_tools): + """ + Test Rate Limiting Scenario + pytest -m "rate_limiting and vlan and wpa2_personal and fiveg and dw and batch_size_1" + """ + # run wifi capacity test here + profile_data = setup_params_general["ssid_modes"]["wpa2_personal"][1] + ssid_name = profile_data["ssid_name"] + mode = "VLAN" + vlan = 1 + allure.attach(name="ssid-rates", body=str(profile_data["rate-limit"])) + get_vif_state.append(ssid_name) + if ssid_name not in get_vif_state: + allure.attach(name="retest,vif state ssid not available:", body=str(get_vif_state)) + pytest.xfail("SSID NOT AVAILABLE IN VIF STATE") + lf_tools.add_stations(band="5G", num_stations=1, dut=lf_tools.dut_name, ssid_name=ssid_name) + lf_tools.Chamber_View() + wct_obj = lf_test.wifi_capacity(instance_name="test_client_wpa2_vlan_dw_1_5g", mode=mode, vlan_id=vlan, + download_rate="1Gbps", batch_size="1", + upload_rate="0Gbps", protocol="UDP-IPv4", duration="60000") + + report_name = wct_obj.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1] + + lf_tools.attach_report_graphs(report_name=report_name) + print("Test Completed... Cleaning up Stations") + assert True + + @pytest.mark.wpa2_personal + @pytest.mark.fiveg + @pytest.mark.up_dw + @pytest.mark.batch_size_1 + @allure.story('Rate Limiting Open SSID 2.4 GHZ Band') + def test_wpa2_personal_vlan_ssid_up_dw_batch_size_1_5g(self, lf_test, get_vif_state, lf_tools): + """ + Test Rate Limiting Scenario + pytest -m "rate_limiting and vlan and wpa2_personal and fiveg and up_dw and batch_size_1" + """ + # run wifi capacity test here + profile_data = setup_params_general["ssid_modes"]["wpa2_personal"][1] + ssid_name = profile_data["ssid_name"] + mode = "VLAN" + vlan = 1 + allure.attach(name="ssid-rates", body=str(profile_data["rate-limit"])) + get_vif_state.append(ssid_name) + if ssid_name not in get_vif_state: + allure.attach(name="retest,vif state ssid not available:", body=str(get_vif_state)) + pytest.xfail("SSID NOT AVAILABLE IN VIF STATE") + lf_tools.add_stations(band="5G", num_stations=1, dut=lf_tools.dut_name, ssid_name=ssid_name) + lf_tools.Chamber_View() + wct_obj = lf_test.wifi_capacity(instance_name="test_client_wpa2_vlan_up_dw_1_5g", mode=mode, vlan_id=vlan, + download_rate="1Gbps", batch_size="1", + upload_rate="1Gbps", protocol="UDP-IPv4", duration="60000") + + report_name = wct_obj.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1] + + lf_tools.attach_report_graphs(report_name=report_name) + print("Test Completed... Cleaning up Stations") + assert True + + @pytest.mark.wpa2_personal + @pytest.mark.fiveg + @pytest.mark.disable_up_dw + def test_wpa2_personal_vlan_ssid_disable_up_dw_batch_size_125_5g(self, lf_test, get_vif_state, lf_tools): + """ + Test Rate Limiting Scenario + pytest -m "rate_limiting and vlan and wpa2_personal and fiveg and disable_up_dw" + """ + # run wifi capacity test here + profile_data = setup_params_general["ssid_modes"]["wpa2_personal"][1] + ssid_name = profile_data["ssid_name"] + profile_data["rate-limit"][0] = 0 + profile_data["rate-limit"][1] = 0 + mode = "VLAN" + vlan = 1 + allure.attach(name="ssid-rates", body=str(profile_data["rate-limit"])) + get_vif_state.append(ssid_name) + if ssid_name not in get_vif_state: + allure.attach(name="retest,vif state ssid not available:", body=str(get_vif_state)) + pytest.xfail("SSID NOT AVAILABLE IN VIF STATE") + lf_tools.add_stations(band="5G", num_stations=5, dut=lf_tools.dut_name, ssid_name=ssid_name) + lf_tools.Chamber_View() + wct_obj = lf_test.wifi_capacity(instance_name="test_client_wpa2_vlan_up_dw_di_5g", mode=mode, vlan_id=vlan, + download_rate="1Gbps", batch_size="1,2,5", + upload_rate="1Gbps", protocol="UDP-IPv4", duration="60000") + + report_name = wct_obj.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1] + + lf_tools.attach_report_graphs(report_name=report_name) + print("Test Completed... Cleaning up Stations") + assert True + + @pytest.mark.wpa2_personal + @pytest.mark.fiveg + @pytest.mark.up_dw_per_client + def test_wpa2_personal_vlan_ssid_up_dw_per_client_batch_size_125_5g(self, lf_test, get_vif_state, lf_tools): + """ + Test Rate Limiting Scenario + pytest -m "rate_limiting and vlan and wpa2_personal and fiveg and up_dw_per_client" + """ + # run wifi capacity test here + profile_data = setup_params_general["ssid_modes"]["wpa2_personal"][1] + ssid_name = profile_data["ssid_name"] + mode = "VLAN" + vlan = 1 + raw_lines = [["dl_rate_sel: Per-Station Download Rate:"], ["ul_rate_sel: Per-Station Download Rate:"]] + allure.attach(name="ssid-rates", body=str(profile_data["rate-limit"])) + get_vif_state.append(ssid_name) + if ssid_name not in get_vif_state: + allure.attach(name="retest,vif state ssid not available:", body=str(get_vif_state)) + pytest.xfail("SSID NOT AVAILABLE IN VIF STATE") + lf_tools.add_stations(band="5G", num_stations=5, dut=lf_tools.dut_name, ssid_name=ssid_name) + lf_tools.Chamber_View() + wct_obj = lf_test.wifi_capacity(instance_name="test_client_wpa2_vlan_up_dw_per_cl", mode=mode, vlan_id=vlan, + download_rate="1Gbps", batch_size="1,2,5", + upload_rate="1Gbps", protocol="UDP-IPv4", duration="60000", raw_lines=raw_lines) + + report_name = wct_obj.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1] + + lf_tools.attach_report_graphs(report_name=report_name) + print("Test Completed... Cleaning up Stations") + assert True + + @pytest.mark.wpa2_personal + @pytest.mark.fiveg + @pytest.mark.up_per_client + def test_wpa2_personal_vlan_ssid_up_per_client_batch_size_125_5g(self, lf_test, get_vif_state, lf_tools): + """ + Test Rate Limiting Scenario + pytest -m "rate_limiting and vlan and wpa2_personal and fiveg and up_per_client" + """ + # run wifi capacity test here + profile_data = setup_params_general["ssid_modes"]["wpa2_personal"][1] + ssid_name = profile_data["ssid_name"] + mode = "VLAN" + vlan = 1 + raw_lines = [["ul_rate_sel: Per-Station Download Rate:"]] + allure.attach(name="ssid-rates", body=str(profile_data["rate-limit"])) + get_vif_state.append(ssid_name) + if ssid_name not in get_vif_state: + allure.attach(name="retest,vif state ssid not available:", body=str(get_vif_state)) + pytest.xfail("SSID NOT AVAILABLE IN VIF STATE") + lf_tools.add_stations(band="5G", num_stations=5, dut=lf_tools.dut_name, ssid_name=ssid_name) + lf_tools.Chamber_View() + wct_obj = lf_test.wifi_capacity(instance_name="test_client_wpa2_vlan_up_per_cl_5g", mode=mode, vlan_id=vlan, + download_rate="0Gbps", batch_size="1,2,5", + upload_rate="1Gbps", protocol="UDP-IPv4", duration="60000", raw_lines=raw_lines) + + report_name = wct_obj.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1] + + lf_tools.attach_report_graphs(report_name=report_name) + print("Test Completed... Cleaning up Stations") + assert True + + @pytest.mark.wpa2_personal + @pytest.mark.fiveg + @pytest.mark.dw_per_client + def test_wpa2_personal_vlan_ssid_dw_per_client_batch_size_125_5g(self, lf_test, get_vif_state, lf_tools): + """ + Test Rate Limiting Scenario + pytest -m "rate_limiting and vlan and wpa2_personal and fiveg and dw_per_client" + """ + # run wifi capacity test here + profile_data = setup_params_general["ssid_modes"]["wpa2_personal"][1] + ssid_name = profile_data["ssid_name"] + mode = "VLAN" + vlan = 1 + raw_lines = [["dw_rate_sel: Per-Station Download Rate:"]] + allure.attach(name="ssid-rates", body=str(profile_data["rate-limit"])) + get_vif_state.append(ssid_name) + if ssid_name not in get_vif_state: + allure.attach(name="retest,vif state ssid not available:", body=str(get_vif_state)) + pytest.xfail("SSID NOT AVAILABLE IN VIF STATE") + lf_tools.add_stations(band="5G", num_stations=5, dut=lf_tools.dut_name, ssid_name=ssid_name) + lf_tools.Chamber_View() + wct_obj = lf_test.wifi_capacity(instance_name="test_client_wpa2_vlan_dw_per_cl_5g", mode=mode, vlan_id=vlan, + download_rate="1Gbps", batch_size="1,2,5", + upload_rate="0Gbps", protocol="UDP-IPv4", duration="60000", raw_lines=raw_lines) + + report_name = wct_obj.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1] + + lf_tools.attach_report_graphs(report_name=report_name) + print("Test Completed... Cleaning up Stations") + assert True