Example #1
0
 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
Example #2
0
    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
Example #3
0
    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
Example #4
0
    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)