class TaskCaseRecord(EntityModel): ACTIVE = 0 # case创建 DISABLE = 1 # case已删除 SKIP = 2 # 跳过 GOOD = 3 # case执行通过 NOTGOOD = 4 # case执行不通过 task_case_id = db.Column(db.Integer) # 关联的task_case_id task_id = db.Column(db.Integer) # 关联的taskID executor = db.Column(db.Integer) # 用例执行者保存的为用户id exe_way = db.Column(db.Integer) # 执行方式,0:批量执行 1:单个执行 SMOKING_CASE = 0 FUNCTION_CASE = 1 title = db.Column(db.String(300)) # 标题 cnumber = db.Column(db.String(100)) # 编号 module_id = db.Column(db.Integer) # 用例模块 feature_id = db.Column(db.Integer) # 子模块 ctype = db.Column(db.String(10)) # taskcase用例类型 description = db.Column(db.String(300)) # 用例描述 precondition = db.Column(db.Text()) # 前置条件 step_result = db.Column(db.Text()) # 用例步骤及预期结果 json->string格式存入 is_auto = db.Column(db.Integer, default=DISABLE) # 是否可转自动化 status = db.Column(db.Integer, default=ACTIVE) # 用例任务状态 comment = db.Column(db.String(300)) # 备注 version = db.Column(db.Integer) # 所属版本 project_id = db.Column(db.Integer) # 所属项目 modifier = db.Column(db.Integer) # 修改人ID handler = db.Column(db.Integer) # 处理人ID priority = db.Column(db.Integer) # 优先级 0:紧急 1:高 2:中 3:低
class RequirementReview(EntityModel): ACTIVE = 0 DISABLE = 1 # board状态:1:待办 2:处理中 3:测试中 4:待验收 5:待发布 6:延时处理 review_id = db.Column(db.Integer) # 评审ID requirement_id = db.Column(db.Integer) # 需求ID title = db.Column(db.String(200)) # 标题 project_id = db.Column(db.Integer) # 项目ID version = db.Column(db.String(100)) # 所属版本 requirement_type = db.Column(db.Integer) # 类型 creator = db.Column(db.Integer) # 创建人 modifier = db.Column(db.Integer) # 修改人 handler = db.Column(db.Integer) # 处理人 board_status = db.Column(db.Integer, default=DISABLE) # 需求看板状态 status = db.Column(db.Integer, default=ACTIVE) # 需求状态 description = db.Column(db.Text) # 描述 priority = db.Column(db.Integer) # 优先级 0:紧急 1:高 2:中 3:低 attach = db.Column(db.Text) # 附件 comment = db.Column(db.String(300)) # 备注 weight = db.Column(db.Integer, default=1) # 权重,仅作用于排序 parent_id = db.Column(db.Integer, default=ACTIVE) # 父类项目ID review_status = db.Column(db.Integer) # 需求评审状态 1-通过,2-未通过 jira_id = db.Column(db.String(300)) # jira号 worth = db.Column(db.Integer) # 需求价值 1:高价值 2:非高价值 report_time = db.Column(db.String(300)) # 上线评估结果时间(天) report_expect = db.Column(db.Text) # 高价值预期结果 report_real = db.Column(db.Text) # 高价值实际结果 worth_sure = db.Column(db.Integer) # 确认需求价值 1:高价值 2:非高价值
class Guest(EntityModel): ip = db.Column(db.String(30)) # 访客ip platform = db.Column(db.String(30)) # 访客平台 browser = db.Column(db.String(30)) # 访客浏览器 string = db.Column(db.String(100)) # 访客agent version = db.Column(db.String(30)) # 访客版本 count = db.Column(db.Integer, default=1) # 访问次数
class Task(EntityWithNameModel): # 任务状态 0:任务创建 1:任务已删除 2:任务已完成 3:任务被拒绝 ACTIVE = 0 # 任务创建,待审核状态 DISABLE = 1 # 任务已删除 FINISH = 2 # 任务已完成 REJECT = 3 # 任务被拒绝 STATUS_HOLDING = 2 # 任务审核通过,待执行 STATUS_DOING = 3 # 任务执行中 STATUS_REJECT = 4 # 任务拒绝 STATUS_DONE = 5 # 任务已完成 description = db.Column(db.String(300)) # 任务描述 testreport = db.Column(db.Text()) # 测试报告 tmethod = db.Column(db.String(50)) # 任务方法:自动化 or 人工测试 ttype = db.Column(db.String(50)) # 任务类型:功能测试,兼容性测试... status = db.Column(db.Integer, default=ACTIVE) # 任务状态 case_list = db.Column(db.Text()) # case列表 creator = db.Column(db.Integer) # 创建任务的人 executor = db.Column(db.Integer) # 执行任务的人 priority = db.Column(db.Integer) # 优先级 0:紧急 1:高 2:中 3:低 start_time = db.Column(db.TIMESTAMP) # 任务开始时间 end_time = db.Column(db.TIMESTAMP) # 任务结束时间 project_id = db.Column(db.Integer) # 项目ID version = db.Column(db.Integer) # 所属版本 ext = db.Column(db.Text()) attach = db.Column(db.Text()) # 附件: 用例测试完成后的测试附件 attachment = db.Column(db.String(300)) # 附件:新建修改任务的时候上传的 附件文件 tag = db.Column(db.String(300)) # 标签
class Role(EntityModel): ACTIVE = 0 DISABLE = 1 name = db.Column(db.String(100), nullable=False) status = db.Column(db.Integer, default=ACTIVE) weight = db.Column(db.Integer, default=1) comment = db.Column(db.String(300)) # 备注
class FlowBase(EntityModel): ACTIVE = 0 DISABLE = 1 name = db.Column(db.String(100), nullable=False) step = db.Column(db.String(300)) # 步骤 notice_type = db.Column(db.Integer) # 消息类型 is_send = db.Column(db.Integer) # 是否发消息 comment = db.Column(db.Text) # 描述
class InterfaceReport(EntityWithNameModel): ACTIVE = 0 DISABLE = 1 case_names = db.Column(db.String(128), nullable=True, comment='用例的名称集合') read_status = db.Column(db.String(16), nullable=True, comment='阅读状态') project_id = db.Column(db.String(16), nullable=True) status = db.Column(db.Integer, default=ACTIVE) # 状态
class TrackUpload(EntityModel): ACTIVE = 0 DISABLE = 1 project_id = db.Column(db.Integer) user_id = db.Column(db.Integer) device_type = db.Column(db.Integer) device_typename = db.Column(db.String(200)) device_number = db.Column(db.String(500)) status = db.Column(db.Integer, default=ACTIVE)
class Project(EntityWithNameModel): ACTIVE = 0 DISABLE = 1 description = db.Column(db.String(1000), nullable=True) # 产品描述 status = db.Column(db.Integer, default=ACTIVE) weight = db.Column(db.Integer, default=1) ext = db.Column(db.Text()) logo = db.Column(db.String(2048), comment='信息logo') # 产品logo url
class FlowAssemble(EntityModel): ACTIVE = 0 DISABLE = 1 name = db.Column(db.String(100), nullable=False) flow_base_list = db.Column(db.String(300)) # 流程集合 status = db.Column(db.Integer, default=ACTIVE) # 状态 flow_asstype = db.Column(db.Integer) # 公共,项目私有 weight = db.Column(db.Integer, default=1) # 权重,仅作用于排序 comment = db.Column(db.Text) # 描述 project_id = db.Column(db.Integer) # 项目ID
class Tag(EntityModel): ACTIVE = 0 # case创建 DISABLE = 1 # case已删除 tag = db.Column(db.String(300)) # 标签 project_id = db.Column(db.Integer) # 所属项目 status = db.Column(db.Integer, default=ACTIVE) # 配置标签状态 description = db.Column(db.Text()) # 配置描述 creator = db.Column(db.String(300)) # 配置增加人 tag_type = db.Column(db.Integer) # 配置类型 1表示需求2任务3issue
class Content(Mixin): PRIVATE = 0 PUBLIC = 1 GLOBAL = 2 send_id = db.Column(db.Integer) content = db.Column(db.String(200)) type = db.Column(db.Integer) group = db.Column(db.String(20)) create_time = db.Column(db.DateTime, default=datetime.now)
class Deploy(EntityModel): ACTIVE = 0 DISABLE = 1 project_id = db.Column(db.Integer) # 项目id server_list = db.Column(db.String(500)) # 服务list node_list = db.Column(db.String(500)) # node list status = db.Column(db.Integer, default=ACTIVE) branch = db.Column(db.String(500)) # 分支 flow_id = db.Column(db.Integer) # 流程id user_id = db.Column(db.Integer) # user_id
class FlowRecord(EntityModel): flow_info_id = db.Column(db.Integer) # 流程信息ID creator = db.Column(db.Integer) # 创建人ID step_id = db.Column(db.Integer) # 步骤 next_step_id = db.Column(db.Integer) # 步骤 result = db.Column(db.String(300)) # 结果 description = db.Column(db.String(300)) # 描述 project_id = db.Column(db.Integer) # 项目ID version_id = db.Column(db.Integer) # 所属版本 weight = db.Column(db.Integer, default=1) # 权重,仅作用于排序 comment = db.Column(db.Text) # 备注
class CiData(EntityModel): ACTIVE = 0 DISABLE = 1 name = db.Column(db.String(200)) # job name accuracy = db.Column(db.String(10)) # 项目正确率 case_count = db.Column(db.Integer) # 用例个数 nextBuildNumber = db.Column(db.Integer) # 下一个执行number # is_executing = db.Column(db.Integer) # 0 未执行,1正在执行 status = db.Column(db.Integer, default=ACTIVE) description = db.Column(db.String(500)) # job 的描述
class TrackUser(EntityModel): ACTIVE = 0 DISABLE = 1 nickname = db.Column(db.String(100)) wx_userid = db.Column(db.String(200)) status = db.Column(db.Integer, default=ACTIVE) email = db.Column(db.String(100)) telephone = db.Column(db.String(30)) weight = db.Column(db.Integer, default=1) track_token = db.Column(db.Text()) name = db.Column(db.String(100)) user_id = db.Column(db.Integer)
class InterfaceCase(EntityWithNameModel): ACTIVE = 0 DISABLE = 1 num = db.Column(db.Integer(), nullable=True, comment='用例序号') name = db.Column(db.String(128), nullable=True, comment='用例名称') desc = db.Column(db.String(256), comment='用例描述') func_address = db.Column(db.String(256), comment='用例需要引用的函数') variable = db.Column(db.Text(), comment='用例公共参数') times = db.Column(db.Integer(), nullable=True, comment='执行次数') project_id = db.Column(db.Integer, comment='所属的项目id') case_set_id = db.Column(db.Integer, comment='所属的用例集id') status = db.Column(db.Integer, default=ACTIVE) # 状态
class IssueRecord(EntityModel): ACTIVE = 0 DISABLE = 1 iss_id = db.Column(db.Integer) # issueid issue_number = db.Column(db.String(100), nullable=False) # BUG单号 project_id = db.Column(db.Integer) # 所属项目 system = db.Column(db.String(100)) # 所属系统 version = db.Column(db.Integer) # 所属版本 module_id = db.Column(db.Integer) # 所属模块 creator = db.Column(db.Integer) # BUG创建人ID modifier = db.Column(db.Integer) # BUG修改人ID handler = db.Column(db.Integer) # BUG处理人ID issue_type = db.Column(db.Integer) # BUG类型 0:功能问题 1:界面优化 2:设计缺陷 3:安全相关 4:性能问题 5:开发修改引入 6:其他 chance = db.Column(db.Integer) # 出现机率 0:必现 1:大概率 2:小概率 3:极小概率 level = db.Column(db.Integer) # 级别 0:Block 1:Critical 2:Major 3:Minor 4:Trivial priority = db.Column(db.Integer) # 优先级 0:紧急 1:高 2:中 3:低 stage = db.Column(db.Integer) # BUG引入阶段 0:需求阶段 1:开发阶段 2:测试阶段 3:生产阶段 title = db.Column(db.String(100)) # BUG标题 attach = db.Column(db.Text) # BUG附件 relate_case = db.Column(db.Integer) # 关联用例ID # 处理状态 0:已创建待分配 1:已分配未处理 2:已处理待验证 3:验证通过 4:验证不通过重新打开 5:暂不处理 6:无效BUG 7:已关闭 8:其他 handle_status = db.Column(db.Integer) reopen = db.Column(db.Integer, default=0) # reopen次数 status = db.Column(db.Integer, default=0) # 状态 0:ACTIVE 1:DISABLE weight = db.Column(db.String(100)) # 排序 description = db.Column(db.Text) # BUG描述 comment = db.Column(db.String(255)) # 备注 repair_time = db.Column(db.String(100), nullable=True) # 开发修复BUG的时间 test_time = db.Column(db.String(100), nullable=True) # 测试验证BUG的时间 detection_chance = db.Column(db.Integer) # 用户识别是否是故障的概率 0:明显的 1:高概率 2:中概率 3:小概率 rank = db.Column(db.Integer) # 故障的分数 可映射故障的等级 A (R 80-125) B (R 45-79) C(R 11-44) D(R 1-10) requirement_id = db.Column(db.Integer) # 需求 ID case_covered = db.Column(db.Integer) # 用例覆盖 0为未覆盖 1为覆盖 tag = db.Column(db.String(300))
class Jira(EntityModel): ACTIVE = 0 DISABLE = 1 KEY_MAP = { "requirement": 1, "flow": 2 } params = db.Column(db.String(1000)) # jira 请求的参数 result = db.Column(db.String(100)) # jira 请求结果 status = db.Column(db.Integer, default=ACTIVE) # 状态 key_type = db.Column(db.Integer) # 1: requirement 2: flow key_id = db.Column(db.Integer) # requirement_id or flow_id
class FlowInfo(EntityModel): ACTIVE = 0 FINISHED = 2 DISABLE = 1 STOP = 3 name = db.Column(db.String(100), nullable=False) # 名称 flow_type = db.Column(db.Integer) # 流程类型:1-版本需求 2-性能优化 3-Hotfix 4-其他 requirement_list = db.Column(db.String(300)) # 需求列表 flow_assemble_id = db.Column(db.Integer) # 流程集合ID flow_base_list = db.Column(db.String(300)) # 流程集合 priority = db.Column(db.Integer) # 优先级 0:紧急 1:高 2:中 3:低 start_time = db.Column(db.TIMESTAMP) # 任务开始时间 end_time = db.Column(db.TIMESTAMP) # 任务结束时间 project_id = db.Column(db.Integer) # 项目ID version_id = db.Column(db.Integer) # 所属版本 creator = db.Column(db.Integer) # 创建人ID user_dev = db.Column(db.String(300)) # 用户 user_prod = db.Column(db.String(300)) # 用户 user_test = db.Column(db.String(300)) # 用户 user_owner = db.Column(db.String(300)) # 用户 action = db.Column(db.Text) # 步骤 status = db.Column(db.Integer, default=ACTIVE) # 状态 weight = db.Column(db.Integer, default=1) # 权重,仅作用于排序 comment = db.Column(db.Text) # 描述 platform = db.Column(db.String(300)) # 平台 dependence = db.Column(db.Text) # 依赖
class CiJob(EntityModel): ACTIVE = 0 DISABLE = 1 number = db.Column(db.Integer) # job number url = db.Column(db.String(300)) # job url ci_id = db.Column(db.Integer) # ci id start_name = db.Column(db.String(300)) # 触发者 status = db.Column(db.Integer, default=ACTIVE) report = db.Column(db.String(300)) # 报告url run_date = db.Column(db.TIMESTAMP) # 运行日期 run_time = db.Column(db.String(300)) # 运行时长 job_count = db.Column(db.Integer) # job 的数量 job_accuracy = db.Column(db.String(300)) # job的正确率
class DeployRecord(EntityModel): ACTIVE = 0 DISABLE = 1 project_id = db.Column(db.Integer) # 项目id server_id = db.Column(db.Integer) # 服务 id node_id = db.Column(db.Integer) # node id status = db.Column(db.Integer, default=ACTIVE) version = db.Column(db.String(100)) # 部署生成的version branch = db.Column(db.String(100)) # 分支 result = db.Column(db.Integer, default=ACTIVE) # 分支的结果 0 编译中 1 打包失败 2发布失败 3重启失败 4成功 deploy_id = db.Column(db.Integer) # 部署的id flow_id = db.Column(db.Integer) # 流程id server_name = db.Column(db.String(500)) # 服务名字 node_name = db.Column(db.String(500)) # 节点名字
class DeployLog(EntityModel): ACTIVE = 0 DISABLE = 1 project_id = db.Column(db.Integer) # 项目id comment = db.Column(db.Text) # 备注的内容 flow_id = db.Column(db.Integer) # 流程id result = db.Column(db.String(500)) # 结果 name = db.Column(db.String(500)) # 流程名字 use_id = db.Column(db.Integer) # 用户id deploy_id = db.Column(db.Integer) # 部署的id user_name = db.Column(db.String(500)) # 用户名字 result_id = db.Column(db.Integer) # id status = db.Column(db.Integer, default=ACTIVE) log_type = db.Column(db.Integer) # 日志类型
class Review(EntityModel): ACTIVE = 0 DISABLE = 1 title = db.Column(db.String(200)) # 标题 requirement_list = db.Column(db.String(200)) # 需求ID列表 project_id = db.Column(db.Integer) # 项目ID version_id = db.Column(db.Integer) # 版本ID creator = db.Column(db.Integer) # 创建人 modifier = db.Column(db.Integer) # 修改人 reviewer = db.Column(db.String(200)) # 参与人 status = db.Column(db.Integer, default=ACTIVE) # 状态 attach = db.Column(db.Text) # 附件 comment = db.Column(db.String(300)) # 备注 weight = db.Column(db.Integer, default=1) # 权重,仅作用于排序 review_status = db.Column(db.Integer) # 评审的状态 1-未评审,2-已评审
class PerformanceTest(EntityModel): ACTIVATE = 0 DISABLE = 1 VALUE_MAPS = { "setup_info": {"open": 1, "close": 2}, "base_app": {"WeChat": 1, "QQ": 2, "WPS": 3, "QJP": 4}, "key_type": {"9": 1, "26": 2} } performance_id = db.Column(db.Integer) # performance id # setup_info = db.Column(db.Integer) # 前置条件, 表情打开:1,表情关闭:2 # base_app = db.Column(db.Integer) # 场景(不同的app),微信:1,QQ:2,WPS: 3,趣键盘:4 # key_type = db.Column(db.Integer) # 26 : 1, 9 : 2 run_time = db.Column(db.Integer) # 输入运行时间 run_type = db.Column(db.String(500)) # 测试场景 # status of performance here cpu_average = db.Column(db.Float) # cpu 均值 cpu_top = db.Column(db.Float) # cpu 峰值 rss_average = db.Column(db.Float) # rss 均值 rss_top = db.Column(db.Float) # rss 峰值 heap_size_average = db.Column(db.Float) # heap_size 均值 heap_size_top = db.Column(db.Float) # heap_size 峰值 heap_alloc_average = db.Column(db.Float) # heap_alloc 均值 heap_alloc_top = db.Column(db.Float) # heap_alloc 峰值
class MonkeyDeviceUsing(EntityModel): ACTIVE = 0 DISABLE = 1 serial = db.Column(db.String(100)) # serial number status = db.Column(db.Integer, default=ACTIVE) # status using = db.Column(db.Integer, default=DISABLE) # not using
class PhoneBorrow(EntityModel): ACTIVE = 0 DISABLE = 1 phone_id = db.Column(db.Integer) # phone id user_list = db.Column(db.String(100)) # 申请用户列表, 以 ',' 分隔, 默认为空 confirm_userid = db.Column(db.Integer) # 需要确认申请人用户 ID, 0 为不需要确认
class MonkeyReport(EntityModel): ACTIVE = 0 DISABLE = 1 monkey_id = db.Column(db.Integer) # monkey id task_id = db.Column(db.Integer) # monkey device id report_type = db.Column(db.Integer, default=1) # report 类型,1 bug_report report_url = db.Column(db.String(1000)) # report url on oss
class InterfaceTask(EntityWithNameModel): ACTIVE = 0 DISABLE = 1 num = db.Column(db.Integer(), comment='任务序号') task_name = db.Column(db.String(64), comment='任务名称') task_config_time = db.Column(db.String(256), nullable=True, comment='cron表达式') set_id = db.Column(db.String(2048)) case_id = db.Column(db.String(2048)) task_type = db.Column(db.String(16)) task_to_email_address = db.Column(db.String(256), comment='收件人邮箱') task_send_email_address = db.Column(db.String(256), comment='发件人邮箱') email_password = db.Column(db.String(256), comment='发件人邮箱密码') status = db.Column(db.String(16), default=u'创建', comment='任务的运行状态,默认是创建') project_id = db.Column(db.String(16), nullable=True) delete_status = db.Column(db.Integer, default=ACTIVE) # 状态
class CreditRecord(EntityModel): ACTIVE = 0 DISABLE = 1 user_id = db.Column(db.Integer) # 用户 id score = db.Column(db.Integer) # 信用分 score_operation = db.Column(db.Integer) # 信用分操作 reason = db.Column(db.String(1000)) # 加减分数原因 status = db.Column(db.Integer, default=0) # 状态 0:可用,1:无效