mirror of
https://github.com/Telecominfraproject/wlan-lanforge-scripts.git
synced 2025-11-01 03:07:56 +00:00
Made changes to be compatible with different test types and consolidated scripts
This commit is contained in:
@@ -21,6 +21,7 @@ class L4CXProfile(LFCliBase):
|
|||||||
self.local_realm = local_realm
|
self.local_realm = local_realm
|
||||||
self.created_cx = {}
|
self.created_cx = {}
|
||||||
self.created_endp = []
|
self.created_endp = []
|
||||||
|
self.test_type = "urls/s"
|
||||||
self.lfclient_port = lfclient_port
|
self.lfclient_port = lfclient_port
|
||||||
self.lfclient_host = lfclient_host
|
self.lfclient_host = lfclient_host
|
||||||
|
|
||||||
@@ -69,6 +70,34 @@ class L4CXProfile(LFCliBase):
|
|||||||
print(".", end='')
|
print(".", end='')
|
||||||
print("")
|
print("")
|
||||||
|
|
||||||
|
def compare_vals(self, old_list, new_list):
|
||||||
|
passes = 0
|
||||||
|
expected_passes = 0
|
||||||
|
if len(old_list) == len(new_list):
|
||||||
|
for item, value in old_list.items():
|
||||||
|
expected_passes += 1
|
||||||
|
if new_list[item] > old_list[item]:
|
||||||
|
passes += 1
|
||||||
|
if passes == expected_passes:
|
||||||
|
return True
|
||||||
|
else:
|
||||||
|
return False
|
||||||
|
else:
|
||||||
|
return False
|
||||||
|
|
||||||
|
def get_bytes(self):
|
||||||
|
time.sleep(1)
|
||||||
|
cx_list = self.json_get("layer4/list?fields=name,%s" % self.test_type, debug_=self.debug)
|
||||||
|
# print("==============\n", cx_list, "\n==============")
|
||||||
|
cx_map = {}
|
||||||
|
for cx_name in cx_list['endpoint']:
|
||||||
|
if cx_name != 'uri' and cx_name != 'handler':
|
||||||
|
for item, value in cx_name.items():
|
||||||
|
for value_name, value_rx in value.items():
|
||||||
|
if item in self.created_cx.keys() and value_name == self.test_type:
|
||||||
|
cx_map[item] = value_rx
|
||||||
|
return cx_map
|
||||||
|
|
||||||
def check_request_rate(self):
|
def check_request_rate(self):
|
||||||
endp_list = self.json_get("layer4/list?fields=urls/s")
|
endp_list = self.json_get("layer4/list?fields=urls/s")
|
||||||
expected_passes = 0
|
expected_passes = 0
|
||||||
@@ -88,7 +117,6 @@ class L4CXProfile(LFCliBase):
|
|||||||
|
|
||||||
return passes == expected_passes
|
return passes == expected_passes
|
||||||
|
|
||||||
|
|
||||||
def cleanup(self):
|
def cleanup(self):
|
||||||
print("Cleaning up cxs and endpoints")
|
print("Cleaning up cxs and endpoints")
|
||||||
if len(self.created_cx) != 0:
|
if len(self.created_cx) != 0:
|
||||||
@@ -110,7 +138,7 @@ class L4CXProfile(LFCliBase):
|
|||||||
def create(self, ports=[], sleep_time=.5, debug_=False, suppress_related_commands_=None):
|
def create(self, ports=[], sleep_time=.5, debug_=False, suppress_related_commands_=None):
|
||||||
cx_post_data = []
|
cx_post_data = []
|
||||||
for port_name in ports:
|
for port_name in ports:
|
||||||
print("port_name: {} len: {} self.local_realm.name_to_eid(port_name): {}".format(port_name,len(self.local_realm.name_to_eid(port_name)),self.local_realm.name_to_eid(port_name),))
|
print("port_name: {} len: {} self.local_realm.name_to_eid(port_name): {}".format(port_name, len(self.local_realm.name_to_eid(port_name)), self.local_realm.name_to_eid(port_name)))
|
||||||
shelf = self.local_realm.name_to_eid(port_name)[0]
|
shelf = self.local_realm.name_to_eid(port_name)[0]
|
||||||
resource = self.local_realm.name_to_eid(port_name)[1]
|
resource = self.local_realm.name_to_eid(port_name)[1]
|
||||||
name = self.local_realm.name_to_eid(port_name)[2]
|
name = self.local_realm.name_to_eid(port_name)[2]
|
||||||
@@ -186,7 +214,6 @@ class L4CXProfile(LFCliBase):
|
|||||||
print(header_row)
|
print(header_row)
|
||||||
|
|
||||||
# Step 2 - Monitor columns
|
# Step 2 - Monitor columns
|
||||||
|
|
||||||
start_time = datetime.datetime.now()
|
start_time = datetime.datetime.now()
|
||||||
end_time = start_time + datetime.timedelta(seconds=duration_sec)
|
end_time = start_time + datetime.timedelta(seconds=duration_sec)
|
||||||
sleep_interval = round(duration_sec // 5)
|
sleep_interval = round(duration_sec // 5)
|
||||||
@@ -198,6 +225,9 @@ class L4CXProfile(LFCliBase):
|
|||||||
passes = 0
|
passes = 0
|
||||||
expected_passes = 0
|
expected_passes = 0
|
||||||
timestamps = []
|
timestamps = []
|
||||||
|
if self.test_type != 'urls/s':
|
||||||
|
old_rx_values = self.get_bytes()
|
||||||
|
|
||||||
for test in range(1+iterations):
|
for test in range(1+iterations):
|
||||||
while datetime.datetime.now() < end_time:
|
while datetime.datetime.now() < end_time:
|
||||||
if col_names is None:
|
if col_names is None:
|
||||||
@@ -219,14 +249,25 @@ class L4CXProfile(LFCliBase):
|
|||||||
timestamps.append(t)
|
timestamps.append(t)
|
||||||
value_map[t] = response
|
value_map[t] = response
|
||||||
expected_passes += 1
|
expected_passes += 1
|
||||||
if self.check_errors(debug):
|
if self.test_type == 'urls/s':
|
||||||
|
if self.check_errors(self.debug):
|
||||||
if self.check_request_rate():
|
if self.check_request_rate():
|
||||||
passes += 1
|
passes += 1
|
||||||
else:
|
else:
|
||||||
self._fail("FAIL: Request rate did not exceed 90% target rate")
|
self._fail("FAIL: Request rate did not exceed target rate")
|
||||||
self.exit_fail()
|
break
|
||||||
else:
|
else:
|
||||||
self._fail("FAIL: Errors found getting to %s " % self.url)
|
self._fail("FAIL: Errors found getting to %s " % self.url)
|
||||||
|
break
|
||||||
|
|
||||||
|
else:
|
||||||
|
new_rx_values = self.get_bytes()
|
||||||
|
expected_passes += 1
|
||||||
|
if self.compare_vals(old_rx_values, new_rx_values):
|
||||||
|
passes += 1
|
||||||
|
else:
|
||||||
|
self._fail("FAIL: Not all stations increased traffic")
|
||||||
|
|
||||||
self.exit_fail()
|
self.exit_fail()
|
||||||
time.sleep(monitor_interval)
|
time.sleep(monitor_interval)
|
||||||
print(value_map)
|
print(value_map)
|
||||||
|
|||||||
Reference in New Issue
Block a user