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

原文发布于微信公众号 - 开源优测(DeepTest)

原文发表时间:2018-07-16

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏后端技术探索

mysql5.7强势支持原生json格式!!全面掌握

mysql一直是如此优秀,但是随着最近一些nosql的强劲发展,甚为关系型数据库的mysql,也不例外在某些层面稍有逊色。其中,是否支持json格式是最常被用来...

912
来自专栏猿人谷

mybatis调用视图和存储过程

    现在的项目是以Mybatis作为O/R映射框架,确实好用,也非常方便项目的开发。MyBatis支持普通sql的查询、视图的查询、存储过程调用,是一种非常...

2805
来自专栏黑泽君的专栏

day44_Oracle学习笔记_03

先去Oracle官网去下载最新版本的sqldeveloper,下载地址:https://www.oracle.com/technetwork/developer...

982
来自专栏企鹅号快讯

浅谈数据库Join的实现原理

Join的实现算法有三种,分别是Nested Loops Join, Merge Join, Hash Join。 DB2、SQL Server和Oracle都...

35810
来自专栏运维技术迷

连仕彤博客[Python笔记] Python 一次性替换多个字符

在一个字符串中,一次性替换多个字符串,可以使用字符串的replace函数来处理(目前我想到的是这个方法,大神请指教!) 要求 把INSERT语句中的riqi、b...

3565
来自专栏Python

Django---ORM操作大全

前言 Django框架功能齐全自带数据库操作功能,本文主要介绍Django的ORM框架 到目前为止,当我们的程序涉及到数据库相关操作时,我们一般都会这么搞:...

90110
来自专栏加米谷大数据

Hive的数据类型

本文介绍hive的数据类型,数据模型以及文件存储格式。这些知识大家可以类比关系数据库的相关知识。

1342
来自专栏分布式系统进阶

FBString分析与使用FBString简介

简单来说,使用了三层存储策略+内存分配策略+大小端支持,特别是配合使用 jemalloc, 减少磁盘碎片,加快并发下的分配速度和性能。

1992
来自专栏崔庆才的专栏

Python操作MySQL存储,这些你都会了吗?

3755
来自专栏禹都一只猫博客

Python的flask:models.py来创建mysql数据库

1K9

扫码关注云+社区

领取腾讯云代金券