提交所有代码到 qiaoxinjiu 分支

This commit is contained in:
qiaoxinjiu
2026-05-11 14:29:16 +08:00
parent 01a4ac8ea1
commit 2fea5adb44
59 changed files with 4957 additions and 1603 deletions

View File

@@ -0,0 +1,70 @@
from sqlalchemy import BigInteger, Column, Integer, SmallInteger, String, TIMESTAMP, Text, text
from sqlalchemy.dialects.postgresql import JSONB
from sqlalchemy.ext.declarative import declarative_base
from common.sqlSession import to_dict
Base = declarative_base()
Base.to_dict = to_dict
class AutoExecution(Base):
__tablename__ = 'auto_execution'
id = Column(BigInteger, primary_key=True, autoincrement=True, comment='id')
execution_no = Column(String(64), nullable=False, unique=True, comment='执行编号')
trigger_type = Column(SmallInteger, nullable=False, comment='1:单条 2:计划')
project_id = Column(BigInteger, nullable=False, comment='项目id')
plan_id = Column(BigInteger, comment='计划id')
plan_round_no = Column(Integer, comment='计划轮次')
source_case_id = Column(BigInteger, comment='单条执行来源case_id')
env_code = Column(String(32), nullable=False, comment='环境编码')
run_mode = Column(SmallInteger, default=1, comment='1:串行 2:并行')
status = Column(SmallInteger, nullable=False, default=0, comment='0:待触发 1:触发中 2:排队中 3:执行中 4:成功 5:失败 6:已取消 7:触发失败 8:回调异常')
jenkins_job_name = Column(String(128), comment='Jenkins任务名称')
jenkins_queue_id = Column(BigInteger, comment='Jenkins队列id')
jenkins_build_number = Column(BigInteger, comment='Jenkins构建号')
jenkins_build_url = Column(String(512), comment='Jenkins构建地址')
console_url = Column(String(512), comment='控制台地址')
report_url = Column(String(512), comment='报告地址')
total_count = Column(Integer, default=0, comment='总数')
pending_count = Column(Integer, default=0, comment='待执行数')
running_count = Column(Integer, default=0, comment='执行中数')
passed_count = Column(Integer, default=0, comment='通过数')
failed_count = Column(Integer, default=0, comment='失败数')
blocked_count = Column(Integer, default=0, comment='阻塞数')
skipped_count = Column(Integer, default=0, comment='跳过数')
not_found_count = Column(Integer, default=0, comment='未找到数')
trigger_by = Column(BigInteger, comment='触发人')
trigger_source = Column(String(32), server_default=text("'platform'"), comment='触发来源')
trigger_message = Column(Text, comment='触发消息/失败原因')
start_time = Column(TIMESTAMP, comment='开始时间')
end_time = Column(TIMESTAMP, comment='结束时间')
duration_seconds = Column(Integer, comment='耗时秒数')
callback_token = Column(String(128), comment='回调token')
ext = Column(JSONB, server_default=text("'{}'::jsonb"), comment='扩展字段')
created_time = Column(TIMESTAMP, server_default=text('CURRENT_TIMESTAMP'), nullable=True, comment='创建时间')
updated_time = Column(TIMESTAMP, server_default=text('CURRENT_TIMESTAMP'), server_onupdate=text('CURRENT_TIMESTAMP'), nullable=True, comment='修改时间')
class AutoExecutionCase(Base):
__tablename__ = 'auto_execution_case'
id = Column(BigInteger, primary_key=True, autoincrement=True, comment='id')
execution_id = Column(BigInteger, nullable=False, comment='执行主单id')
plan_case_id = Column(BigInteger, comment='计划用例id')
case_id = Column(BigInteger, nullable=False, comment='用例id')
case_key = Column(String(64), comment='用例编号快照')
case_title = Column(String(255), comment='用例标题快照')
run_order = Column(Integer, default=0, comment='执行顺序')
status = Column(SmallInteger, nullable=False, default=0, comment='0:待执行 1:执行中 2:通过 3:失败 4:阻塞 5:跳过 6:未找到 7:已取消')
pytest_nodeid = Column(String(512), comment='pytest节点标识')
result_message = Column(Text, comment='结果摘要')
error_message = Column(Text, comment='错误信息')
stack_trace = Column(Text, comment='堆栈')
report_url = Column(String(512), comment='单用例报告地址')
duration_seconds = Column(Integer, comment='耗时秒数')
started_time = Column(TIMESTAMP, comment='开始时间')
finished_time = Column(TIMESTAMP, comment='结束时间')
retry_count = Column(Integer, default=0, comment='重试次数')
ext = Column(JSONB, server_default=text("'{}'::jsonb"), comment='扩展字段')
created_time = Column(TIMESTAMP, server_default=text('CURRENT_TIMESTAMP'), nullable=True, comment='创建时间')
updated_time = Column(TIMESTAMP, server_default=text('CURRENT_TIMESTAMP'), server_onupdate=text('CURRENT_TIMESTAMP'), nullable=True, comment='修改时间')

View File

@@ -20,6 +20,8 @@ class TestPlan(Base):
owner_id = Column(BigInteger, comment='负责人')
status = Column(SmallInteger, default=0, comment='0:草稿 1:进行中 2:已完成 3:已归档 4已通过')
environment_id = Column(BigInteger, comment='环境id')
jenkins_url = Column(String(512), comment='Jenkins构建URL')
is_auto = Column(SmallInteger, default=0, comment='是否自动化测试计划0-否1-是')
is_delete = Column(Integer, default=0, comment='0未删除1已删除')
created_time = Column(TIMESTAMP, server_default=text('CURRENT_TIMESTAMP'), nullable=True, comment='创建时间')
updated_time = Column(TIMESTAMP, server_default=text('CURRENT_TIMESTAMP'), server_onupdate=text('CURRENT_TIMESTAMP'), nullable=True, comment='修改时间')