def __process_criteria(self, classname, fc_obj, report_urls): if fc_obj.config['label']: data = (fc_obj.config['subject'], fc_obj.config['label'], fc_obj.config['condition'], fc_obj.config['threshold']) tpl = "%s of %s%s%s" else: data = (fc_obj.config['subject'], fc_obj.config['condition'], fc_obj.config['threshold']) tpl = "%s%s%s" if fc_obj.config['timeframe']: tpl += " for %s" data += (fc_obj.config['timeframe'], ) disp_name = tpl % data testcase_etree = etree.Element("testcase", classname=classname, name=disp_name) if report_urls: system_out_etree = etree.SubElement(testcase_etree, "system-out") system_out_etree.text = "".join(report_urls) if fc_obj.is_triggered and fc_obj.fail: etree.SubElement(testcase_etree, "error", type="pass/fail criteria triggered", message="") return testcase_etree
def process_pass_fail(self): """ :return: etree element """ pass_fail_objects = [ _x for _x in self.engine.reporters if isinstance(_x, PassFailStatus) ] fail_criterias = [] for pf_obj in pass_fail_objects: if pf_obj.criterias: for _fc in pf_obj.criterias: fail_criterias.append(_fc) root_xml_element = etree.Element("testsuite", name='bzt_pass_fail', package="bzt") bza_report_info = self.get_bza_report_info() classname = bza_report_info[0][1] if bza_report_info else "bzt-" + str( self.__hash__()) report_urls = [info_item[0] for info_item in bza_report_info] for fc_obj in fail_criterias: if fc_obj.config['label']: data = (fc_obj.config['subject'], fc_obj.config['label'], fc_obj.config['condition'], fc_obj.config['threshold']) tpl = "%s of %s%s%s" else: data = (fc_obj.config['subject'], fc_obj.config['condition'], fc_obj.config['threshold']) tpl = "%s%s%s" if fc_obj.config['timeframe']: tpl += " for %s" data += (fc_obj.config['timeframe'], ) disp_name = tpl % data testcase_etree = etree.Element("testcase", classname=classname, name=disp_name) if report_urls: system_out_etree = etree.SubElement(testcase_etree, "system-out") system_out_etree.text = "".join(report_urls) if fc_obj.is_triggered and fc_obj.fail: etree.SubElement(testcase_etree, "error", type="pass/fail criteria triggered", message="") root_xml_element.append(testcase_etree) return root_xml_element
def process_sample_labels(self): """ :return: etree element """ _kpiset = self.last_second[DataPoint.CUMULATIVE] root_xml_element = etree.Element("testsuite", name="sample_labels", package="bzt") bza_report_info = self.get_bza_report_info() class_name = bza_report_info[0][1] if bza_report_info else "bzt-" + str(self.__hash__()) report_urls = [info_item[0] for info_item in bza_report_info] for key in sorted(_kpiset.keys()): if key == "": # if label is not blank continue test_case_etree_element = etree.Element("testcase", classname=class_name, name=key) if report_urls: system_out_etree = etree.SubElement(test_case_etree_element, "system-out") system_out_etree.text = "".join(report_urls) if _kpiset[key][KPISet.ERRORS]: for er_dict in _kpiset[key][KPISet.ERRORS]: err_message = str(er_dict["rc"]) err_type = str(er_dict["msg"]) err_desc = "total errors of this type:" + str(er_dict["cnt"]) err_etree_element = etree.Element("error", message=err_message, type=err_type) err_etree_element.text = err_desc test_case_etree_element.append(err_etree_element) root_xml_element.append(test_case_etree_element) return root_xml_element
def add_test_case(self, case_name, children=()): """ :type case_name: str :type children: list[bzt.six.etree.Element] """ test_case = etree.Element("testcase", classname=self.class_name, name=case_name) if self.report_urls: system_out_etree = etree.SubElement(test_case, "system-out") system_out_etree.text = "".join(self.report_urls) for child in children: test_case.append(child) self.test_suite.append(test_case)