首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

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表进行源码分析:

classAutoProject(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())

其他的不累述了,通过字段名称可以轻易明白具体的含义

动动手指,点赞留言

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180716A0VBUG00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券