Exemple #1
0
def data(key="",alltype="",value=""):#这个是data信息封装方法
    if isinstance(key, list) and isinstance(alltype,list) and isinstance(value, list):
        try:
            all_list={}
            lenlist=len(key)
            for i in range(0,lenlist):
                if alltype[i] == "string":
                    a = str(value[i])
                    all_list[key[i]]=a
                elif (alltype[i] == "int"):
                    a = int(value[i])
                    all_list[key[i]] = a
                elif (alltype[i] == "list"):
                    a = eval(value[i])
                    all_list[key[i]] = a
                elif (alltype[i] == "dict"):
                    a = eval(value[i])
                    all_list[key[i]] = a
                elif (alltype[i] == "mysql"):
                    pat = "\¥\[(\d+)\]"
                    req = re.findall(pat, value[i])
                    true_number = Mysql_command.objects.filter(number=req[0]).exists()
                    if true_number:
                        result = Mysql_command.objects.filter(number=req[0]).values('result')
                        for a in result:
                            value1 = a["result"]
                    else:
                        print("出现错误")
                    all_list[key[i]] = value1
            return all_list
        except Exception as e:
            pass
    else:
        return restful.params_error("您添加的接口用例格式错误!")
Exemple #2
0
def edit_url(request):
    id=request.POST.get("id")
    if id:
        form = Cms_url(request.POST)
        if form.is_valid():
            print("我已经执行6")
            host_name = form.cleaned_data.get("host_name")
            host_url = form.cleaned_data.get("host_url")
            describe = form.cleaned_data.get("describe")
            url_id = Urlconfiguratin.objects.filter(pk=id)
            if url_id:
                confirm = Urlconfiguratin.objects.filter(host_name=host_name).exclude(id=id).exists()
                print("===我已执行==")
                if confirm:
                    return restful.unauth(message="您输入的环境名称已存在!")
                else:
                    print("===执行不存在的项目=")
                    url_id1= url_id.update(id=id,host_name=host_name,
                                        host_url=host_url,describe=describe)
                    return restful.result(message="编辑环境配置成功!")
            else:
                return restful.unauth(message="您输入id不存在!")
        else:
            print("我已经执行8")
            errors = form.get_errors()
            return restful.params_error(message=errors)
    else:
        return restful.unauth(message="id号不能为空")
Exemple #3
0
def get_value(req="",key=""):#断言获取接口的返回值,或提取参数操作
    if isinstance(key,list):
        try:
            all_list=[]
            lenlist=len(key)
            valuelist1=[]
            for i in range(0,lenlist):
                str1=key[i]
                valuelist=str1.split(".")
                for i in valuelist:
                    try:
                        valuelist1.append(int(i))
                    except:
                        valuelist1.append(i)
                valuelen=len(valuelist1)
                if valuelen==0:
                    pass
                elif (valuelen==1):
                    all_list.append(req[valuelist1[0]])
                elif (valuelen ==2):
                    all_list.append(req[valuelist1[0]][valuelist1[1]])
                elif (valuelen ==3):
                    all_list.append(req[valuelist1[0]][valuelist1[1]][valuelist1[2]])
                elif (valuelen == 4):
                    all_list.append(req[valuelist1[0]][valuelist1[1]][valuelist1[2]][valuelist1[3]])
                else:
                    return restful.unauth(message="断言匹配参数最多支持4个往下取值操作!")
            return all_list
        except Exception as e:
            pass
    else:
        return restful.params_error("您添加的接口用例格式错误!")
Exemple #4
0
def assertion(key="",alltype="",value=""):#断言方法封装
    if isinstance(key, list) and isinstance(alltype, list) and isinstance(value, list):
        try:
            all_list=[]
            lenlist=len(key)
            for i in range(0, lenlist):
                if alltype[i] == "等于":
                    if isinstance(key[i], int):
                        if key[i] == int(value[i]):
                            all_list.append("pass")
                        else:
                            all_list.append("fail")
                    else:
                        if key[i] == value[i]:
                            all_list.append("pass")
                        else:
                            all_list.append("fail")
                elif (alltype[i] == "包含"):
                    if value[i] in key[i]:
                        all_list.append("pass")
                    else:
                        all_list.append("fail")
            if "fail" in all_list:
                return "fail"
            else:
                return "pass"
        except Exception as e:
            pass
    else:
        return restful.params_error("您添加的接口用例格式错误!")
Exemple #5
0
def add_item(request):  #添加项目的视图
    forms = Cms_projectInfo(request.POST)
    if forms.is_valid():
        project_name = forms.cleaned_data.get("project_name")
        responsible_name = forms.cleaned_data.get("responsible_name")
        test_user = forms.cleaned_data.get("test_user")
        dev_user = forms.cleaned_data.get("dev_user")
        publish_app = forms.cleaned_data.get("publish_app")
        simple_desc = forms.cleaned_data.get("simple_desc")
        other_desc = forms.cleaned_data.get("other_desc")
        id = request.session.get("_auth_user_id")
        a = request.session.keys()
        print(id)
        print(a)
        user_id = User.objects.filter(pk=id).exists()
        if user_id:
            confirm = ProjectInfo.objects.filter(
                project_name=project_name).exists()
            if confirm:
                return restful.result(message="此项目名称已存在!")
            else:
                iteme = ProjectInfo(project_name=project_name,
                                    responsible_name=responsible_name,
                                    test_user=test_user,
                                    dev_user=dev_user,
                                    publish_app=publish_app,
                                    simple_desc=simple_desc,
                                    other_desc=other_desc)
                iteme.user_id = id
                iteme.save()
                return restful.result(message="添加项目成功!")
    else:
        errors = forms.get_errors()
        return restful.params_error(message=errors)
Exemple #6
0
def extract_parameter(req="",value=""):#提取接口的值
    try:
        if isinstance(value,list):
            pass
        else:
            return restful.params_error("您添加的接口用例格式错误!")
    except Exception as e:
        pass
Exemple #7
0
def header(key="",value=""):#这个是请求信息封装方法
    if isinstance(key,list) and isinstance(value,list):
        try:
            all_list=zip(key,value)#使用zip方法进行压缩
            return dict(all_list)#然后使用dict进行转字典
        except Exception as e:
            pass
    else:
        return restful.params_error("您添加的接口用例格式错误!")
Exemple #8
0
def delete_module(request):  #删除模块视图
    id = request.POST.get("id")
    if id:
        url_id = ModuleInfo.objects.get(pk=id)
        url_id1 = url_id.usecase_set.all()
        if url_id1:
            return restful.params_error(message="此模块已被其他用例关联,不能删除!")
        else:
            if url_id:
                url_id.delete()
                return restful.result(message="删除模块成功!")
            else:
                return restful.unauth(message="该id不存在!")
    else:
        return restful.unauth(message="请输入项目id!")
Exemple #9
0
    def post(self,request,*args,**kwargs):
        form = LoginForm(request.POST)
        if form.is_valid():
            telephone = form.cleaned_data.get("telephone")
            password = form.cleaned_data.get("password")
            pwd=base64.b64decode(password).decode("utf-8")
            remember = form.cleaned_data.get("remember")
            user = authenticate(request, username=telephone, password=pwd)
            if user:
                if user.is_active:
                    login(request, user)
                    if remember:
                        request.session.set_expiry(None)
                    else:
                        request.session.set_expiry(0)
                    return restful.result(message="登录成功")
                else:  # 用户不使用执行下面代码
                    return restful.unauth(message="您的账号已被冻结")
            else:
                return restful.params_error(message={"password": ["您输入的账号或密码错误"]})

        else:
            errors = form.get_errors()
            return restful.params_error(message=errors)
Exemple #10
0
def delete_item(request):  #删除项目视图
    id = request.POST.get("id")
    if id:
        item_id = ProjectInfo.objects.filter(
            id=id).prefetch_related("moduleInfo")
        for url_id in item_id:
            if url_id:
                return restful.params_error(message="此项目已被其他模块关联,不能删除!")
            else:
                if item_id:
                    item_id.delete()
                    return restful.result(message="删除项目成功!")
                else:
                    return restful.unauth(message="该id不存在!")
    else:
        return restful.unauth(message="请输入项目id!")
Exemple #11
0
def edit_function(request):  #运行多条用例的视图
    userid = request.session.get("_auth_user_id")
    id = request.POST.get("id")
    if id:
        all_edit = ProjectInfo.objects.get(pk=id)
        if all_edit:
            data_times = time.strftime('%Y-%m-%d %H:%M:%S',
                                       time.localtime(time.time()))
            run_multiple_use_cases.delay(id=id,
                                         userid=userid,
                                         data_times=data_times)
            return restful.result(message="已运行成功!")
        else:
            return restful.unauth(message="此项目id不存在!")
    else:
        return restful.params_error(message="请输入正确的用例id!")
Exemple #12
0
def delete_url(request):
    id=request.POST.get("id")
    if id:
        url_id=Urlconfiguratin.objects.get(pk=id)
        url_id1=url_id.usecase_set.all()
        if url_id1:
            return restful.params_error(message="此环境已被其他用例关联,不能删除!")
        else:
            print("我已执行")
            if url_id:
                url_id.delete()
                print("====已执行====")
                return restful.result(message="删除环境成功!")
            else:
                return restful.unauth(message="该id不存在!")
    else:
        return restful.unauth(message="请输入环境id!")
Exemple #13
0
def read_req(key="",req_ode=""):#提取参数
        if isinstance(key, list):
            key_list=len(key)
            req_list=[]
            for i in range(0,key_list):
                try:
                    pat="'{}': '(.*?)'".format(key[i])
                    print(pat)
                    req=re.findall(pat,str(req_ode))
                    print(key[i])
                    req_list.append(req[0])
                except:
                    pat = "'{}': (.*?),".format(key[i])
                    req = re.findall(pat,str(req_ode))
                    if req==[]:
                        pass
                    else:
                        req_list.append(req[0])
            return req_list
        else:
            return restful.params_error("您的提取参数不是列表!")
Exemple #14
0
def edit_module(request):  #编辑项目视图
    id = request.POST.get("id")
    if id:
        forms = Cms_Moudle(request.POST)
        if forms.is_valid():
            module_name = forms.cleaned_data.get("module_name")
            test_user = forms.cleaned_data.get("test_user")
            belong_project = request.POST.get("belong_project")
            simple_desc = forms.cleaned_data.get("simple_desc")
            other_desc = forms.cleaned_data.get("other_desc")
            module_order = forms.cleaned_data.get("module_order")
            module_id = ModuleInfo.objects.filter(pk=id)
            if module_id:
                confirm = ModuleInfo.objects.filter(
                    module_name=module_name).exclude(id=id).exists()
                if confirm:
                    return restful.unauth(message="您输入的项目名称已存在!")
                else:
                    all_true = ModuleInfo.objects.filter(
                        belong_project_id=belong_project).exclude(
                            id=id).filter(module_order=module_order).exists()
                    if all_true:
                        return restful.unauth(message="模块运行顺序已存在!")
                    else:
                        module_id1 = module_id.update(
                            id=id,
                            module_name=module_name,
                            test_user=test_user,
                            belong_project_id=belong_project,
                            simple_desc=simple_desc,
                            other_desc=other_desc,
                            module_order=module_order)
                        return restful.result(message="编辑项目成功!")
            else:
                return restful.unauth(message="您输入id不存在!")
        else:
            errors = forms.get_errors()
            return restful.params_error(message=errors)
    else:
        return restful.unauth(message="id号不能为空")
Exemple #15
0
def add_url(request):#添加环境视图
    form= Cms_url(request.POST)
    if form.is_valid():
        host_name=form.cleaned_data.get("host_name")
        host_url=form.cleaned_data.get("host_url")
        describe=form.cleaned_data.get("describe")
        id = request.session.get("_auth_user_id")
        a = request.session.keys()
        user_id = User.objects.filter(pk=id).exists()
        if user_id:
            confirm = Urlconfiguratin.objects.filter(host_name=host_name).exists()
            if confirm:
                return restful.unauth(message="此环境名称已存在!")
            else:
                url= Urlconfiguratin(host_name=host_name,
                                   host_url=host_url, describe=describe)
                url.user_id = id
                url.save()
                return restful.result(message="添加环境成功!")
    else:
        errors = form.get_errors()
        return restful.params_error(message=errors)
Exemple #16
0
def edit_item(request):  #编辑项目视图
    id = request.POST.get("id")
    if id:
        forms = Cms_projectInfo(request.POST)
        if forms.is_valid():
            project_name = forms.cleaned_data.get("project_name")
            responsible_name = forms.cleaned_data.get("responsible_name")
            test_user = forms.cleaned_data.get("test_user")
            dev_user = forms.cleaned_data.get("dev_user")
            publish_app = forms.cleaned_data.get("publish_app")
            simple_desc = forms.cleaned_data.get("simple_desc")
            other_desc = forms.cleaned_data.get("other_desc")
            item_id = ProjectInfo.objects.filter(pk=id)
            for i in item_id:
                print(i.project_name)
            print(other_desc)
            if item_id:
                confirm = ProjectInfo.objects.filter(
                    project_name=project_name).exclude(id=id).exists()
                if confirm:
                    return restful.unauth(message="您输入的项目名称已存在!")
                else:
                    item_id1 = item_id.update(
                        id=id,
                        project_name=project_name,
                        responsible_name=responsible_name,
                        test_user=test_user,
                        dev_user=dev_user,
                        publish_app=publish_app,
                        simple_desc=simple_desc,
                        other_desc=other_desc)
                    return restful.result(message="编辑项目成功!")
            else:
                return restful.unauth(message="您输入id不存在!")
        else:
            errors = forms.get_errors()
            return restful.params_error(message=errors)
    else:
        return restful.unauth(message="id号不能为空")
Exemple #17
0
def add_module(request):  #添加模块视图
    forms = Cms_Moudle(request.POST)
    if forms.is_valid():
        module_name = forms.cleaned_data.get("module_name")
        test_user = forms.cleaned_data.get("test_user")
        belong_project = request.POST.get("belong_project")
        simple_desc = forms.cleaned_data.get("simple_desc")
        other_desc = forms.cleaned_data.get("other_desc")
        module_order = forms.cleaned_data.get("module_order")
        id = request.session.get("_auth_user_id")
        a = request.session.keys()
        is_module = ProjectInfo.objects.filter(pk=int(belong_project))
        is_case_url = is_module.filter(
            moduleInfo__module_order=module_order).exists()
        if is_case_url:  # 如果存在执行下面代码
            return restful.unauth(message="此用例运行顺序已存在!")
        else:
            user_id = User.objects.filter(pk=id).exists()
            if user_id:
                confirm = ModuleInfo.objects.filter(
                    module_name=module_name).exists()
                if confirm:
                    return restful.unauth(message="此模块名称已存在!")
                else:
                    iteme = ModuleInfo(module_name=module_name,
                                       test_user=test_user,
                                       simple_desc=simple_desc,
                                       other_desc=other_desc,
                                       module_order=module_order)
                    iteme.user_id = id
                    iteme.belong_project_id = int(belong_project)
                    iteme.save()
                    return restful.result(message="添加模块成功!")
    else:
        errors = forms.get_errors()
        return restful.params_error(message=errors)
Exemple #18
0
def edit_details(request):
    userid = request.session.get("_auth_user_id")
    id = request.POST.get("id")
    if id:
        all_edit = ProjectInfo.objects.get(pk=id)
        if all_edit:
            module_prefetch = Prefetch(
                "moduleInfo",
                queryset=ModuleInfo.objects.order_by("module_order"))
            use_prefetch = Prefetch(
                "usecase_set", queryset=Usecase.objects.order_by("case_order"))
            operation = Prefetch(
                "operation_information_set",
                queryset=operation_information.objects.filter(
                    use_case_mode="many").order_by("-data_time"))
            module_data = ProjectInfo.objects.filter(
                id=id).prefetch_related(module_prefetch)
            use_data = ModuleInfo.objects.prefetch_related(use_prefetch)
            use_case = Usecase.objects.prefetch_related(operation)
            a = operation_information.objects.filter(
                use_case_mode="many").order_by("-data_time")
            print(a.exists())
            all_result = []
            for i in module_data:
                print(i.project_name)
                module_all = i.moduleInfo.all()
                if module_all:
                    for sub_data in module_all:
                        for use_data_all in use_data:
                            if sub_data.module_name == use_data_all.module_name:
                                print(use_data_all.module_name)
                                usecase_data_all = use_data_all.usecase_set.all(
                                )
                                if usecase_data_all:
                                    usecase2 = use_data_all.usecase_set.count()
                                    print("======")
                                    print(usecase2)
                                else:
                                    usecase2 = 0
                                if usecase_data_all:
                                    for usecase in usecase_data_all:
                                        for use_ca in use_case:
                                            if usecase.case_name == use_ca.case_name:
                                                result = []
                                                operation_all = use_ca.operation_information_set.all(
                                                )
                                                print("333333")
                                                print(len(operation_all))
                                                if operation_all:
                                                    if len(operation_all) == 1:
                                                        serializer = operation_informationSerializer(
                                                            operation_all,
                                                            many=True)
                                                        data = serializer.data[
                                                            -1]

                                                        all_result.append(data)
                                                        print("hahah")
                                                    else:
                                                        serializer = operation_informationSerializer(
                                                            operation_all,
                                                            many=True)
                                                        data = list(
                                                            reversed(
                                                                serializer.data
                                                            ))[-1]

                                                        all_result.append(data)
                                                else:
                                                    pass
                                else:  #不存在关联用例执行下面
                                    pass
                else:  #不存在关联模块执行下面
                    pass
            return restful.result(data=all_result, message="请求成功!")
        else:
            return restful.unauth(message="此项目id不存在!")
    else:
        return restful.params_error(message="请输入正确的用例id!")