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 RequirementBindCase(EntityModel): ACTIVE = 0 DISABLE = 1 requirement_id = db.Column(db.Integer) # 需求 ID case_id = db.Column(db.Integer) # 用例 ID status = db.Column(db.Integer, default=ACTIVE) # 状态
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 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 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 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 Message(Mixin): UNREAD = 0 READ = 1 DISABLE = 2 rec_id = db.Column(db.Integer) content_id = db.Column(db.Integer) status = db.Column(db.Integer)
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 Module(EntityWithNameModel): ACTIVE = 0 DISABLE = 1 project_id = db.Column(db.Integer, nullable=False) description = db.Column(db.Text()) # 描述 weight = db.Column(db.Integer, default=1) # 权重 status = db.Column(db.Integer, default=ACTIVE) # 状态 parent_id = db.Column(db.Integer, nullable=True) # 二级
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 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:无效
class MonkeyErrorLog(EntityModel): ACTIVE = 0 DISABLE = 1 monkey_id = db.Column(db.Integer) # monkey id task_id = db.Column(db.Integer) # monkey device id error_type = db.Column(db.String(100)) # error log 类型 error_message = db.Column(db.TEXT) # error message error_count = db.Column(db.Integer) # error show count in test
class PerformanceTestLog(EntityModel): ACTIVATE = 0 DISABLE = 1 performance_test_id = db.Column(db.Integer) # performance test id cpu = db.Column(db.Float) # cpu 实时数据 rss = db.Column(db.Float) # rss 实时数据 heap_size = db.Column(db.Float) # heap size 实时数据 heap_alloc = db.Column(db.Float) # heap alloc 实时数据
class InterfaceModule(EntityWithNameModel): ACTIVE = 0 DISABLE = 1 project_id = db.Column(db.Integer, nullable=False) name = db.Column(db.String(64), nullable=True, comment='接口模块') num = db.Column(db.Integer(), nullable=True, comment='模块序号') weight = db.Column(db.Integer, default=1) # 权重 status = db.Column(db.Integer, default=ACTIVE) # 状态
class InterfaceCaseSet(EntityWithNameModel): ACTIVE = 0 DISABLE = 1 num = db.Column(db.Integer(), nullable=True, comment='用例集合序号') name = db.Column(db.String(256), nullable=True, comment='用例集名称') project_id = db.Column(db.Integer, comment='所属的项目id') # cases = db.relationship('Case', order_by='Case.num.asc()', lazy='dynamic') status = db.Column(db.Integer, default=ACTIVE) # 状态
class Feedback(EntityModel): ACTIVE = 0 DISABLE = 1 contact = db.Column(db.String(200)) # 联系方式 creator = db.Column(db.Integer) # 创建人 status = db.Column(db.Integer, default=ACTIVE) # 反馈状态 comment = db.Column(db.Text()) # 备注 weight = db.Column(db.Integer, default=1) # 权重,仅作用于排序
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 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 Credit(EntityModel): ACTIVE = 0 DISABLE = 1 CREDIT_DATE = 33 CREDIT_SCORE_INIT = 100 CREDIT_ADD_ONCE = 1 CREDIT_SUB_ONCE = -1 user_id = db.Column(db.Integer) # 用户 id score = db.Column(db.Integer, default=100) # 信用分 status = db.Column(db.Integer, default=0) # 状态 0:可用,1:无效
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 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 MonkeyPackage(EntityModel): ACTIVE = 0 DISABLE = 1 PACKAGE_TYPE = {'monkey': 1, 'performance': 2} name = db.Column(db.String(100)) # package name package_name = db.Column(db.String(100)) # android package name oss_url = db.Column(db.String(200)) # package oss url picture = db.Column(db.Text) # package picture version = db.Column(db.String(200)) # picture url default_activity = db.Column(db.String(100)) # default activity user_id = db.Column(db.Integer) # upload user id status = db.Column(db.Integer, default=ACTIVE) # package status size = db.Column(db.String(200)) # package size test_type = db.Column(db.Integer) # test type : monkey=1,performance=2
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 DataShowFields(EntityModel): ACTIVE = 0 DISABLE = 1 DATA_MAP = { 1: "数据来源", 2: "手机类型", 3: "apk 版本", 4: "内核版本", 5: "系统版本", 6: "词库版本", 7: "语料库版本", } data_type = db.Column(db.Integer) # 数据类型 data_value = db.Column(db.String(100)) # 数据值
class User(EntityWithNameModel): ACTIVE = 0 DISABLE = 1 nickname = db.Column(db.String(100), nullable=True) wx_userid = db.Column(db.String(200)) password = db.Column(db.String(100), nullable=False) 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) ext = db.Column(db.Text()) picture = db.Column(db.String(300), nullable=True)
class MonkeyPackage(EntityModel): ACTIVE = 0 DISABLE = 1 name = db.Column(db.String(100)) # package name package_name = db.Column(db.String(100)) # android package name oss_url = db.Column(db.String(200)) # package oss url picture = db.Column(db.Text) # package picture version = db.Column(db.String(200)) # picture url default_activity = db.Column(db.String(100)) # default activity user_id = db.Column(db.Integer) # upload user id status = db.Column(db.Integer, default=ACTIVE) # package status size = db.Column(db.String(200)) # package size
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 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 reference_nums = db.Column(db.Integer, default=0) # 被引用次数,只有为0时才能被删除 modifier = db.Column(db.String(300)) # 配置修改人
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 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) # 访问次数