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