Ejemplo n.º 1
0
    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}
Ejemplo n.º 2
0
    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)
Ejemplo n.º 3
0
 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)
Ejemplo n.º 4
0
 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'
         })
Ejemplo n.º 5
0
 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'
Ejemplo n.º 6
0
    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