彭小盛

又一个WordPress站点

AutoLine源码分析之数据库模型-开源优测

AutoLine源码分析之数据库模型-开源优测
什么是AutoLine开源平台
AutoLine开源平台是一个开源自动化测试解决方案关林庙 ,基于RobotFramework进行二次开发,支持RobotFramework几乎所有的库。
github地址:https://github.com/small99/AutoLine
码云地址: https://gitee.com/lym51/AutoLine
数据库定义模型源码模块
所在目录为 AutoLine/app/models

定义的表为:

各表说明:
Permission - 权限表
Role - 角色表
User - 用户表
AnonymousUser - 匿名用户权限管理
AutoProduct - 产品表
AutoProject - 项目表
AutoSuite - 套件表
AutoCase - 用例表
AutoStep - 步骤表
AutoObject - 对象库套件表
AutoUserKeywordSuite - 关键字套件表
AutoUserkeyword - 关键字表
AutoElement - 元素表
AutoVar - 变量表
AutoTask - 任务表
初始化表后,我们用mysql的客户端看下,有哪些表被生成了:

请注意这里会多出了alembic_version和apscheduler_jobs表
其中alembic_version表用于数据库升级时的版本管理
apscheduler_jobs对应着调度管理
下面我们对AutoProject表进行源码分析:
class AutoProject(db.Model): """ 项目 """ __tablename__ = "auto_project" id = db.Column(db.Integer金震东 , primary_key=True) category = db.Column(db.String(64), index=True) product_id = db.Column(db.Integer) #product_id = db.Column(db.Integer, db.ForeignKey('auto_product.id')) name = db.Column(db.String(64), index=True) desc = db.Column(db.String(128), index=True) tags = db.Column(db.String(64), index=True) enable = db.Column(db.Boolean杀手蝴蝶梦, default=True, index=True) version = db.Column(db.String(32),吴春怡 index=True) cron = db.Column(db.Text) setup = db.Column(db.Text) teardown = db.Column(db.Text) create_author_id = db.Column(db.Integer被告不适格, db.ForeignKey('users.id')) create_timestamp = db.Column(db.DateTime, index=True, default=datetime.now()) update_author_id = db.Column(db.Integer张晓霈 , db.ForeignKey('users.id')) update_timestamp = db.Column(db.DateTime, index=True盐田易行港 , default=datetime.now())
注:
__tablename__ 定义表名
其他为对应的表字段龙丹驾校,例如 product_id 为AutoProject中项目所属的产品id赌神之神,为Integer类型,即整数类型
cron 为项目对应的cron表达式,用于调度管理
以下四个字段则是为了记录项目创建人及创建时间和最后修改人及更改时间
create_author_id = db.Column(db.Integer倾冷月小说, db.ForeignKey('users.id')) create_timestamp = db.Column(db.DateTime, index=True, default=datetime.now()) update_author_id = db.Column(db.Integer, db.ForeignKey('users.id')) update_timestamp = db.Column(db.DateTime圆白菜炒饼, index=True, default=datetime.now())
其他的不累述了,通过字段名称可以轻易明白具体的含义
AutoLine源码分析之开始篇
AutoLine源码分析之入口源码
动动手指,点赞留言