前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >AutoLine源码分析之数据库模型

AutoLine源码分析之数据库模型

作者头像
苦叶子
发布2018-07-25 16:25:22
7750
发布2018-07-25 16:25:22
举报
文章被收录于专栏:开源优测
什么是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表进行源码分析:

代码语言:javascript
复制
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表达式,用于调度管理

以下四个字段则是为了记录项目创建人及创建时间和最后修改人及更改时间

代码语言:javascript
复制
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源码分析之入口源码

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-07-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 开源优测 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档