记一次 leo-api-auto 部署踩坑记录

首先感谢 leo-api-auto作者无私奉献,贴一段leo-api-auto的简介

LEO API测试平台简介
「LEO API测试平台」是一个免费开源的接口自动化测试平台。
既支持单个接口测试,也支持基于场景的接口测试用例,接口可串联执行,实现了接口间的数据依赖。
测试数据与测试用例分离,可根据环境设置不同测试数据,不同环境数据互不影响
平台支持定时任务功能,可设置定时任务,自动执行接口用例
平台支持文件上传接口测试,支持接口延迟调用
丰富的校验选项,支持返回状态码校验、响应时间校验、返回体校验、数值校验
平台支持接口Mock服务,可定制请求方法、返回状态码、返回体
简单、美观、易用的接口测试报告
平台支持权限管理,不同用户权限不同,避免普通用户随意变更敏感信息造成数据损坏
…更多功能…敬请期待…
推荐使用 Chrome 最新浏览器体验

项目地址
原作者已经写好了部署文档,这里只记录部署踩的坑

系统信息

Linux iZwz97s7gl62yqzh0k590iZ 3.10.0-862.14.4.el7.x86_64 #1 SMP Wed
Sep 26 15:12:11 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

CentOS 7.9.2009

准备工作

克隆项目,安装docker 没啥好说的,看文档就好

部署mongo

这里用的是作者的方式,

cd /home/
mkdir docker
cd docker
mkdir mongo
cd mongo
mkdir data logs conf
chmod 777 data
touch logs/mongod.log
chmod 777 logs/mongod.log
touch conf/mongod.conf
chmod 766 conf/mongod.conf
vim conf/mongod.conf

mongod.conf添加如下配置


# 数据库文件存储位置
dbpath = /data/db
# log文件存储位置
logpath = /data/log/mongod.log
# 使用追加的方式写日志
logappend = true
# 是否以守护进程方式运行
# fork = true
# 全部ip可以访问
bind_ip = 0.0.0.0
# 端口号
port = 27017
# 是否启用认证
auth = true
# 设置oplog的大小(MB)
oplogSize=2048

启动mongodb容器

docker run -itd --name mongodb --restart=always --privileged -p 27017:27017 -v /home/docker/mongo/data:/data/db -v /home/docker/mongo/conf:/data/configdb -v /home/docker/mongo/logs:/data/log/ mongo:latest -f /data/configdb/mongod.conf

–restart=always Docker服务重启容器也启动
–privileged 拥有真正的root权限
-f 指定配置文件

查看启动的容器并进入容器

docker container ps -a

docker exec -it mongodb bash
mongo
use admin

好了,下面就是踩坑了
一直没有明白原文中的 更新apiAdmin和新建admin账号是做什么用,照着部署最后的结果是登录,注册页面爆
pymongo.errors.OperationFailure: Authentication failed
mongodb验证错误
查看源码也没有发现哪里有用到这两个账号,反而 /etc/profile 配置的root账号密码不通过

既然不明白,就暂时按照通用解决方式
删除新建的 mongodb 容器

docker rm mongodb

删除 data文件夹

rm -rf /home/docker/mongo/data

重新创建容器

docker run -itd --name mongodb --restart=always --privileged -p 27017:27017 -v /home/docker/mongo/data:/data/db -v /home/docker/mongo/conf:/data/configdb -v /home/docker/mongo/logs:/data/log/ mongo:latest -f /data/configdb/mongod.conf

进入容器,连接mongo,重新配置

docker exec -it mongodb bash
mongo
use admin
db.createUser({user:‘root’,pwd:’KaTeX parse error: Expected 'EOF', got '}' at position 27: …,roles:['root']}̲) db.auth('root…{password}’)
use leo-api-auto-db
db.createUser({user:‘root’,pwd:’${passowrd}’,roles:[{role:‘dbAdmin’,db:‘leo-api-auto-db’},‘readWrite’]})

${password} 换成自己的密码
输出 Successfully added user: {
“user” : “root”,
“roles” : [
{
“role” : “dbAdmin”,
“db” : “leo-api-auto-db”
},
“readWrite”
]
}
ok,mongo 配置完成

leo-api-auto 配置

编辑 /etc/profile

export LEO_API_PLATFORM_ENV=production
export LEO_API_PLATFORM_HOST=公网ip
export LEO_API_PLATFORM_PORT=9999
export LEO_API_PLATFORM_MONGO_HOST=172.17.0.1
export LEO_API_PLATFORM_MONGO_PORT=27017
export LEO_API_PLATFORM_MONGO_USERNAME=root
export LEO_API_PLATFORM_MONGO_PASSWORD=${password}
export LEO_API_PLATFORM_MONGO_DBNAME=leo-api-auto-db

LEO_API_PLATFORM_HOST 填写服务器的公网ip
LEO_API_PLATFORM_PORT 是指定项目的端口号,默认8888端口已被其他进程占用,所以这里改成9999
LEO_API_PLATFORM_MONGO_HOST docker宿主机ip ,通过ifconfig查出

docker0: flags=4163 mtu 1500
inet 172.17.0.1 netmask 255.255.0.0 broadcast 172.17.255.255
ether 02:42:f5:9f:6c:98 txqueuelen 0 (Ethernet)
RX packets 133727 bytes 142588216 (135.9 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 120170 bytes 287820454 (274.4 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

保存后执行 source /etc/profile

在 leo-api-auto根目录下启动
sh DeployService

输出
Successfully tagged leo-api-platform-backend:latest 启动完成

此时可以通过 docker ps 查看启动成功的两个容器
leo-api-platform-backend和mongo:latest

剩下的就是打开http://host:port/initAdminUser 初始化管理员账号并登录
记一次 leo-api-auto 部署踩坑记录_第1张图片

你可能感兴趣的:(python,docker,leo-api-auto,自动化测试)