def run_test_dubbo(request): """ 运行dubbo用例 :param request: :return: """ from ApiManager.dubbo_runner import dubboRunner, select_case import time if request.is_ajax(): return HttpResponse('等待建设..') else: id = request.POST.get('id') # base_url = request.POST.get('env_name') # type = request.POST.get('type', 'test') obj_list = select_case(id.split('str->list')) obj_dict = obj_list[0] url = obj_dict.get('url') for key in obj_dict.keys(): if 'interface' == key: interface = obj_dict.get(key) if 'method' == key: method = obj_dict.get(key) if 'json' == key or 'string' == key or 'object' == key: params = {key: obj_dict.get(key)} if 'name' == key: name = obj_dict.get('name') if 'validate' == key: validate = obj_dict.get('validate') DR = dubboRunner(url.split(':')[0], int(url.split(':')[1])) start = time.clock() request, response, status = DR.invoke(interface, method, name, validate, params) response_ls,status_ls,passNum,failNum,spendTime_ls=[],[],0,0,[] response_ls.append(response) if status == '成功': passNum += 1 else: failNum += 1 status_ls.append(status) spendTime_ls.append(time.clock() - start) resultData = DR.summary(obj_list=obj_list, Dubbo_request=request, Dubbo_response=response_ls, spendTime=spendTime_ls, status=status_ls, passNum=passNum, failNum=failNum) return render_to_response('report_dubbo.html', {'resultData': json.dumps(resultData)})
def run_batch_test_dubbo(request): """ 批量运行dubbo用例 :param request: :return: """ from ApiManager.dubbo_runner import dubboRunner, select_case, get_case_id import time request_ls, response_ls,spendTime_ls,status_ls,passNum,failNum=[],[],[],[],0,0 if request.is_ajax(): return HttpResponse('用例正在执行中..') else: test_list = request.body.decode('utf-8').split('&') id_list = get_case_id(test_list) obj_list = select_case(id_list) for index in obj_list: url = index.get('url') for key in index.keys(): if 'interface' == key: interface = index.get(key) if 'method' == key: method = index.get(key) if 'json' == key or 'string' == key or 'object' == key: params = {key: index.get(key)} if 'name' == key: name = index.get('name') if 'validate' == key: validate = index.get('validate') DR = dubboRunner(url.split(':')[0], int(url.split(':')[1])) start = time.clock() request, response, status = DR.invoke(interface, method, name, validate, params) request_ls.append(request) response_ls.append(response) spendTime_ls.append(time.clock() - start) status_ls.append(status) if status == '成功': passNum += 1 else: failNum += 1 print(passNum, failNum) resultData = DR.summary(obj_list=obj_list, Dubbo_request=request_ls, Dubbo_response=response_ls, spendTime=spendTime_ls, status=status_ls, passNum=passNum, failNum=failNum) return render_to_response('report_dubbo.html', {'resultData': json.dumps(resultData)})
def run_test_dubbo_module(request): from ApiManager.dubbo_runner import dubboRunner, select_case import time if request.is_ajax(): return HttpResponse('等待建设..') else: id = request.POST.get('id') idlist = get_cases_by_module(id) obj_list = select_case(idlist) request_ls, response_ls, spendTime_ls, status_ls, passNum, failNum = [], [], [], [], 0, 0 for index in obj_list: url = index.get('url') for key in index.keys(): if 'interface' == key: interface = index.get(key) if 'method' == key: method = index.get(key) if 'json' == key or 'string' == key or 'object' == key: params = {key: index.get(key)} if 'name' == key: name = index.get('name') if 'validate' == key: validate = index.get('validate') DR = dubboRunner(url.split(':')[0], int(url.split(':')[1])) start = time.clock() request, response, status = DR.invoke(interface, method, name, validate, params) request_ls.append(request) response_ls.append(response) spendTime_ls.append(time.clock() - start) status_ls.append(status) if status == '成功': passNum += 1 else: failNum += 1 print(passNum, failNum) resultData = DR.summary(obj_list=obj_list, Dubbo_request=request_ls, Dubbo_response=response_ls, spendTime=spendTime_ls, status=status_ls, passNum=passNum, failNum=failNum) return render_to_response('report_dubbo.html', {'resultData': json.dumps(resultData)})