def __get_runner_result(self): discover, method_names = self.__get_runner_discover() print('进入线程') work_manager = WorkManager(thread_num=10) for i in discover: work_manager.add_job(self.__runner_run(i), '') work_manager.wait_allcomplete() print('出来线程') # 循环 discover # threads = [] # for i in discover: # # 创建一个线程 # t = threading.Thread(target=self.__runner_run, args=(i,)) # threads.append(t) # # 启动线程 # t.start() # # t.join() # # for i in threads: # i.join() DB().inster_all(g_get('db_all_insters')) DB('temp', 'complete').inster_all(g_get('db_complete_insters')) return {'method_names': method_names, 'result': self.all_result}
def tearDown(self): # 忽略掉io告警 warnings.simplefilter("ignore", ResourceWarning) # 保存到db if self.result: get_test_info = self._getTestInfo() db_all_insters = g_get('db_all_insters') db_all_insters.append({ 'method_name': get_test_info['method_name'], 'data': self.data,# 'result': self.result #返回提交的data的json }) g_set('db_all_insters',db_all_insters) # DB().inster({ # 'method_name': get_test_info['method_name'], # 'data': self.data,# # 'result': self.result #返回提交的data的json # }) is_interrupt_continue = Config.get_config('interruptContinue') if is_interrupt_continue == 'True': # 保存到 结果队列 db_complete_insters = g_get('db_complete_insters') db_complete_insters.append({ 'status': 1, 'method_name': get_test_info['method_name'] }) g_set('db_complete_insters', db_complete_insters)
def __init__(self, start_time, end_time, case_data): self.start_time = start_time self.end_time = end_time self.case_data = case_data self.report_html_path = base_dir() + '/runtime/html/report_' + g_get( 'main') + '.html' Tool().remove_file(self.report_html_path)
def build(self): get_data = self.get_output_field_data() # 获取template路径 code_path = os.path.dirname(__file__) + '/reportTpl/template.html' # 基础模板文件 template_html = Tool().open_file(code_path) html = Template(template_html).render(get_data) # 写入内容 Tool().write_file(self.report_html_path, html) # 发送邮件 if Config.get_config('reportSendMail') == 'True': SendMail().run({ "all_case_sum": get_data['all_case_sum'], "success_case_sum": get_data['success_case_sum'], "errors_case_sum": get_data['errors_case_sum'], "skipped_case_sum": get_data['skipped_case_sum'], "report_path": 'http://' + Config.get_config('serverIp') + ':' + Config.get_config('serverPort') + '/report_' + g_get('main') + '.html' })
def __init__(self, dirname='db', dbname=''): if not dbname.strip(): project_name = g_get('main') else: project_name = dbname self.db_path = base_dir( ) + '/runtime/' + dirname + '/' + project_name + '.json'
def get_project_dir(cls, dir=''): # 读取项目入口 if dir == '': project_name = g_get('main') else: project_name = dir path = base_dir() + '/project/' + project_name return path