HttpRunnerManager自动化测试安装部署(CentOS)
HttpRunnerManager V2.0此项目是一个基于HttpRunner的接口自动化测试平台,同时HttpRunner 是一款面向 HTTP(S) 协议的通用测试框架,只需编写维护一份 YAML/JSON
脚本,即可实现自动化测试、性能测试、线上监控、持续集成等多种测试任务。
新版本主要增加了定时任务,异步执行,报告持久化、日志保存以及数据类型支持,QQ群欢迎提问:628448476。
本文将自行进行安装的步骤进行整理发布,这是在网络参考一些大神发布的文章,同时总结了一些新的问题。
一、准备环境和安装包
主要包括:CentOS7.6,HttpRunnerManager V2.0,mysql5.7.26,python3.6.4,Django2.1.2,rabbitmq-server-3.6.8(为了避免兼容问题,强烈建议版本尽可能相同,不同时尽量选更高版本。)
CentOS建议不要用6.X,会出现各种难以解决的问题,一些安装包的很难解决依赖包和相应版本问题,建议重新用centos7X版本。
下载可自行百度,个人在此提供以下包下载链接。
CentOS:https://mirrors.edge.kernel.org/centos/7.6.1810/isos/x86_64/CentOS-7-x86_64-DVD-1810.iso(安装教程:https://www.cnblogs.com/clsn/p/8338099.html#auto_id_22)
HttpRunnerManager V2.0:https://github.com/samasword/HttpRunnerManager或https://github.com/HttpRunner/HttpRunnerManager
其他一些具体配置时提供了下载方法。
二、修改项目设置:
下载的包如果不是zip格式,建议解压后重新压缩成zip,再上传到centos服务器,用yum install -y unzip zip下载zip解压工具,然后用unzip HttpRunnerManager.zip在centos下进行解压。
1、打开下载后解压的源码包,进入HttpRunnerManager/HttpRunnerManager文件夹下,找到 settings.py打开修改。(修改可在window修改后压缩上传,也可上传后在centos上用vi修改。)
修改:HttpRunnerManager/HttpRunnerManager/settings.py里DATABASES字典和邮件发送账号相关配置
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'HttpRunner', # 新建数据库名,自己在数据库新建的一个'HttpRunner'
'USER': 'root', # 安装的数据库登录名
'PASSWORD': 'lcc123456', # 安装的数据库登录密码
'HOST': '127.0.0.1', # 数据库所在服务器ip地址(虚拟机就是虚拟机ip)
'PORT': '3306', # 监听端口 默认3306即可
}
}
再修改邮箱配置代码:
EMAIL_SEND_USERNAME = 'username@163.com' # 邮箱地址,定时任务报告发送邮箱,支持163,qq,sina,企业qq邮箱等,注意需要在邮箱设置中开通smtp服务
EMAIL_SEND_PASSWORD = 'password' # 邮箱的登录密码
最后修改worker相关配置:
djcelery.setup_loader()
CELERY_ENABLE_UTC = True
CELERY_TIMEZONE = 'Asia/Shanghai'
BROKER_URL = 'amqp://guest:guest@127.0.0.1:5672//' # 127.0.0.1即为rabbitmq-server所在服务器ip地址(比如我的虚拟机192.168.31.16,那就填下这个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 = 10 # celery worker的并发数 也是命令行-c指定的数目 根据服务器配置实际更改 默认10
CELERYD_MAX_TASKS_PER_CHILD = 100 # 每个worker执行了多少任务就会死掉,我建议数量可以大一些,默认100
还要修改HttpRunnerManager目录下requirements.txt:
将Django == 2.0.3改为Django == 2.1.2,以及删除mysqlclient == 1.3.12
因为后续会安装这个版本的Django2.1.2,同时mysqlclient需要手动安装
2、安装数据库(建议cd ../usr/loal后安装软件到根目录的/usr/loal目录下)
个人觉得可以在linux中/usr/loal/目录下直接用:wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm进行下载安装(没有此命令,可以yum isntall wget或百度linux下wget安装方法)
具体操作参考这篇博客,个人感觉最详细和合理:https://www.cnblogs.com/dengshihuang/p/8029372.html
3、安装python(建议cd ../usr/loal后安装软件到根目录的/usr/loal目录下)
a.下载可以在linux中/usr/loal/直接用:wget https://www.python.org/ftp/python/3.6.4/Python-3.6.4.tgz ,然后解压,安装
b.接下来一步步按以下命令执行
tar -xvf Python-3.6.4.tgz
cd Python-3.6.4
./configure --with-ssl
yum install libffi-devel openssl-devel zlib* -y
make all && make install
(如果make安装时出现zipimport.ZipImportError: can't decompress data; zlib not availablemake: *** [install] 错误 1)请使用以下命令解决:
yum install zlib*然后在输入y重新执行:make all && make install 即可)
make clean
make distclean
/usr/local/bin/python3 -V
输入上一条命令后就会显示版本3.6.4
c.接下来建立软连接指向到当前系统默认python命令的bin目录,让系统使用新版本python 输入以下命令
(另一种方法:终端输入sudo vi ~/.bashrc
输入i 在最下面加上alias python='python3'
Esc :wq 保存最后在终端输入source ~/.bashrc
)
mv /usr/bin/python /usr/bin/python2.7
(如果出现[root@YlfCenterOS: Python-3.6.4]# mv /usr/bin/python /usr/bin/python2.7 mv: "/usr/bin/python" 与"/usr/bin/python2.7" 为同一文件
那么执行:rm -rf /usr/bin/python,再执行下面的ls命令就行)
ln -s /usr/local/bin/python3.6 /usr/bin/python
再输入:python -V,即可查看当前默认python版本
d.由于安装python3.6覆盖了系统的2.7,需要更改配置文件才能用yum
修改yum配置文件vi /usr/bin/yum 和vi /usr/libexec/urlgrabber-ext-down这两个文件
把两个文件的头部的#!/usr/bin/python改成#!/usr/bin/python2.7 //改为之前的老版本号
保存退出,yum即可正常使用。如若有其他命令、软件不能正常使用,仿照yum配置文件的修改方法,修改其配置文件即可。
e.更新pip,执行命令:python -m pip install --upgrade pip 然后用pip -V 查看版本是不是19.x.x了。
f.更新setuptools,执行命令: pip install --upgrade setuptools
4、安装Django,直接使用pip3进行安装:
pip3 install Django==2.1.2,安装后可进行验证,输入python,再import后打印版本。
如果安装失败,可以进行以下尝试;
wget https://www.djangoproject.com/download/2.1.2/tarball/ --no-check-certificate
tar xzvf Django-2.1.2.tar.gz # 解压下载包
cd Django-2.1.2 # 进入 Django 目录
python setup.py install # 执行安装命令
5、安装RabbitMQ
具体参考:https://www.cnblogs.com/fxcity/p/11041994.html或者https://testerhome.com/notes/2164
service rabbitmq-server start
6、安装mysqlclient,执行命令
ln -s /usr/local/mysql/bin/mysql_config /usr/local/bin/mysql_config
pip3 install mysqlclient 或者 yum install mysqlclient
说明:上述教程不能保证百分百无问题,遇到问题可以自行百度或评论或发信息至我邮箱835393537@qq.com
有问题把报错的提示复制一两行进行百度或谷歌搜索解决。
三、编译运行
1、在安装RabbitMQ后,确定该服务已启动,确定数据库mysql服务和RabbitMQ服务处于启动状态。
2、在CentsOS中进入的源码包文件夹HttpRunnerManager下,并确定当前文件夹下是有requirements.txt文件的。
然后执行:pip install -r requirements.txt
3、执行:python manage.py makemigrations ApiManager
4、创建超级用户,执行:python manage.py createsuperuser 后台管理数据库(地址:http://192.168.31.16:8000/admin/),并按提示输入相应用户名,密码,邮箱。 如不需用,可跳过此步骤
5、开启服务,python manage.py runserver 0.0.0.0:8000(ip必须为0.0.0.0,端口8000可自行修改,访问时必须带设置的端口)开启成功如下图。
说明:Ip为0.0.0.0网上说时为了局域网内其他主机有权限访问,访问时地址是centos的ip加开启服务时设置的端口。
例如我的centos ip是192.168.31.16,则可以通过以下地址访问相关服务。
相关地址:http://192.168.31.16:8000/api/login/(登录)
http://192.168.31.16:8000/api/register/(注册)
http://192.168.31.16:8000/admin/(后台)
特此说明下:服务正常启动后,centos虚拟机是服务器,这是主机浏览器还是无法访问的,必须再创建一个window虚拟机,在windows虚拟机中访问,
具体原因应该是局域网网络问题,暂时没找到解决方案。后续有消息会更新或加在评论区。也望各位指正和提醒一些问题的解决方法。
网上说无法访问可尝试关闭服务器和本机防火墙试试。
补充:本人win10主机,后经尝试,可以这样使主机浏览器访问HttpRunnerManager,在防火墙中设置{容许应用通过防火墙-然后选择你访问的浏览器的.exe文件,然后输入地址就可以访问了。}
四、问题补充
1、 后续这个项目具体使用方法参考社区:https://testerhome.com/topics/13295(实际操作)
2、参考链接:
1、https://testerhome.com/topics/18498
2、https://www.cnblogs.com/dengshihuang/p/8029372.html
3、https://testerhome.com/notes/2164