test(ui): 添加模型参数配置端到端测试

- 创建完整的端到端测试套件
- 添加4个测试场景,15个测试用例
- 创建测试计划和验证脚本
- 包含快速验证脚本,通过19项检查

测试覆盖:
- 页面加载和显示
- 参数修改追踪
- 保存功能
- 边界情况
This commit is contained in:
wkc
2026-03-09 09:35:19 +08:00
parent 5914a5a107
commit fb537ac0f2
5 changed files with 948 additions and 0 deletions

View File

@@ -0,0 +1,253 @@
#!/bin/bash
# 模型参数配置 - 快速功能验证脚本
# 用于手动验证端到端功能
echo "======================================"
echo "模型参数配置 - 功能验证"
echo "======================================"
echo ""
# 颜色定义
GREEN='\033[0;32m'
RED='\033[0;31m'
YELLOW='\033[1;33m'
NC='\033[0m' # No Color
# 测试计数
PASS=0
FAIL=0
# 测试函数
test_case() {
local name=$1
local expected=$2
local actual=$3
if [ "$expected" == "$actual" ]; then
echo -e "${GREEN}${NC} $name"
((PASS++))
else
echo -e "${RED}${NC} $name"
echo " 预期: $expected"
echo " 实际: $actual"
((FAIL++))
fi
}
echo "1⃣ 检查前端代码"
echo "-------------------------------------------"
# 检查文件是否存在
if [ -f "ruoyi-ui/src/views/ccdi/modelParam/index.vue" ]; then
echo -e "${GREEN}${NC} 全局配置页面文件存在"
((PASS++))
else
echo -e "${RED}${NC} 全局配置页面文件不存在"
((FAIL++))
fi
if [ -f "ruoyi-ui/src/views/ccdiProject/components/detail/ParamConfig.vue" ]; then
echo -e "${GREEN}${NC} 项目配置页面文件存在"
((PASS++))
else
echo -e "${RED}${NC} 项目配置页面文件不存在"
((FAIL++))
fi
# 检查API方法
if grep -q "listAllParams" ruoyi-ui/src/api/ccdi/modelParam.js; then
echo -e "${GREEN}${NC} listAllParams API方法存在"
((PASS++))
else
echo -e "${RED}${NC} listAllParams API方法不存在"
((FAIL++))
fi
if grep -q "saveAllParams" ruoyi-ui/src/api/ccdi/modelParam.js; then
echo -e "${GREEN}${NC} saveAllParams API方法存在"
((PASS++))
else
echo -e "${RED}${NC} saveAllParams API方法不存在"
((FAIL++))
fi
echo ""
echo "2⃣ 检查loading状态"
echo "-------------------------------------------"
# 检查loading变量
if grep -q "loading: false" ruoyi-ui/src/views/ccdi/modelParam/index.vue; then
echo -e "${GREEN}${NC} loading状态变量已定义"
((PASS++))
else
echo -e "${RED}${NC} loading状态变量未定义"
((FAIL++))
fi
# 检查v-loading指令
if grep -q "v-loading=\"loading\"" ruoyi-ui/src/views/ccdi/modelParam/index.vue; then
echo -e "${GREEN}${NC} v-loading指令已使用"
((PASS++))
else
echo -e "${RED}${NC} v-loading指令未使用"
((FAIL++))
fi
# 检查空状态
if grep -q "暂无参数配置数据" ruoyi-ui/src/views/ccdi/modelParam/index.vue; then
echo -e "${GREEN}${NC} 空状态提示已添加"
((PASS++))
else
echo -e "${RED}${NC} 空状态提示未添加"
((FAIL++))
fi
echo ""
echo "3⃣ 检查修改追踪"
echo "-------------------------------------------"
# 检查markAsModified方法
if grep -q "markAsModified" ruoyi-ui/src/views/ccdi/modelParam/index.vue; then
echo -e "${GREEN}${NC} markAsModified方法存在"
((PASS++))
else
echo -e "${RED}${NC} markAsModified方法不存在"
((FAIL++))
fi
# 检查$set使用
if grep -q "\$set" ruoyi-ui/src/views/ccdi/modelParam/index.vue; then
echo -e "${GREEN}${NC} 使用$set确保响应式"
((PASS++))
else
echo -e "${RED}${NC} 未使用$set"
((FAIL++))
fi
# 检查修改计数
if grep -q "modifiedCount" ruoyi-ui/src/views/ccdi/modelParam/index.vue; then
echo -e "${GREEN}${NC} modifiedCount计算属性存在"
((PASS++))
else
echo -e "${RED}${NC} modifiedCount计算属性不存在"
((FAIL++))
fi
echo ""
echo "4⃣ 检查保存功能"
echo "-------------------------------------------"
# 检查保存方法
if grep -q "handleSaveAll" ruoyi-ui/src/views/ccdi/modelParam/index.vue; then
echo -e "${GREEN}${NC} handleSaveAll方法存在"
((PASS++))
else
echo -e "${RED}${NC} handleSaveAll方法不存在"
((FAIL++))
fi
# 检查saving状态
if grep -q "saving: false" ruoyi-ui/src/views/ccdi/modelParam/index.vue; then
echo -e "${GREEN}${NC} saving状态变量已定义"
((PASS++))
else
echo -e "${RED}${NC} saving状态变量未定义"
((FAIL++))
fi
# 检查按钮loading
if grep -q ":loading=\"saving\"" ruoyi-ui/src/views/ccdi/modelParam/index.vue; then
echo -e "${GREEN}${NC} 保存按钮绑定loading状态"
((PASS++))
else
echo -e "${RED}${NC} 保存按钮未绑定loading状态"
((FAIL++))
fi
echo ""
echo "5⃣ 检查后端接口"
echo "-------------------------------------------"
# 检查Mapper方法
if grep -q "selectByProjectId" ccdi-project/src/main/java/com/ruoyi/ccdi/project/mapper/CcdiModelParamMapper.java 2>/dev/null; then
echo -e "${GREEN}${NC} selectByProjectId Mapper方法存在"
((PASS++))
else
echo -e "${RED}${NC} selectByProjectId Mapper方法不存在"
((FAIL++))
fi
# 检查Service方法
if grep -q "selectAllParams" ccdi-project/src/main/java/com/ruoyi/ccdi/project/service/ICcdiModelParamService.java 2>/dev/null; then
echo -e "${GREEN}${NC} selectAllParams Service方法存在"
((PASS++))
else
echo -e "${RED}${NC} selectAllParams Service方法不存在"
((FAIL++))
fi
# 检查Controller接口
if grep -q "listAll" ccdi-project/src/main/java/com/ruoyi/ccdi/project/controller/CcdiModelParamController.java 2>/dev/null; then
echo -e "${GREEN}${NC} listAll Controller接口存在"
((PASS++))
else
echo -e "${RED}${NC} listAll Controller接口不存在"
((FAIL++))
fi
if grep -q "saveAll" ccdi-project/src/main/java/com/ruoyi/ccdi/project/controller/CcdiModelParamController.java 2>/dev/null; then
echo -e "${GREEN}${NC} saveAll Controller接口存在"
((PASS++))
else
echo -e "${RED}${NC} saveAll Controller接口不存在"
((FAIL++))
fi
echo ""
echo "6⃣ 检查测试文件"
echo "-------------------------------------------"
# 检查测试文件
if [ -f "ruoyi-ui/tests/e2e/model-param-config.test.js" ]; then
echo -e "${GREEN}${NC} 端到端测试文件存在"
((PASS++))
else
echo -e "${RED}${NC} 端到端测试文件不存在"
((FAIL++))
fi
# 检查测试计划
if [ -f "docs/test-plans/2026-03-09-e2e-test-plan.md" ]; then
echo -e "${GREEN}${NC} 测试计划文档存在"
((PASS++))
else
echo -e "${RED}${NC} 测试计划文档不存在"
((FAIL++))
fi
echo ""
echo "======================================"
echo -e "测试结果: ${GREEN}通过 $PASS${NC} / ${RED}失败 $FAIL${NC}"
echo "======================================"
echo ""
if [ $FAIL -eq 0 ]; then
echo -e "${GREEN}✅ 所有检查项通过!${NC}"
echo ""
echo "📋 下一步:"
echo "1. 启动后端服务: mvn spring-boot:run"
echo "2. 启动前端服务: cd ruoyi-ui && npm run dev"
echo "3. 访问页面: http://localhost:80/ccdi/modelParam"
echo "4. 手动验证功能:"
echo " - 查看loading效果"
echo " - 修改参数,查看修改数量"
echo " - 保存参数,查看保存状态"
echo ""
exit 0
else
echo -e "${RED}❌ 有 $FAIL 项检查未通过${NC}"
echo ""
echo "请检查上述失败项并修复"
exit 1
fi