• Django(三)接口自动化平台HttpRunnerManager本地部署


    前言

    本章主要讲述HttpRunnerManager本地部署

    • 我这里本地是Windows,所以我就在windows下面搭建了

    环境:

    • mysql 5.7
    • django 2.0.3
    • python 3.6.8


    一、HttpRunnerManager简要介绍

    HttpRunnerManager:基于HttpRunner基础上搭建的一个Web版接口自动化测试平台,后端框架用的是Django

    • 作者目前虽然是已经没有维护的状态,但是其中一些功能还是比较完善的,我们其实是可以拉下来进行一个对应的学习的

    原作者在Readme文档里面其实也写的比较详细了,具体可查阅

    在这里插入图片描述



    二、本地部署

    1、下载源码包,并解压

    在这里插入图片描述


    2、下载项目相关依赖

    # cd 到具体目录下
    cd E:\HttpRunnerManager-master
    
    # 安装相关依赖包
    pip install -r requirements.txt -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com
    
    • 1
    • 2
    • 3
    • 4
    • 5

    在这里插入图片描述


    3、创建数据库

    在这里插入图片描述

    在这里插入图片描述


    4、迁移数据库,并创建超级管理员

    # 迁移数据库
    python manage.py makemigrations ApiManager
    python manage.py migrate
    
    • 1
    • 2
    • 3

    在这里插入图片描述
    在这里插入图片描述

    # 创建超级管理员
    python manage.py createsuperuser
    
    • 1
    • 2

    在这里插入图片描述


    5、运行项目访问

    • 能够正常访问即部署成功

    • 后台管理:http://ip地址:8000/admin/

    • 注册界面:http://ip地址:8000/api/register/

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述



    三、项目样式问题更改

    • 进入主页面后,发现样式有点问题,这个需要我们去更改一下源码
    {#    <link rel="stylesheet" href="http://cdn.amazeui.org/amazeui/2.7.2/css/amazeui.min.css"/>#}
        
    <link rel="stylesheet" href="http://cdn.bootcss.com/amazeui/2.7.2/css/amazeui.min.css"/>
    
    • 1
    • 2
    • 3

    在这里插入图片描述

    在这里插入图片描述



    四、rabbitMQ安装配置

    以上五步完成后,其实基本的功能都可以用了

    但是如果要使用HttpRunnerManager的定时任务发送邮件功能,那我们需要进行RabbitMQ消息队列的安装配置

    1、Erlang下载

    • 由于RabbitMQ服务端代码是使用并发式语言Erlang编写的,安装Rabbit MQ的前提是安装Erlang。
    • Erlang下载地址:https://www.erlang.org/downloads

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述


    2、Erlang环境变量配置

    2.1、新增ERLANG_HOME环境变量

    • 变量名称:ERLANG_HOME
    • 变量路径:E:\Erlang OTP(你自己安装到的盘)

    在这里插入图片描述


    2.2、Path中配置

    • 变量名称:Path
    • 变量路径:%ERLANG_HOME%\bin

    在这里插入图片描述


    2.3、验证环境

    在这里插入图片描述


    3、rabbit MQ 下载

    3.1、rabbit MQ 安装

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述


    3.2、RabbitMQ-Plugins 安装

    # cd到你自己的本地rabbitmq/sbin目录
    cd E:\RabbitMQ Server\rabbitmq_server-3.10.7\sbin
    # 安装rabbitmq-plugins
    rabbitmq-plugins enable rabbitmq_management
    
    • 1
    • 2
    • 3
    • 4

    在这里插入图片描述


    3.3、运行RabbitMQ

    • 访问:http://localhost:15672/
    • 用户名及密码默认:guest

    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述


    4、rabbit MQ 配置

    在这里插入图片描述

    djcelery.setup_loader()
    CELERY_ENABLE_UTC = True
    CELERY_TIMEZONE = 'Asia/Shanghai'
    
    # BROKER_URL = 'amqp://dev:zwc123@192.168.91.45:5672//' if DEBUG else 'amqp://dev:zwc123@192.168.91.45:5672//'
    # 1、更改为你本地的rabbitmq服务地址
    BROKER_URL = 'amqp://guest:guest@127.0.0.1:15672//'  # 127.0.0.1即为rabbitmq-server所在服务器ip地址
    
    CELERYBEAT_SCHEDULER = 'djcelery.schedulers.DatabaseScheduler'
    CELERY_RESULT_BACKEND = 'djcelery.backends.database:DatabaseBackend'
    CELERY_ACCEPT_CONTENT = ['application/json']
    CELERY_TASK_SERIALIZER = 'json'
    CELERY_RESULT_SERIALIZER = 'json'
    
    CELERY_TASK_RESULT_EXPIRES = 7200  # celery任务执行结果的超时时间,
    CELERYD_CONCURRENCY = 1 if DEBUG else 10  # celery worker的并发数 也是命令行-c指定的数目 根据服务器配置实际更改 一般25即可
    CELERYD_MAX_TASKS_PER_CHILD = 100  # 每个worker执行了多少任务就会死掉,我建议数量可以大一些,比如200
    
    # EMAIL_SEND_USERNAME = 'quanwang.yin@hstong.com'  # 定时任务报告发送邮箱,支持163,qq,sina,企业qq邮箱等,注意需要开通smtp服务
    # 2、更改为你自己的邮箱及授权码
    EMAIL_SEND_USERNAME = '739313988@qq.com'  # 定时任务报告发送邮箱,支持163,qq,sina,企业qq邮箱等,注意需要开通smtp服务
    EMAIL_SEND_PASSWORD = '授权码'  # 邮箱授权码
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22


    五、定时任务配置

    1、正常启动

    # 启动worker
    python manage.py celery -A HttpRunnerManager worker --loglevel=info  
    
    # 启动定时任务监听器
    python manage.py celery beat --loglevel=info 
    
    # 启动任务监控后台
    celery flower 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    在这里插入图片描述

    在这里插入图片描述


    2、任务启动相关问题解决

    2.1、问题一、TypeError: can only concatenate tuple (not “NoneType”) to tuple

    • 原因:celery和Django-celery版本不兼容问题
    • 解决:下载对应兼容的版本

    在这里插入图片描述

    pip install celery==3.1.15
    
    pip install django-celery == 3.2.2
    
    • 1
    • 2
    • 3

    2.2、问题二、AttributeError: module ‘tornado.web’ has no attribute ‘asynchronous’

    • 原因:tornado6.1版本太高,需降级兼容

    • 解决:降级tornado

    在这里插入图片描述

    pip install tornado==5.1.1
    
    • 1

    在这里插入图片描述


    2.3、问题三、 ERROR/MainProcess] consumer: Cannot connect to amqp://guest:**@127.0.0.1:15672//: Socket closed

    • 问题描述: 本地Rabbitmq服务已连接,但是启动worker显示连接不上

    • 原因: celery版本问题导致,RabbitMQ版本与celery版本存在不兼容。目前:rabbitmq:3.10.7 、celery:3.1.15

    • 解决: 可选择降级rabbitmq
      rabbit MQ:3.6.10、celery:3.1.26.post2

    在这里插入图片描述



    六、qq邮箱配置

    • 注意:password是邮箱授权码

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

  • 相关阅读:
    米家竞品分析
    七月集训(6)滑动窗口+动态规划
    0077__浅析C++临时对象的产生相关问题
    JavaScript学习(四)——轮播图的实现
    创建者模式(Builder Pattern):构造复杂对象的通用解决方案
    怎样判断磁场力方向
    IOC操作bean管理XML方式(注入空值和特殊符号)
    阿里面试失败后,一气之下我图解了Java中18把锁
    GAMES202 Real-time Environment Mapping
    Java配置24-gitlab分支管理
  • 原文地址:https://blog.csdn.net/Makasa/article/details/126150008