Files
ccdi/assets/implementation/scripts/test_staff_enterprise_relation_complete.bat
2026-03-03 16:14:16 +08:00

203 lines
6.5 KiB
Batchfile
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
@echo off
REM 员工企业关系管理完整测试脚本 (Windows版本)
REM 测试员工企业关系信息的所有接口功能
setlocal enabledelayedexpansion
REM 配置
set BASE_URL=http://localhost:8080
set USERNAME=admin
set PASSWORD=admin123
REM 创建输出目录
if not exist "doc\implementation\scripts\test_output" mkdir "doc\implementation\scripts\test_output"
REM 生成报告文件名
set TIMESTAMP=%date:~0,4%%date:~5,2%%date:~8,2%_%time:~0,2%%time:~3,2%%time:~6,2%
set TIMESTAMP=%TIMESTAMP: =0%
set REPORT_FILE=doc\implementation\scripts\test_output\test_staff_enterprise_relation_%TIMESTAMP%.txt
echo ======================================== > "%REPORT_FILE%"
echo 员工企业关系管理完整测试 >> "%REPORT_FILE%"
echo 测试时间: %date% %time% >> "%REPORT_FILE%"
echo ======================================== >> "%REPORT_FILE%"
echo. >> "%REPORT_FILE%"
REM 统计变量
set TOTAL_TESTS=0
set PASSED_TESTS=0
set FAILED_TESTS=0
echo [INFO] 开始测试...
echo [INFO] 测试报告: %REPORT_FILE%
echo.
REM ============ 测试1: 登录 ============
echo [TEST] 测试1: 登录获取Token...
curl -s -X POST "%BASE_URL%/login/test" ^
-H "Content-Type: application/json" ^
-d "{\"username\":\"%USERNAME%\",\"password\":\"%PASSWORD%}" ^
> temp_login_response.json
REM 提取token (Windows下使用jq或手动解析)
REM 这里假设使用jq工具如果没有安装jq需要手动处理
for /f "tokens=2 delims=:\"" %%a in ('findstr /C:"\"token\"" temp_login_response.json') do (
set TOKEN=%%a
goto :found_token
)
:found_token
if "%TOKEN%"=="" (
echo [ERROR] 登录失败无法获取Token >> "%REPORT_FILE%"
type temp_login_response.json >> "%REPORT_FILE%"
del temp_login_response.json
exit /b 1
)
echo [INFO] 登录成功Token: %TOKEN:~0,20%... >> "%REPORT_FILE%"
echo [INFO] 登录成功
echo.
REM ============ 测试2: 查询列表 ============
echo [TEST] 测试2: 查询员工企业关系列表...
curl -s -X GET "%BASE_URL%/ccdi/staffEnterpriseRelation/list?pageNum=1&pageSize=10" ^
-H "Authorization: Bearer %TOKEN%" ^
> temp_list_response.json
type temp_list_response.json >> "%REPORT_FILE%"
findstr /C:"\"code\":200" temp_list_response.json >nul
if errorlevel 1 (
echo [ERROR] 查询列表失败 >> "%REPORT_FILE%"
set /a FAILED_TESTS+=1
) else (
echo [INFO] 查询列表成功 >> "%REPORT_FILE%"
set /a PASSED_TESTS+=1
)
set /a TOTAL_TESTS+=1
echo.
echo [INFO] 测试2完成
echo.
REM ============ 测试3: 新增员工企业关系 ============
echo [TEST] 测试3: 新增员工企业关系...
curl -s -X POST "%BASE_URL%/ccdi/staffEnterpriseRelation" ^
-H "Authorization: Bearer %TOKEN%" ^
-H "Content-Type: application/json" ^
-d "{\"personId\":\"110101199001019998\",\"personName\":\"测试员工\",\"socialCreditCode\":\"91110000999999999X\",\"enterpriseName\":\"测试企业\",\"relationPersonPost\":\"测试岗位\",\"isEmpFamily\":1,\"status\":1}" ^
> temp_add_response.json
type temp_add_response.json >> "%REPORT_FILE%"
findstr /C:"\"code\":200" temp_add_response.json >nul
if errorlevel 1 (
echo [ERROR] 新增失败 >> "%REPORT_FILE%"
set /a FAILED_TESTS+=1
set NEW_ID=
) else (
echo [INFO] 新增成功 >> "%REPORT_FILE%"
set /a PASSED_TESTS+=1
REM 简化处理假设新增成功后需要通过列表查询获取ID
)
set /a TOTAL_TESTS+=1
echo.
echo [INFO] 测试3完成
echo.
REM ============ 测试4: 查询详情 ============
echo [TEST] 测试4: 查询员工企业关系详情...
REM 先通过列表查询获取一个ID
curl -s -X GET "%BASE_URL%/ccdi/staffEnterpriseRelation/list?pageNum=1&pageSize=1" ^
-H "Authorization: Bearer %TOKEN%" ^
> temp_get_list.json
REM 简化处理这里应该解析JSON获取第一个ID但Windows批处理处理JSON很困难
REM 实际测试时建议使用bash版本或PowerShell版本
echo [WARNING] 查询详情测试需要手动指定ID >> "%REPORT_FILE%"
echo [INFO] 测试4完成跳过
echo.
REM ============ 测试5: 下载导入模板 ============
echo [TEST] 测试5: 下载导入模板...
curl -s -X POST "%BASE_URL%/ccdi/staffEnterpriseRelation/importTemplate" ^
-H "Authorization: Bearer %TOKEN%" ^
-o "doc\implementation\scripts\test_output\test5_import_template.xlsx" ^
-w "%%{http_code}" > temp_http_code.txt
set /p HTTP_CODE=<temp_http_code.txt
if "%HTTP_CODE%"=="200" (
echo [INFO] 下载导入模板成功 >> "%REPORT_FILE%"
echo [INFO] 模板文件已保存到: doc\implementation\scripts\test_output\test5_import_template.xlsx >> "%REPORT_FILE%"
set /a PASSED_TESTS+=1
) else (
echo [ERROR] 下载导入模板失败 (HTTP %HTTP_CODE%) >> "%REPORT_FILE%"
set /a FAILED_TESTS+=1
)
set /a TOTAL_TESTS+=1
echo.
echo [INFO] 测试5完成
echo.
REM ============ 测试6: 导出数据 ============
echo [TEST] 测试6: 导出员工企业关系数据...
curl -s -X POST "%BASE_URL%/ccdi/staffEnterpriseRelation/export" ^
-H "Authorization: Bearer %TOKEN%" ^
-H "Content-Type: application/json" ^
-d "{}" ^
-o "doc\implementation\scripts\test_output\test6_export.xlsx" ^
-w "%%{http_code}" > temp_http_code.txt
set /p HTTP_CODE=<temp_http_code.txt
if "%HTTP_CODE%"=="200" (
echo [INFO] 导出数据成功 >> "%REPORT_FILE%"
echo [INFO] 导出文件已保存到: doc\implementation\scripts\test_output\test6_export.xlsx >> "%REPORT_FILE%"
set /a PASSED_TESTS+=1
) else (
echo [ERROR] 导出数据失败 (HTTP %HTTP_CODE%) >> "%REPORT_FILE%"
set /a FAILED_TESTS+=1
)
set /a TOTAL_TESTS+=1
echo.
echo [INFO] 测试6完成
echo.
REM 清理临时文件
del temp_login_response.json 2>nul
del temp_list_response.json 2>nul
del temp_add_response.json 2>nul
del temp_get_list.json 2>nul
del temp_http_code.txt 2>nul
REM ============ 输出测试总结 ============
echo ======================================== >> "%REPORT_FILE%"
echo 测试总结 >> "%REPORT_FILE%"
echo ======================================== >> "%REPORT_FILE%"
echo 总测试数: %TOTAL_TESTS% >> "%REPORT_FILE%"
echo 通过: %PASSED_TESTS% >> "%REPORT_FILE%"
echo 失败: %FAILED_TESTS% >> "%REPORT_FILE%"
echo ======================================== >> "%REPORT_FILE%"
echo.
echo ========================================
echo 测试总结
echo ========================================
echo 总测试数: %TOTAL_TESTS%
echo 通过: %PASSED_TESTS%
echo 失败: %FAILED_TESTS%
echo ========================================
echo 详细日志已保存到: %REPORT_FILE%
echo.
if %FAILED_TESTS%==0 (
echo [INFO] 所有测试通过!
exit /b 0
) else (
echo [ERROR] 部分测试失败,请查看详细日志
exit /b 1
)