前言

本章主要讲述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

在这里插入图片描述


3、创建数据库

在这里插入图片描述

在这里插入图片描述


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

# 迁移数据库
python manage.py makemigrations ApiManager
python manage.py migrate

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

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

在这里插入图片描述


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"/>

在这里插入图片描述

在这里插入图片描述



四、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

在这里插入图片描述


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、正常启动

# 启动worker
python manage.py celery -A HttpRunnerManager worker --loglevel=info  

# 启动定时任务监听器
python manage.py celery beat --loglevel=info 

# 启动任务监控后台
celery flower 

在这里插入图片描述

在这里插入图片描述


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

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

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

  • 解决:降级tornado

在这里插入图片描述

pip install tornado==5.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是邮箱授权码

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

更多推荐