基于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 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' # 邮箱密码
-
修改:HttpRunnerManager/HttpRunnerManager/settings.py里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地址 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
安装遇到很多报错,都是泪 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文件的如图部分给注释掉,再点击提交按钮就有反应了。