接口自动化测试平台HttpRunnerManager部署

基于HttpRunner的接口自动化测试平台: HttpRunner, djcelery and Django_. HttpRunner手册: http://cn.httprunner.org/

git地址:httprunner/HttpRunnerManager: 基于 HttpRunner 的 Web 测试平台,已停止维护。 (github.com)

部署机器:linux

部署文档:httprunner/HttpRunnerManager: 基于 HttpRunner 的 Web 测试平台,已停止维护。 (github.com)

部署可直接看部署文档,遇到不少坑,这里记录下。

安装docker

比较坑,我这里用的公司内的脚本和安装包,安装的v.20版本

[root@iZ2ze076q9ykv1ghinxiveZ HttpRunnerManager]# docker -v
Docker version 20.10.8, build 3967b7d
 

部署mysql

在docker里安装mysql

参考:使用docker安装mysql-CSDN博客

docker search mysql

docker pull 对应的镜像版本 

sudo docker run -d -p 3306:3306 -v /usr/local/mysql/conf:/etc/mysql/conf.d -v /usr/local/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name  mysql docker.io/drupalci/mysql-5.7 

启动成功 

报错401

Error: Status 410 trying to pull repository library/mysql-5.7 

使用的mysql镜像名字不对,先搜索,再使用

创建相应HttpRunner数据库,设置好相应用户名、密码,启动mysql

进入容器 

docker exec -it mysql /bin/sh

 连接mysql

mysql -u root -p 

这里我用123456密码,一直报错ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

直接输入mysql 回车,才进入mysql命令行???这是为什么呢?

select host,user,plugin,authentication_string from mysql.user;

 root竟然没密码?

新建一个用户并设置密码

USE mysql;
 CREATE USER 'user'@'%' IDENTIFIED BY '123456';
 GRANT ALL ON *.* TO 'user'@'%';
 FLUSH PRIVILEGES;

mysql -u user -p 输入密码123456可以进入mysql了。 

windows电脑连不上mysql

使用dbweaver连接mysql,提示Connect timed out

云服务器管理后台,找到对应的安全组

入口添加一个3306端口,发现dbweaver有反应了

在规则配置中开通3306端口的权限

重新连接即可

安装rabbitmq

docker安装rabbitmq

docker安装rabbitMQ_docker rabbitmq-CSDN博客

docker run -d --hostname my-rabbit --name rabbit -p 15672:15672 -p 5673:5672 rabbitmq

启动后,发现docker停止了,查看日志报错 Failed to create thread: Operation not permitted

 

在运行容器的时候加上–privileged参数

docker run -d --privileged 

 我把运行的rabbit给删掉

docker rm rabbit

重新启动

docker run -d --privileged --hostname my-rabbit --name rabbit -p 15672:15672 -p 5673:5672 rabbitmq

通过 

docker exec -it 容器id /bin/bssh

进入容器内部
运行:

rabbitmq-plugins enable rabbitmq_management

阿里云安全组加一个入口规则

username:guest、Password:guest  登录成功

下载Httprunnermanager

git clone https://gitcode.com/mirrors/httprunner/HttpRunnerManager.git

我下载到windows后修改配置上传到linux上

修改:HttpRunnerManager/HttpRunnerManager/settings.py里DATABASES字典和邮件发送账号相关配置

     DATABASES = {
         'default': {
         'ENGINE': 'django.db.backends.mysql',
         'NAME': 'HttpRunner',  # 新建数据库名
         'USER': 'root',  # 数据库登录名
         'PASSWORD': 'lcc123456',  # 数据库登录密码
         'HOST': '127.0.0.1',  # 数据库所在服务器ip地址
         'PORT': '3306',  # 监听端口 默认3306即可
     }
 }

 EMAIL_SEND_USERNAME = 'username@163.com'  # 定时任务报告发送邮箱,支持163,qq,sina,企业qq邮箱等,注意需要开通smtp服务
 EMAIL_SEND_PASSWORD = 'password'     # 邮箱密码
  1. 修改:HttpRunnerManager/HttpRunnerManager/settings.py里worker相关配置

  2.     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地址
        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

 我这里只改了一下BROKER_URL的IP

安装python

服务器自带的python版本为2.7.5,需要安装3.8的

参考:https://blog.csdn.net/Deng872347348/article/details/126730677
cd /home
mkdir python
cd python
wget https://www.python.org/ftp/python/3.8.0/Python-3.8.0.tgz (或者其他地方下载下来上传到服务器上)
tar zxf Python-3.8.0.tgz
cd Python-3.8.0
yum update -y
yum groupinstall -y 'Development Tools'
yum install -y gcc openssl-devel bzip2-devel libffi-devel
./configure prefix=/usr/local/python3 --enable-optimizations
make && make install
cd /usr/bin
mv python python2.bak
ln -s /usr/local/python3/bin/python3.8 /usr/bin/python
python --version

安装pip

wget https://bootstrap.pypa.io/get-pip.py

python get-pip.py

 [root@iZ2ze076q9ykv1ghinxiveZ python]# pip -V
pip 8.1.2 from /usr/lib/python2.7/site-packages (python 2.7)

可以看到用的还是自带的旧版本的pip

删除旧版本软链接

rm -rf /usr/bin/pip

新建软链接

ln -s /usr/local/python3/bin/pip3.8 /usr/bin/pip 

可以看到pip版本已变化。 

[root@iZ2ze076q9ykv1ghinxiveZ bin]# pip -V
pip 23.3.2 from /usr/local/python3/lib/python3.8/site-packages/pip (python 3.8) 

安装依赖

进入requirements.txt所在文件夹

pip install -r requirements.txt 注意如果是pip3则需要用

pip3 install -r requirements.txt

安装具体的一个包可以用:

pip3 install -i Simple Index --trusted-host pypi.douban.com HttpRunner==1.5.8

指定源下载,否则网络慢导至下载失败。Python之pip命令指定安装源和版本_pip 指定版本-CSDN博客

其中安装mysqlclient遇到报错

File "/usr/libexec/urlgrabber-ext-down", line 28 except OSError, e: ^ SyntaxError: invalid syntax

解决办法:vim编辑这个文件/usr/libexec/urlgrabber-ext-down,第一行改为python2.7用默认的2.7版本运行。

安装mysqlclient报错安装pymsql报错OSError: mysql_config not found

解决办法:执行yum install mysql-server mysql-client mysql-devel

Python_pip 安装 pymysql 报错 : OSError: mysql_config not found_root@racknerd-0e4475:~# pip2 install pymysql colle-CSDN博客

安装遇到很多报错,都是泪 2024.1.18 

可以在windows pip对应包后,把文件夹复制到linux对应python包安装路径下

生成数据库

python3 manage.py makemigrations ApiManager #生成数据迁移脚本

python3 manage.py migrate #应用到db生成数据表

python3 manage.py migrate

出错incorrect string value

解决:重新创建了新的数据库,在创建数据库的同时设置数据库的字符集。代码:“CREATE DATABASE 数据库名称 CHARACTER SET utf8;”

启动服务

python3 manage.py runserver 0.0.0.0:8000

浏览器输入:http://127.0.0.1:8000/api/register/ 注册用户并登录使用

 

部署后问题

CSS样式丢失

GET http://cdn.amazeui.org/amazeui/2.7.2/css/amazeui.min.css net::ERR_NAME_NOT_RESOLVED

打开httprunnermanager项目

路径:HttpRunnerManager/templates/base.html

只需修改23行代码即可

原来23行为:

<link rel="stylesheet" href="http://cdn.amazeui.org/amazeui/2.7.2/css/amazeui.min.css"/>
修改后

<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/amazeui/2.7.2/css/amazeui.min.css"/>
修改后重启项目,重新打开就可以了~
————————————————
版权声明:本文为CSDN博主「爱学习的小学渣」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_40072138/article/details/119227454

 页面提交按钮点击无反应

各种新增页面,发现点击提交按钮,以及下半部分输入框都没反应,但是缩小浏览器页面后,点击按钮有反应。

排查后发现是有一个浮动的弹框把下半部分挡住了。如图的分页按钮。

解决办法:先把这个base.html文件的如图部分给注释掉,再点击提交按钮就有反应了。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值