Skip to content

testerfans/FunDataFactoryWeb

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

47 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

png

🎉 技术栈

  • 🎨 Vue2
  • 🎶 Element UI
  • 🏐 vue-admin-template

⚽ 后端地址

麟龙数据构造平台后端

🌙 已有功能
功能点 状态
脚本项目与平台服务解耦 🔥
在线展示测试脚本 🔥
美观的数据报表 🔥
http、rpc、get调用 🔥
git webhooks同步项目🤤
平台预览

🍦 数据报表

数据报表

场景列表

场景列表

运行日志

运行日志

用户管理

users

项目管理

projects

😢 关于麟龙数据构造平台

为什么需要数据构造平台?

在软件测试过程中,我们经常需要大量的测试数据来验证各种业务场景。传统的测试数据准备方式存在以下问题:

  1. 数据准备效率低:手动创建测试数据耗时费力,容易出错
  2. 数据一致性差:不同测试人员创建的数据格式不统一
  3. 数据复用性差:每次测试都需要重新准备数据
  4. 数据管理混乱:缺乏统一的数据管理和版本控制
  5. 测试脚本耦合度高:测试脚本与数据准备逻辑混合,维护困难

数据构造平台能解决什么问题?

麟龙数据构造平台通过以下方式解决上述问题:

  1. 自动化数据生成:通过脚本化方式自动生成测试数据,提高效率
  2. 标准化数据格式:统一的数据结构和生成规则,确保数据一致性
  3. 数据模板复用:可复用的数据模板,减少重复工作
  4. 集中化管理:统一的数据管理和版本控制
  5. 脚本与数据解耦:将数据构造逻辑与测试脚本分离,提高可维护性

为什么这种方式更优?

相比传统的测试数据准备方式,麟龙数据构造平台具有以下优势:

  1. 技术架构优势

    • 使用Python+FastApi+Vue开发,前后端分离,扩展性强
    • 采用apidoc自动生成脚本入参出参文档,降低使用门槛
    • 动态导包作为核心执行方法,支持热更新,无需重启服务
  2. 用户体验优势

    • 提供友好的Web界面,非技术人员也能轻松使用
    • 支持多种调用方式(HTTP、RPC、GET),适应不同场景
    • 实时查看执行日志和结果,便于调试和问题定位
  3. 运维管理优势

    • 支持Git Webhook自动同步,实现代码与数据的版本控制
    • 提供美观的数据报表,便于数据使用情况分析
    • 完善的权限管理,确保数据安全

麟龙数据构造平台的宗旨:专注于测试脚本的测试工具,用于业务测试提效,让测试数据准备变得简单、高效、可靠。

服务器部署

我们只需要在服务器上git clone,下载项目并以项目中的dockerfile文件构建镜像

前置准备

  1. 创建数据库
-- 在MySQL中执行以下SQL创建数据库
CREATE DATABASE datafactory CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
  1. **新建server目录
mkdir /server
cd /server
# 用来目录挂载
mkdir logs
# 用来目录挂载
mkdir keys

备注: keys目录上传刚才本地创建的公钥和私钥,这里我用的是FinalShell软件进行上传,如果不需要ssh拉取git项目,可以忽略创建keys目录

  1. 在server目录git clone项目
cd /server
git clone git@github.com:testerfans/FunDataFactory.git 
git clone git@github.com:testerfans/FunDataFactoryWeb.git
  1. 分别执行构建镜像
cd /server/FunDataFactory
docker build -t fun:v1 .
cd /server/FunDataFactoryWeb
docker build -t fun_web:v1 .
  1. 创建并启动容器(示例使用宿主机端口 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.214119.91.144.214为服务器的ip地址

  1. 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调用)
  • 💎 美观的数据报表

About

麟龙科技数据构造平台

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages

  • Vue 65.9%
  • JavaScript 20.3%
  • SCSS 10.4%
  • TypeScript 2.8%
  • Other 0.6%