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_batch_test(request): """ 批量运行用例 :param request: :return: """ account = request.session["now_account"] 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(): request_data = json.loads(request.body.decode('utf-8')) batch_main_hrun.delay(testcase_dir_path, account, request_data) return HttpResponse('用例执行中,请稍后查看报告即可,默认时间戳命名报告') else: type = request.POST.get('type', None) base_url = request.POST.get('env_name') report_name = request.POST.get('report_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.run2(testcase_dir_path) shutil.rmtree(testcase_dir_path) runner.summary = timestamp_to_datetime(runner.summary, type=False) if not report_name: report_name = '批量执行' if type == 'project': report_name = report_name + '项目' elif type == 'module': report_name = report_name + '模块' elif type == 'suite': report_name = report_name + '套件' elif type is None: report_name = report_name + '用例' if type is None: type = 'test' add_test_reports(runner, report_name=report_name, report_type=type, executor=account) return render_to_response('report_template.html', runner.summary)
def batch_main_hrun(testset_path, executor=None, request_data=None): """ 用例运行 :param testset_path: dict or list :param report_name: str :return: """ logger.setup_logger('INFO') kwargs = { "failfast": False, } runner = HttpRunner(**kwargs) error_info = { 'start_time': datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S') } report_type = 'test' report_name = '执行异常' try: test_list = request_data.pop('id') base_url = request_data.pop('env_name') type = request_data.pop('type') report_name = request_data.get('report_name', None) if type: report_type = type run_by_batch(test_list, base_url, testset_path, type=type) runner.run2(testset_path) shutil.rmtree(testset_path) runner.summary = timestamp_to_datetime(runner.summary) report_path = add_test_reports(runner, report_name=report_name, report_type=report_type, executor=executor) except Exception as e: logger.log_info("出现异常: {0}".format(e)) error_info['error_msg'] = "出现异常: {0}".format(e) add_error_reports(error_info, report_name=report_name, report_type=report_type, executor=executor) except BaseException as e: logger.log_info("出现异常: {0}".format(e)) error_info['error_msg'] = "出现异常: {0}".format(e) add_error_reports(error_info, report_name=report_name, report_type=report_type, executor=executor)
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_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_batch_test(request): if request.session.get('login_status'): if request.method == 'POST': test_lists = run_by_batch(request.body.decode('ascii').split('&')) result = get_result(test_lists) return render_to_response('report_template.html', result) else: return HttpResponseRedirect("/api/login/")
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.method == 'POST': 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_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_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') type = kwargs.pop('type') base_id = kwargs.get('env_name') env_values = EnvInfo.objects.filter(id=base_id).values() base_url = env_values[0].get('base_url') env_token = env_values[0].get('env_token') env_merchantId = env_values[0].get('env_merchantId') report_name = kwargs.get('report_name', None) run_by_batch(test_list, base_url, env_token, env_merchantId, testcase_dir_path, type=type) # main_hrun.delay(testcase_dir_path, report_name) main_hrun(testcase_dir_path, report_name, base_id) return HttpResponse('用例执行中,请稍后查看报告即可,默认时间戳命名报告') else: type = request.POST.get('type', None) test_list = request.body.decode('utf-8').split('&') base_id = request.POST.get('env_name') env_values = EnvInfo.objects.filter(id=base_id).values() base_url = env_values[0].get('base_url') env_token = env_values[0].get('env_token') env_merchantId = env_values[0].get('env_merchantId') if type: run_by_batch(test_list, base_url, env_token, env_merchantId, testcase_dir_path, type=type, mode=True) else: run_by_batch(test_list, base_url, env_token, testcase_dir_path) runner.run(testcase_dir_path) shutil.rmtree(testcase_dir_path) runner.summary = timestamp_to_datetime(runner.summary, base_id, type=False) # return render_to_response('report_template.html', runner.summary) return render_to_response('report_template.html', runner.summary)