42b7618f4634e6f97c59e73bcd27a5c1.png

什么是AutoLine开源平台

AutoLine开源平台是一个开源自动化测试解决方案,基于RobotFramework进行二次开发,支持RobotFramework几乎所有的库。

github地址:https://github.com/small99/AutoLine

码云地址:   https://gitee.com/lym51/AutoLine

数据库定义模型源码模块

所在目录为 AutoLine/app/models

545df773e08ae2fe2441bcc15b9953b0.png

定义的表为:

facd1724c3d7f9a2191cf0622fad151c.png

各表说明:

Permission - 权限表

Role - 角色表

User - 用户表

AnonymousUser - 匿名用户权限管理

AutoProduct - 产品表

AutoProject - 项目表

AutoSuite - 套件表

AutoCase - 用例表

AutoStep - 步骤表

AutoObject - 对象库套件表

AutoUserKeywordSuite - 关键字套件表

AutoUserkeyword -  关键字表

AutoElement - 元素表

AutoVar - 变量表

AutoTask - 任务表

初始化表后,我们用mysql的客户端看下,有哪些表被生成了:

2b32435faa5077dfddbe9155a636d462.png

请注意这里会多出了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源码分析之入口源码

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

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐