- 🎨 Vue2
- 🎶 Element UI
- 🏐 vue-admin-template
🌙 已有功能
| 功能点 | 状态 |
|---|---|
| 脚本项目与平台服务解耦 🔥 | ✅ |
| 在线展示测试脚本 🔥 | ✅ |
| 美观的数据报表 🔥 | ✅ |
| http、rpc、get调用 🔥 | ✅ |
| git webhooks同步项目🤤 | ✅ |
在软件测试过程中,我们经常需要大量的测试数据来验证各种业务场景。传统的测试数据准备方式存在以下问题:
- 数据准备效率低:手动创建测试数据耗时费力,容易出错
- 数据一致性差:不同测试人员创建的数据格式不统一
- 数据复用性差:每次测试都需要重新准备数据
- 数据管理混乱:缺乏统一的数据管理和版本控制
- 测试脚本耦合度高:测试脚本与数据准备逻辑混合,维护困难
麟龙数据构造平台通过以下方式解决上述问题:
- 自动化数据生成:通过脚本化方式自动生成测试数据,提高效率
- 标准化数据格式:统一的数据结构和生成规则,确保数据一致性
- 数据模板复用:可复用的数据模板,减少重复工作
- 集中化管理:统一的数据管理和版本控制
- 脚本与数据解耦:将数据构造逻辑与测试脚本分离,提高可维护性
相比传统的测试数据准备方式,麟龙数据构造平台具有以下优势:
-
技术架构优势:
- 使用
Python+FastApi+Vue开发,前后端分离,扩展性强 - 采用apidoc自动生成脚本入参出参文档,降低使用门槛
- 动态导包作为核心执行方法,支持热更新,无需重启服务
- 使用
-
用户体验优势:
- 提供友好的Web界面,非技术人员也能轻松使用
- 支持多种调用方式(HTTP、RPC、GET),适应不同场景
- 实时查看执行日志和结果,便于调试和问题定位
-
运维管理优势:
- 支持Git Webhook自动同步,实现代码与数据的版本控制
- 提供美观的数据报表,便于数据使用情况分析
- 完善的权限管理,确保数据安全
麟龙数据构造平台的宗旨:专注于测试脚本的测试工具,用于业务测试提效,让测试数据准备变得简单、高效、可靠。
我们只需要在服务器上git clone,下载项目并以项目中的dockerfile文件构建镜像
- 创建数据库
-- 在MySQL中执行以下SQL创建数据库
CREATE DATABASE datafactory CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;- **新建server目录
mkdir /server
cd /server
# 用来目录挂载
mkdir logs
# 用来目录挂载
mkdir keys备注: keys目录上传刚才本地创建的公钥和私钥,这里我用的是FinalShell软件进行上传,如果不需要ssh拉取git项目,可以忽略创建keys目录
- 在server目录git clone项目
cd /server
git clone git@github.com:testerfans/FunDataFactory.git
git clone git@github.com:testerfans/FunDataFactoryWeb.git- 分别执行构建镜像
cd /server/FunDataFactory
docker build -t fun:v1 .
cd /server/FunDataFactoryWeb
docker build -t fun_web:v1 .- 创建并启动容器(示例使用宿主机端口 5001/5002)
# 后端服务启动(容器内监听 8080 → 宿主机映射 5001)
# 如果不需要ssh拉取git项目,可以忽略挂载keys目录
docker run -itd --name datafactoryserver \
-p 5001:8080 \
-v /server/logs:/fun/logs \
-v /server/keys:/fun/app/commons/settings/keys \
fun:v1
# 前端服务启动(容器内监听 80 → 宿主机映射 5002)
docker run -itd --name datafactoryweb -p 5002:80 fun_web:v1备注:
- 请在安全组/防火墙放通 5001、5002。
- 前端构建前在
.env.production中设置:VUE_APP_BASE_API=http://<你的服务器IP或域名>:5001/api。 - 确保MySQL服务已启动,且容器能访问宿主机MySQL(172.16.80.125:3306)。
- 数据库表结构会在服务启动时自动创建,无需手动建表。
启动成功后,浏览器访问http://119.91.144.214,119.91.144.214为服务器的ip地址
- Nginx转发代理(非必须)
如果已经申请了域名,可以给机器配上个域名,这样子就不用每次直接ip+端口访问,方便很多,如果没有申请域名,可忽略第5步···
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
server_name fangfun.xyz;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $http_host;
proxy_pass http://0.0.0.0:81;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
server {
listen 80;
server_name api.fangfun.xyz;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $http_host;
proxy_pass http://0.0.0.0:8080;
}
}
}
这里的fangfun.xyz直接映射到了本地的81端口即为前端服务,
api.fangfun.xyz为二级域名,直接映射到了本地的8080端口即为后端服务
**备注:**前端镜像启动时,映射宿主机的端口为81
# 前端服务启动
docker run -itd -p 81:80 fun_web:v1- 🔥 git webhook 同步项目
- 🀄 在线展示测试脚本
- 🚴 丰富的调用方式(http、rpc、get调用)
- 💎 美观的数据报表




