Added all device_statistics and device_reboot_logs in teardown section for each test case (#996)

* Added all device_statistics and device_reboot_logs in teardown section for each test case

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

* Added get_device_statistics_teardown and get_device_reboot_logs methods for attaching data in teradown section

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

* Modified get_dut_logs_per_test_case for attaching the data in teardown

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

---------

Signed-off-by: jitendracandela <jitendra.kushavah@candelatech.com>
This commit is contained in:
Jitendrakumar Kushavah
2024-09-19 10:56:37 +05:30
committed by GitHub
parent 3126395008
commit be7fe82de4
2 changed files with 61 additions and 1 deletions

View File

@@ -650,6 +650,23 @@ class Controller(ConfigureController):
self.check_response("GET", resp, self.make_headers(), "", uri)
return resp
def get_device_reboot_logs(self, serial_number="", query="?startDate=1726204413&endDate=1726206213&limit=30&logType=2&newest=true",
allure_attach=False):
uri = self.build_uri("device/" + serial_number + "/logs" + query)
logging.info("Sending Command: " + "\n" +
"TimeStamp: " + str(datetime.datetime.utcnow()) + "\n" +
"URI: " + str(uri) + "\n" +
"Headers: " + str(self.make_headers()))
if allure_attach:
allure.attach(name="Sending Command:", body="Sending Command: " + "\n" +
"TimeStamp: " + str(datetime.datetime.utcnow()) + "\n" +
"URI: " + str(uri) + "\n" +
"Headers: " + str(self.make_headers()))
resp = requests.get(uri, headers=self.make_headers(), verify=False, timeout=120)
if allure_attach:
self.check_response("GET", resp, self.make_headers(), "", uri)
return resp
def get_device_health_checks(self, serial_number):
uri = self.build_uri("device/" + serial_number + "/healthchecks")
logging.info("Sending Command: " + "\n" +
@@ -692,6 +709,22 @@ class Controller(ConfigureController):
self.check_response("GET", resp, self.make_headers(), "", uri)
return resp
def get_device_statistics_teardown(self, serial_number="", query="?newest=true&limit=30", allure_attach=False):
uri = self.build_uri("device/" + serial_number + "/statistics" + query)
logging.info("Sending Command: " + "\n" +
"TimeStamp: " + str(datetime.datetime.utcnow()) + "\n" +
"URI: " + str(uri) + "\n" +
"Headers: " + str(self.make_headers()))
if allure_attach:
allure.attach(name="Sending Command:", body="Sending Command: " + "\n" +
"TimeStamp: " + str(datetime.datetime.utcnow()) + "\n" +
"URI: " + str(uri) + "\n" +
"Headers: " + str(self.make_headers()))
resp = requests.get(uri, headers=self.make_headers(), verify=False, timeout=120)
if allure_attach:
self.check_response("GET", resp, self.make_headers(), "", uri)
return resp
def get_device_status(self, serial_number):
uri = self.build_uri("device/" + serial_number + "/status")
logging.info("Sending Command: " + "\n" +

View File

@@ -498,7 +498,8 @@ def get_dut_logs_per_test_case(request, run_lf, get_testbed_details, get_target_
get_target_object.get_dut_library_object().run_generic_command(
cmd="logger start testcase: " + instance_name,
idx=i)
start_time = int(time.time())
logging.info("start time:- " + str(start_time))
def collect_logs():
for i in range(len(get_testbed_details["device_under_tests"])):
get_target_object.get_dut_library_object().run_generic_command(
@@ -514,6 +515,32 @@ def get_dut_logs_per_test_case(request, run_lf, get_testbed_details, get_target_
uci_show = get_target_object.get_dut_library_object().run_generic_command(idx=i, attach_allure=False,
cmd="uci show", print_log=False)
allure.attach(body=uci_show, name="uci show")
end_time = int(time.time())
logging.info("end time:- " + str(end_time))
device_name = get_testbed_details["device_under_tests"][i]["identifier"]
query_ = f"?startDate={start_time}&endDate={end_time}"
resp = get_target_object.controller_library_object.get_device_statistics_teardown(device_name, query=query_)
if resp.status_code == 200:
allure.attach(body=str(resp.json()), name="device_statistics_per_test_case")
else:
logging.info("resp.status_code:- " + str(resp.status_code))
# Check reboot logs
query_ = f"?logType=2&startDate={start_time}&endDate={end_time}"
resp = get_target_object.controller_library_object.get_device_reboot_logs(device_name, query=query_)
if resp.status_code == 200:
allure.attach(body=str(resp.json()), name="device_reboot_logs_per_test_case")
response = resp.json()
# crash log validation
if response["values"]:
resp = get_target_object.controller_library_object.get_device_reboot_logs(device_name,
query="?logType=2")
allure.attach(body=str(resp.json()), name="all_device_reboot_logs")
logging.info("Reboot detected on AP side")
pytest.exit("Reboot detected on AP side")
else:
logging.info("resp.status_code:- " + str(resp.status_code))
request.addfinalizer(collect_logs)