Exemple #1
0
class User(UserMixin, db.Model):
    __tablename__ = 'user'
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    telephone = db.Column(db.String(100), nullable=False)
    username = db.Column(db.String(100), nullable=False)
    password = db.Column(db.String(100), nullable=False)
    role = db.Column(db.String(100))
    status = db.Column(db.SmallInteger, nullable=False, default=1, doc="用户状态,0-禁用,1-启动")
    create_datetime = db.Column(db.DateTime, server_default=db.text("CURRENT_TIMESTAMP"), doc="创建时间")
    update_datetime = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP"), doc="更新时间")

    def __init__(self, *args, **kwargs):
        self.telephone = kwargs.get('telephone')
        self.username = kwargs.get('username')
        self.password = generate_password_hash(kwargs.get('password'))  # 加密密码
        self.role = kwargs.get('role')

    def __repr__(self):
        """Define the string format for instance of User."""
        return "<Model User `{}`>".format(self.username)

    def check_password(self, raw_password):
        result = check_password_hash(self.password, raw_password)
        return result

    def get_id(self, life_time=None):
        "生成token"
        key = current_app.config.get("SECRET_KEY", "The securet key by C~C!")  # current app 拿不到
        s = URLSafeSerializer(key)
        browser_id = create_browser_id()
        if not life_time:
            life_time = current_app.config.get("TOKEN_LIFETIME")
        token = s.dumps([self.id, self.username, self.password, browser_id, life_time])

        return token
Exemple #2
0
class TestCaseStep(db.Model):
    __tablename__ = 'test_case_step'
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    rank = db.Column(db.Integer, nullable=False, comment="步骤")
    title = db.Column(db.String(100), comment="用例步骤名称")
    action_id = db.Column(db.Integer,
                          db.ForeignKey('action.id'),
                          nullable=False,
                          comment="执行动作")
    skip = db.Column(db.Integer, nullable=False, comment="是否略过")
    take_screen_shot = db.Column(db.Integer,
                                 default=0,
                                 nullable=False,
                                 comment="是否截图")
    wait_time = db.Column(db.Integer,
                          default=0,
                          nullable=False,
                          comment="用例等待时间")
    input_key = db.Column(db.String(100), comment="输入参数名称")
    output_key = db.Column(db.String(100), comment="输出参数名称")
    test_case_id = db.Column(db.Integer,
                             db.ForeignKey('test_case.id'),
                             comment="所属用例ID")
    create_datetime = db.Column(db.DateTime,
                                server_default=db.text("CURRENT_TIMESTAMP"),
                                comment="创建时间")
    update_datetime = db.Column(
        db.DateTime,
        nullable=False,
        server_default=db.text(
            "CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP"),
        comment="更新时间")
    action = db.relationship('Action', backref=db.backref('step'))
Exemple #3
0
class TestCaseSuitLog(db.Model):
    __tablename__ = 'test_case_suit_log'
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    test_log_id = db.Column(db.Integer,
                            db.ForeignKey('test_log.id'),
                            comment="所属测试日志ID")
    test_case_suit_id = db.Column(db.Integer,
                                  db.ForeignKey('test_case_suit.id'),
                                  comment="测试集ID")
    test_case_suit_title = db.Column(db.String(100),
                                     nullable=False,
                                     comment="测试集标题")
    run_test_result = db.Column(db.Integer,
                                nullable=False,
                                comment="测试执行结果:0失败,1成功")
    run_test_suit_start_time = db.Column(
        db.DateTime,
        server_default=db.text("CURRENT_TIMESTAMP"),
        comment="测试集执行开始时间")
    run_test_suit_end_time = db.Column(
        db.DateTime,
        nullable=False,
        server_default=db.text(
            "CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP"),
        comment="测试集执行结束时间")
    run_test_suit_times = db.Column(db.String(100),
                                    default=0,
                                    comment="测试集执行用时")

    test_case_log = db.relationship('TestCaseLog',
                                    order_by='TestCaseLog.action_start_time')
Exemple #4
0
class File_level(db.Model):
    __tablename__ = 'file_level'
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    project_id = db.Column(db.Integer, db.ForeignKey('project.id'), nullable=False, )
    pro_id = db.Column(db.String(100), nullable=False)
    label = db.Column(db.String(100))
    create_datetime = db.Column(db.DateTime, server_default=db.text("CURRENT_TIMESTAMP"), doc="创建时间")
    update_datetime = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP"), doc="更新时间")
    project = db.relationship('Project', backref=db.backref('file_level', order_by=create_datetime.desc()))
Exemple #5
0
class Project(db.Model):
    __tablename__ = 'project'
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    name = db.Column(db.String(100), nullable=False)
    env_id = db.Column(db.Integer)
    author_id = db.Column(db.Integer, db.ForeignKey('user.id'))
    create_datetime = db.Column(db.DateTime, server_default=db.text("CURRENT_TIMESTAMP"), doc="创建时间")
    update_datetime = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP"), doc="更新时间")
    author = db.relationship('User', backref=db.backref('project'))
Exemple #6
0
class Request_api(db.Model):
    __tablename__ = 'request_api'
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    req_name = db.Column(db.String(100), nullable=False)
    project_id = db.Column(db.Integer, db.ForeignKey('project.id'), nullable=False, )
    file_level_id = db.Column(db.Integer, db.ForeignKey('file_level.id'), nullable=False, )
    req_method = db.Column(db.String(100), nullable=False)
    req_url = db.Column(db.String(100), nullable=False)
    req_data = db.Column(db.Text)
    create_datetime = db.Column(db.DateTime, server_default=db.text("CURRENT_TIMESTAMP"), doc="创建时间")
    update_datetime = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP"), doc="更新时间")
    # 在Req_api可以通过project(关系名称)关联到project表根据project_id, 同时在Project表也可以通过api,关联到Comment表
    project = db.relationship('Project', backref=db.backref('request_api', order_by=create_datetime.desc()))
    file_level = db.relationship('File_level', backref=db.backref('request_api', order_by=create_datetime.desc()))
Exemple #7
0
class Element(db.Model):
    __tablename__ = 'element'
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    title = db.Column(db.String(100), nullable=False, comment="目录名")
    type_for_android = db.Column(db.String(30), comment="Android查找方式")
    loc_for_android = db.Column(db.String(200), comment="Android信息描述")
    type_for_ios = db.Column(db.String(30), comment="IOS查找方式")
    loc_for_ios = db.Column(db.String(200), comment="IOS信息描述")
    page_id = db.Column(db.Integer, db.ForeignKey('page.id'), comment="所属页面ID")
    create_datetime = db.Column(db.DateTime,
                                server_default=db.text("CURRENT_TIMESTAMP"),
                                comment="创建时间")
    update_datetime = db.Column(
        db.DateTime,
        nullable=False,
        server_default=db.text(
            "CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP"),
        comment="更新时间")
    page = db.relationship('Page', backref=db.backref('element'))
Exemple #8
0
class Project(db.Model):
    __tablename__ = 'project'
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    title = db.Column(db.String(100), nullable=False, comment="项目名")
    env_id = db.Column(db.Integer)
    author_id = db.Column(db.Integer, db.ForeignKey('user.id'), comment="项目名")
    is_del = db.Column(db.Integer, nullable=False, default=0, comment="是否已删除")
    create_datetime = db.Column(db.DateTime,
                                server_default=db.text("CURRENT_TIMESTAMP"),
                                comment="创建时间")
    update_datetime = db.Column(
        db.DateTime,
        nullable=False,
        server_default=db.text(
            "CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP"),
        comment="更新时间")
    author = db.relationship('User', backref=db.backref('project'))
    test_case = db.relationship('TestCase', backref=db.backref('project'))
    test_case_suit = db.relationship('TestCaseSuit',
                                     backref=db.backref('project'))
    page = db.relationship('Page', backref=db.backref('project'))
Exemple #9
0
class FunctionInfo(db.Model):
    __tablename__ = 'function_info'
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    title = db.Column(db.String(100),
                      nullable=False,
                      unique=True,
                      comment="方法名")
    fun_title = db.Column(db.String(100),
                          nullable=False,
                          unique=True,
                          comment="方法名")
    type = db.Column(db.Integer, comment="所属系统:0通用,1:Android,2:IOS,3:PC")
    description = db.Column(db.String(100), comment="方法说明")
    create_datetime = db.Column(db.DateTime,
                                server_default=db.text("CURRENT_TIMESTAMP"),
                                comment="创建时间")
    update_datetime = db.Column(
        db.DateTime,
        nullable=False,
        server_default=db.text(
            "CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP"),
        comment="更新时间")
Exemple #10
0
class Action(db.Model):
    __tablename__ = 'action'
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    fun_id = db.Column(db.Integer,
                       db.ForeignKey('function_info.id'),
                       nullable=False,
                       comment="方法id")
    ele_id = db.Column(db.Integer,
                       db.ForeignKey('element.id'),
                       comment="所操作元素id")
    page_id = db.Column(db.Integer, db.ForeignKey('page.id'), comment="所属页面ID")
    create_datetime = db.Column(db.DateTime,
                                server_default=db.text("CURRENT_TIMESTAMP"),
                                comment="创建时间")
    update_datetime = db.Column(
        db.DateTime,
        nullable=False,
        server_default=db.text(
            "CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP"),
        comment="更新时间")
    fun = db.relationship('FunctionInfo')
    ele = db.relationship('Element')
Exemple #11
0
class Page(db.Model):
    __tablename__ = 'page'
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    title = db.Column(db.String(100), nullable=False, comment="页面名")
    project_id = db.Column(db.Integer,
                           db.ForeignKey('project.id'),
                           comment="项目id")
    parent_directory = db.Column(db.Integer,
                                 nullable=False,
                                 default=0,
                                 comment="父级目录ID")
    is_del = db.Column(db.Integer, nullable=False, default=0, comment="是否已删除")
    create_datetime = db.Column(db.DateTime,
                                server_default=db.text("CURRENT_TIMESTAMP"),
                                comment="创建时间")
    update_datetime = db.Column(
        db.DateTime,
        nullable=False,
        server_default=db.text(
            "CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP"),
        comment="更新时间")
    action = db.relationship('Action', backref=db.backref('page'))
Exemple #12
0
class TestSuitStep(db.Model):
    __tablename__ = 'test_suit_step'
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    rank = db.Column(db.Integer, nullable=False, comment="执行顺序")
    test_case_id = db.Column(db.Integer,
                             db.ForeignKey('test_case.id'),
                             nullable=False,
                             comment="用例")
    skip = db.Column(db.Integer, nullable=False, comment="是否略过")
    test_case_suit_id = db.Column(db.Integer,
                                  db.ForeignKey('test_case_suit.id'),
                                  comment="所属用例集ID")
    input_args = db.Column(db.Text, comment="输入参数对象")
    create_datetime = db.Column(db.DateTime,
                                server_default=db.text("CURRENT_TIMESTAMP"),
                                comment="创建时间")
    update_datetime = db.Column(
        db.DateTime,
        nullable=False,
        server_default=db.text(
            "CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP"),
        comment="更新时间")
    test_case = db.relationship('TestCase', backref=db.backref('suit'))
Exemple #13
0
class TestCaseSuit(db.Model):
    __tablename__ = 'test_case_suit'
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    title = db.Column(db.String(100), nullable=False, comment="用例集名")
    project_id = db.Column(db.Integer,
                           db.ForeignKey('project.id'),
                           comment="所属项目ID")
    is_del = db.Column(db.Integer, nullable=False, default=0, comment="是否已删除")
    parent_directory = db.Column(db.Integer,
                                 nullable=False,
                                 default=0,
                                 comment="父级目录ID")
    create_datetime = db.Column(db.DateTime,
                                server_default=db.text("CURRENT_TIMESTAMP"),
                                comment="创建时间")
    update_datetime = db.Column(
        db.DateTime,
        nullable=False,
        server_default=db.text(
            "CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP"),
        comment="更新时间")
    suit_step = db.relationship('TestSuitStep',
                                backref=db.backref('case_suit'),
                                order_by='TestSuitStep.rank')
Exemple #14
0
class TestLog(db.Model):
    __tablename__ = 'test_log'
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    equipment_id = db.Column(db.Integer, nullable=False, comment="设备ID")
    equipment_title = db.Column(db.String(100), nullable=False, comment="设备")
    equipment_args = db.Column(db.Text, comment="设备配置参数")
    run_test_result = db.Column(db.Integer,
                                default=0,
                                comment="测试执行结果:0失败,1成功")

    run_test_start_time = db.Column(
        db.DateTime,
        server_default=db.text("CURRENT_TIMESTAMP"),
        comment="测试执行开始时间")
    run_test_end_time = db.Column(
        db.DateTime,
        nullable=False,
        server_default=db.text(
            "CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP"),
        comment="测试执行结束时间")
    run_test_times = db.Column(db.String(100), default=0, comment="测试执行用时时间")

    test_case_suit_log = db.relationship(
        'TestCaseSuitLog', order_by='TestCaseSuitLog.run_test_suit_start_time')
Exemple #15
0
class EquipmentIncludeTesSuit(db.Model):
    __tablename__ = 'equipment_include_test_suit'
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    equipment_id = db.Column(db.Integer,
                             db.ForeignKey('equipment_management.id'),
                             nullable=False,
                             comment="设备ID")
    test_case_suit_id = db.Column(db.Integer,
                                  db.ForeignKey('test_case_suit.id'),
                                  comment="测试集ID")
    rank = db.Column(db.Integer, nullable=False, comment="执行顺序")
    update_datetime = db.Column(
        db.DateTime,
        nullable=False,
        server_default=db.text(
            "CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP"),
        comment="更新时间")

    test_case_suit = db.relationship('TestCaseSuit')