mirror of
https://github.com/Telecominfraproject/wlan-testing.git
synced 2025-11-01 19:37:54 +00:00
wifi capacity test- added
wifi capacity upload dual band wifi capacity download dual band bidirectional dual band all above scenarios in bridge nat and vlan mode, and in 5g and 2.4g modes
This commit is contained in:
@@ -200,42 +200,43 @@ class RunTest:
|
||||
self.eap_connect.cleanup(station_name)
|
||||
return self.eap_connect.passes()
|
||||
|
||||
def wifi_capacity(self, mode="BRIDGE", vlan_id=100, instance_name="wct_instance", stations=None):
|
||||
def wifi_capacity(self, mode="BRIDGE", vlan_id=100, instance_name="wct_instance", download_rate="1Gbps",
|
||||
upload_rate="1Gbps", protocol="TCP-IPv4", duration="60000"):
|
||||
if mode == "BRIDGE":
|
||||
self.client_connect.upstream_port = self.upstream_port
|
||||
upstream_port = self.upstream_port
|
||||
elif mode == "NAT":
|
||||
self.client_connect.upstream_port = self.upstream_port
|
||||
upstream_port = self.upstream_port
|
||||
elif mode == "VLAN":
|
||||
self.client_connect.upstream_port = self.upstream_port + "." + str(vlan_id)
|
||||
upstream_port = self.upstream_port + "." + str(vlan_id)
|
||||
'''SINGLE WIFI CAPACITY using lf_wifi_capacity.py'''
|
||||
wificapacity_obj = WiFiCapacityTest(lfclient_host=self.lanforge_ip,
|
||||
lf_port=self.lanforge_port,
|
||||
lf_user="lanforge",
|
||||
lf_password="lanforge",
|
||||
local_lf_report_dir=self.local_report_path,
|
||||
instance_name=instance_name,
|
||||
config_name="wifi_config",
|
||||
upstream="1.1." + self.upstream_port,
|
||||
batch_size="1",
|
||||
loop_iter="1",
|
||||
protocol="UDP-IPv4",
|
||||
duration="3000",
|
||||
pull_report=True,
|
||||
load_old_cfg=False,
|
||||
upload_rate="10Mbps",
|
||||
download_rate="1Gbps",
|
||||
sort="interleave",
|
||||
stations=stations,
|
||||
create_stations=False,
|
||||
radio=None,
|
||||
security=None,
|
||||
paswd=None,
|
||||
ssid=None,
|
||||
enables=[],
|
||||
disables=[],
|
||||
raw_lines=[],
|
||||
raw_lines_file="",
|
||||
sets=[])
|
||||
lf_port=self.lanforge_port,
|
||||
lf_user="lanforge",
|
||||
lf_password="lanforge",
|
||||
local_lf_report_dir=self.local_report_path,
|
||||
instance_name=instance_name,
|
||||
config_name="wifi_config",
|
||||
upstream="1.1." + upstream_port,
|
||||
batch_size="1,5,10,20,40,64",
|
||||
loop_iter="1",
|
||||
protocol=protocol,
|
||||
duration=duration,
|
||||
pull_report=True,
|
||||
load_old_cfg=False,
|
||||
upload_rate=upload_rate,
|
||||
download_rate=download_rate,
|
||||
sort="interleave",
|
||||
# stations=stations,
|
||||
create_stations=True,
|
||||
radio=None,
|
||||
security=None,
|
||||
paswd=None,
|
||||
ssid=None,
|
||||
enables=[],
|
||||
disables=[],
|
||||
raw_lines=[],
|
||||
raw_lines_file="",
|
||||
sets=[])
|
||||
|
||||
wificapacity_obj.setup()
|
||||
wificapacity_obj.run()
|
||||
@@ -282,14 +283,18 @@ class RunTest:
|
||||
return True
|
||||
|
||||
def dataplane(self, station_name=None, mode="BRIDGE", vlan_id=100, download_rate="85%", dut_name="TIP",
|
||||
upload_rate="85%", duration="1m", instance_name="test_demo"):
|
||||
upload_rate="85%", duration="1m", instance_name="test_demo", raw_lines=None):
|
||||
if mode == "BRIDGE":
|
||||
self.client_connect.upstream_port = self.upstream_port
|
||||
elif mode == "NAT":
|
||||
self.client_connect.upstream_port = self.upstream_port
|
||||
else:
|
||||
elif mode == "VLAN":
|
||||
self.client_connect.upstream_port = self.upstream_port + "." + str(vlan_id)
|
||||
|
||||
if raw_lines is None:
|
||||
raw_lines = [['pkts: MTU'], ['directions: DUT Transmit;DUT Receive'], ['traffic_types: UDP;TCP'],
|
||||
["show_3s: 1"], ["show_ll_graphs: 1"], ["show_log: 1"]]
|
||||
|
||||
self.dataplane_obj = DataplaneTest(lf_host=self.lanforge_ip,
|
||||
lf_port=self.lanforge_port,
|
||||
ssh_port=self.lf_ssh_port,
|
||||
@@ -306,21 +311,18 @@ class RunTest:
|
||||
duration=duration,
|
||||
dut=dut_name,
|
||||
station="1.1." + station_name[0],
|
||||
raw_lines=[['pkts: Custom;60;142;256;512;1024;MTU'],
|
||||
['directions: DUT Transmit;DUT Receive'],
|
||||
['traffic_types: UDP;TCP'], ["show_3s: 1"],
|
||||
["show_ll_graphs: 1"], ["show_log: 1"]],
|
||||
)
|
||||
raw_lines=raw_lines)
|
||||
|
||||
self.dataplane_obj.setup()
|
||||
self.dataplane_obj.run()
|
||||
report_name = self.dataplane_obj.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1]
|
||||
influx = CSVtoInflux(influxdb=self.influxdb,
|
||||
_influx_tag=self.influx_params["influx_tag"],
|
||||
influx = CSVtoInflux(influxdb=self.influxdb, _influx_tag=self.influx_params["influx_tag"],
|
||||
target_csv=self.local_report_path + report_name + "/kpi.csv")
|
||||
influx.post_to_influx()
|
||||
|
||||
return self.dataplane_obj
|
||||
|
||||
def dualbandperformancetest(self,ssid_5G="[BLANK]",ssid_2G="[BLANK]",mode="BRIDGE", vlan_id=100,dut_name="TIP",
|
||||
def dualbandperformancetest(self, ssid_5G="[BLANK]", ssid_2G="[BLANK]", mode="BRIDGE", vlan_id=100, dut_name="TIP",
|
||||
instance_name="test_demo"):
|
||||
if mode == "BRIDGE":
|
||||
self.client_connect.upstream_port = self.upstream_port
|
||||
@@ -330,26 +332,27 @@ class RunTest:
|
||||
self.client_connect.upstream_port = self.upstream_port + "." + str(vlan_id)
|
||||
|
||||
self.dualbandptest_obj = ApAutoTest(lf_host=self.lanforge_ip,
|
||||
lf_port=self.lanforge_port,
|
||||
lf_user="lanforge",
|
||||
lf_password="lanforge",
|
||||
instance_name=instance_name,
|
||||
config_name="dbp_config",
|
||||
upstream="1.1." + self.upstream_port,
|
||||
pull_report=True,
|
||||
dut5_0=dut_name + ' ' + ssid_5G,
|
||||
dut2_0=dut_name + ' ' + ssid_2G,
|
||||
load_old_cfg=False,
|
||||
max_stations_2=1,
|
||||
max_stations_5=1,
|
||||
max_stations_dual=2,
|
||||
radio2=[["1.1.wiphy0"]],
|
||||
radio5=[["1.1.wiphy1"]],
|
||||
sets=[['Basic Client Connectivity', '0'], ['Multi Band Performance', '1'],
|
||||
['Throughput vs Pkt Size', '0'], ['Capacity', '0'], ['Stability', '0'],
|
||||
['Band-Steering', '0'], ['Multi-Station Throughput vs Pkt Size', '0'],
|
||||
['Long-Term', '0']]
|
||||
)
|
||||
lf_port=self.lanforge_port,
|
||||
lf_user="lanforge",
|
||||
lf_password="lanforge",
|
||||
instance_name=instance_name,
|
||||
config_name="dbp_config",
|
||||
upstream="1.1." + self.upstream_port,
|
||||
pull_report=True,
|
||||
dut5_0=dut_name + ' ' + ssid_5G,
|
||||
dut2_0=dut_name + ' ' + ssid_2G,
|
||||
load_old_cfg=False,
|
||||
max_stations_2=1,
|
||||
max_stations_5=1,
|
||||
max_stations_dual=2,
|
||||
radio2=[["1.1.wiphy0"]],
|
||||
radio5=[["1.1.wiphy1"]],
|
||||
sets=[['Basic Client Connectivity', '0'], ['Multi Band Performance', '1'],
|
||||
['Throughput vs Pkt Size', '0'], ['Capacity', '0'],
|
||||
['Stability', '0'],
|
||||
['Band-Steering', '0'], ['Multi-Station Throughput vs Pkt Size', '0'],
|
||||
['Long-Term', '0']]
|
||||
)
|
||||
self.dualbandptest_obj.setup()
|
||||
self.dualbandptest_obj.run()
|
||||
report_name = self.dataplane_obj.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1]
|
||||
@@ -360,7 +363,6 @@ class RunTest:
|
||||
return self.dualbandptest_obj
|
||||
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
lanforge_data = {
|
||||
"ip": "localhost",
|
||||
|
||||
@@ -6,6 +6,7 @@ import json
|
||||
import os
|
||||
import pandas as pd
|
||||
|
||||
|
||||
class ChamberView:
|
||||
|
||||
def __init__(self, lanforge_data=None, access_point_data=None, debug=True, testbed=None):
|
||||
@@ -57,6 +58,15 @@ class ChamberView:
|
||||
)
|
||||
self.CreateDut.ssid = []
|
||||
|
||||
def reset_scenario(self):
|
||||
self.raw_line = [
|
||||
["profile_link " + self.upstream_resources + " upstream-dhcp 1 NA NA " + self.upstream_port.split(".")
|
||||
[2] + ",AUTO -1 NA"],
|
||||
["profile_link " + self.uplink_resources + " uplink-nat 1 'DUT: upstream LAN " + self.upstream_subnet
|
||||
+ "' NA " + self.uplink_port.split(".")[2] + "," + self.upstream_port.split(".")[2] + " -1 NA"]
|
||||
]
|
||||
self.Chamber_View()
|
||||
|
||||
def Chamber_View(self):
|
||||
if self.delete_old_scenario:
|
||||
self.CreateChamberview.clean_cv_scenario(type="Network-Connectivity", scenario_name=self.scenario_name)
|
||||
@@ -70,6 +80,23 @@ class ChamberView:
|
||||
self.CreateChamberview.sync_cv()
|
||||
return self.CreateChamberview, self.scenario_name
|
||||
|
||||
def add_stations(self, band="twog", num_stations=50, dut="NA"):
|
||||
if band == "twog":
|
||||
radio = ",".join(self.twog_radios)
|
||||
if len(self.twog_radios) == 1:
|
||||
radio = radio + ",AUTO"
|
||||
# self.eap_connect.sta_prefix = self.twog_prefix
|
||||
if band == "fiveg":
|
||||
radio = ",".join(self.fiveg_radios)
|
||||
if len(self.fiveg_radios) == 1:
|
||||
radio = radio + ",AUTO"
|
||||
# self.eap_connect.sta_prefix = self.fiveg_prefix
|
||||
|
||||
station_data = ["profile_link 1.1 STA-AUTO " + str(num_stations) + " 'DUT: " + dut + " Radio-1'" + " NA " + radio]
|
||||
self.raw_line.append(station_data)
|
||||
|
||||
|
||||
|
||||
def Create_Dut(self):
|
||||
self.CreateDut.setup()
|
||||
self.CreateDut.add_ssids()
|
||||
@@ -106,7 +133,7 @@ class ChamberView:
|
||||
cli_base = LFCliBase(_lfjson_host=self.lanforge_ip, _lfjson_port=self.lanforge_port, )
|
||||
return cli_base.json_post(req_url, data)
|
||||
|
||||
def read_kpi_file(self, column_name, dir_name ):
|
||||
def read_kpi_file(self, column_name, dir_name):
|
||||
if column_name == None:
|
||||
df = pd.read_csv("../reports/" + str(dir_name) + "/kpi.csv", sep=r'\t', engine='python')
|
||||
if df.empty == True:
|
||||
@@ -114,14 +141,9 @@ class ChamberView:
|
||||
else:
|
||||
return df
|
||||
else:
|
||||
df = pd.read_csv("../reports/" + str(dir_name) + "/kpi.csv", sep=r'\t', usecols=column_name, engine='python')
|
||||
df = pd.read_csv("../reports/" + str(dir_name) + "/kpi.csv", sep=r'\t', usecols=column_name,
|
||||
engine='python')
|
||||
if df.empty == True:
|
||||
return "empty"
|
||||
else:
|
||||
return df
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user