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
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)