Exemplo n.º 1
0
Arquivo: run.py Projeto: aurelben/oct
def rerun_results(project_name, cmd_opts, results_dir):
    output_dir = '%s/%s/results/%s/' % (cmd_opts.projects_dir, project_name,
                                        results_dir)
    saved_config = '%s/config.cfg' % output_dir
    (run_time, rampup, results_ts_interval, console_logging, progress_bar,
     results_database, post_run_script, xml_report,
     user_group_configs) = configure(project_name,
                                     cmd_opts,
                                     config_file=saved_config)
    print('\n\nanalyzing results...\n')
    results.output_results(output_dir, 'results.csv', run_time, rampup,
                           results_ts_interval, user_group_configs, xml_report)
    print('created: %sresults.html\n' % output_dir)
    if xml_report:
        print('created: %sresults.jtl' % output_dir)
        print('created: last_results.jtl\n')
Exemplo n.º 2
0
Arquivo: run.py Projeto: aurelben/oct
def rerun_results(project_name, cmd_opts, results_dir):
    """
    In case csv file is generated but graphics aren't

    :param project_name: the name of the project
    :param cmd_opts: the parsed commands
    :param results_dir: the result dir
    :return:
    """
    output_dir = '%s/%s/results/%s/' % (cmd_opts.projects_dir, project_name, results_dir)
    saved_config = '%s/config.cfg' % output_dir
    config = Configuration(project_name, cmd_opts, config_file=saved_config)
    print('\n\nanalyzing results...\n')
    output_results(output_dir, 'results.csv', config.run_time, config.rampup, config.results_ts_interval,
                   config.user_group_configs,
                   config.xml_report)
    print('created: %sresults.html\n' % output_dir)
    if config.xml_report:
        print('created: %sresults.jtl' % output_dir)
        print('created: last_results.jtl\n')
Exemplo n.º 3
0
Arquivo: run.py Projeto: aurelben/oct
def run_test(project_name, cmd_opts):
    """
    Main run function, will run all the tests.

    :param project_name: the name of the project
    :param cmd_opts: all parsed commands
    :return: None
    """
    config = Configuration(project_name, cmd_opts)
    run_localtime = time.localtime()
    milisecond = datetime.now().microsecond

    output_dir = '%s/%s/results/results_%s' % (
        cmd_opts.projects_dir, project_name,
        time.strftime('%Y.%m.%d_%H.%M.%S_' + str(milisecond) + '/',
                      run_localtime))

    try:
        os.makedirs(output_dir, 0o755)
    except OSError:
        sys.stderr.write('ERROR: Can not create output directory\n')
        sys.exit(1)

    main_loop(project_name, cmd_opts, config, output_dir)

    # all celery tasks are done at this point
    print('\n\nanalyzing results...\n')
    output_results(output_dir, 'results.csv', config.run_time, config.rampup,
                   config.results_ts_interval, config.user_group_configs,
                   config.xml_report)
    print('created: %sresults.html\n' % output_dir)

    # copy config file to results directory
    project_config = os.sep.join(
        [cmd_opts.projects_dir, project_name, 'config.cfg'])
    saved_config = os.sep.join([output_dir, 'config.cfg'])
    shutil.copy(project_config, saved_config)

    print('done.\n')

    return
Exemplo n.º 4
0
Arquivo: run.py Projeto: aurelben/oct
def rerun_results(project_name, cmd_opts, results_dir):
    """
    In case csv file is generated but graphics aren't

    :param project_name: the name of the project
    :param cmd_opts: the parsed commands
    :param results_dir: the result dir
    :return:
    """
    output_dir = '%s/%s/results/%s/' % (cmd_opts.projects_dir, project_name,
                                        results_dir)
    saved_config = '%s/config.cfg' % output_dir
    config = Configuration(project_name, cmd_opts, config_file=saved_config)
    print('\n\nanalyzing results...\n')
    output_results(output_dir, 'results.csv', config.run_time, config.rampup,
                   config.results_ts_interval, config.user_group_configs,
                   config.xml_report)
    print('created: %sresults.html\n' % output_dir)
    if config.xml_report:
        print('created: %sresults.jtl' % output_dir)
        print('created: last_results.jtl\n')
Exemplo n.º 5
0
Arquivo: run.py Projeto: aurelben/oct
def run_test(project_name, cmd_opts):
    """
    Main run function, will run all the tests.

    :param project_name: the name of the project
    :param cmd_opts: all parsed commands
    :return: None
    """
    config = Configuration(project_name, cmd_opts)
    run_localtime = time.localtime()
    milisecond = datetime.now().microsecond

    output_dir = '%s/%s/results/results_%s' % (cmd_opts.projects_dir, project_name,
                                               time.strftime('%Y.%m.%d_%H.%M.%S_' + str(milisecond) + '/',
                                                             run_localtime))

    try:
        os.makedirs(output_dir, 0o755)
    except OSError:
        sys.stderr.write('ERROR: Can not create output directory\n')
        sys.exit(1)

    main_loop(project_name, cmd_opts, config, output_dir)

    # all celery tasks are done at this point
    print('\n\nanalyzing results...\n')
    output_results(output_dir, 'results.csv', config.run_time, config.rampup,
                   config.results_ts_interval, config.user_group_configs,
                   config.xml_report)
    print('created: %sresults.html\n' % output_dir)

    # copy config file to results directory
    project_config = os.sep.join([cmd_opts.projects_dir, project_name, 'config.cfg'])
    saved_config = os.sep.join([output_dir, 'config.cfg'])
    shutil.copy(project_config, saved_config)

    print('done.\n')

    return
Exemplo n.º 6
0
Arquivo: run.py Projeto: aurelben/oct
def run_test(project_name, cmd_opts, remote_starter=None):
    if remote_starter is not None:
        remote_starter.test_running = True
        remote_starter.output_dir = None

    (run_time, rampup, results_ts_interval, console_logging, progress_bar,
     results_database, post_run_script, xml_report,
     user_group_configs) = configure(project_name, cmd_opts)

    run_localtime = time.localtime()
    milisec = datetime.now().microsecond
    output_dir = '%s/%s/results/results_%s' % (
        cmd_opts.projects_dir, project_name,
        time.strftime('%Y.%m.%d_%H.%M.%S_' + str(milisec) + '/',
                      run_localtime))

    # this queue is shared between all processes/threads
    queue = multiprocessing.Queue()
    rw = resultswriter.ResultsWriter(queue, output_dir)
    rw.daemon = True
    rw.start()

    script_prefix = os.path.join(cmd_opts.projects_dir, project_name,
                                 "test_scripts")
    script_prefix = os.path.normpath(script_prefix)

    user_groups = []
    for i, ug_config in enumerate(user_group_configs):
        script_file = os.path.join(script_prefix, ug_config.script_file)
        ug = core.UserGroup(queue, i, ug_config.name, ug_config.num_threads,
                            script_file, run_time, rampup)
        user_groups.append(ug)
    for user_group in user_groups:
        user_group.start()

    start_time = time.time()

    if console_logging:
        for user_group in user_groups:
            user_group.join()
    else:
        print('\n  user_groups:  %i' % len(user_groups))
        print('  threads: %i\n' % (ug_config.num_threads * len(user_groups)))

        if progress_bar:
            p = progressbar.ProgressBar(run_time)
            elapsed = 0
            while elapsed < (run_time + 1):
                p.update_time(elapsed)
                if sys.platform.startswith('win'):
                    print(
                        '{0}   transactions: {1}  timers: {2}  errors: {3}\r'.
                        format(p, rw.trans_count, rw.timer_count,
                               rw.error_count),
                        end=' ')
                else:
                    print('%s   transactions: %i  timers: %i  errors: %i' %
                          (p, rw.trans_count, rw.timer_count, rw.error_count))
                    sys.stdout.write(chr(27) + '[A')
                time.sleep(1)
                elapsed = time.time() - start_time

            print(p)

        while [
                user_group for user_group in user_groups
                if user_group.is_alive()
        ]:
            if progress_bar:
                if sys.platform.startswith('win'):
                    print('waiting for all requests to finish...\r', end=' ')
                else:
                    print('waiting for all requests to finish...\r')
                    sys.stdout.write(chr(27) + '[A')
            time.sleep(.5)

        if not sys.platform.startswith('win'):
            print()

    # all agents are done running at this point
    time.sleep(.2)  # make sure the writer queue is flushed
    print('\n\nanalyzing results...\n')
    results.output_results(output_dir, 'results.json', run_time, rampup,
                           results_ts_interval, user_group_configs, xml_report)
    print('created: %sresults.html\n' % output_dir)
    if xml_report:
        print('created: %sresults.jtl' % output_dir)
        print('created: last_results.jtl\n')

    # copy config file to results directory
    project_config = os.sep.join(
        [cmd_opts.projects_dir, project_name, 'config.cfg'])
    saved_config = os.sep.join([output_dir, 'config.cfg'])
    shutil.copy(project_config, saved_config)

    if results_database is not None:
        print('loading results into database: %s\n' % results_database)
        import oct.multimechanize.resultsloader
        oct.multimechanize.resultsloader.load_results_database(
            project_name, run_localtime, output_dir, results_database,
            run_time, rampup, results_ts_interval, user_group_configs)

    if post_run_script is not None:
        print('running post_run_script: %s\n' % post_run_script)
        subprocess.call(post_run_script)

    print('done.\n')

    if remote_starter is not None:
        remote_starter.test_running = False
        remote_starter.output_dir = output_dir

    return