暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

AutoLine源码分析之数据库模型

开源优测 2018-07-16
291

什么是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源码分析之入口源码


动动手指,点赞留言👍👍👍

文章转载自开源优测,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论