Esempio n. 1
0
    def update_used_working_dir(cls, used_dir_file, used_dir):
        # save_content_to_file(used_dir, used_dir_file)
        remembered_dirs = 10
        dir_list = []
        update_needed = True
        try:
            dir_list = [
                x for x in get_file_lines_without_newlines(used_dir_file)
                if os.path.isdir(os.path.join(x, cls.PM_FOLDER_NAME))
            ]
            if used_dir in dir_list:
                if dir_list.index(used_dir) > 0:
                    dir_list.remove(used_dir)
                    dir_list.insert(0, used_dir)
                else:
                    update_needed = False
            elif len(dir_list) == remembered_dirs:
                dir_list.pop()
                dir_list.insert(0, used_dir)
            else:
                dir_list.insert(0, used_dir)
        except:
            dir_list.insert(0, used_dir)

        if update_needed:
            save_content_to_file("\n".join(dir_list), used_dir_file)
    def rename_pagemodel_in_test_data(cls, xml_file, pagemodel, page_model_new):
        tree = ET.parse(xml_file)
        root = tree.getroot()

        for section in root:
            for parameter in section:
                try:
                    parameter_pagemodel = parameter.attrib[cls.PARAMETER_PAGEMODEL]
                    if parameter_pagemodel == pagemodel:
                        parameter.set(cls.PARAMETER_PAGEMODEL, page_model_new)
                except Exception:
                    pass
        xml_pretty = cls.generate_xml_pretty_print(root)
        save_content_to_file(xml_pretty, xml_file)
    def edit_xml_file(cls, xml_file, section_name, param_name, param_value, pagemodel, validation=None, verify=None):
        tree = ET.parse(xml_file)
        root = tree.getroot()

        current_section = None

        # Finds if given section already exists and adds it as current_section
        for section in root:
            if section.attrib[cls.SECTION_NAME] == section_name:
                current_section = section

        # If section exists edit values
        # Else generates section to xml
        if current_section is not None:
            parameter_found = False
            for parameter in current_section:
                if parameter.attrib[cls.PARAMETER_NAME] == param_name:
                    parameter.set(cls.PARAMETER_NAME, param_name)
                    parameter.set(cls.PARAMETER_VALUE, param_value)
                    parameter.set(cls.PARAMETER_PAGEMODEL, pagemodel)
                    if validation is not None:
                        parameter.set(cls.PARAMETER_VALIDATION, validation)
                    if verify is not None:
                        parameter.set(cls.PARAMETER_VERIFY, verify)
                    parameter_found = True
            if not parameter_found:
                parameter = ET.SubElement(current_section, cls.PARAMETER)
                parameter.set(cls.PARAMETER_PAGEMODEL, pagemodel)
                parameter.set(cls.PARAMETER_NAME, param_name)
                parameter.set(cls.PARAMETER_VALUE, param_value)
                if validation is not None:
                    parameter.set(cls.PARAMETER_VALIDATION, validation)
                if verify is not None:
                    parameter.set(cls.PARAMETER_VERIFY, verify)
        else:
            new_section = ET.SubElement(root, cls.TESTCASE)
            new_section.set(cls.SECTION_NAME, section_name)
            parameter = ET.SubElement(new_section, cls.PARAMETER)
            parameter.set(cls.PARAMETER_PAGEMODEL, pagemodel)
            parameter.set(cls.PARAMETER_NAME, param_name)
            parameter.set(cls.PARAMETER_VALUE, param_value)
            if validation is not None:
                parameter.set(cls.PARAMETER_VALIDATION, validation)
            if verify is not None:
                parameter.set(cls.PARAMETER_VERIFY, verify)
        xml_pretty = cls.generate_xml_pretty_print(root)
        save_content_to_file(xml_pretty, xml_file)
 def generate_xml_file(cls, xml_file):
     test_set = ET.Element(cls.TESTSET)
     testcase = ET.SubElement(test_set, cls.TESTCASE)
     testcase.set(cls.TESTCASE_NAME, cls.EMPTY_STRING)
     xml_pretty = minidom.parseString(ET.tostring(test_set).replace("\n", "").strip()).toprettyxml(indent="   ")
     save_content_to_file(xml_pretty, xml_file)
            data += ", "

    try:
        measurement_folder = os.path.join(get_config_value("reporting_folder"),
                                          GlobalUtils.MEASUREMENTS_FOLDER_NAME)
        if not os.path.exists(measurement_folder):
            os.mkdir(measurement_folder)
    except Exception, e:
        print "Could not create measurements folder:\n%s" % str(e)

    try:
        CSV_FILE = os.path.join(
            measurement_folder,
            GlobalUtils.NAVIGATION_DATA_PREFIX + str(lb) + ".csv")
        content = header + "\n" + data
        save_content_to_file(content, CSV_FILE)
    except Exception, e:
        print "Could not generate csv file:\n%s" % str(e)

    JTL_FILE = os.path.join(
        measurement_folder,
        GlobalUtils.NAVIGATION_DATA_PREFIX + str(lb) + ".jtl")
    JS_FILE = os.path.join(
        measurement_folder,
        GlobalUtils.NAVIGATION_DATA_PREFIX + str(lb) + ".js")

    # in jtl file we are using only load time or total time, default is load time
    if load_time:
        t = load_time
    elif total_time:
        t = total_time
Esempio n. 6
0
def __generate_files(timings, total_time, load_time, latency, ts, lb):
    header = ""
    data = ""

    for i in timings:
        header += i[0]
        data += i[1]
        if (i != timings[-1]):
            header += ", "
            data += ", "

    try:
        measurement_folder = os.path.join(get_config_value("reporting_folder"),
                                          GlobalUtils.MEASUREMENTS_FOLDER_NAME)
        if not os.path.exists(measurement_folder):
            os.mkdir(measurement_folder)
    except Exception as e:
        print("Could not create measurements folder:\n%s" % str(e))

    try:
        CSV_FILE = os.path.join(
            measurement_folder,
            GlobalUtils.NAVIGATION_DATA_PREFIX + str(lb) + ".csv")
        content = header + "\n" + data
        save_content_to_file(content, CSV_FILE)
    except Exception as e:
        print("Could not generate csv file:\n%s" % str(e))

    JTL_FILE = os.path.join(
        measurement_folder,
        GlobalUtils.NAVIGATION_DATA_PREFIX + str(lb) + ".jtl")
    JS_FILE = os.path.join(
        measurement_folder,
        GlobalUtils.NAVIGATION_DATA_PREFIX + str(lb) + ".js")

    # in jtl file we are using only load time or total time, default is load time
    if load_time:
        t = load_time
    elif total_time:
        t = total_time
    else:
        t = load_time

    # jtl file
    try:
        if (os.path.isfile(JTL_FILE)):
            read_lines = get_file_lines(JTL_FILE)
            str_to_insert = (
                "<sample" + (' t=\'' + str(t) + '\'' if t != None else '') +
                "" +
                (' lt=\'' + str(latency) + '\'' if latency != None else '') +
                " ts='" + str(ts) + "' s='" +
                str('true' if 200 <= __RESPONSE.code < 300 else 'false') +
                "' lb='" + str(lb) + "' rc='" + str(__RESPONSE.code) +
                "' rm='" + str(__RESPONSE.msg) + "'/>\n")
            new_lines = read_lines[:-1] + [str_to_insert] + [read_lines[-1]]
            content = "".join(new_lines)
            save_content_to_file(content, JTL_FILE)
        else:
            heading = "<?xml version='1.0' encoding='UTF-8'?>\n<testResults version='1.2'>"
            lines = (
                "\n<sample" + (' t=\'' + str(t) + '\'' if t != None else '') +
                "" +
                (' lt=\'' + str(latency) + '\'' if latency != None else '') +
                " ts='" + str(ts) + "' s='" +
                str('true' if 200 <= __RESPONSE.code < 300 else 'false') +
                "' lb='" + str(lb) + "' rc='" + str(__RESPONSE.code) +
                "' rm='" + str(__RESPONSE.msg) + "'/>")
            ending = "\n</testResults>"
            new_lines = heading + lines + ending
            content = "".join(new_lines)
            save_content_to_file(content, JTL_FILE)
    except Exception as e:
        print("Could not generate jtl file:\n%s" % str(e))

    # javascript file
    try:
        if (os.path.isfile(JS_FILE)):
            read_lines = get_file_lines(JS_FILE)
            str_to_insert = (
                "{" + ("'load': '" + str(load_time) +
                       "', " if load_time != None else "") +
                ("'total': '" + str(total_time) + "', " if t != None else "") +
                ("'latency': '" + str(latency) +
                 "', " if latency != None else "") + "'timestamp': '" +
                str(ts) + "', 'succes': " +
                str('true' if 200 <= __RESPONSE.code < 300 else 'false') +
                ", 'label': '" + str(lb) + "', 'response_code': '" +
                str(__RESPONSE.code) + "', 'response_msg': '" +
                str(__RESPONSE.msg) + "'},\n")
            new_lines = read_lines[:-1] + [str_to_insert] + [read_lines[-1]]
            content = "".join(new_lines)
            save_content_to_file(content, JS_FILE)
        else:
            heading = "var timings_js_data = ["
            lines = (
                "\n{" + ("'load': '" + str(load_time) +
                         "', " if load_time != None else "") +
                ("'total': '" + str(total_time) + "', " if t != None else "") +
                ("'latency': '" + str(latency) +
                 "', " if latency != None else "") + "'timestamp': '" +
                str(ts) + "', 'succes': " +
                str('true' if 200 <= __RESPONSE.code < 300 else 'false') +
                ", 'label': '" + str(lb) + "', 'response_code': '" +
                str(__RESPONSE.code) + "', 'response_msg': '" +
                str(__RESPONSE.msg) + "'},")
            ending = "\n];"
            new_lines = heading + lines + ending
            content = "".join(new_lines)
            save_content_to_file(content, JS_FILE)
    except Exception as e:
        print("Could not generate js file:\n%s" % str(e))