AutoLine源码分析之入口源码_python

什么是AutoLine开源平台

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

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

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

入口模块

AutoLine/manage.py

AutoLine源码分析之入口源码_linux_02

manage.py源码结构

AutoLine源码分析之入口源码_python_03

check_python_version()   检查本地python版本
check_version()   检查AutoLine版本
start_trigger()      启动调度服务
output_logo()     在控制台输出AutoLine字符logo
app     flask全局唯一content
manager   全局的Manager对象
migrate    全局的migrate对象
make_shell_context()  定义命令
deploy()   用于AutoLine初始化发布命令
keyword()  用于生成robotframework关键字文件

主程序

下面的代码为manage.py的主入口程序,也是AutoLine启动时的主入口程序,即main函数

if __name__ == '__main__':
    # 检查本地AutoLine服务所在的python环境
    check_python_version()
    # 检查AutoLine版本是否为最新的
    check_version()
    # 判断是否为运行模式,是则启动调度服务
    if "runserver" in sys.argv:
        start_trigger()
    # 输出字符串格式的logo
    output_logo()
    # 启动AutoLine服务
    manager.run()

Python版本检测

def check_python_version():
    # 3为主版本,4为次版本
    if sys.version_info < (3, 4):
        print("请安装Python3.4及以上版本")
    exit(0

)


AutoLine版本检查

def check_version():
    # 读本地版本号
    f = codecs.open('version.txt', 'r')
    version = f.readline()
    # 从gitee,即码云服务读取远程版本号
    s = requests.Session()
    r_version = s.get("https://gitee.com/lym51/AutoLine/raw/master/version.txt").text
    # 比较版本, 提示版本比较结果
    if version != r_version:
        print("*" * 25)
        print("本地版本:v%s" % version)
        print("github版本: v%s" % r_version)
        print("AutoLine开源平台代码已有更新,请到下面的地址更新代码:")
        print("下载最新代码,直接覆盖本地即可")
        print("https://github.com/small99/AutoLine")
        print("*" * 25)
        exit(0)
    f.close()

调度服务

def start_trigger():
        # 调度对象
        app.config["TRIGGER"] = Trigger(app)
        app.config["TRIGGER"].setup()
        # 加载任务列表
        app.config["TRIGGER"].load_job_list()
        # 启动调度
        app.config["TRIGGER"].start()


其他函数的源码这里就继续注释说明,请自行查阅源码即可。