Exemple #1
0
def case_xmindimport(request, project):
    if request.method == "POST":    # 请求方法为POST时,进行处理  
        upload_file =request.FILES.get("action", None)    # 获取上传的文件,如果没有文件,则默认为None  
        if not upload_file:  
            return HttpResponse("请先上传文件……")
        file_path = os.path.join(settings.MEDIA_ROOT,upload_file.name) 
        destination = open(file_path,'wb+')    # 打开特定的文件进行二进制的写操作  
        for chunk in upload_file.chunks():      # 分块写入文件  
            destination.write(chunk)  
        destination.close()  

        t_handle = t_TestCase(project=project, file_name=file_path)
        case_list = t_handle.read_all()
        for info in case_list:
            ret_old = list(m_TestCase.objects.filter(case_number=info['case_number']).values())
            if len(ret_old) > 0:
                obj = m_TestCase.objects.filter(case_number=info['case_number']).update(case_name=info['case_name'],case_type=info['case_type'],priority=info['priority'],pre_condition=info['pre_condition'],test_range=info['test_range'],test_steps=info['test_steps'],expect_result=info['expect_result'],auto=info['auto'],case_id=info['api_related'], fun_developer=info['fun_developer'], case_designer=info['case_designer'],case_executor=info['case_executor'],test_time=info['test_time'], test_result=info['test_result'],project_id=info['project'],module=info['module']['name'],remark=info['remark'])
            else:
                obj = m_TestCase(case_number=info['case_number'], case_name=info['case_name'],case_type=info['case_type'],priority=info['priority'],pre_condition=info['pre_condition'],test_range=info['test_range'],test_steps=info['test_steps'],expect_result=info['expect_result'],auto=info['auto'],case_id=info['api_related'], fun_developer=info['fun_developer'], case_designer=info['case_designer'],case_executor=info['case_executor'],test_time=info['test_time'], test_result=info['test_result'],project_id=info['project'],module=info['module']['name'],remark=info['remark'])
                obj.save()  
        messages.success(request,"操作成功")

    module_list = list(set(list(m_TestCase.objects.filter(project_id=project).values_list("module"))))
    modules = []
    for item in module_list:
        modules.append(item[0])
    return redirect("/%s/case/%s" %(project, modules[0]))
Exemple #2
0
def xmind_convert():
    # 用例执行类型
    execution_type = {1:"no", 2:"yes"}
    # 优先级
    importance = {1:"高",2:"中", 3:"低"}
    #用例状态
    case_status = {1:"草稿", 2:"待评审", 3:"评审中", 4:"重做", 5:"废弃", 6:"feature", 7:"终稿"}
    #case_number_def = {"Sum_Up": "概览", "Host_Apply": "主机交付", "IDC_Mgmt": "数据中心", "Device_Mgmt": "设备管理", "Hardware_Mgmt": "硬件管理", "InstallOS_Mgmt": "装机管理", "Image_Mgmt": "镜像管理", "OOB_Mgmt": "带外管理", "Task_Mgmt": "任务管理", "Proxy_Mgmt": "分布式管理", "Asset_Mgmt": "资产管理", "ACL_Mgmt": "安全审计", "Report_Mgmt": "报表管理", "User_Mgmt": "用户管理", "System_Mgmt": "系统管理", "Notice_Mgmt": "通知中心", "Env_Config": "环境配置与日志", "Auth_Mgmt": "权限管理-UAM", "Data_Sync": "数据对接", "新需求": "new_requirement"}
    case_number_def = {"global": "全局", "Task": "任务", "Alarm": "告警", "Audit": "审计", "OpenAPI": "扩展", "Report": "报表", "SumUp": "概览", "InstallOS": "装机", "Device": "设备", "Setting": "设置", "Assert": "资产", "NewRequirement": "新需求", "Other": "未分类"}
    test_result = {0:"未执行", 1:"PASS", 2:"FAIL", 3:"BLOCKED",4:"SKIPPED"}
    with open(file_name) as f:
        context = f.read()
        context = json.load(context)
    list_info = context[0]["sub_suites"]
    for module_dict in list_info:
        module_name = module_dict["name"]
        if "新需求" in module_name:
            items = module_name.split("-")
            module_name = items[0]
            version = items[1]
            module_key = "NewRequirement_%s"%version
        elif module_name in module_dict.values():
            module_key = list(case_number_def.keys())[list(case_number_def.values()).index(module_name)]
            module_key = "%s_3.0.0" %module_key
        else:
            module_key = "Other"
        for info in module_dict["testcase_list"]:
            count = 1
            case_number = "%s_%d" %(module_key, count)
            if info["importance"] == 1:
                case_type = "基本功能测试"
                priority = "Level0"
            elif info["importance"] == 2:
                case_type = "场景测试"
                priority = "Level1"
            elif info["importance"] == 3:
                case_type = "异常测试"
                priority = "Level2"
            else:
                case_type = "未知类型"
                priority = "Level3"
            auto = execution_type[info['auto']]
            result = test_result[info['result']]
            test_steps = ""
            expect_result = ""
            step_count = 1
            for step_dict in info["steps"]:
                test_steps = test_steps + "%d: %s\n" %(step_count,step_dict["action"])
                expect_result = expect_result + "%d: %s\n" %(step_count, step_dict["expectedresults"])
                step_count = step_count + 1

            ret_old = list(m_TestCase.objects.filter(case_number=case_number).values())
            if len(ret_old) > 0:
                obj = m_TestCase.objects.filter(case_number=case_number).update(case_name=info['name'],case_type=case_type,priority=priority,pre_condition=info['preconditions'],test_range="",test_steps=test_steps,expect_result=expect_result,auto=auto, test_result=result,project_id=info['project'],module=module_name,remark="")
            else:
                obj = m_TestCase(case_number=case_number, case_name=info['name'],case_type=case_type,priority=priority,pre_condition=info['preconditions'],test_range="",test_steps=test_steps,expect_result=expect_result,auto=auto,case_id="", fun_developer="", case_designer="",case_executor="",test_time="", test_result=result,project_id=info['project'],module=module_name,remark="")
                obj.save() 

            count = count + 1 
Exemple #3
0
def test_case(request, project,module):
    if request.method == "POST":
        body = dict(request.POST)
        case_number = request.POST.get('case_number')
        case_name = request.POST.get('case_name')
        case_type = request.POST.get('case_type')
        priority = request.POST.get('priority')
        pre_condition = request.POST.get('pre_condition')
        test_range = request.POST.get('test_range')
        test_steps = request.POST.get('test_steps')
        expect_result = request.POST.get('expect_result')
        auto = request.POST.get('auto')
        case_id = request.POST.get('api_related')
        fun_developer = request.POST.get('fun_developer')
        case_designer = request.POST.get('case_designer')
        case_executor = request.POST.get('case_executor')
        test_time = request.POST.get('test_time')
        remark = request.POST.get('remark')
        ret_old = list(m_TestCase.objects.filter(case_number=case_number,project_id=project).values())
        if len(ret_old) > 0:
            obj = m_TestCase.objects.filter(case_number=case_number,project_id=project).update(case_name=case_name,case_type=case_type,priority=priority,pre_condition=pre_condition,test_range=test_range,test_steps=test_steps,expect_result=expect_result,auto=auto,case_id=case_id,fun_developer=fun_developer,case_designer=case_designer,case_executor=case_executor,test_time=test_time,module=module,remark=remark,project_id=project)
        else:
            obj = m_TestCase(case_number=case_number,case_name=case_name,case_type=case_type,priority=priority,pre_condition=pre_condition,test_range=test_range,test_steps=test_steps,expect_result=expect_result,auto=auto,case_id=case_id,fun_developer=fun_developer,case_designer=case_designer,case_executor=case_executor,test_time=test_time,module=module,remark=remark,project_id=project)
            obj.save()
        messages.success(request,"操作成功")
    module_list = list(set(list(m_TestCase.objects.filter(project_id=project).values_list("module"))))
    modules = []
    for item in module_list:
        modules.append(item[0])
    if len(modules) == 0:
        modules = ["新需求"]
        ret_list = []
    else:
        ret_list = list(m_TestCase.objects.filter(project_id=project,module=module).values())
    titles = ["case_number"]
    return render(request, "test_case.html", {"transList": ret_list, "module": module, "modules": modules, "titles":titles, "project": project})