예제 #1
0
def runJMeterJobs(job_file_list):
    global flag_running
    no_error = True
    flag_running = False
    # jmeter_wh = JMeterDB.JMeterDB()
    jmeter_wh = JMeterDB()
    for job_file in job_file_list:
        job_id = jmeter_wh.getMaxJobID()
        logger.info(job_id)
        logging.info(job_id)
        logging.info(flag_running)
        if not flag_running:
            thread.start_new_thread(runJMeterJob, (job_file,))
        time.sleep(6)
        logging.info(flag_running)
        while flag_running:
            time.sleep(2)
            if jmeter_wh.getErrRate(job_id + 1) > 0.1:
                no_error = False
                killJMeter()
                return no_error

    return no_error

    pass
예제 #2
0
    flag_running = False
    thread.exit_thread()


def killJMeter():
    cmd = "taskkill /IM java.exe /F"
    logger.info("Kill all JAVA process")
    os.system(cmd)


# Use the task file as parameter, such as TaskSample.txt
if __name__ == "__main__":
    if len(sys.argv) < 2:
        logger.info("parameter should not be empty")
        sys.exit()
    else:
        task_file = sys.argv[1]
        task = getTaskInfo(task_file)
        project = getProjectConfig(task["Project"])
        prepareJMeterScript(project["Path"], project["Web"], task["iServer"], task["WebServer"])

        if executeJMeterScript(project["Scripts"], task["Email"]):
            JMeterDB1 = JMeterDB()
            JMeterDB1.setTest(task["Description"], task["Project"], task["Engineer"])
            job_file_list = createJobTaskFile(getProjectConfig(task["Project"]), task["SubmissionRate"])
        else:
            logging.info("error and email")
        logger.info(job_file_list)

        runJMeterJobs(job_file_list)