Skip to content

About

GreenPass · 软件工程测试治理平台(前端原型):通用测试 + AI 驱动,面向中大型技术团队。React+Vite+TS+Tailwind,含资产联动/多租户/每工程选模型。内置可独立打开的单文件原型。

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

268 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GreenPass · 软件工程测试治理平台(前端原型)

License: MIT CI React TypeScript Vite

GreenPass:软件工程测试治理平台 —— 站在软件工程"测试阶段"的位置,对(AI 生成 / 人写的)被测工程与系统做质量量化、测试管控与可信治理,系统本身由 AI 驱动。

本仓库以 React + Vite + TypeScript + Tailwind + shadcn/ui 提供产品原型;默认仍使用本地 mock,已具备按 OpenAPI 生成类型并接入真实 GreenPass API 的基础能力。

产品定位

  • 通用测试定位:AI 生成的系统能测,人开发的软件系统同样能测 —— 不局限于"只测 AI 产物"。
  • AI 驱动实现:平台的用例生成、质量判定、契约分析、篡改检测等能力由 AI 模型提供,每个工程可独立选择所用的 AI 模型。
  • 面向中大型技术团队:支持多租户团队切分、团队内人员管理与角色权限矩阵、团队级数据隔离。

技术栈

  • 前端:React 19 + TypeScript
  • 构建:Vite
  • 样式:Tailwind CSS v4
  • UI 组件:shadcn/ui(@/components/ui/)
  • 图标:lucide-react
  • 路由:react-router-dom(HashRouter,兼容 file:// 静态打开)
  • 提示:sonner(<Toaster/>)
  • 后端技术栈(规划):Go + Temporal + PostgreSQL(RLS 多租户) + TimescaleDB + Redis + S3 兼容对象存储(SeaweedFS),详见 docs/architecture/TECH-DESIGN.md 与 docs/engineering/ENGINEERING-SPEC.md

功能页面

分组 页面 说明
测试闭环 被测对象画像 /target 资产级画像(随侧边栏所选资产联动)、AI 生成过程还原、评分构成、未决风险
上游源与生成 /generation 六类上游源 → 适配器 → 用例种子 → 质量验证 → 入库
测试用例库 /cases 用例版本化、断言强度、变异分数、上游绑定
测试执行 /exec 实时进度、证据捕获、不放水不跳过
契约测试 /contracts 契约注册、变更影响、消费者验证
质量门禁 /gate 策略即代码、AI 判定、篡改检测、契约门禁(可重新判定,随所选资产联动)
可信与审计 审计日志 /audit 哈希链、仅追加、可独立验证
需求追溯 /trace 跨服务追溯矩阵
并发与资源 /concurrency 调度、隔离、资源池、冲突
组织与模型 团队与权限 /teams 多租户团队切分、成员管理、角色权限矩阵
AI 模型配置 /models 模型池、每工程模型绑定

目录结构

src/
├── index.tsx           # 入口(HashRouter)
├── app.tsx             # 路由配置 + <Toaster/>
├── index.css           # 全局样式 + 主题变量
├── components/
│   ├── Layout.tsx      # 全局布局(侧边栏 + 顶栏 + <Outlet context=selectedAsset>)
│   ├── shared.tsx      # KpiCard / PageHeader / PrimaryButton / GhostButton / Card
│   └── ui/             # shadcn/ui 内置组件
├── pages/              # 页面模块(每页一个目录)
│   ├── TargetPage/  GatePage/  GenerationPage/  CasePage/  ...
│   └── ...
└── data/
    └── mock.ts         # 单一数据源(含 assetToProfile 资产联动画像派生)
docs/
├── README.md             # 文档分类、命名与位置规范
├── product/              # 产品需求与业务口径
├── architecture/         # 技术架构与 UI / 交互设计规范
├── engineering/          # 工程、安全、发布规范
├── plans/                # 实施方案与任务清单
├── runbooks/             # 运维、恢复与故障处理手册
├── status/               # 带日期的阶段进度快照
└── services/             # 服务职责、依赖与运行方式

运行方式

本地 kind 初始化与发布

本地测试环境唯一入口是 scripts/dev/init-kind.ps1(或 make kind-init)。未指定集群时:没有 kind 集群就按 deploy/kind/cluster.yaml 创建 open-im-local;只有一个已有集群时直接复用;存在多个时优先选择已部署 GP 的唯一集群,其次选择承载 open-im-local 测试对象的唯一集群;仍无法唯一判断时要求显式传入 -KindCluster,不会另建集群或猜选。脚本校验节点和 ingress-nginx、构建并加载 GP 镜像、部署基础依赖和 GP Kubernetes 清单,并核对 open-im-local 工作负载未发生变化。GP 不依赖 Helm,应用不通过 docker run 或 Compose 启动。

pwsh -NoProfile -File ./scripts/dev/init-kind.ps1
# 默认从 GHCR 拉取开发测试镜像(必须是 X.Y.Z-SNAPSHOT):
pwsh -NoProfile -File ./scripts/dev/init-kind.ps1 -Version 0.1.25-SNAPSHOT
# 开发者需要本地构建时显式指定:
pwsh -NoProfile -File ./scripts/dev/init-kind.ps1 -ImageSource local-build -Version 0.1.25-SNAPSHOT
# 已有同版本本地镜像时:
pwsh -NoProfile -File ./scripts/dev/init-kind.ps1 -ImageSource local-cache -Version 0.1.25-SNAPSHOT
npm install
npm run dev        # 开发服务(localhost:5173,URL 形如 #/target)

真实 API 开发接入

本地环境变量从 .env.example 复制到忽略的 .env;前端仅使用 Vite 允许的公开变量,禁止把密钥写入 VITE_*。

VITE_GP_API_BASE=http://127.0.0.1:8080
VITE_GP_TEAM_ID=100

VITE_GP_TEAM_ID 必须是后端已存在的数值型租户 ID。页面会先从 /targets 读取真实对象,再按 OpenAPI 调用创建运行、版本校验、执行、暂停/恢复和结果查询;不会把原型中的对象或场景标识写入后端。

OpenAPI 契约 Mock

前端联调可以显式启用 MSW,不需要启动 Go 服务:

VITE_GP_MOCK_API=true
VITE_GP_TEAM_ID=100

VITE_GP_API_BASE 配置后优先连接真实服务;未配置真实地址且 VITE_GP_MOCK_API=true 时,浏览器 Service Worker 只拦截 api/openapi.yaml 已定义的对象、用例、运行、门禁、成本和报告路径。MSW 不是生产服务,也不会在默认配置下自动启用。

后端默认仅允许 Vite 本地来源 http://127.0.0.1:5173 和 http://localhost:5173 跨域调用;部署到其他域名时,应以 GP_CORS_ALLOWED_ORIGINS 配置明确来源白名单,或由网关/Nginx 以同样的白名单策略代理。

构建 / 生成可独立打开的单文件原型:

npm run build      # 产物在 dist/output + dist/output_resource

仓库内已内置 dist/GreenPass-standalone.html —— 将 JS/CSS 内联、HashRouter 路由,直接双击即可在浏览器打开(无需启动服务),适合快速预览与分享。

质量校验

npm run typecheck      # tsc -p tsconfig.app.json
npm run lint:eslint    # eslint src

说明


参与贡献


GreenPass 原型 · 持续迭代中。

About

GreenPass · 软件工程测试治理平台(前端原型):通用测试 + AI 驱动,面向中大型技术团队。React+Vite+TS+Tailwind,含资产联动/多租户/每工程选模型。内置可独立打开的单文件原型。

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages