def run_batch_test(request): """ 批量运行用例 :param request: :return: """ testcase_dir_path = os.path.join(os.path.dirname(os.path.split(os.path.realpath(__file__))[0]), "suite") testcase_dir_path = os.path.join(testcase_dir_path, get_time_stamp()) if request.is_ajax(): kwargs = json.loads(request.body.decode('utf-8')) logger.info("前台传入参数:{}".format(kwargs)) test_list = kwargs.pop('id') base_url = kwargs.pop('env_name') type = kwargs.pop('type') logger.info("当前运行的用例类型为:{}".format(type)) logger.info("-" * 30) report_name = kwargs.get('report_name', None) run_by_batch(test_list, base_url, testcase_dir_path, type=type) main_hrun.delay(testcase_dir_path, report_name) return HttpResponse('用例执行中,请稍后查看报告即可,默认时间戳命名报告') else: type = request.POST.get('type', None) base_url = request.POST.get('env_name') test_list = request.body.decode('utf-8').split('&') if type: run_by_batch(test_list, base_url, testcase_dir_path, type=type, mode=True) else: run_by_batch(test_list, base_url, testcase_dir_path) summary = main_run_cases(testcase_dir_path) return render_to_response('report_template.html', summary)
def run_batch_test(request): if request.session.get('login_status'): if request.is_ajax(): try: kwargs = json.loads(request.body.decode('utf-8')) except ValueError: logging.error('待运行用例信息解析异常:{kwargs}'.format(kwargs=kwargs)) return HttpResponse('信息解析异常,请重试') test_list = kwargs.pop('id') base_url = kwargs.pop('env_name') type = kwargs.pop('type') testcases_dict = run_by_batch(test_list, base_url, type) if not testcases_dict: return HttpResponse('没有用例哦') main_hrun.delay(testcases_dict) return HttpResponse('用例执行中,请稍后查看报告即可,默认时间戳命名报告') else: base_url = request.POST.get('env_name') test_list = request.body.decode('utf-8').split('&') testcases_lists = run_by_batch(test_list, base_url) kwargs = { "failfast": False, } runner = HttpRunner(**kwargs) runner.run(testcases_lists) return render_to_response('report_template.html', runner.summary) else: return HttpResponseRedirect("/api/login/")
def run_test(request): """ 运行用例 :param request: :return: """ kwargs = { "failfast": False, } runner = HttpRunner(**kwargs) testcase_dir_path = os.path.join(os.getcwd(), "suite") testcase_dir_path = os.path.join(testcase_dir_path, get_time_stamp()) if request.is_ajax(): kwargs = json.loads(request.body.decode('utf-8')) id = kwargs.pop('id') base_url = kwargs.pop('env_name') type = kwargs.pop('type') run_test_by_type(id, base_url, testcase_dir_path, type) report_name = kwargs.get('report_name', None) main_hrun.delay(testcase_dir_path, report_name) return HttpResponse('用例执行中,请稍后查看报告即可,默认时间戳命名报告') else: id = request.POST.get('id') base_url = request.POST.get('env_name') type = request.POST.get('type', 'test') run_test_by_type(id, base_url, testcase_dir_path, type) runner.run(testcase_dir_path) shutil.rmtree(testcase_dir_path) runner.summary = timestamp_to_datetime(runner.summary, type=False) return render_to_response('report_template.html', runner.summary)
def run_test(request): if request.session.get('login_status'): kwargs = { "failfast": False, } runner = HttpRunner(**kwargs) if request.is_ajax(): try: kwargs = json.loads(request.body.decode('utf-8')) except ValueError: logging.error('待运行用例信息解析异常:{kwargs}'.format(kwargs=kwargs)) return HttpResponse('信息解析异常,请重试') id = kwargs.pop('id') base_url = kwargs.pop('env_name') type = kwargs.pop('type') testcases_dict = run_by_module(id, base_url) if type == 'module' else run_by_project(id, base_url) report_name = kwargs.get('report_name', None) if not testcases_dict: return HttpResponse('没有用例哦') main_hrun.delay(testcases_dict, report_name) return HttpResponse('用例执行中,请稍后查看报告即可,默认时间戳命名报告') else: id = request.POST.get('id') base_url = request.POST.get('env_name') type = request.POST.get('type', None) if type: testcases_dict = run_by_module(id, base_url) if type == 'module' else run_by_project(id, base_url) else: testcases_dict = run_by_single(id, base_url) runner.run(testcases_dict) return render_to_response('report_template.html', runner.summary) else: return HttpResponseRedirect("/api/login/")
def run_batch_test(request, Webhook=None): """ 批量运行用例 :param request: :return: """ if Webhook is None: if request.session.get('login_status'): kwargs = { "failfast": False, } runner = HttpRunner(**kwargs) testcase_dir_path = os.path.join(os.getcwd(), "suite") testcase_dir_path = os.path.join(testcase_dir_path, get_time_stamp()) if request.is_ajax(): try: kwargs = json.loads(request.body.decode('utf-8')) except ValueError: logging.error('待运行用例信息解析异常:{kwargs}'.format(kwargs=kwargs)) return HttpResponse('信息解析异常,请重试') test_list = kwargs.pop('id') base_url = kwargs.pop('env_name') type = kwargs.pop('type') report_name = kwargs.get('report_name', None) run_by_batch(test_list, base_url, testcase_dir_path, type=type) main_hrun.delay(testcase_dir_path, report_name) return HttpResponse('用例执行中,请稍后查看报告即可,默认时间戳命名报告') else: type = request.POST.get('type', None) base_url = request.POST.get('env_name') test_list = request.body.decode('utf-8').split('&') if type: run_by_batch(test_list, base_url, testcase_dir_path, type=type, mode=True) else: run_by_batch(test_list, base_url, testcase_dir_path) runner.run(testcase_dir_path) shutil.rmtree(testcase_dir_path) return render_to_response('report_template.html', runner.summary) else: return HttpResponseRedirect("/api/login/") elif Webhook == 'Webhook': testcase_dir_path = os.path.join(os.getcwd(), "suite") testcase_dir_path = os.path.join(testcase_dir_path, get_time_stamp()) test_list = request.pop('id') base_url = request.pop('env_name') type = request.pop('type') report_name = request.get('report_name', None) run_by_batch(test_list, base_url, testcase_dir_path, type=type) main_hrun.delay(testcase_dir_path, report_name) return HttpResponse('用例执行中,请稍后查看报告即可,默认时间戳命名报告')
def run_logic_test(request): account = request.session["now_account"] kwargs = { "failfast": False, } runner = HttpRunner_ext(**kwargs) testcase_dir_path = os.path.join(os.getcwd(), "suite") testcase_dir_path = os.path.join(testcase_dir_path, get_time_stamp()) if request.is_ajax(): request_data = json.loads(request.body.decode('utf-8')) # report_name = kwargs.get('report_name', None) main_hrun.delay(testcase_dir_path, account, request_data) return HttpResponse('用例执行中,请稍后查看报告即可,默认时间戳命名报告') else: id = request.POST.get('id') base_url = request.POST.get('env_name') type = request.POST.get('type', 'test') report_name = run_by_logic_test(id, base_url, testcase_dir_path) runner.run3(testcase_dir_path) shutil.rmtree(testcase_dir_path) runner.summary = timestamp_to_datetime(runner.summary, type=False) add_test_reports(runner, report_name=report_name, report_type=type, executor=account) return render_to_response('report_template.html', runner.summary)
def run_test(request): """ 运行用例 :param request: :return: """ kwargs = { "failfast": False, } runner = HttpRunner(**kwargs) testcase_dir_path = os.path.join(settings.BASE_DIR, "suite") testcase_dir_path = os.path.join(testcase_dir_path, get_time_stamp()) account = request.session["now_account"] if request.is_ajax(): kwargs = json.loads(request.body.decode('utf-8')) id = kwargs.pop('id') suite_name = TestSuite.objects.get(id=id).suite_name cfg_id = kwargs.pop('cfg_id') base_url = kwargs.pop('env_name') type = kwargs.pop('type') run_test_by_type(id, base_url, testcase_dir_path, type, cfg_id) report_name = kwargs.get('report_name', None) request.session["base_url"] = base_url request.session["cfg_id"] = cfg_id main_hrun.delay(testcase_dir_path, report_name) return HttpResponse('用例执行中,请稍后查看报告即可,默认时间戳命名报告') else: id = request.POST.get('id') base_url = request.POST.get('env_name') type = request.POST.get('type', 'test') cfg_id = request.POST.get('cfg_id') request.session["base_url"] = base_url request.session["cfg_id"] = cfg_id run_test_by_type(id, base_url, testcase_dir_path, type, cfg_id) if type == "suite": suite_name = TestSuite.objects.get(id=id).suite_name runner.run( os.path.join(testcase_dir_path, "{}.yml".format(suite_name))) else: runner.run(testcase_dir_path) #删除yml文件,异常的时候不删除,可以用来debug shutil.rmtree(testcase_dir_path) runner._summary = timestamp_to_datetime(runner.summary, type=False) #data = request.body.decode('utf-8') # kwargs = json.loads(request.body.decode('utf-8')) #report_name = kwargs.get('report_name', None) report_name = get_test_name(id, type) report_id = add_test_reports(runner, account, report_name) if request.POST.get('account') == "Jenkins": result = download_report(request, report_id) return result else: runner.summary.setdefault("report_id", report_id) return render_to_response('report_template.html', runner.summary)
def run_batch_test(request): """ 批量运行用例 :param request: :return: """ if request.session.get('login_status'): kwargs = { "failfast": False, } runner = HttpRunner(**kwargs) if request.is_ajax(): try: kwargs = json.loads(request.body.decode('utf-8')) except ValueError: logging.error('待运行用例信息解析异常:{kwargs}'.format(kwargs=kwargs)) return HttpResponse('信息解析异常,请重试') test_list = kwargs.pop('id') base_url = kwargs.pop('env_name') type = kwargs.pop('type') config = kwargs.pop('config') report_name = kwargs.get('report_name', None) testcases_dict = run_by_batch(test_list, base_url, config, type=type) if not testcases_dict: return HttpResponse('没有用例哦') main_hrun.delay(testcases_dict, report_name) return HttpResponse('用例执行中,请稍后查看报告即可,默认时间戳命名报告') else: type = request.POST.get('type', None) base_url = request.POST.get('env_name') config = request.POST.get('config') test_list = request.body.decode('utf-8').split('&') if type: testcases_lists = run_by_batch(test_list, base_url, config, type=type, mode=True) else: testcases_lists = run_by_batch(test_list, base_url, config) if testcases_lists: runner.run(testcases_lists) return render_to_response('report_template.html', runner.summary) else: # 没有用例默认重定向到首页 return HttpResponseRedirect('/api/index/') else: return HttpResponseRedirect("/api/login/")
def run_test(request): """ 运行用例 :param request: :return: """ if request.session.get('login_status'): kwargs = { "failfast": False, } runner = HttpRunner(**kwargs) testcase_dir_path = os.path.join(os.getcwd(), "suite") testcase_dir_path = os.path.join(testcase_dir_path, get_time_stamp()) if request.is_ajax(): try: kwargs = json.loads(request.body.decode('utf-8')) except ValueError: logging.error('待运行用例信息解析异常:{kwargs}'.format(kwargs=kwargs)) return HttpResponse('信息解析异常,请重试') id = kwargs.pop('id') base_url = kwargs.pop('env_name') type = kwargs.pop('type') config = request.POST.get( 'config') if request.POST.get('config') != "" else None run_by_module(id, base_url, testcase_dir_path, config) if type == 'module' \ else run_by_project(id, base_url, testcase_dir_path, config) report_name = kwargs.get('report_name', None) main_hrun.delay(testcase_dir_path, report_name) return HttpResponse('用例执行中,请稍后查看报告即可,默认时间戳命名报告') else: id = request.POST.get('id') base_url = request.POST.get('env_name') config = request.POST.get( 'config') if request.POST.get('config') != "" else None type = request.POST.get('type', None) if type: run_by_module(id, base_url, testcase_dir_path, config) if type == 'module' \ else run_by_project(id, base_url, testcase_dir_path, config) else: run_by_single(id, base_url, testcase_dir_path, config) runner.run(testcase_dir_path) shutil.rmtree(testcase_dir_path) return render_to_response('report_template.html', runner.summary) else: return HttpResponseRedirect("/api/login/")
def run_test(request): print("!!!用例开始运行!!!") print(request.body) print(request.path) print(request.encoding) print(request.method) print(request.META.get("CONTENT_TYPE")) print("请求来源:",request.META.get("REMOTE_ADDR")) """ 运行用例 :param request: :return: """ kwargs = { "failfast": False, } runner = HttpRunner(**kwargs) testcase_dir_path = os.path.join(os.getcwd(), "suite") testcase_dir_path = os.path.join(testcase_dir_path, get_time_stamp()) if request.is_ajax(): kwargs = json.loads(request.body.decode('utf-8')) id = kwargs.pop('id') base_url = kwargs.pop('env_name') type = kwargs.pop('type') run_test_by_type(id, base_url, testcase_dir_path, type) report_name = kwargs.get('report_name', None) main_hrun.delay(testcase_dir_path, report_name) return HttpResponse('用例执行中,请稍后查看报告即可,默认时间戳命名报告') else: id = request.POST.get('id') base_url = request.POST.get('env_name') type = request.POST.get('type', 'test') print(id,base_url,type) run_test_by_type(id, base_url, testcase_dir_path, type) t1 = runner.run(testcase_dir_path) print("用例执行结果",t1.gen_html_report()) shutil.rmtree(testcase_dir_path) runner.summary = timestamp_to_datetime(runner.summary, type=False) #修复BUG一,测试完成后report没有落库,可能是没有调用此方法,补充如下: report_name = kwargs.get('report_name', None) add_test_reports(runner, report_name=report_name) return render_to_response('report_template.html', runner.summary)
def run_batch_test(request): """ 批量运行用例 :param request: :return: """ kwargs = { "failfast": False, } runner = HttpRunner(**kwargs) testcase_dir_path = os.path.join(os.getcwd(), "suite") testcase_dir_path = os.path.join(testcase_dir_path, get_time_stamp()) if request.is_ajax(): kwargs = json.loads(request.body.decode('utf-8')) test_list = kwargs.pop('id') base_url = kwargs.pop('env_name') type = kwargs.pop('type') report_name = kwargs.get('report_name', None) run_by_batch(test_list, base_url, testcase_dir_path, type=type) main_hrun.delay(testcase_dir_path, report_name) return HttpResponse('用例执行中,请稍后查看报告即可,默认时间戳命名报告') else: # #obj = json.loads(request.GET.get('obj', None)) obj = request.POST.dict() type = obj.pop('type') base_url = obj.pop('env_name') test_list = list(obj.values()) if type: run_by_batch(test_list, base_url, testcase_dir_path, type=type, mode=True) else: run_by_batch(test_list, base_url, testcase_dir_path) runner.run(testcase_dir_path) shutil.rmtree(testcase_dir_path) runner.summary = timestamp_to_datetime(runner.summary, type=False) return render_to_response('report_template.html', runner.summary)
def run_test(request): """ 运行用例 :param request: :return: """ kwargs = { "failfast": False, } runner = HttpRunner(**kwargs) testcase_dir_path = os.path.join(os.getcwd(), "suite") testcase_dir_path = os.path.join(testcase_dir_path, get_time_stamp()) if request.is_ajax(): kwargs = json.loads(request.body.decode('utf-8')) id = kwargs.pop('id') base_url = kwargs.pop('env_name') type = kwargs.pop('type') run_test_by_type(id, base_url, testcase_dir_path, type) report_name = kwargs.get('report_name', None) main_hrun.delay(testcase_dir_path, report_name) return HttpResponse('用例执行中,请稍后查看报告即可,默认时间戳命名报告') else: id = request.POST.get('id') base_url = request.POST.get('env_name') type = request.POST.get('type', 'test') testcase_dir_path1 = os.path.join(testcase_dir_path, 'guest项目') run_test_by_type(id, base_url, testcase_dir_path, type) runner.run(testcase_dir_path1) # shutil.rmtree(testcase_dir_path) # 递归删除所有文件 runner._summary = timestamp_to_datetime(runner._summary, base_url, type=False) with open('summary.json', 'w', encoding='utf-8') as f: json.dump(runner._summary, f, ensure_ascii=False, sort_keys=True, indent=4) return render_to_response('report_template.html', runner._summary)
def run_test(request): """ 运行用例 :param request: :return: """ kwargs = { "failfast": False, } runner = HttpRunner() testcase_dir_path = os.path.join(os.path.dirname(os.path.split(os.path.realpath(__file__))[0]), "suite") testcase_dir_path = os.path.join(testcase_dir_path, get_time_stamp()) if request.is_ajax(): kwargs = json.loads(request.body.decode('utf-8')) id = kwargs.pop('id') base_url = kwargs.pop('env_name') type = kwargs.pop('type') logger.info("当前运行的用例类型为:{}".format(type)) logger.info("当前运行试用的类为:run_test") logger.info(">>" * 30) run_test_by_type(id, base_url, testcase_dir_path, type) report_name = kwargs.get('report_name', None) main_hrun.delay(testcase_dir_path, report_name) return HttpResponse('用例执行中,请稍后查看报告即可,默认时间戳命名报告') else: id = request.POST.get('id') base_url = request.POST.get('env_name') type = request.POST.get('type', 'test') run_test_by_type(id, base_url, testcase_dir_path, type) #获取文件夹下所有的yml测试文件 summary = main_run_cases(testcase_dir_path) return render_to_response('report_template.html', summary)