- 创建完整的端到端测试套件 - 添加4个测试场景,15个测试用例 - 创建测试计划和验证脚本 - 包含快速验证脚本,通过19项检查 测试覆盖: - 页面加载和显示 - 参数修改追踪 - 保存功能 - 边界情况
254 lines
7.0 KiB
Bash
254 lines
7.0 KiB
Bash
#!/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
|