|
|
@@ -4,22 +4,27 @@
|
|
|
# 文件上传接口测试脚本
|
|
|
# ============================================
|
|
|
# 使用方法: ./test_upload_api.sh [host] [port]
|
|
|
-# 示例: ./test_upload_api.sh localhost 8003
|
|
|
+# 示例: ./test_upload_api.sh localhost 5232
|
|
|
# ============================================
|
|
|
|
|
|
# 配置参数
|
|
|
HOST=${1:-localhost}
|
|
|
-PORT=${2:-8003}
|
|
|
+PORT=${2:-5232}
|
|
|
BASE_URL="http://${HOST}:${PORT}"
|
|
|
UPLOAD_URL="${BASE_URL}/api/v1/parse/upload"
|
|
|
STATUS_URL="${BASE_URL}/parse/status"
|
|
|
+REGISTER_URL="${BASE_URL}/auth/register"
|
|
|
|
|
|
# 测试文件路径(相对于脚本所在目录)
|
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
|
TEST_FILE="${SCRIPT_DIR}/test.docx"
|
|
|
|
|
|
-# 测试用户ID
|
|
|
-USER_ID="test-user-$(date +%s)"
|
|
|
+# 测试用户信息
|
|
|
+TIMESTAMP=$(date +%s)
|
|
|
+TEST_USERNAME="testuser_${TIMESTAMP}"
|
|
|
+TEST_EMAIL="testuser_${TIMESTAMP}@test.com"
|
|
|
+TEST_PASSWORD="Test123456!"
|
|
|
+USER_ID=""
|
|
|
|
|
|
# 颜色定义
|
|
|
RED='\033[0;31m'
|
|
|
@@ -99,6 +104,58 @@ check_service() {
|
|
|
fi
|
|
|
}
|
|
|
|
|
|
+# 注册测试用户
|
|
|
+register_test_user() {
|
|
|
+ print_header "注册测试用户"
|
|
|
+
|
|
|
+ print_info "用户名: $TEST_USERNAME"
|
|
|
+ print_info "邮箱: $TEST_EMAIL"
|
|
|
+ print_info "注册URL: $REGISTER_URL"
|
|
|
+
|
|
|
+ RESPONSE=$(curl -s -w "\n%{http_code}" \
|
|
|
+ -X POST "$REGISTER_URL" \
|
|
|
+ -H "Content-Type: application/json" \
|
|
|
+ -d "{\"username\":\"${TEST_USERNAME}\",\"email\":\"${TEST_EMAIL}\",\"password\":\"${TEST_PASSWORD}\",\"confirmPassword\":\"${TEST_PASSWORD}\"}" \
|
|
|
+ --connect-timeout 10)
|
|
|
+
|
|
|
+ HTTP_CODE=$(echo "$RESPONSE" | tail -n1)
|
|
|
+ BODY=$(echo "$RESPONSE" | sed '$d')
|
|
|
+
|
|
|
+ echo -e "\n${YELLOW}响应状态码:${NC} $HTTP_CODE"
|
|
|
+
|
|
|
+ if [ "$JQ_AVAILABLE" = true ]; then
|
|
|
+ echo "$BODY" | jq . 2>/dev/null || echo "$BODY"
|
|
|
+ else
|
|
|
+ echo "$BODY"
|
|
|
+ fi
|
|
|
+
|
|
|
+ # 解析用户ID
|
|
|
+ if [ "$HTTP_CODE" = "200" ] || [ "$HTTP_CODE" = "201" ]; then
|
|
|
+ print_success "用户注册成功!"
|
|
|
+
|
|
|
+ if [ "$JQ_AVAILABLE" = true ]; then
|
|
|
+ USER_ID=$(echo "$BODY" | jq -r '.data.user.id // .data.userId // .userId // empty' 2>/dev/null)
|
|
|
+ if [ -z "$USER_ID" ] || [ "$USER_ID" = "null" ]; then
|
|
|
+ # 尝试其他可能的字段
|
|
|
+ USER_ID=$(echo "$BODY" | jq -r '.data.id // .id // empty' 2>/dev/null)
|
|
|
+ fi
|
|
|
+
|
|
|
+ if [ -n "$USER_ID" ] && [ "$USER_ID" != "null" ]; then
|
|
|
+ print_info "用户ID: $USER_ID"
|
|
|
+ echo "$USER_ID" > "${SCRIPT_DIR}/.last_user_id"
|
|
|
+ else
|
|
|
+ print_error "无法从响应中获取用户ID"
|
|
|
+ echo "响应内容: $BODY"
|
|
|
+ exit 1
|
|
|
+ fi
|
|
|
+ fi
|
|
|
+ else
|
|
|
+ print_error "用户注册失败 (HTTP $HTTP_CODE)"
|
|
|
+ print_info "响应: $BODY"
|
|
|
+ exit 1
|
|
|
+ fi
|
|
|
+}
|
|
|
+
|
|
|
# 测试文件上传
|
|
|
test_upload() {
|
|
|
print_header "测试文件上传接口"
|
|
|
@@ -231,8 +288,8 @@ show_help() {
|
|
|
echo " -s, --status 仅查询上次上传的文档状态"
|
|
|
echo ""
|
|
|
echo "示例:"
|
|
|
- echo " $0 # 使用默认配置 (localhost:8003)"
|
|
|
- echo " $0 192.168.1.100 8003 # 指定服务器地址"
|
|
|
+ echo " $0 # 使用默认配置 (localhost:5232)"
|
|
|
+ echo " $0 192.168.1.100 5232 # 指定服务器地址"
|
|
|
echo " $0 -p # 上传并轮询状态"
|
|
|
echo " $0 -s # 查询上次上传的状态"
|
|
|
}
|
|
|
@@ -272,6 +329,7 @@ main() {
|
|
|
BASE_URL="http://${HOST}:${PORT}"
|
|
|
UPLOAD_URL="${BASE_URL}/api/v1/parse/upload"
|
|
|
STATUS_URL="${BASE_URL}/parse/status"
|
|
|
+ REGISTER_URL="${BASE_URL}/auth/register"
|
|
|
|
|
|
print_header "文件上传接口测试"
|
|
|
echo "目标服务: $BASE_URL"
|
|
|
@@ -292,6 +350,7 @@ main() {
|
|
|
|
|
|
check_test_file
|
|
|
check_service
|
|
|
+ register_test_user
|
|
|
test_upload
|
|
|
|
|
|
if [ "$POLL_STATUS" = true ] && [ -f "${SCRIPT_DIR}/.last_document_id" ]; then
|