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 没啥好说的,看文档就好
这里用的是作者的方式,
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
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 配置完成
编辑 /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