Example #1
0
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:低
Example #2
0
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:非高价值
Example #3
0
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)  # 访问次数
Example #4
0
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))  # 标签
Example #5
0
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))  # 备注
Example #6
0
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)  # 描述
Example #7
0
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)  # 状态
Example #8
0
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)
Example #9
0
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
Example #10
0
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
Example #11
0
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
Example #12
0
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)
Example #13
0
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
Example #14
0
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)  # 备注
Example #15
0
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 的描述
Example #16
0
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)
Example #17
0
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)  # 状态
Example #18
0
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))
Example #19
0
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
Example #20
0
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)  # 依赖
Example #21
0
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的正确率
Example #22
0
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))  # 节点名字
Example #23
0
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)  # 日志类型
Example #24
0
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-已评审
Example #25
0
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 峰值
Example #26
0
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
Example #27
0
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 为不需要确认
Example #28
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
Example #29
0
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)  # 状态
Example #30
0
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:无效