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

前言

本章主要讲述HttpRunnerManager本地部署

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

环境:

  • mysql 5.7
  • django 2.0.3
  • python 3.6.8


一、HttpRunnerManager简要介绍

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

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

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

Django(三)接口自动化平台HttpRunnerManager(1)本地部署_第1张图片



二、本地部署

  • HttpRunnerManager源码地址:https://github.com/HttpRunner/HttpRunnerManager

1、下载源码包,并解压

Django(三)接口自动化平台HttpRunnerManager(1)本地部署_第2张图片


2、下载项目相关依赖

# cd 到具体目录下
cd E:\HttpRunnerManager-master

# 安装相关依赖包
pip install -r requirements.txt -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com

Django(三)接口自动化平台HttpRunnerManager(1)本地部署_第3张图片


3、创建数据库

Django(三)接口自动化平台HttpRunnerManager(1)本地部署_第4张图片

Django(三)接口自动化平台HttpRunnerManager(1)本地部署_第5张图片


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

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

Django(三)接口自动化平台HttpRunnerManager(1)本地部署_第6张图片
Django(三)接口自动化平台HttpRunnerManager(1)本地部署_第7张图片

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

Django(三)接口自动化平台HttpRunnerManager(1)本地部署_第8张图片


5、运行项目访问

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

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

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

Django(三)接口自动化平台HttpRunnerManager(1)本地部署_第9张图片

Django(三)接口自动化平台HttpRunnerManager(1)本地部署_第10张图片

Django(三)接口自动化平台HttpRunnerManager(1)本地部署_第11张图片

Django(三)接口自动化平台HttpRunnerManager(1)本地部署_第12张图片

Django(三)接口自动化平台HttpRunnerManager(1)本地部署_第13张图片

Django(三)接口自动化平台HttpRunnerManager(1)本地部署_第14张图片



三、项目样式问题更改

  • 进入主页面后,发现样式有点问题,这个需要我们去更改一下源码
{#    <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"/>

Django(三)接口自动化平台HttpRunnerManager(1)本地部署_第15张图片

Django(三)接口自动化平台HttpRunnerManager(1)本地部署_第16张图片



四、rabbitMQ安装配置

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

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

1、Erlang下载

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

Django(三)接口自动化平台HttpRunnerManager(1)本地部署_第17张图片

Django(三)接口自动化平台HttpRunnerManager(1)本地部署_第18张图片

Django(三)接口自动化平台HttpRunnerManager(1)本地部署_第19张图片

Django(三)接口自动化平台HttpRunnerManager(1)本地部署_第20张图片


2、Erlang环境变量配置

2.1、新增ERLANG_HOME环境变量

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

Django(三)接口自动化平台HttpRunnerManager(1)本地部署_第21张图片


2.2、Path中配置

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

Django(三)接口自动化平台HttpRunnerManager(1)本地部署_第22张图片


2.3、验证环境

Django(三)接口自动化平台HttpRunnerManager(1)本地部署_第23张图片


3、rabbit MQ 下载

3.1、rabbit MQ 安装

  • RabbitMQ下载地址:http://www.rabbitmq.com/download.html

Django(三)接口自动化平台HttpRunnerManager(1)本地部署_第24张图片

Django(三)接口自动化平台HttpRunnerManager(1)本地部署_第25张图片

Django(三)接口自动化平台HttpRunnerManager(1)本地部署_第26张图片

Django(三)接口自动化平台HttpRunnerManager(1)本地部署_第27张图片


3.2、RabbitMQ-Plugins 安装

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

Django(三)接口自动化平台HttpRunnerManager(1)本地部署_第28张图片


3.3、运行RabbitMQ

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

Django(三)接口自动化平台HttpRunnerManager(1)本地部署_第29张图片

Django(三)接口自动化平台HttpRunnerManager(1)本地部署_第30张图片
Django(三)接口自动化平台HttpRunnerManager(1)本地部署_第31张图片


4、rabbit MQ 配置

Django(三)接口自动化平台HttpRunnerManager(1)本地部署_第32张图片

djcelery.setup_loader()
CELERY_ENABLE_UTC = True
CELERY_TIMEZONE = 'Asia/Shanghai'

# BROKER_URL = 'amqp://dev:[email protected]:5672//' if DEBUG else 'amqp://dev:[email protected]: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 = '[email protected]'  # 定时任务报告发送邮箱,支持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 

Django(三)接口自动化平台HttpRunnerManager(1)本地部署_第33张图片

Django(三)接口自动化平台HttpRunnerManager(1)本地部署_第34张图片


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

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

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

Django(三)接口自动化平台HttpRunnerManager(1)本地部署_第35张图片

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

Django(三)接口自动化平台HttpRunnerManager(1)本地部署_第36张图片

pip install tornado==5.1.1

Django(三)接口自动化平台HttpRunnerManager(1)本地部署_第37张图片


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

Django(三)接口自动化平台HttpRunnerManager(1)本地部署_第38张图片



六、qq邮箱配置

  • 注意:password是邮箱授权码

Django(三)接口自动化平台HttpRunnerManager(1)本地部署_第39张图片

Django(三)接口自动化平台HttpRunnerManager(1)本地部署_第40张图片

Django(三)接口自动化平台HttpRunnerManager(1)本地部署_第41张图片

Django(三)接口自动化平台HttpRunnerManager(1)本地部署_第42张图片

Django(三)接口自动化平台HttpRunnerManager(1)本地部署_第43张图片

你可能感兴趣的:(Django,django,python)