Wifi 6849 (#432)

* downlink mu-mimo test for Bridge-Open added

* mu-mimo test cases for other security modes are added

* Country code with channel division: 2Ghz,20Mhz, US and channel 1

* change in testcase execution

* created country_code-US, with channel_width-20Mhz, channel_no-1 for 2G band

* missed git_configuration param

* checking from setup_params_general 'rf' to set radio config

* added country_code_channel_division funtion

* added radio config using radio_config

* corrected allure report

* marker name changes for security modes in mu-mimo test case

* changed function name

* check allure report

* Added comment

* allure report corrected

* Created testcase for channel 2 in 2G band

* checking allure report

* added channel mode VHT in AP configuration which is common for both wifi-5 and wifi-6 AP, without channel-mode always getting channel mode HE

* checking allure report

* corrected json_get url

* testcase for channel-2 in 20Mhz, US, 2G

* file name changes in mu-mimo and sniff method added for pcap

* corrected channel overwritten on second testcase

* testcases for channels from 3 to 13 with US, 20Mhz, 2G

* packet sniffing methods moved from lf_tools to lf_pcap

* US have 2G channels from 1 to 11

* added print statement to verify IP and channel no

* marker names and security key changed for all security modes

* Checking again if client not assigned with IP

* Testcases: US, 40Mhz, 2G, channels 1-11

* Testcases: US, 40Mhz, 5G, channels (36,44,52,60,100,108,132,140)

* removed wrong testcases

* Testcases: IN, (20Mhz, 40Mhz), 2G, channels 1-11

* Testcases: IN, 40Mhz, 5G, channels (36,44,52,60,100,108,132,140)

* Testcases: CA, 20Mhz,40Mhz, 2G,5G, channels (1-11) (36,44,52,60,100,108,132,140)

* Testcases: CA, 40Mhz, 5G, channels (36,44,52,60,100,108,132,140)

* twog test cases added for mu-mimo for all security modes

* radio assignment changed in raw line config

* Testcases: CA, 5G, 80Mhz, channel (36, 52, 100, 132)

* Testcases: IN, 5G, 80Mhz, channel (36, 52, 100, 132)

* Testcases: US, 5G, 80Mhz, channel (36, 52, 100, 132)

* Testcases: CA, 20Mhz, 5G, channel (36,40,44,48,52,56,60, 64, 100, 104, 108, 112, 116,132, 136, 140, 144)

* Testcases: IN, 20Mhz, 5G, channel (36,40,44,48,52,56,60, 64, 100, 104, 108, 112, 116,132, 136, 140, 144)

* Testcases: US, 20Mhz, 5G, channel (36,40,44,48,52,56,60, 64, 100, 104, 108, 112, 116,132, 136, 140, 144)

* Added rf config improvements

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

* twog and fiveg markers removed from module level markers

* added rf channel configuration to bridge mode

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

* allow-dfs disabled in 5G rf configuration

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

* channels changed in rf setup profiles

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

* pcap capture thread disabled from execution

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

* pcap capture thread disabled from execution

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

* ssid name changes in setup profiles

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

Co-authored-by: karthikaeyetea <karthika.subramani@candelatech.com>
Co-authored-by: karthika <78941121+karthikaeyetea@users.noreply.github.com>
Co-authored-by: shivam <shivam.thakur@candelatech.com>
This commit is contained in:
Anil Kumar Tegala
2022-03-21 18:54:57 +05:30
committed by GitHub
parent 9ca2432a16
commit 8d86ef8c56
22 changed files with 1904 additions and 36 deletions

View File

@@ -2,8 +2,10 @@
# Used by Nightly_Sanity
# This has different types of old_pytest like Single client connectivity, Single_Client_EAP, testrail_retest
#########################################################################################################
import datetime
import sys
import os
import threading
import allure
import pytest
@@ -33,7 +35,6 @@ import csv
from pull_report import Report
from scp_util import SCP_File
S = 12
# from eap_connect import EAPConnect
from test_ipv4_ttls import TTLSTest
@@ -52,10 +53,13 @@ from attenuator_serial import AttenuatorSerial
from lf_atten_mod_test import CreateAttenuator
from lf_mesh_test import MeshTest
from LANforge.lfcli_base import LFCliBase
from lf_tr398_test import TR398Test
from lf_pcap import LfPcap
from sta_scan_test import StaScan
realm = importlib.import_module("py-json.realm")
Realm = realm.Realm
class RunTest:
def __init__(self, configuration_data=None, local_report_path="../reports/", influx_params=None, run_lf=False, debug=False):
@@ -106,6 +110,8 @@ class RunTest:
self.rx_sensitivity_obj = None
self.dualbandptest_obj = None
self.msthpt_obj = None
self.cvtest_obj = None
self.pcap_obj = None
self.influx_params = influx_params
# self.influxdb = RecordInflux(_influx_host=influx_params["influx_host"],
# _influx_port=influx_params["influx_port"],
@@ -220,7 +226,7 @@ class RunTest:
station_name=[], key_mgmt="WPA-EAP",
pairwise="NA", group="NA", wpa_psk="DEFAULT",
ttls_passwd="nolastart", ieee80211w=1,
wep_key="NA", ca_cert="NA", eap="TTLS", identity="nolaradius",d_vlan=False,cleanup=True):
wep_key="NA", ca_cert="NA", eap="TTLS", identity="nolaradius", d_vlan=False, cleanup=True):
self.eap_connect = TTLSTest(host=self.lanforge_ip, port=self.lanforge_port,
sta_list=station_name, vap=False, _debug_on=self.debug)
@@ -283,7 +289,7 @@ class RunTest:
self.eap_connect.build(extra_securities=extra_securities)
self.eap_connect.start(station_name, True, True)
if d_vlan:
self.station_ip = {}
self.station_ip = {}
for sta_name in station_name:
# try:
station_data_str = ""
@@ -329,12 +335,13 @@ class RunTest:
cx_data = cx_data + "\n"
allure.attach(name="cx_data", body=str(cx_data))
if cleanup:
self.eap_connect.cleanup(station_name)
self.eap_connect.cleanup(station_name)
return self.eap_connect.passes()
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", stations="", create_stations=True, sort="interleave", raw_lines=[]):
upload_rate="1Gbps", protocol="TCP-IPv4", duration="60000", stations="", create_stations=True,
sort="interleave", raw_lines=[]):
instance_name = ''.join(random.choices(string.ascii_uppercase + string.digits, k=S))
if mode == "BRIDGE":
upstream_port = self.upstream_port
@@ -940,22 +947,22 @@ class RunTest:
def mesh_test(self, instance_name=None, raw_lines=None, duration="60s"):
self.mesh_obj = MeshTest(
lf_host=self.lanforge_ip,
lf_port=self.lanforge_port,
ssh_port=self.lf_ssh_port,
local_lf_report_dir=self.local_report_path,
lf_user="lanforge",
lf_password = "lanforge",
instance_name = instance_name,
duration = duration,
config_name = "mesh_config",
upstream = "1.2.2 eth2",
upload_speed="85%",
download_speed="85%",
pull_report = True,
load_old_cfg = False,
raw_lines = raw_lines,
)
lf_host=self.lanforge_ip,
lf_port=self.lanforge_port,
ssh_port=self.lf_ssh_port,
local_lf_report_dir=self.local_report_path,
lf_user="lanforge",
lf_password="lanforge",
instance_name=instance_name,
duration=duration,
config_name="mesh_config",
upstream="1.2.2 eth2",
upload_speed="85%",
download_speed="85%",
pull_report=True,
load_old_cfg=False,
raw_lines=raw_lines,
)
self.mesh_obj.setup()
self.mesh_obj.run()
return self.mesh_obj
@@ -963,12 +970,12 @@ class RunTest:
def attenuator_serial_2g_radio(self, ssid="[BLANK]", passkey="[BLANK]", security="wpa2", mode="BRIDGE",
vlan_id=100, sta_mode=0, station_name=[], lf_tools_obj=None):
radio = self.twog_radios[0]
#index 0 of atten_serial_radio will ser no of 1st 2g radio and index 1 will ser no of 2nd and 3rd 2g radio
# index 0 of atten_serial_radio will ser no of 1st 2g radio and index 1 will ser no of 2nd and 3rd 2g radio
atten_serial_radio = []
atten_serial = self.attenuator_serial()
self.Client_Connect_Using_Radio(ssid=ssid, passkey=passkey, security=security, mode=mode,
vlan_id=vlan_id, radio=radio, sta_mode=sta_mode,
station_name=station_name)
vlan_id=vlan_id, radio=radio, sta_mode=sta_mode,
station_name=station_name)
signal1 = lf_tools_obj.station_data_query(station_name=station_name[0], query="signal")
atten_sr = atten_serial[0].split(".")
for i in range(4):
@@ -985,12 +992,12 @@ class RunTest:
def attenuator_serial_5g_radio(self, ssid="[BLANK]", passkey="[BLANK]", security="wpa2", mode="BRIDGE",
vlan_id=100, sta_mode=0, station_name=[], lf_tools_obj=None):
radio = self.fiveg_radios[0]
#index 0 of atten_serial_radio will ser no of 1st 5g radio and index 1 will ser no of 2nd and 3rd 5g radio
# index 0 of atten_serial_radio will ser no of 1st 5g radio and index 1 will ser no of 2nd and 3rd 5g radio
atten_serial_radio = []
atten_serial = self.attenuator_serial()
self.Client_Connect_Using_Radio(ssid=ssid, passkey=passkey, security=security, mode=mode,
vlan_id=vlan_id, radio=radio, sta_mode=sta_mode,
station_name=station_name)
vlan_id=vlan_id, radio=radio, sta_mode=sta_mode,
station_name=station_name)
signal1 = lf_tools_obj.station_data_query(station_name=station_name[0], query="signal")
atten_sr = atten_serial[0].split(".")
for i in range(4):
@@ -1004,7 +1011,87 @@ class RunTest:
self.Client_disconnect(station_name=station_name)
return atten_serial_radio
def downlink_mu_mimo(self, radios_2g=[], radios_5g=[], radios_ax=[], dut_name="TIP", dut_5g="", dut_2g="", mode="BRIDGE", vlan_id=1, skip_2g=True, skip_5g=False):
raw_line = []
skip_twog = '1' if skip_2g else '0'
skip_fiveg = '1' if skip_5g else '0'
sniff_radio = 'wiphy6'
channel = 149 if skip_2g else 11
upstream_port = self.upstream_port
sets = [['Calibrate Attenuators', '0'], ['Receiver Sensitivity', '0'], ['Maximum Connection', '0'],
['Maximum Throughput', '0'], ['Airtime Fairness', '0'], ['Range Versus Rate', '0'],
['Spatial Consistency', '0'],
['Multiple STAs Performance', '0'], ['Multiple Assoc Stability', '0'], ['Downlink MU-MIMO', '1'],
['AP Coexistence', '0'], ['Long Term Stability', '0'], ['Skip 2.4Ghz Tests', f'{skip_twog}'],
['Skip 5Ghz Tests', f'{skip_fiveg}'], ['2.4Ghz Channel', 'AUTO'], ['5Ghz Channel', 'AUTO']]
for i in range(6):
if i == 0 or i == 2:
raw_line.append([f'radio-{i}: {radios_5g[0] if i == 0 else radios_5g[1]}'])
if i == 1 or i == 3:
raw_line.append([f'radio-{i}: {radios_2g[0] if i == 1 else radios_2g[1]}'])
if i == 4 or i == 5:
raw_line.append([f'radio-{i}: {radios_ax[0] if i == 4 else radios_ax[1]}'])
if len(raw_line) != 6:
raw_line = [['radio-0: 1.1.5 wiphy1'], ['radio-1: 1.1.4 wiphy0'], ['radio-2: 1.1.7 wiphy3'],
['radio-3: 1.1.6 wiphy2'], ['radio-4: 1.1.8 wiphy4'], ['radio-5: 1.1.9 wiphy5']]
instance_name = "tr398-instance-{}".format(str(random.randint(0, 100000)))
if not os.path.exists("mu-mimo-config.txt"):
with open("mu-mimo-config.txt", "wt") as f:
for i in raw_line:
f.write(str(i[0]) + "\n")
f.close()
if mode == "BRIDGE" or mode == "NAT":
upstream_port = self.upstream_port
else:
upstream_port = self.upstream_port + "." + str(vlan_id)
print("Upstream Port: ", self.upstream_port)
self.pcap_obj = LfPcap(host=self.lanforge_ip, port=self.lanforge_port)
self.cvtest_obj = TR398Test(lf_host=self.lanforge_ip,
lf_port=self.lanforge_port,
lf_user="lanforge",
lf_password="lanforge",
instance_name=instance_name,
config_name="cv_dflt_cfg",
upstream="1.1." + upstream_port,
pull_report=True,
local_lf_report_dir=self.local_report_path,
load_old_cfg=False,
dut2=dut_2g,
dut5=dut_5g,
raw_lines_file="mu-mimo-config.txt",
enables=[],
disables=[],
raw_lines=[],
sets=sets,
test_rig=dut_name
)
self.cvtest_obj.setup()
t1 = threading.Thread(target=self.cvtest_obj.run)
t1.start()
# t2 = threading.Thread(target=self.pcap_obj.sniff_packets, args=(sniff_radio, "mu-mimo", channel, 60))
# if t1.is_alive():
# time.sleep(180)
# t2.start()
while t1.is_alive():
time.sleep(1)
if os.path.exists("mu-mimo-config.txt"):
os.remove("mu-mimo-config.txt")
report_name = self.cvtest_obj.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1]
influx = CSVtoInflux(influx_host=self.influx_params["influx_host"],
influx_port=self.influx_params["influx_port"],
influx_org=self.influx_params["influx_org"],
influx_token=self.influx_params["influx_token"],
influx_bucket=self.influx_params["influx_bucket"],
path=report_name)
influx.glob()
return self.cvtest_obj
def scan_ssid(self, radio=""):
'''This method for scan ssid data'''
obj_scan = StaScan(host=self.lanforge_ip, port=self.lanforge_port, ssid="fake ssid", security="open", password="[BLANK]", radio=radio, sta_list=["sta0000"], csv_output="scan_ssid.csv")
@@ -1078,17 +1165,17 @@ if __name__ == '__main__':
"influx_tag": ["basic-03", "ec420"],
}
lanforge_data = {
"ip": "192.168.200.10",
"ip": "10.28.3.6",
"port": 8080,
"ssh_port": 22,
"2.4G-Radio": ["wiphy0"],
"5G-Radio": ["wiphy1"],
"AX-Radio": [],
"upstream": "1.1.eth1",
"upstream_subnet": "192.168.200.1/24",
"uplink": "1.1.eth2",
"2.4G-Radio": ["1.1.wiphy4"],
"5G-Radio": ["1.1.wiphy5"],
"AX-Radio": ["1.1.wiphy0", "1.1.wiphy1", "1.1.wiphy2", "1.1.wiphy3"],
"upstream": "1.1.eth2",
"upstream_subnet": "10.28.2.1/24",
"uplink": "1.1.eth3",
"2.4G-Station-Name": "wlan0",
"5G-Station-Name": "wlan0",
"5G-Station-Name": "wlan1",
"AX-Station-Name": "ax"
}
obj = RunTest(lanforge_data=lanforge_data, debug=False, influx_params=influx_params)
@@ -1109,3 +1196,7 @@ if __name__ == '__main__':
# print(a)
# print(obj.eap_connect.json_get("port/1/1/sta0000?fields=ap,ip"))
# obj.EAP_Connect(station_name=["sta0000", "sta0001"], eap="TTLS", ssid="testing_radius")
# TODO: create new funtion
# --> attach details to allure (ref:client_connectivity)

View File

@@ -6,6 +6,7 @@ influxdb-client
pandas
paramiko
perfecto-py37
pyshark
pytest==6.2.2
requests
scp

View File

@@ -0,0 +1,156 @@
"""
Performance Test: Downlink MU-MIMO Test: Bridge Mode
pytest -m "downlink_mu_mimo and bridge and open and fiveg"
"""
import os
import pytest
import allure
pytestmark = [pytest.mark.downlink_mu_mimo, pytest.mark.bridge, pytest.mark.open]
setup_params_general = {
"mode": "BRIDGE",
"ssid_modes": {
"open": [
{"ssid_name": "mu-mimo-open-5g", "appliedRadios": ["5G"]},
{"ssid_name": "mu-mimo-open-2g", "appliedRadios": ["2G"]}
]
},
"rf": {
"5G": {
"band": '5G',
"channel": 149,
"channel-width": 80
},
"2G": {
"band": '2G',
"channel": 11,
"channel-width": 20
}
},
"radius": False
}
@allure.suite("performance")
@allure.feature("BRIDGE MODE open security and Downlink MU_MIMO Test")
@pytest.mark.parametrize(
'setup_profiles',
[setup_params_general],
indirect=True,
scope="class"
)
@pytest.mark.usefixtures("setup_profiles")
class TestMuMimoBridge(object):
"""
Downlink MU-MIMO Test: Bridge Mode
pytest -m downlink_mu_mimo and bridge
"""
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-6849",
name="WIFI-6849")
@pytest.mark.open
@pytest.mark.fiveg
def test_mu_mimo_open_bridge_5g(self, lf_tools, lf_test, create_lanforge_chamberview_dut):
"""
Downlink MU-MIMO Test: Bridge Mode
pytest -m downlink_mu_mimo and bridge and open and fiveg
"""
dut_name = create_lanforge_chamberview_dut
mode = "BRIDGE"
vlan = 1
dut_5g, dut_2g = "", ""
radios_2g, radios_5g, radios_ax = [], [], []
data = lf_tools.json_get(_req_url="/port?fields=alias,port,mode")
data = data['interfaces']
port, port_data = "", []
for i in data:
for j in i:
if i[j]['mode'] != '':
port_data.append(i)
for item in range(len(port_data)):
for p in port_data[item]:
temp = port_data[item][p]['port'].split('.')
temp = list(map(int, temp))
temp = list(map(str, temp))
port = ".".join(temp)
if port_data[item][p]['mode'] == '802.11bgn-AC':
radios_2g.append(port + " " + port_data[item][p]['alias'])
if port_data[item][p]['mode'] == '802.11an-AC':
radios_5g.append(port + " " + port_data[item][p]['alias'])
if port_data[item][p]['mode'] == '802.11abgn-AX':
radios_ax.append(port + " " + port_data[item][p]['alias'])
print(lf_tools.dut_idx_mapping)
for i in lf_tools.dut_idx_mapping:
if lf_tools.dut_idx_mapping[i][3] == "5G":
dut_5g = dut_name + ' ' + lf_tools.dut_idx_mapping[i][0] + ' ' + lf_tools.dut_idx_mapping[i][4] + ' (1)'
print(dut_5g)
if lf_tools.dut_idx_mapping[i][3] == "2G":
dut_2g = dut_name + ' ' + lf_tools.dut_idx_mapping[i][0] + ' ' + lf_tools.dut_idx_mapping[i][4] + ' (2)'
print(dut_2g)
mimo_obj = lf_test.downlink_mu_mimo(radios_2g=radios_2g, radios_5g=radios_5g, radios_ax=radios_ax, mode=mode,
vlan_id=vlan, dut_name=dut_name, dut_5g=dut_5g, dut_2g=dut_2g, skip_2g=True,
skip_5g=False)
report_name = mimo_obj.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1]
lf_tools.attach_report_graphs(report_name=report_name, pdf_name="Downlink MU-MIMO Test")
assert True
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-6849",
name="WIFI-6849")
@pytest.mark.open
@pytest.mark.twog
def test_mu_mimo_open_bridge_2g(self, lf_tools, lf_test, create_lanforge_chamberview_dut):
"""
Downlink MU-MIMO Test: Bridge Mode
pytest -m downlink_mu_mimo and bridge and open and twog
"""
print('lf tool')
dut_name = create_lanforge_chamberview_dut
mode = "BRIDGE"
vlan = 1
dut_5g, dut_2g = "", ""
radios_2g, radios_5g, radios_ax = [], [], []
data = lf_tools.json_get(_req_url="/port?fields=alias,port,mode")
data = data['interfaces']
port, port_data = "", []
for i in data:
for j in i:
if i[j]['mode'] != '':
port_data.append(i)
for item in range(len(port_data)):
for p in port_data[item]:
temp = port_data[item][p]['port'].split('.')
temp = list(map(int, temp))
temp = list(map(str, temp))
port = ".".join(temp)
print(port)
if port_data[item][p]['mode'] == '802.11bgn-AC':
radios_2g.append(port + " " + port_data[item][p]['alias'])
if port_data[item][p]['mode'] == '802.11an-AC':
radios_5g.append(port + " " + port_data[item][p]['alias'])
if port_data[item][p]['mode'] == '802.11abgn-AX':
radios_ax.append(port + " " + port_data[item][p]['alias'])
print(lf_tools.dut_idx_mapping)
for i in lf_tools.dut_idx_mapping:
if lf_tools.dut_idx_mapping[i][3] == "5G":
dut_5g = dut_name + ' ' + lf_tools.dut_idx_mapping[i][0] + ' ' + lf_tools.dut_idx_mapping[i][
4] + ' (1)'
print(dut_5g)
if lf_tools.dut_idx_mapping[i][3] == "2G":
dut_2g = dut_name + ' ' + lf_tools.dut_idx_mapping[i][0] + ' ' + lf_tools.dut_idx_mapping[i][
4] + ' (2)'
print(dut_2g)
mimo_obj = lf_test.downlink_mu_mimo(radios_2g=radios_2g, radios_5g=radios_5g, radios_ax=radios_ax,
mode=mode,
vlan_id=vlan, dut_name=dut_name, dut_5g=dut_5g, dut_2g=dut_2g,
skip_2g=False,
skip_5g=True)
report_name = mimo_obj.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1]
lf_tools.attach_report_graphs(report_name=report_name, pdf_name="Downlink MU-MIMO Test")
assert True

View File

@@ -0,0 +1,140 @@
"""
Performance Test: Downlink MU-MIMO Test: NAT Mode
pytest -m "downlink_mu_mimo and nat and open and fiveg"
"""
import os
import pytest
import allure
pytestmark = [pytest.mark.downlink_mu_mimo, pytest.mark.nat, pytest.mark.open]
setup_params_general = {
"mode": "NAT",
"ssid_modes": {
"open": [
{"ssid_name": "mu-mimo-5g", "appliedRadios": ["5G"]},
{"ssid_name": "mu-mimo-2g", "appliedRadios": ["2G"]}
]
},
"rf": [],
"radius": False
}
@allure.suite("performance")
@allure.feature("NAT MODE open security and Downlink MU_MIMO Test")
@pytest.mark.parametrize(
'setup_profiles',
[setup_params_general],
indirect=True,
scope="class"
)
@pytest.mark.usefixtures("setup_profiles")
class TestMuMimoNat(object):
"""
Downlink MU-MIMO Test: NAT MODE
pytest -m downlink_mu_mimo and nat
"""
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-6849",
name="WIFI-6849")
@pytest.mark.open
@pytest.mark.fiveg
def test_mu_mimo_open_nat_5g(self, lf_tools, lf_test, create_lanforge_chamberview_dut):
"""
Downlink MU-MIMO Test: NAT Mode
pytest -m downlink_mu_mimo and nat and open and fiveg
"""
dut_name = create_lanforge_chamberview_dut
mode = "NAT"
vlan = 1
dut_5g, dut_2g = "", ""
radios_2g, radios_5g, radios_ax = [], [], []
data = lf_tools.json_get(_req_url="/port?fields=alias,port,mode")
data = data['interfaces']
port, port_data = "", []
for i in data:
for j in i:
if i[j]['mode'] != '':
port_data.append(i)
for item in range(len(port_data)):
for p in port_data[item]:
temp = port_data[item][p]['port'].split('.')
temp = list(map(int, temp))
temp = list(map(str, temp))
port = ".".join(temp)
if port_data[item][p]['mode'] == '802.11bgn-AC':
radios_2g.append(port + " " + port_data[item][p]['alias'])
if port_data[item][p]['mode'] == '802.11an-AC':
radios_5g.append(port + " " + port_data[item][p]['alias'])
if port_data[item][p]['mode'] == '802.11abgn-AX':
radios_ax.append(port + " " + port_data[item][p]['alias'])
print(lf_tools.dut_idx_mapping)
for i in lf_tools.dut_idx_mapping:
if lf_tools.dut_idx_mapping[i][3] == "5G":
dut_5g = dut_name + ' ' + lf_tools.dut_idx_mapping[i][0] + ' ' + lf_tools.dut_idx_mapping[i][4] + ' (1)'
print(dut_5g)
if lf_tools.dut_idx_mapping[i][3] == "2G":
dut_2g = dut_name + ' ' + lf_tools.dut_idx_mapping[i][0] + ' ' + lf_tools.dut_idx_mapping[i][4] + ' (2)'
print(dut_2g)
mimo_obj = lf_test.downlink_mu_mimo(radios_2g=radios_2g, radios_5g=radios_5g, radios_ax=radios_ax, mode=mode,
vlan_id=vlan, dut_name=dut_name, dut_5g=dut_5g, dut_2g=dut_2g, skip_2g=True,
skip_5g=False)
report_name = mimo_obj.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1]
lf_tools.attach_report_graphs(report_name=report_name, pdf_name="Downlink MU-MIMO Test")
assert True
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-6849",
name="WIFI-6849")
@pytest.mark.open
@pytest.mark.fiveg
def test_mu_mimo_open_nat_2g(self, lf_tools, lf_test, create_lanforge_chamberview_dut):
"""
Downlink MU-MIMO Test: NAT Mode
pytest -m downlink_mu_mimo and nat and open and twog
"""
dut_name = create_lanforge_chamberview_dut
mode = "NAT"
vlan = 1
dut_5g, dut_2g = "", ""
radios_2g, radios_5g, radios_ax = [], [], []
data = lf_tools.json_get(_req_url="/port?fields=alias,port,mode")
data = data['interfaces']
port, port_data = "", []
for i in data:
for j in i:
if i[j]['mode'] != '':
port_data.append(i)
for item in range(len(port_data)):
for p in port_data[item]:
temp = port_data[item][p]['port'].split('.')
temp = list(map(int, temp))
temp = list(map(str, temp))
port = ".".join(temp)
if port_data[item][p]['mode'] == '802.11bgn-AC':
radios_2g.append(port + " " + port_data[item][p]['alias'])
if port_data[item][p]['mode'] == '802.11an-AC':
radios_5g.append(port + " " + port_data[item][p]['alias'])
if port_data[item][p]['mode'] == '802.11abgn-AX':
radios_ax.append(port + " " + port_data[item][p]['alias'])
print(lf_tools.dut_idx_mapping)
for i in lf_tools.dut_idx_mapping:
if lf_tools.dut_idx_mapping[i][3] == "5G":
dut_5g = dut_name + ' ' + lf_tools.dut_idx_mapping[i][0] + ' ' + lf_tools.dut_idx_mapping[i][4] + ' (1)'
print(dut_5g)
if lf_tools.dut_idx_mapping[i][3] == "2G":
dut_2g = dut_name + ' ' + lf_tools.dut_idx_mapping[i][0] + ' ' + lf_tools.dut_idx_mapping[i][4] + ' (2)'
print(dut_2g)
mimo_obj = lf_test.downlink_mu_mimo(radios_2g=radios_2g, radios_5g=radios_5g, radios_ax=radios_ax, mode=mode,
vlan_id=vlan, dut_name=dut_name, dut_5g=dut_5g, dut_2g=dut_2g, skip_2g=False,
skip_5g=True)
report_name = mimo_obj.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1]
lf_tools.attach_report_graphs(report_name=report_name, pdf_name="Downlink MU-MIMO Test")
assert True

View File

@@ -0,0 +1,140 @@
"""
Performance Test: Downlink MU-MIMO Test: VLAN Mode
pytest -m "downlink_mu_mimo and vlan and open and fiveg"
"""
import os
import pytest
import allure
pytestmark = [pytest.mark.downlink_mu_mimo, pytest.mark.vlan, pytest.mark.open]
setup_params_general = {
"mode": "VLAN",
"ssid_modes": {
"open": [
{"ssid_name": "mu-mimo-5g", "appliedRadios": ["5G"], "vlan":100},
{"ssid_name": "mu-mimo-2g", "appliedRadios": ["2G"], "vlan":100}
]
},
"rf": [],
"radius": False
}
@allure.suite("performance")
@allure.feature("VLAN MODE open security and Downlink MU_MIMO Test")
@pytest.mark.parametrize(
'setup_profiles',
[setup_params_general],
indirect=True,
scope="class"
)
@pytest.mark.usefixtures("setup_profiles")
class TestMuMimoVlan(object):
"""
Downlink MU-MIMO Test: VLAN Mode
pytest -m downlink_mu_mimo and vlan
"""
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-6849",
name="WIFI-6849")
@pytest.mark.open
@pytest.mark.fiveg
def test_mu_mimo_open_vlan_5g(self, lf_tools, lf_test, create_lanforge_chamberview_dut):
"""
Downlink MU-MIMO Test: VLAN Mode
pytest -m downlink_mu_mimo and vlan and open and fiveg
"""
dut_name = create_lanforge_chamberview_dut
mode = "VLAN"
vlan = 1
dut_5g, dut_2g = "", ""
radios_2g, radios_5g, radios_ax = [], [], []
data = lf_tools.json_get(_req_url="/port?fields=alias,port,mode")
data = data['interfaces']
port, port_data = "", []
for i in data:
for j in i:
if i[j]['mode'] != '':
port_data.append(i)
for item in range(len(port_data)):
for p in port_data[item]:
temp = port_data[item][p]['port'].split('.')
temp = list(map(int, temp))
temp = list(map(str, temp))
port = ".".join(temp)
if port_data[item][p]['mode'] == '802.11bgn-AC':
radios_2g.append(port + " " + port_data[item][p]['alias'])
if port_data[item][p]['mode'] == '802.11an-AC':
radios_5g.append(port + " " + port_data[item][p]['alias'])
if port_data[item][p]['mode'] == '802.11abgn-AX':
radios_ax.append(port + " " + port_data[item][p]['alias'])
print(lf_tools.dut_idx_mapping)
for i in lf_tools.dut_idx_mapping:
if lf_tools.dut_idx_mapping[i][3] == "5G":
dut_5g = dut_name + ' ' + lf_tools.dut_idx_mapping[i][0] + ' ' + lf_tools.dut_idx_mapping[i][4] + ' (1)'
print(dut_5g)
if lf_tools.dut_idx_mapping[i][3] == "2G":
dut_2g = dut_name + ' ' + lf_tools.dut_idx_mapping[i][0] + ' ' + lf_tools.dut_idx_mapping[i][4] + ' (2)'
print(dut_2g)
mimo_obj = lf_test.downlink_mu_mimo(radios_2g=radios_2g, radios_5g=radios_5g, radios_ax=radios_ax, mode=mode,
vlan_id=vlan, dut_name=dut_name, dut_5g=dut_5g, dut_2g=dut_2g, skip_2g=True,
skip_5g=False)
report_name = mimo_obj.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1]
lf_tools.attach_report_graphs(report_name=report_name, pdf_name="Downlink MU-MIMO Test")
assert True
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-6849",
name="WIFI-6849")
@pytest.mark.open
@pytest.mark.twog
def test_mu_mimo_open_vlan_2g(self, lf_tools, lf_test, create_lanforge_chamberview_dut):
"""
Downlink MU-MIMO Test: VLAN Mode
pytest -m downlink_mu_mimo and vlan and open and twog
"""
dut_name = create_lanforge_chamberview_dut
mode = "VLAN"
vlan = 1
dut_5g, dut_2g = "", ""
radios_2g, radios_5g, radios_ax = [], [], []
data = lf_tools.json_get(_req_url="/port?fields=alias,port,mode")
data = data['interfaces']
port, port_data = "", []
for i in data:
for j in i:
if i[j]['mode'] != '':
port_data.append(i)
for item in range(len(port_data)):
for p in port_data[item]:
temp = port_data[item][p]['port'].split('.')
temp = list(map(int, temp))
temp = list(map(str, temp))
port = ".".join(temp)
if port_data[item][p]['mode'] == '802.11bgn-AC':
radios_2g.append(port + " " + port_data[item][p]['alias'])
if port_data[item][p]['mode'] == '802.11an-AC':
radios_5g.append(port + " " + port_data[item][p]['alias'])
if port_data[item][p]['mode'] == '802.11abgn-AX':
radios_ax.append(port + " " + port_data[item][p]['alias'])
print(lf_tools.dut_idx_mapping)
for i in lf_tools.dut_idx_mapping:
if lf_tools.dut_idx_mapping[i][3] == "5G":
dut_5g = dut_name + ' ' + lf_tools.dut_idx_mapping[i][0] + ' ' + lf_tools.dut_idx_mapping[i][4] + ' (1)'
print(dut_5g)
if lf_tools.dut_idx_mapping[i][3] == "2G":
dut_2g = dut_name + ' ' + lf_tools.dut_idx_mapping[i][0] + ' ' + lf_tools.dut_idx_mapping[i][4] + ' (2)'
print(dut_2g)
mimo_obj = lf_test.downlink_mu_mimo(radios_2g=radios_2g, radios_5g=radios_5g, radios_ax=radios_ax, mode=mode,
vlan_id=vlan, dut_name=dut_name, dut_5g=dut_5g, dut_2g=dut_2g, skip_2g=False,
skip_5g=True)
report_name = mimo_obj.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1]
lf_tools.attach_report_graphs(report_name=report_name, pdf_name="Downlink MU-MIMO Test")
assert True

View File

@@ -0,0 +1,156 @@
"""
Performance Test: Downlink MU-MIMO Test: Bridge Mode
pytest -m "downlink_mu_mimo and bridge and wpa2_personal"
"""
import os
import pytest
import allure
pytestmark = [pytest.mark.downlink_mu_mimo, pytest.mark.bridge, pytest.mark.wpa2_personal]
setup_params_general = {
"mode": "BRIDGE",
"ssid_modes": {
"wpa2_personal": [
{"ssid_name": "mu-mimo-wpa2-5g", "appliedRadios": ["5G"], "security_key": "something"},
{"ssid_name": "mu-mimo-wpa2-2g", "appliedRadios": ["2G"], "security_key": "something"}
]
},
"rf": {
"5G": {
"band": '5G',
"channel": 149,
"channel-width": 80
},
"2G": {
"band": '2G',
"channel": 11,
"channel-width": 20
}
},
"radius": False
}
@allure.suite("performance")
@allure.feature("BRIDGE MODE wpa2_personal security and Downlink MU_MIMO Test")
@pytest.mark.parametrize(
'setup_profiles',
[setup_params_general],
indirect=True,
scope="class"
)
@pytest.mark.usefixtures("setup_profiles")
class TestMuMimoBridge(object):
"""
Downlink MU-MIMO Test: Bridge Mode
pytest -m downlink_mu_mimo and bridge
"""
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-6849",
name="WIFI-6849")
@pytest.mark.wpa2_personal
@pytest.mark.fiveg
def test_mu_mimo_wpa2_personal_bridge_5g(self, lf_tools, lf_test, create_lanforge_chamberview_dut):
"""
Downlink MU-MIMO Test: Bridge Mode
pytest -m downlink_mu_mimo and bridge and wpa2_personal and fiveg
"""
dut_name = create_lanforge_chamberview_dut
mode = "BRIDGE"
vlan = 1
dut_5g, dut_2g = "", ""
radios_2g, radios_5g, radios_ax = [], [], []
data = lf_tools.json_get(_req_url="/port?fields=alias,port,mode")
data = data['interfaces']
port, port_data = "", []
for i in data:
for j in i:
if i[j]['mode'] != '':
port_data.append(i)
for item in range(len(port_data)):
for p in port_data[item]:
temp = port_data[item][p]['port'].split('.')
temp = list(map(int, temp))
temp = list(map(str, temp))
port = ".".join(temp)
if port_data[item][p]['mode'] == '802.11bgn-AC':
radios_2g.append(port + " " + port_data[item][p]['alias'])
if port_data[item][p]['mode'] == '802.11an-AC':
radios_5g.append(port + " " + port_data[item][p]['alias'])
if port_data[item][p]['mode'] == '802.11abgn-AX':
radios_ax.append(port + " " + port_data[item][p]['alias'])
print(lf_tools.dut_idx_mapping)
for i in lf_tools.dut_idx_mapping:
if lf_tools.dut_idx_mapping[i][3] == "5G":
dut_5g = dut_name + ' ' + lf_tools.dut_idx_mapping[i][0] + ' ' + lf_tools.dut_idx_mapping[i][4] + ' (1)'
print(dut_5g)
if lf_tools.dut_idx_mapping[i][3] == "2G":
dut_2g = dut_name + ' ' + lf_tools.dut_idx_mapping[i][0] + ' ' + lf_tools.dut_idx_mapping[i][4] + ' (2)'
print(dut_2g)
mimo_obj = lf_test.downlink_mu_mimo(radios_2g=radios_2g, radios_5g=radios_5g, radios_ax=radios_ax, mode=mode,
vlan_id=vlan, dut_name=dut_name, dut_5g=dut_5g, dut_2g=dut_2g, skip_2g=True,
skip_5g=False)
report_name = mimo_obj.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1]
lf_tools.attach_report_graphs(report_name=report_name, pdf_name="Downlink MU-MIMO Test")
assert True
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-6849",
name="WIFI-6849")
@pytest.mark.wpa2_personal
@pytest.mark.twog
def test_mu_mimo_wpa2_personal_bridge_2g(self, lf_tools, lf_test, create_lanforge_chamberview_dut):
"""
Downlink MU-MIMO Test: Bridge Mode
pytest -m downlink_mu_mimo and bridge and wpa2_personal and twog
"""
print('lf tool')
dut_name = create_lanforge_chamberview_dut
mode = "BRIDGE"
vlan = 1
dut_5g, dut_2g = "", ""
radios_2g, radios_5g, radios_ax = [], [], []
data = lf_tools.json_get(_req_url="/port?fields=alias,port,mode")
data = data['interfaces']
port, port_data = "", []
for i in data:
for j in i:
if i[j]['mode'] != '':
port_data.append(i)
for item in range(len(port_data)):
for p in port_data[item]:
temp = port_data[item][p]['port'].split('.')
temp = list(map(int, temp))
temp = list(map(str, temp))
port = ".".join(temp)
print(port)
if port_data[item][p]['mode'] == '802.11bgn-AC':
radios_2g.append(port + " " + port_data[item][p]['alias'])
if port_data[item][p]['mode'] == '802.11an-AC':
radios_5g.append(port + " " + port_data[item][p]['alias'])
if port_data[item][p]['mode'] == '802.11abgn-AX':
radios_ax.append(port + " " + port_data[item][p]['alias'])
print(lf_tools.dut_idx_mapping)
for i in lf_tools.dut_idx_mapping:
if lf_tools.dut_idx_mapping[i][3] == "5G":
dut_5g = dut_name + ' ' + lf_tools.dut_idx_mapping[i][0] + ' ' + lf_tools.dut_idx_mapping[i][
4] + ' (1)'
print(dut_5g)
if lf_tools.dut_idx_mapping[i][3] == "2G":
dut_2g = dut_name + ' ' + lf_tools.dut_idx_mapping[i][0] + ' ' + lf_tools.dut_idx_mapping[i][
4] + ' (2)'
print(dut_2g)
mimo_obj = lf_test.downlink_mu_mimo(radios_2g=radios_2g, radios_5g=radios_5g, radios_ax=radios_ax,
mode=mode,
vlan_id=vlan, dut_name=dut_name, dut_5g=dut_5g, dut_2g=dut_2g,
skip_2g=False,
skip_5g=True)
report_name = mimo_obj.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1]
lf_tools.attach_report_graphs(report_name=report_name, pdf_name="Downlink MU-MIMO Test")
assert True

View File

@@ -0,0 +1,145 @@
"""
Performance Test: Downlink MU-MIMO Test: NAT Mode
pytest -m "downlink_mu_mimo and nat and wpa2_personal and fiveg"
"""
import os
import pytest
import allure
pytestmark = [pytest.mark.downlink_mu_mimo, pytest.mark.nat, pytest.mark.wpa2_personal]
setup_params_general = {
"mode": "NAT",
"ssid_modes": {
"wpa2_personal": [
{"ssid_name": "mu-mimo-5g", "appliedRadios": ["5G"], "security_key": "something"},
{"ssid_name": "mu-mimo-2g", "appliedRadios": ["2G"], "security_key": "something"}
]
},
"rf": [],
"radius": False
}
@allure.suite("performance")
@allure.feature("NAT MODE wpa2_personal security and Downlink MU_MIMO Test")
@pytest.mark.parametrize(
'setup_profiles',
[setup_params_general],
indirect=True,
scope="class"
)
@pytest.mark.usefixtures("setup_profiles")
class TestMuMimoNat(object):
"""
Downlink MU-MIMO Test: nat Mode
pytest -m downlink_mu_mimo and nat
"""
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-6849",
name="WIFI-6849")
@pytest.mark.wpa2_personal
@pytest.mark.fiveg
def test_mu_mimo_wpa2_personal_nat_5g(self, lf_tools, lf_test, create_lanforge_chamberview_dut):
"""
Downlink MU-MIMO Test: nat Mode
pytest -m downlink_mu_mimo and nat and wpa2_personal and fiveg
"""
dut_name = create_lanforge_chamberview_dut
mode = "NAT"
vlan = 1
dut_5g, dut_2g = "", ""
radios_2g, radios_5g, radios_ax = [], [], []
data = lf_tools.json_get(_req_url="/port?fields=alias,port,mode")
data = data['interfaces']
port, port_data = "", []
for i in data:
for j in i:
if i[j]['mode'] != '':
port_data.append(i)
for item in range(len(port_data)):
for p in port_data[item]:
temp = port_data[item][p]['port'].split('.')
temp = list(map(int, temp))
temp = list(map(str, temp))
port = ".".join(temp)
if port_data[item][p]['mode'] == '802.11bgn-AC':
radios_2g.append(port + " " + port_data[item][p]['alias'])
if port_data[item][p]['mode'] == '802.11an-AC':
radios_5g.append(port + " " + port_data[item][p]['alias'])
if port_data[item][p]['mode'] == '802.11abgn-AX':
radios_ax.append(port + " " + port_data[item][p]['alias'])
print(lf_tools.dut_idx_mapping)
for i in lf_tools.dut_idx_mapping:
if lf_tools.dut_idx_mapping[i][3] == "5G":
dut_5g = dut_name + ' ' + lf_tools.dut_idx_mapping[i][0] + ' ' + lf_tools.dut_idx_mapping[i][4] + ' (1)'
print(dut_5g)
if lf_tools.dut_idx_mapping[i][3] == "2G":
dut_2g = dut_name + ' ' + lf_tools.dut_idx_mapping[i][0] + ' ' + lf_tools.dut_idx_mapping[i][4] + ' (2)'
print(dut_2g)
mimo_obj = lf_test.downlink_mu_mimo(radios_2g=radios_2g, radios_5g=radios_5g, radios_ax=radios_ax, mode=mode,
vlan_id=vlan, dut_name=dut_name, dut_5g=dut_5g, dut_2g=dut_2g, skip_2g=True,
skip_5g=False)
report_name = mimo_obj.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1]
lf_tools.attach_report_graphs(report_name=report_name, pdf_name="Downlink MU-MIMO Test")
assert True
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-6849",
name="WIFI-6849")
@pytest.mark.wpa2_personal
@pytest.mark.twog
def test_mu_mimo_wpa2_personal_nat_2g(self, lf_tools, lf_test, create_lanforge_chamberview_dut):
"""
Downlink MU-MIMO Test: Nat Mode
pytest -m downlink_mu_mimo and nat and wpa2_personal and twog
"""
print('lf tool')
dut_name = create_lanforge_chamberview_dut
mode = "NAT"
vlan = 1
dut_5g, dut_2g = "", ""
radios_2g, radios_5g, radios_ax = [], [], []
data = lf_tools.json_get(_req_url="/port?fields=alias,port,mode")
data = data['interfaces']
port, port_data = "", []
for i in data:
for j in i:
if i[j]['mode'] != '':
port_data.append(i)
for item in range(len(port_data)):
for p in port_data[item]:
temp = port_data[item][p]['port'].split('.')
temp = list(map(int, temp))
temp = list(map(str, temp))
port = ".".join(temp)
print(port)
if port_data[item][p]['mode'] == '802.11bgn-AC':
radios_2g.append(port + " " + port_data[item][p]['alias'])
if port_data[item][p]['mode'] == '802.11an-AC':
radios_5g.append(port + " " + port_data[item][p]['alias'])
if port_data[item][p]['mode'] == '802.11abgn-AX':
radios_ax.append(port + " " + port_data[item][p]['alias'])
print(lf_tools.dut_idx_mapping)
for i in lf_tools.dut_idx_mapping:
if lf_tools.dut_idx_mapping[i][3] == "5G":
dut_5g = dut_name + ' ' + lf_tools.dut_idx_mapping[i][0] + ' ' + lf_tools.dut_idx_mapping[i][
4] + ' (1)'
print(dut_5g)
if lf_tools.dut_idx_mapping[i][3] == "2G":
dut_2g = dut_name + ' ' + lf_tools.dut_idx_mapping[i][0] + ' ' + lf_tools.dut_idx_mapping[i][
4] + ' (2)'
print(dut_2g)
mimo_obj = lf_test.downlink_mu_mimo(radios_2g=radios_2g, radios_5g=radios_5g, radios_ax=radios_ax,
mode=mode,
vlan_id=vlan, dut_name=dut_name, dut_5g=dut_5g, dut_2g=dut_2g,
skip_2g=False,
skip_5g=True)
report_name = mimo_obj.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1]
lf_tools.attach_report_graphs(report_name=report_name, pdf_name="Downlink MU-MIMO Test")
assert True

View File

@@ -0,0 +1,145 @@
"""
Performance Test: Downlink MU-MIMO Test: VLAN Mode
pytest -m "downlink_mu_mimo and vlan and wpa2_personal"
"""
import os
import pytest
import allure
pytestmark = [pytest.mark.downlink_mu_mimo, pytest.mark.vlan, pytest.mark.wpa2_personal]
setup_params_general = {
"mode": "VLAN",
"ssid_modes": {
"wpa2_personal": [
{"ssid_name": "mu-mimo-5g", "appliedRadios": ["5G"], "security_key": "something", "vlan":100},
{"ssid_name": "mu-mimo-2g", "appliedRadios": ["2G"], "security_key": "something", "vlan":100}
]
},
"rf": [],
"radius": False
}
@allure.suite("performance")
@allure.feature("VLAN MODE wpa2_personal security and Downlink MU_MIMO Test")
@pytest.mark.parametrize(
'setup_profiles',
[setup_params_general],
indirect=True,
scope="class"
)
@pytest.mark.usefixtures("setup_profiles")
class TestMuMimoNat(object):
"""
Downlink MU-MIMO Test: VLAN Mode
pytest -m downlink_mu_mimo and vlan
"""
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-6849",
name="WIFI-6849")
@pytest.mark.wpa2_personal
@pytest.mark.fiveg
def test_mu_mimo_wpa2_personal_vlan_5g(self, lf_tools, lf_test, create_lanforge_chamberview_dut):
"""
Downlink MU-MIMO Test: VLAN Mode
pytest -m downlink_mu_mimo and vlan and wpa2_personal and fiveg
"""
dut_name = create_lanforge_chamberview_dut
mode = "VLAN"
vlan = 1
dut_5g, dut_2g = "", ""
radios_2g, radios_5g, radios_ax = [], [], []
data = lf_tools.json_get(_req_url="/port?fields=alias,port,mode")
data = data['interfaces']
port, port_data = "", []
for i in data:
for j in i:
if i[j]['mode'] != '':
port_data.append(i)
for item in range(len(port_data)):
for p in port_data[item]:
temp = port_data[item][p]['port'].split('.')
temp = list(map(int, temp))
temp = list(map(str, temp))
port = ".".join(temp)
if port_data[item][p]['mode'] == '802.11bgn-AC':
radios_2g.append(port + " " + port_data[item][p]['alias'])
if port_data[item][p]['mode'] == '802.11an-AC':
radios_5g.append(port + " " + port_data[item][p]['alias'])
if port_data[item][p]['mode'] == '802.11abgn-AX':
radios_ax.append(port + " " + port_data[item][p]['alias'])
print(lf_tools.dut_idx_mapping)
for i in lf_tools.dut_idx_mapping:
if lf_tools.dut_idx_mapping[i][3] == "5G":
dut_5g = dut_name + ' ' + lf_tools.dut_idx_mapping[i][0] + ' ' + lf_tools.dut_idx_mapping[i][4] + ' (1)'
print(dut_5g)
if lf_tools.dut_idx_mapping[i][3] == "2G":
dut_2g = dut_name + ' ' + lf_tools.dut_idx_mapping[i][0] + ' ' + lf_tools.dut_idx_mapping[i][4] + ' (2)'
print(dut_2g)
mimo_obj = lf_test.downlink_mu_mimo(radios_2g=radios_2g, radios_5g=radios_5g, radios_ax=radios_ax, mode=mode,
vlan_id=vlan, dut_name=dut_name, dut_5g=dut_5g, dut_2g=dut_2g, skip_2g=True,
skip_5g=False)
report_name = mimo_obj.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1]
lf_tools.attach_report_graphs(report_name=report_name, pdf_name="Downlink MU-MIMO Test")
assert True
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-6849",
name="WIFI-6849")
@pytest.mark.wpa2_personal
@pytest.mark.twog
def test_mu_mimo_wpa2_personal_nat_2g(self, lf_tools, lf_test, create_lanforge_chamberview_dut):
"""
Downlink MU-MIMO Test: Bridge Mode
pytest -m downlink_mu_mimo and nat and wpa2_personal and twog
"""
print('lf tool')
dut_name = create_lanforge_chamberview_dut
mode = "VLAN"
vlan = 1
dut_5g, dut_2g = "", ""
radios_2g, radios_5g, radios_ax = [], [], []
data = lf_tools.json_get(_req_url="/port?fields=alias,port,mode")
data = data['interfaces']
port, port_data = "", []
for i in data:
for j in i:
if i[j]['mode'] != '':
port_data.append(i)
for item in range(len(port_data)):
for p in port_data[item]:
temp = port_data[item][p]['port'].split('.')
temp = list(map(int, temp))
temp = list(map(str, temp))
port = ".".join(temp)
print(port)
if port_data[item][p]['mode'] == '802.11bgn-AC':
radios_2g.append(port + " " + port_data[item][p]['alias'])
if port_data[item][p]['mode'] == '802.11an-AC':
radios_5g.append(port + " " + port_data[item][p]['alias'])
if port_data[item][p]['mode'] == '802.11abgn-AX':
radios_ax.append(port + " " + port_data[item][p]['alias'])
print(lf_tools.dut_idx_mapping)
for i in lf_tools.dut_idx_mapping:
if lf_tools.dut_idx_mapping[i][3] == "5G":
dut_5g = dut_name + ' ' + lf_tools.dut_idx_mapping[i][0] + ' ' + lf_tools.dut_idx_mapping[i][
4] + ' (1)'
print(dut_5g)
if lf_tools.dut_idx_mapping[i][3] == "2G":
dut_2g = dut_name + ' ' + lf_tools.dut_idx_mapping[i][0] + ' ' + lf_tools.dut_idx_mapping[i][
4] + ' (2)'
print(dut_2g)
mimo_obj = lf_test.downlink_mu_mimo(radios_2g=radios_2g, radios_5g=radios_5g, radios_ax=radios_ax,
mode=mode,
vlan_id=vlan, dut_name=dut_name, dut_5g=dut_5g, dut_2g=dut_2g,
skip_2g=False,
skip_5g=True)
report_name = mimo_obj.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1]
lf_tools.attach_report_graphs(report_name=report_name, pdf_name="Downlink MU-MIMO Test")
assert True

View File

@@ -0,0 +1,156 @@
"""
Performance Test: Downlink MU-MIMO Test: Bridge Mode
pytest -m "downlink_mu_mimo and bridge and wpa3_personal"
"""
import os
import pytest
import allure
pytestmark = [pytest.mark.downlink_mu_mimo, pytest.mark.bridge, pytest.mark.wpa3_personal]
setup_params_general = {
"mode": "BRIDGE",
"ssid_modes": {
"wpa3_personal": [
{"ssid_name": "mu-mimo-wpa3-5g", "appliedRadios": ["5G"], "security_key": "something"},
{"ssid_name": "mu-mimo-wpa3-2g", "appliedRadios": ["2G"], "security_key": "something"}
]
},
"rf": {
"5G": {
"band": '5G',
"channel": 149,
"channel-width": 80
},
"2G": {
"band": '2G',
"channel": 11,
"channel-width": 20
}
},
"radius": False
}
@allure.suite("performance")
@allure.feature("BRIDGE MODE wpa3_personal security and Downlink MU_MIMO Test")
@pytest.mark.parametrize(
'setup_profiles',
[setup_params_general],
indirect=True,
scope="class"
)
@pytest.mark.usefixtures("setup_profiles")
class TestMuMimoBridge(object):
"""
Downlink MU-MIMO Test: Bridge Mode
pytest -m downlink_mu_mimo and bridge
"""
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-6849",
name="WIFI-6849")
@pytest.mark.wpa3_personal
@pytest.mark.fiveg
def test_mu_mimo_wpa3_personal_bridge_5g(self, lf_tools, lf_test, create_lanforge_chamberview_dut):
"""
Downlink MU-MIMO Test: Bridge Mode
pytest -m downlink_mu_mimo and bridge and wpa3_personal and fiveg
"""
dut_name = create_lanforge_chamberview_dut
mode = "BRIDGE"
vlan = 1
dut_5g, dut_2g = "", ""
radios_2g, radios_5g, radios_ax = [], [], []
data = lf_tools.json_get(_req_url="/port?fields=alias,port,mode")
data = data['interfaces']
port, port_data = "", []
for i in data:
for j in i:
if i[j]['mode'] != '':
port_data.append(i)
for item in range(len(port_data)):
for p in port_data[item]:
temp = port_data[item][p]['port'].split('.')
temp = list(map(int, temp))
temp = list(map(str, temp))
port = ".".join(temp)
if port_data[item][p]['mode'] == '802.11bgn-AC':
radios_2g.append(port + " " + port_data[item][p]['alias'])
if port_data[item][p]['mode'] == '802.11an-AC':
radios_5g.append(port + " " + port_data[item][p]['alias'])
if port_data[item][p]['mode'] == '802.11abgn-AX':
radios_ax.append(port + " " + port_data[item][p]['alias'])
print(lf_tools.dut_idx_mapping)
for i in lf_tools.dut_idx_mapping:
if lf_tools.dut_idx_mapping[i][3] == "5G":
dut_5g = dut_name + ' ' + lf_tools.dut_idx_mapping[i][0] + ' ' + lf_tools.dut_idx_mapping[i][4] + ' (1)'
print(dut_5g)
if lf_tools.dut_idx_mapping[i][3] == "2G":
dut_2g = dut_name + ' ' + lf_tools.dut_idx_mapping[i][0] + ' ' + lf_tools.dut_idx_mapping[i][4] + ' (2)'
print(dut_2g)
mimo_obj = lf_test.downlink_mu_mimo(radios_2g=radios_2g, radios_5g=radios_5g, radios_ax=radios_ax, mode=mode,
vlan_id=vlan, dut_name=dut_name, dut_5g=dut_5g, dut_2g=dut_2g, skip_2g=True,
skip_5g=False)
report_name = mimo_obj.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1]
lf_tools.attach_report_graphs(report_name=report_name, pdf_name="Downlink MU-MIMO Test")
assert True
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-6849",
name="WIFI-6849")
@pytest.mark.wpa3_personal
@pytest.mark.twog
def test_mu_mimo_wpa3_personal_bridge_2g(self, lf_tools, lf_test, create_lanforge_chamberview_dut):
"""
Downlink MU-MIMO Test: Bridge Mode
pytest -m downlink_mu_mimo and bridge and wpa3_personal and twog
"""
print('lf tool')
dut_name = create_lanforge_chamberview_dut
mode = "BRIDGE"
vlan = 1
dut_5g, dut_2g = "", ""
radios_2g, radios_5g, radios_ax = [], [], []
data = lf_tools.json_get(_req_url="/port?fields=alias,port,mode")
data = data['interfaces']
port, port_data = "", []
for i in data:
for j in i:
if i[j]['mode'] != '':
port_data.append(i)
for item in range(len(port_data)):
for p in port_data[item]:
temp = port_data[item][p]['port'].split('.')
temp = list(map(int, temp))
temp = list(map(str, temp))
port = ".".join(temp)
print(port)
if port_data[item][p]['mode'] == '802.11bgn-AC':
radios_2g.append(port + " " + port_data[item][p]['alias'])
if port_data[item][p]['mode'] == '802.11an-AC':
radios_5g.append(port + " " + port_data[item][p]['alias'])
if port_data[item][p]['mode'] == '802.11abgn-AX':
radios_ax.append(port + " " + port_data[item][p]['alias'])
print(lf_tools.dut_idx_mapping)
for i in lf_tools.dut_idx_mapping:
if lf_tools.dut_idx_mapping[i][3] == "5G":
dut_5g = dut_name + ' ' + lf_tools.dut_idx_mapping[i][0] + ' ' + lf_tools.dut_idx_mapping[i][
4] + ' (1)'
print(dut_5g)
if lf_tools.dut_idx_mapping[i][3] == "2G":
dut_2g = dut_name + ' ' + lf_tools.dut_idx_mapping[i][0] + ' ' + lf_tools.dut_idx_mapping[i][
4] + ' (2)'
print(dut_2g)
mimo_obj = lf_test.downlink_mu_mimo(radios_2g=radios_2g, radios_5g=radios_5g, radios_ax=radios_ax,
mode=mode,
vlan_id=vlan, dut_name=dut_name, dut_5g=dut_5g, dut_2g=dut_2g,
skip_2g=False,
skip_5g=True)
report_name = mimo_obj.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1]
lf_tools.attach_report_graphs(report_name=report_name, pdf_name="Downlink MU-MIMO Test")
assert True

View File

@@ -0,0 +1,145 @@
"""
Performance Test: Downlink MU-MIMO Test: NAT Mode
pytest -m "downlink_mu_mimo and nat and wpa3_personal and fiveg"
"""
import os
import pytest
import allure
pytestmark = [pytest.mark.downlink_mu_mimo, pytest.mark.nat, pytest.mark.wpa3_personal]
setup_params_general = {
"mode": "NAT",
"ssid_modes": {
"wpa3_personal": [
{"ssid_name": "mu-mimo-5g", "appliedRadios": ["5G"], "security_key": "something"},
{"ssid_name": "mu-mimo-2g", "appliedRadios": ["2G"], "security_key": "something"}
]
},
"rf": [],
"radius": False
}
@allure.suite("performance")
@allure.feature("NAT MODE wpa3_personal security and Downlink MU_MIMO Test")
@pytest.mark.parametrize(
'setup_profiles',
[setup_params_general],
indirect=True,
scope="class"
)
@pytest.mark.usefixtures("setup_profiles")
class TestMuMimoNat(object):
"""
Downlink MU-MIMO Test: NAT Mode
pytest -m downlink_mu_mimo and nat
"""
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-6849",
name="WIFI-6849")
@pytest.mark.wpa3_personal
@pytest.mark.fiveg
def test_mu_mimo_wpa3_personal_nat_5g(self, lf_tools, lf_test, create_lanforge_chamberview_dut):
"""
Downlink MU-MIMO Test: NAT Mode
pytest -m downlink_mu_mimo and nat and wpa3_personal and fiveg
"""
dut_name = create_lanforge_chamberview_dut
mode = "NAT"
vlan = 1
dut_5g, dut_2g = "", ""
radios_2g, radios_5g, radios_ax = [], [], []
data = lf_tools.json_get(_req_url="/port?fields=alias,port,mode")
data = data['interfaces']
port, port_data = "", []
for i in data:
for j in i:
if i[j]['mode'] != '':
port_data.append(i)
for item in range(len(port_data)):
for p in port_data[item]:
temp = port_data[item][p]['port'].split('.')
temp = list(map(int, temp))
temp = list(map(str, temp))
port = ".".join(temp)
if port_data[item][p]['mode'] == '802.11bgn-AC':
radios_2g.append(port + " " + port_data[item][p]['alias'])
if port_data[item][p]['mode'] == '802.11an-AC':
radios_5g.append(port + " " + port_data[item][p]['alias'])
if port_data[item][p]['mode'] == '802.11abgn-AX':
radios_ax.append(port + " " + port_data[item][p]['alias'])
print(lf_tools.dut_idx_mapping)
for i in lf_tools.dut_idx_mapping:
if lf_tools.dut_idx_mapping[i][3] == "5G":
dut_5g = dut_name + ' ' + lf_tools.dut_idx_mapping[i][0] + ' ' + lf_tools.dut_idx_mapping[i][4] + ' (1)'
print(dut_5g)
if lf_tools.dut_idx_mapping[i][3] == "2G":
dut_2g = dut_name + ' ' + lf_tools.dut_idx_mapping[i][0] + ' ' + lf_tools.dut_idx_mapping[i][4] + ' (2)'
print(dut_2g)
mimo_obj = lf_test.downlink_mu_mimo(radios_2g=radios_2g, radios_5g=radios_5g, radios_ax=radios_ax, mode=mode,
vlan_id=vlan, dut_name=dut_name, dut_5g=dut_5g, dut_2g=dut_2g, skip_2g=True,
skip_5g=False)
report_name = mimo_obj.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1]
lf_tools.attach_report_graphs(report_name=report_name, pdf_name="Downlink MU-MIMO Test")
assert True
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-6849",
name="WIFI-6849")
@pytest.mark.wpa3_personal
@pytest.mark.twog
def test_mu_mimo_wpa3_personal_nat_2g(self, lf_tools, lf_test, create_lanforge_chamberview_dut):
"""
Downlink MU-MIMO Test: Bridge Mode
pytest -m downlink_mu_mimo and bridge and wpa3_personal and twog
"""
print('lf tool')
dut_name = create_lanforge_chamberview_dut
mode = "NAT"
vlan = 1
dut_5g, dut_2g = "", ""
radios_2g, radios_5g, radios_ax = [], [], []
data = lf_tools.json_get(_req_url="/port?fields=alias,port,mode")
data = data['interfaces']
port, port_data = "", []
for i in data:
for j in i:
if i[j]['mode'] != '':
port_data.append(i)
for item in range(len(port_data)):
for p in port_data[item]:
temp = port_data[item][p]['port'].split('.')
temp = list(map(int, temp))
temp = list(map(str, temp))
port = ".".join(temp)
print(port)
if port_data[item][p]['mode'] == '802.11bgn-AC':
radios_2g.append(port + " " + port_data[item][p]['alias'])
if port_data[item][p]['mode'] == '802.11an-AC':
radios_5g.append(port + " " + port_data[item][p]['alias'])
if port_data[item][p]['mode'] == '802.11abgn-AX':
radios_ax.append(port + " " + port_data[item][p]['alias'])
print(lf_tools.dut_idx_mapping)
for i in lf_tools.dut_idx_mapping:
if lf_tools.dut_idx_mapping[i][3] == "5G":
dut_5g = dut_name + ' ' + lf_tools.dut_idx_mapping[i][0] + ' ' + lf_tools.dut_idx_mapping[i][
4] + ' (1)'
print(dut_5g)
if lf_tools.dut_idx_mapping[i][3] == "2G":
dut_2g = dut_name + ' ' + lf_tools.dut_idx_mapping[i][0] + ' ' + lf_tools.dut_idx_mapping[i][
4] + ' (2)'
print(dut_2g)
mimo_obj = lf_test.downlink_mu_mimo(radios_2g=radios_2g, radios_5g=radios_5g, radios_ax=radios_ax,
mode=mode,
vlan_id=vlan, dut_name=dut_name, dut_5g=dut_5g, dut_2g=dut_2g,
skip_2g=False,
skip_5g=True)
report_name = mimo_obj.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1]
lf_tools.attach_report_graphs(report_name=report_name, pdf_name="Downlink MU-MIMO Test")
assert True

View File

@@ -0,0 +1,145 @@
"""
Performance Test: Downlink MU-MIMO Test: VLAN Mode
pytest -m "downlink_mu_mimo and vlan and wpa3_personal and fiveg"
"""
import os
import pytest
import allure
pytestmark = [pytest.mark.downlink_mu_mimo, pytest.mark.vlan, pytest.mark.wpa3_personal]
setup_params_general = {
"mode": "VLAN",
"ssid_modes": {
"wpa3_personal": [
{"ssid_name": "mu-mimo-5g", "appliedRadios": ["5G"], "security_key": "something", "vlan": 100},
{"ssid_name": "mu-mimo-2g", "appliedRadios": ["2G"], "security_key": "something", "vlan": 100}
]
},
"rf": [],
"radius": False
}
@allure.suite("performance")
@allure.feature("VLAN MODE wpa3_personal security and Downlink MU_MIMO Test")
@pytest.mark.parametrize(
'setup_profiles',
[setup_params_general],
indirect=True,
scope="class"
)
@pytest.mark.usefixtures("setup_profiles")
class TestMuMimoNat(object):
"""
Downlink MU-MIMO Test: VLAN Mode
pytest -m downlink_mu_mimo and vlan
"""
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-6849",
name="WIFI-6849")
@pytest.mark.wpa3_personal
@pytest.mark.fiveg
def test_mu_mimo_wpa3_personal_vlan_5g(self, lf_tools, lf_test, create_lanforge_chamberview_dut):
"""
Downlink MU-MIMO Test: VLAN Mode
pytest -m downlink_mu_mimo and vlan and wpa3_personal and fiveg
"""
dut_name = create_lanforge_chamberview_dut
mode = "VLAN"
vlan = 1
dut_5g, dut_2g = "", ""
radios_2g, radios_5g, radios_ax = [], [], []
data = lf_tools.json_get(_req_url="/port?fields=alias,port,mode")
data = data['interfaces']
port, port_data = "", []
for i in data:
for j in i:
if i[j]['mode'] != '':
port_data.append(i)
for item in range(len(port_data)):
for p in port_data[item]:
temp = port_data[item][p]['port'].split('.')
temp = list(map(int, temp))
temp = list(map(str, temp))
port = ".".join(temp)
if port_data[item][p]['mode'] == '802.11bgn-AC':
radios_2g.append(port + " " + port_data[item][p]['alias'])
if port_data[item][p]['mode'] == '802.11an-AC':
radios_5g.append(port + " " + port_data[item][p]['alias'])
if port_data[item][p]['mode'] == '802.11abgn-AX':
radios_ax.append(port + " " + port_data[item][p]['alias'])
print(lf_tools.dut_idx_mapping)
for i in lf_tools.dut_idx_mapping:
if lf_tools.dut_idx_mapping[i][3] == "5G":
dut_5g = dut_name + ' ' + lf_tools.dut_idx_mapping[i][0] + ' ' + lf_tools.dut_idx_mapping[i][4] + ' (1)'
print(dut_5g)
if lf_tools.dut_idx_mapping[i][3] == "2G":
dut_2g = dut_name + ' ' + lf_tools.dut_idx_mapping[i][0] + ' ' + lf_tools.dut_idx_mapping[i][4] + ' (2)'
print(dut_2g)
mimo_obj = lf_test.downlink_mu_mimo(radios_2g=radios_2g, radios_5g=radios_5g, radios_ax=radios_ax, mode=mode,
vlan_id=vlan, dut_name=dut_name, dut_5g=dut_5g, dut_2g=dut_2g, skip_2g=True,
skip_5g=False)
report_name = mimo_obj.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1]
lf_tools.attach_report_graphs(report_name=report_name, pdf_name="Downlink MU-MIMO Test")
assert True
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-6849",
name="WIFI-6849")
@pytest.mark.wpa3_personal
@pytest.mark.twog
def test_mu_mimo_wpa3_personal_vlan_5g(self, lf_tools, lf_test, create_lanforge_chamberview_dut):
"""
Downlink MU-MIMO Test: Vlan Mode
pytest -m downlink_mu_mimo and vlan and wpa3_personal and twog
"""
print('lf tool')
dut_name = create_lanforge_chamberview_dut
mode = "VLAN"
vlan = 1
dut_5g, dut_2g = "", ""
radios_2g, radios_5g, radios_ax = [], [], []
data = lf_tools.json_get(_req_url="/port?fields=alias,port,mode")
data = data['interfaces']
port, port_data = "", []
for i in data:
for j in i:
if i[j]['mode'] != '':
port_data.append(i)
for item in range(len(port_data)):
for p in port_data[item]:
temp = port_data[item][p]['port'].split('.')
temp = list(map(int, temp))
temp = list(map(str, temp))
port = ".".join(temp)
print(port)
if port_data[item][p]['mode'] == '802.11bgn-AC':
radios_2g.append(port + " " + port_data[item][p]['alias'])
if port_data[item][p]['mode'] == '802.11an-AC':
radios_5g.append(port + " " + port_data[item][p]['alias'])
if port_data[item][p]['mode'] == '802.11abgn-AX':
radios_ax.append(port + " " + port_data[item][p]['alias'])
print(lf_tools.dut_idx_mapping)
for i in lf_tools.dut_idx_mapping:
if lf_tools.dut_idx_mapping[i][3] == "5G":
dut_5g = dut_name + ' ' + lf_tools.dut_idx_mapping[i][0] + ' ' + lf_tools.dut_idx_mapping[i][
4] + ' (1)'
print(dut_5g)
if lf_tools.dut_idx_mapping[i][3] == "2G":
dut_2g = dut_name + ' ' + lf_tools.dut_idx_mapping[i][0] + ' ' + lf_tools.dut_idx_mapping[i][
4] + ' (2)'
print(dut_2g)
mimo_obj = lf_test.downlink_mu_mimo(radios_2g=radios_2g, radios_5g=radios_5g, radios_ax=radios_ax,
mode=mode,
vlan_id=vlan, dut_name=dut_name, dut_5g=dut_5g, dut_2g=dut_2g,
skip_2g=False,
skip_5g=True)
report_name = mimo_obj.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1]
lf_tools.attach_report_graphs(report_name=report_name, pdf_name="Downlink MU-MIMO Test")
assert True

View File

@@ -0,0 +1,156 @@
"""
Performance Test: Downlink MU-MIMO Test: Bridge Mode
pytest -m "downlink_mu_mimo and bridge and wpa_personal"
"""
import os
import pytest
import allure
pytestmark = [pytest.mark.downlink_mu_mimo, pytest.mark.bridge, pytest.mark.wpa_personal]
setup_params_general = {
"mode": "BRIDGE",
"ssid_modes": {
"wpa_personal": [
{"ssid_name": "mu-mimo-wpa-5g", "appliedRadios": ["5G"], "security_key": "something"},
{"ssid_name": "mu-mimo-wpa-2g", "appliedRadios": ["2G"], "security_key": "something"}
]
},
"rf": {
"5G": {
"band": '5G',
"channel": 149,
"channel-width": 80
},
"2G": {
"band": '2G',
"channel": 11,
"channel-width": 20
}
},
"radius": False
}
@allure.suite("performance")
@allure.feature("BRIDGE MODE wpa_personal security and Downlink MU_MIMO Test")
@pytest.mark.parametrize(
'setup_profiles',
[setup_params_general],
indirect=True,
scope="class"
)
@pytest.mark.usefixtures("setup_profiles")
class TestMuMimoBridge(object):
"""
Downlink MU-MIMO Test: Bridge Mode
pytest -m downlink_mu_mimo and bridge
"""
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-6849",
name="WIFI-6849")
@pytest.mark.wpa_personal
@pytest.mark.fiveg
def test_mu_mimo_wpa_personal_bridge_5g(self, lf_tools, lf_test, create_lanforge_chamberview_dut):
"""
Downlink MU-MIMO Test: Bridge Mode
pytest -m downlink_mu_mimo and bridge and wpa_personal and fiveg
"""
dut_name = create_lanforge_chamberview_dut
mode = "BRIDGE"
vlan = 1
dut_5g, dut_2g = "", ""
radios_2g, radios_5g, radios_ax = [], [], []
data = lf_tools.json_get(_req_url="/port?fields=alias,port,mode")
data = data['interfaces']
port, port_data = "", []
for i in data:
for j in i:
if i[j]['mode'] != '':
port_data.append(i)
for item in range(len(port_data)):
for p in port_data[item]:
temp = port_data[item][p]['port'].split('.')
temp = list(map(int, temp))
temp = list(map(str, temp))
port = ".".join(temp)
if port_data[item][p]['mode'] == '802.11bgn-AC':
radios_2g.append(port + " " + port_data[item][p]['alias'])
if port_data[item][p]['mode'] == '802.11an-AC':
radios_5g.append(port + " " + port_data[item][p]['alias'])
if port_data[item][p]['mode'] == '802.11abgn-AX':
radios_ax.append(port + " " + port_data[item][p]['alias'])
print(lf_tools.dut_idx_mapping)
for i in lf_tools.dut_idx_mapping:
if lf_tools.dut_idx_mapping[i][3] == "5G":
dut_5g = dut_name + ' ' + lf_tools.dut_idx_mapping[i][0] + ' ' + lf_tools.dut_idx_mapping[i][4] + ' (1)'
print(dut_5g)
if lf_tools.dut_idx_mapping[i][3] == "2G":
dut_2g = dut_name + ' ' + lf_tools.dut_idx_mapping[i][0] + ' ' + lf_tools.dut_idx_mapping[i][4] + ' (2)'
print(dut_2g)
mimo_obj = lf_test.downlink_mu_mimo(radios_2g=radios_2g, radios_5g=radios_5g, radios_ax=radios_ax, mode=mode,
vlan_id=vlan, dut_name=dut_name, dut_5g=dut_5g, dut_2g=dut_2g, skip_2g=True,
skip_5g=False)
report_name = mimo_obj.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1]
lf_tools.attach_report_graphs(report_name=report_name, pdf_name="Downlink MU-MIMO Test")
assert True
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-6849",
name="WIFI-6849")
@pytest.mark.wpa3_personal
@pytest.mark.twog
def test_mu_mimo_wpa_personal_bridge_2g(self, lf_tools, lf_test, create_lanforge_chamberview_dut):
"""
Downlink MU-MIMO Test: Bridge Mode
pytest -m downlink_mu_mimo and bridge and wpa3_personal and twog
"""
print('lf tool')
dut_name = create_lanforge_chamberview_dut
mode = "BRIDGE"
vlan = 1
dut_5g, dut_2g = "", ""
radios_2g, radios_5g, radios_ax = [], [], []
data = lf_tools.json_get(_req_url="/port?fields=alias,port,mode")
data = data['interfaces']
port, port_data = "", []
for i in data:
for j in i:
if i[j]['mode'] != '':
port_data.append(i)
for item in range(len(port_data)):
for p in port_data[item]:
temp = port_data[item][p]['port'].split('.')
temp = list(map(int, temp))
temp = list(map(str, temp))
port = ".".join(temp)
print(port)
if port_data[item][p]['mode'] == '802.11bgn-AC':
radios_2g.append(port + " " + port_data[item][p]['alias'])
if port_data[item][p]['mode'] == '802.11an-AC':
radios_5g.append(port + " " + port_data[item][p]['alias'])
if port_data[item][p]['mode'] == '802.11abgn-AX':
radios_ax.append(port + " " + port_data[item][p]['alias'])
print(lf_tools.dut_idx_mapping)
for i in lf_tools.dut_idx_mapping:
if lf_tools.dut_idx_mapping[i][3] == "5G":
dut_5g = dut_name + ' ' + lf_tools.dut_idx_mapping[i][0] + ' ' + lf_tools.dut_idx_mapping[i][
4] + ' (1)'
print(dut_5g)
if lf_tools.dut_idx_mapping[i][3] == "2G":
dut_2g = dut_name + ' ' + lf_tools.dut_idx_mapping[i][0] + ' ' + lf_tools.dut_idx_mapping[i][
4] + ' (2)'
print(dut_2g)
mimo_obj = lf_test.downlink_mu_mimo(radios_2g=radios_2g, radios_5g=radios_5g, radios_ax=radios_ax,
mode=mode,
vlan_id=vlan, dut_name=dut_name, dut_5g=dut_5g, dut_2g=dut_2g,
skip_2g=False,
skip_5g=True)
report_name = mimo_obj.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1]
lf_tools.attach_report_graphs(report_name=report_name, pdf_name="Downlink MU-MIMO Test")
assert True

View File

@@ -0,0 +1,145 @@
"""
Performance Test: Downlink MU-MIMO Test: NAT Mode
pytest -m "downlink_mu_mimo and Nat and wpa_personal"
"""
import os
import pytest
import allure
pytestmark = [pytest.mark.downlink_mu_mimo, pytest.mark.nat, pytest.mark.wpa_personal]
setup_params_general = {
"mode": "NAT",
"ssid_modes": {
"wpa_personal": [
{"ssid_name": "mu-mimo-5g", "appliedRadios": ["5G"], "security_key": "something"},
{"ssid_name": "mu-mimo-2g", "appliedRadios": ["2G"], "security_key": "something"}
]
},
"rf": [],
"radius": False
}
@allure.suite("performance")
@allure.feature("NAT MODE wpa_personal security and Downlink MU_MIMO Test")
@pytest.mark.parametrize(
'setup_profiles',
[setup_params_general],
indirect=True,
scope="class"
)
@pytest.mark.usefixtures("setup_profiles")
class TestMuMimoNat(object):
"""
Downlink MU-MIMO Test: NAT Mode
pytest -m downlink_mu_mimo and nat
"""
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-6849",
name="WIFI-6849")
@pytest.mark.wpa_personal
@pytest.mark.fiveg
def test_mu_mimo_wpa_personal_nat_5g(self, lf_tools, lf_test, create_lanforge_chamberview_dut):
"""
Downlink MU-MIMO Test: NAT Mode
pytest -m downlink_mu_mimo and nat and wpa_personal and fiveg
"""
dut_name = create_lanforge_chamberview_dut
mode = "NAT"
vlan = 1
dut_5g, dut_2g = "", ""
radios_2g, radios_5g, radios_ax = [], [], []
data = lf_tools.json_get(_req_url="/port?fields=alias,port,mode")
data = data['interfaces']
port, port_data = "", []
for i in data:
for j in i:
if i[j]['mode'] != '':
port_data.append(i)
for item in range(len(port_data)):
for p in port_data[item]:
temp = port_data[item][p]['port'].split('.')
temp = list(map(int, temp))
temp = list(map(str, temp))
port = ".".join(temp)
if port_data[item][p]['mode'] == '802.11bgn-AC':
radios_2g.append(port + " " + port_data[item][p]['alias'])
if port_data[item][p]['mode'] == '802.11an-AC':
radios_5g.append(port + " " + port_data[item][p]['alias'])
if port_data[item][p]['mode'] == '802.11abgn-AX':
radios_ax.append(port + " " + port_data[item][p]['alias'])
print(lf_tools.dut_idx_mapping)
for i in lf_tools.dut_idx_mapping:
if lf_tools.dut_idx_mapping[i][3] == "5G":
dut_5g = dut_name + ' ' + lf_tools.dut_idx_mapping[i][0] + ' ' + lf_tools.dut_idx_mapping[i][4] + ' (1)'
print(dut_5g)
if lf_tools.dut_idx_mapping[i][3] == "2G":
dut_2g = dut_name + ' ' + lf_tools.dut_idx_mapping[i][0] + ' ' + lf_tools.dut_idx_mapping[i][4] + ' (2)'
print(dut_2g)
mimo_obj = lf_test.downlink_mu_mimo(radios_2g=radios_2g, radios_5g=radios_5g, radios_ax=radios_ax, mode=mode,
vlan_id=vlan, dut_name=dut_name, dut_5g=dut_5g, dut_2g=dut_2g, skip_2g=True,
skip_5g=False)
report_name = mimo_obj.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1]
lf_tools.attach_report_graphs(report_name=report_name, pdf_name="Downlink MU-MIMO Test")
assert True
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-6849",
name="WIFI-6849")
@pytest.mark.wpa_personal
@pytest.mark.twog
def test_mu_mimo_wpa_personal_nat_2g(self, lf_tools, lf_test, create_lanforge_chamberview_dut):
"""
Downlink MU-MIMO Test: Bridge Mode
pytest -m downlink_mu_mimo and nat and wpa_personal and twog
"""
print('lf tool')
dut_name = create_lanforge_chamberview_dut
mode = "NAT"
vlan = 1
dut_5g, dut_2g = "", ""
radios_2g, radios_5g, radios_ax = [], [], []
data = lf_tools.json_get(_req_url="/port?fields=alias,port,mode")
data = data['interfaces']
port, port_data = "", []
for i in data:
for j in i:
if i[j]['mode'] != '':
port_data.append(i)
for item in range(len(port_data)):
for p in port_data[item]:
temp = port_data[item][p]['port'].split('.')
temp = list(map(int, temp))
temp = list(map(str, temp))
port = ".".join(temp)
print(port)
if port_data[item][p]['mode'] == '802.11bgn-AC':
radios_2g.append(port + " " + port_data[item][p]['alias'])
if port_data[item][p]['mode'] == '802.11an-AC':
radios_5g.append(port + " " + port_data[item][p]['alias'])
if port_data[item][p]['mode'] == '802.11abgn-AX':
radios_ax.append(port + " " + port_data[item][p]['alias'])
print(lf_tools.dut_idx_mapping)
for i in lf_tools.dut_idx_mapping:
if lf_tools.dut_idx_mapping[i][3] == "5G":
dut_5g = dut_name + ' ' + lf_tools.dut_idx_mapping[i][0] + ' ' + lf_tools.dut_idx_mapping[i][
4] + ' (1)'
print(dut_5g)
if lf_tools.dut_idx_mapping[i][3] == "2G":
dut_2g = dut_name + ' ' + lf_tools.dut_idx_mapping[i][0] + ' ' + lf_tools.dut_idx_mapping[i][
4] + ' (2)'
print(dut_2g)
mimo_obj = lf_test.downlink_mu_mimo(radios_2g=radios_2g, radios_5g=radios_5g, radios_ax=radios_ax,
mode=mode,
vlan_id=vlan, dut_name=dut_name, dut_5g=dut_5g, dut_2g=dut_2g,
skip_2g=False,
skip_5g=True)
report_name = mimo_obj.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1]
lf_tools.attach_report_graphs(report_name=report_name, pdf_name="Downlink MU-MIMO Test")
assert True

View File

@@ -0,0 +1,145 @@
"""
Performance Test: Downlink MU-MIMO Test: VLAN Mode
pytest -m "downlink_mu_mimo and vlan and wpa_personal"
"""
import os
import pytest
import allure
pytestmark = [pytest.mark.downlink_mu_mimo, pytest.mark.vlan, pytest.mark.wpa_personal]
setup_params_general = {
"mode": "VLAN",
"ssid_modes": {
"wpa_personal": [
{"ssid_name": "mu-mimo-5g", "appliedRadios": ["5G"], "security_key": "something", "vlan":100},
{"ssid_name": "mu-mimo-2g", "appliedRadios": ["2G"], "security_key": "something", "vlan":100}
]
},
"rf": [],
"radius": False
}
@allure.suite("performance")
@allure.feature("VLAN MODE wpa_personal security and Downlink MU_MIMO Test")
@pytest.mark.parametrize(
'setup_profiles',
[setup_params_general],
indirect=True,
scope="class"
)
@pytest.mark.usefixtures("setup_profiles")
class TestMuMimoNat(object):
"""
Downlink MU-MIMO Test: VLAN Mode
pytest -m downlink_mu_mimo and vlan
"""
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-6849",
name="WIFI-6849")
@pytest.mark.wpa_personal
@pytest.mark.fiveg
def test_mu_mimo_wpa_personal_vlan_5g(self, lf_tools, lf_test, create_lanforge_chamberview_dut):
"""
Downlink MU-MIMO Test: VLAN Mode
pytest -m downlink_mu_mimo and vlan and wpa_personal and fiveg
"""
dut_name = create_lanforge_chamberview_dut
mode = "VLAN"
vlan = 1
dut_5g, dut_2g = "", ""
radios_2g, radios_5g, radios_ax = [], [], []
data = lf_tools.json_get(_req_url="/port?fields=alias,port,mode")
data = data['interfaces']
port, port_data = "", []
for i in data:
for j in i:
if i[j]['mode'] != '':
port_data.append(i)
for item in range(len(port_data)):
for p in port_data[item]:
temp = port_data[item][p]['port'].split('.')
temp = list(map(int, temp))
temp = list(map(str, temp))
port = ".".join(temp)
if port_data[item][p]['mode'] == '802.11bgn-AC':
radios_2g.append(port + " " + port_data[item][p]['alias'])
if port_data[item][p]['mode'] == '802.11an-AC':
radios_5g.append(port + " " + port_data[item][p]['alias'])
if port_data[item][p]['mode'] == '802.11abgn-AX':
radios_ax.append(port + " " + port_data[item][p]['alias'])
print(lf_tools.dut_idx_mapping)
for i in lf_tools.dut_idx_mapping:
if lf_tools.dut_idx_mapping[i][3] == "5G":
dut_5g = dut_name + ' ' + lf_tools.dut_idx_mapping[i][0] + ' ' + lf_tools.dut_idx_mapping[i][4] + ' (1)'
print(dut_5g)
if lf_tools.dut_idx_mapping[i][3] == "2G":
dut_2g = dut_name + ' ' + lf_tools.dut_idx_mapping[i][0] + ' ' + lf_tools.dut_idx_mapping[i][4] + ' (2)'
print(dut_2g)
mimo_obj = lf_test.downlink_mu_mimo(radios_2g=radios_2g, radios_5g=radios_5g, radios_ax=radios_ax, mode=mode,
vlan_id=vlan, dut_name=dut_name, dut_5g=dut_5g, dut_2g=dut_2g, skip_2g=True,
skip_5g=False)
report_name = mimo_obj.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1]
lf_tools.attach_report_graphs(report_name=report_name, pdf_name="Downlink MU-MIMO Test")
assert True
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-6849",
name="WIFI-6849")
@pytest.mark.wpa_personal
@pytest.mark.twog
def test_mu_mimo_wpa_personal_vlan_2g(self, lf_tools, lf_test, create_lanforge_chamberview_dut):
"""
Downlink MU-MIMO Test: Bridge Mode
pytest -m downlink_mu_mimo and bridge and wpa3_personal and twog
"""
print('lf tool')
dut_name = create_lanforge_chamberview_dut
mode = "VLAN"
vlan = 1
dut_5g, dut_2g = "", ""
radios_2g, radios_5g, radios_ax = [], [], []
data = lf_tools.json_get(_req_url="/port?fields=alias,port,mode")
data = data['interfaces']
port, port_data = "", []
for i in data:
for j in i:
if i[j]['mode'] != '':
port_data.append(i)
for item in range(len(port_data)):
for p in port_data[item]:
temp = port_data[item][p]['port'].split('.')
temp = list(map(int, temp))
temp = list(map(str, temp))
port = ".".join(temp)
print(port)
if port_data[item][p]['mode'] == '802.11bgn-AC':
radios_2g.append(port + " " + port_data[item][p]['alias'])
if port_data[item][p]['mode'] == '802.11an-AC':
radios_5g.append(port + " " + port_data[item][p]['alias'])
if port_data[item][p]['mode'] == '802.11abgn-AX':
radios_ax.append(port + " " + port_data[item][p]['alias'])
print(lf_tools.dut_idx_mapping)
for i in lf_tools.dut_idx_mapping:
if lf_tools.dut_idx_mapping[i][3] == "5G":
dut_5g = dut_name + ' ' + lf_tools.dut_idx_mapping[i][0] + ' ' + lf_tools.dut_idx_mapping[i][
4] + ' (1)'
print(dut_5g)
if lf_tools.dut_idx_mapping[i][3] == "2G":
dut_2g = dut_name + ' ' + lf_tools.dut_idx_mapping[i][0] + ' ' + lf_tools.dut_idx_mapping[i][
4] + ' (2)'
print(dut_2g)
mimo_obj = lf_test.downlink_mu_mimo(radios_2g=radios_2g, radios_5g=radios_5g, radios_ax=radios_ax,
mode=mode,
vlan_id=vlan, dut_name=dut_name, dut_5g=dut_5g, dut_2g=dut_2g,
skip_2g=False,
skip_5g=True)
report_name = mimo_obj.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1]
lf_tools.attach_report_graphs(report_name=report_name, pdf_name="Downlink MU-MIMO Test")
assert True

View File

@@ -58,6 +58,7 @@ class TestCountryCA20Mhz5GChannel36(object):
pytest -m "country_code and twentyMhz and wpa2 and fiveg and channel36"
"""
profile_data = setup_params_general1["ssid_modes"]["wpa2_personal"][1]
ssid = profile_data["ssid_name"]
security_key = profile_data["security_key"]
security = "wpa2"

View File

@@ -384,6 +384,7 @@ class TestCountryIN40Mhz5GChannel108(object):
setup_params_general7 = {
"mode": "BRIDGE",
"ssid_modes": {
"wpa2_personal": [{"ssid_name": "ssid_wpa2_2g", "appliedRadios": ["2G"], "security_key": "something"},
{"ssid_name": "ssid_wpa2_5g", "appliedRadios": ["5G"], "security_key": "something"}
]},

View File

@@ -683,8 +683,8 @@ class Fixtures_2x:
# Apply config
instantiate_profile_obj.push_config(serial_number=get_equipment_ref[0])
print(instantiate_profile_obj.base_profile_config)
config = json.loads(str(instantiate_profile_obj.base_profile_config).replace(" ", "").replace("'", '"').replace("True", "true"))
config["uuid"] = 0