From 1a9ca2a05fc4468058538aae1535e28906769907 Mon Sep 17 00:00:00 2001 From: wkc <978997012@qq.com> Date: Thu, 5 Mar 2026 14:06:29 +0800 Subject: [PATCH] =?UTF-8?q?test:=20=E6=B7=BB=E5=8A=A0=E5=BC=82=E6=AD=A5?= =?UTF-8?q?=E6=96=87=E4=BB=B6=E4=B8=8A=E4=BC=A0=E5=8A=9F=E8=83=BD=E9=9B=86?= =?UTF-8?q?=E6=88=90=E6=B5=8B=E8=AF=95=E8=84=9A=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/test-scripts/test-async-file-upload.sh | 113 ++++++++++++++++++++ 1 file changed, 113 insertions(+) create mode 100644 docs/test-scripts/test-async-file-upload.sh diff --git a/docs/test-scripts/test-async-file-upload.sh b/docs/test-scripts/test-async-file-upload.sh new file mode 100644 index 0000000..c363c1a --- /dev/null +++ b/docs/test-scripts/test-async-file-upload.sh @@ -0,0 +1,113 @@ +#!/ 异步文件上传功能集成测试脚本 + +# 测试说明 +# 本脚本用于测试异步文件上传功能的完整流程 +# 包括: 文件上传、轮询状态、 数据保存 + +# 测试环境 +BASE_URL="http://localhost:8080" +TOKEN="" + +# 颜色输出 +RED='\033[0;31m' +GREEN='\033[1;32m' +YELLOW='\033[1;33m' +NC='\033[0m' + +# 获取 Token +echo -e "${YELLOW}开始获取 Token...${NC}" +TOKEN_RESPONSE=$(curl -s -X POST "${BASE_URL}/login/test?username=admin&password=admin123") +TOKEN=$(echo "$TOKEN_RESPONSE" | grep -o '"token":"[^"]*' | sed 's/.*:\([^"]*\).*/\1/') + +if [ -z "$TOKEN" ]; then + echo -e "${RED}获取 Token 失败${NC}" + exit 1 +fi +echo -e "${GREEN}Token 获取成功${NC}" + +# 准备测试数据 +echo -e "${YELLOW}准备测试项目...${NC}" + +# 创建测试项目 +PROJECT_DATA=$(cat < "$TEST_FILE" +echo "622xxx,2024-01-01,1000.00,测试交易1" >> "$TEST_FILE" +echo "623xxx,2024-01-02,2000.00,测试交易2" >> "$TEST_FILE" +echo "622xxx,2024-01-03,3000.00,测试交易3" >> "$TEST_FILE" + +# 测试文件上传 +echo -e "${YELLOW}测试文件上传...${NC}" +UPLOAD_RESPONSE=$(curl -s -X POST "${BASE_URL}/ccdi/file-upload/batch" \ + -H "Authorization: Bearer ${TOKEN}" \ + -F "projectId=${PROJECT_ID}" \ + -F "files[]=@${TEST_FILE};type=text/plain") + +BATCH_ID=$(echo "$UPLOAD_RESPONSE" | grep -o '"data":"[^"]*' | sed 's/.*:\([^"]*\).*/\1/') + +if [ -z "$BATCH_ID" ]; then + echo -e "${RED}文件上传失败${NC}" + exit 1 +fi +echo -e "${GREEN}文件上传成功: Batch ID=${BATCH_ID}${NC}" + +# 等待处理完成 +echo -e "${YELLOW}等待文件处理...${NC}" +sleep 10 + +# 查询上传记录 +RECORDS_RESPONSE=$(curl -s -X GET "${BASE_URL}/ccdi/file-upload/list?projectId=${PROJECT_ID}" \ + -H "Authorization: Bearer ${TOKEN}") + +RECORDS=$(echo "$RECORDS_RESPONSE" | grep -o '"rows"' | sed 's/.*:\(\[.*\]\).*/\1/') + +if [ -z "$RECORDS" ] || [ "$RECORDS" = "[]" ]; then + echo -e "${RED}未找到上传记录${NC}" + exit 1 +fi + +echo -e "${GREEN}查询到 ${#RECORDS[@]} 条记录${NC}" + +# 验证记录状态 +for RECORD in $RECORDS; do + STATUS=$(echo "$RECORD" | grep -o '"fileStatus"' | sed 's/.*:\([^"]*\).*/\1/') + + if [ "$STATUS" = "\"parsed_success\"" ]; then + echo -e "${GREEN}文件解析成功${NC}" + elif [ "$STATUS" = "\"parsed_failed\"" ]; then + ERROR=$(echo "$RECORD" | grep -o '"errorMessage"' | sed 's/.*:\([^"]*\).*/\1/') + echo -e "${RED}文件解析失败: ${ERROR}${NC}" + else + echo -e "${YELLOW}文件状态: ${STATUS}${NC}" + fi +done + +# 清理测试数据 +echo -e "${YELLOW}清理测试数据...${NC}" +curl -s -X DELETE "${BASE_URL}/ccdi/project/${PROJECT_ID}" \ + -H "Authorization: Bearer ${TOKEN}" + +rm -f "$TEST_FILE" + +echo -e "${GREEN}测试完成${NC}"