353 lines
9.7 KiB
Bash
353 lines
9.7 KiB
Bash
|
|
#!/bin/bash
|
|||
|
|
|
|||
|
|
# 中介新增和修改功能完整测试脚本
|
|||
|
|
# 测试个人和机构中介的新增和修改功能
|
|||
|
|
|
|||
|
|
BASE_URL="http://localhost:8080"
|
|||
|
|
USERNAME="admin"
|
|||
|
|
PASSWORD="admin123"
|
|||
|
|
|
|||
|
|
# 颜色输出
|
|||
|
|
RED='\033[0;31m'
|
|||
|
|
GREEN='\033[0;32m'
|
|||
|
|
YELLOW='\033[1;33m'
|
|||
|
|
NC='\033[0m' # No Color
|
|||
|
|
|
|||
|
|
# 测试结果统计
|
|||
|
|
TOTAL_TESTS=0
|
|||
|
|
PASSED_TESTS=0
|
|||
|
|
FAILED_TESTS=0
|
|||
|
|
|
|||
|
|
# 测试报告文件
|
|||
|
|
REPORT_FILE="doc/scripts/test_output/test_report_$(date +%Y%m%d_%H%M%S).txt"
|
|||
|
|
mkdir -p doc/scripts/test_output
|
|||
|
|
|
|||
|
|
# 日志函数
|
|||
|
|
log_info() {
|
|||
|
|
echo -e "${GREEN}[INFO]${NC} $1" | tee -a "$REPORT_FILE"
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
log_error() {
|
|||
|
|
echo -e "${RED}[ERROR]${NC} $1" | tee -a "$REPORT_FILE"
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
log_warning() {
|
|||
|
|
echo -e "${YELLOW}[WARNING]${NC} $1" | tee -a "$REPORT_FILE"
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
log_test() {
|
|||
|
|
echo -e "${YELLOW}[TEST]${NC} $1" | tee -a "$REPORT_FILE"
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
# 测试结果记录
|
|||
|
|
record_pass() {
|
|||
|
|
((PASSED_TESTS++))
|
|||
|
|
((TOTAL_TESTS++))
|
|||
|
|
log_info "✓ 测试通过: $1"
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
record_fail() {
|
|||
|
|
((FAILED_TESTS++))
|
|||
|
|
((TOTAL_TESTS++))
|
|||
|
|
log_error "✗ 测试失败: $1"
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
# 登录获取token
|
|||
|
|
login() {
|
|||
|
|
log_test "登录获取Token..."
|
|||
|
|
local response=$(curl -s -X POST "$BASE_URL/login/test" \
|
|||
|
|
-H "Content-Type: application/json" \
|
|||
|
|
-d "{\"username\":\"$USERNAME\",\"password\":\"$PASSWORD\"}")
|
|||
|
|
|
|||
|
|
local token=$(echo $response | grep -o '"token":"[^"]*' | sed 's/"token":"//')
|
|||
|
|
|
|||
|
|
if [ -z "$token" ]; then
|
|||
|
|
log_error "登录失败,无法获取Token"
|
|||
|
|
exit 1
|
|||
|
|
fi
|
|||
|
|
|
|||
|
|
log_info "登录成功,Token: ${token:0:20}..."
|
|||
|
|
echo "$token"
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
# 测试新增个人中介
|
|||
|
|
test_add_person_intermediary() {
|
|||
|
|
local token=$1
|
|||
|
|
|
|||
|
|
log_test "测试新增个人中介..."
|
|||
|
|
|
|||
|
|
local add_data=$(cat <<EOF
|
|||
|
|
{
|
|||
|
|
"name": "测试个人新增",
|
|||
|
|
"certificateNo": "110101199001019999",
|
|||
|
|
"indivType": "中介",
|
|||
|
|
"indivSubType": "本人",
|
|||
|
|
"indivGender": "M",
|
|||
|
|
"indivCertType": "身份证",
|
|||
|
|
"indivPhone": "13900139000",
|
|||
|
|
"indivCompany": "测试公司新增",
|
|||
|
|
"indivPosition": "经纪人",
|
|||
|
|
"status": "0",
|
|||
|
|
"remark": "新增测试"
|
|||
|
|
}
|
|||
|
|
EOF
|
|||
|
|
)
|
|||
|
|
|
|||
|
|
local response=$(curl -s -X POST "$BASE_URL/dpc/intermediary/person" \
|
|||
|
|
-H "Authorization: Bearer $token" \
|
|||
|
|
-H "Content-Type: application/json" \
|
|||
|
|
-d "$add_data")
|
|||
|
|
|
|||
|
|
echo "$response"
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
# 测试新增机构中介
|
|||
|
|
test_add_entity_intermediary() {
|
|||
|
|
local token=$1
|
|||
|
|
|
|||
|
|
log_test "测试新增机构中介..."
|
|||
|
|
|
|||
|
|
local add_data=$(cat <<EOF
|
|||
|
|
{
|
|||
|
|
"name": "测试机构新增",
|
|||
|
|
"corpCreditCode": "91110000YYYYYYYYYY",
|
|||
|
|
"corpType": "有限责任公司",
|
|||
|
|
"corpNature": "民企",
|
|||
|
|
"corpIndustry": "测试行业",
|
|||
|
|
"corpAddress": "北京市测试区",
|
|||
|
|
"corpLegalRep": "测试法人",
|
|||
|
|
"status": "0",
|
|||
|
|
"remark": "新增测试"
|
|||
|
|
}
|
|||
|
|
EOF
|
|||
|
|
)
|
|||
|
|
|
|||
|
|
local response=$(curl -s -X POST "$BASE_URL/dpc/intermediary/entity" \
|
|||
|
|
-H "Authorization: Bearer $token" \
|
|||
|
|
-H "Content-Type: application/json" \
|
|||
|
|
-d "$add_data")
|
|||
|
|
|
|||
|
|
echo "$response"
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
# 测试修改个人中介
|
|||
|
|
test_update_person_intermediary() {
|
|||
|
|
local token=$1
|
|||
|
|
local intermediary_id=$2
|
|||
|
|
|
|||
|
|
log_test "测试修改个人中介 (ID: $intermediary_id)..."
|
|||
|
|
|
|||
|
|
local update_data=$(cat <<EOF
|
|||
|
|
{
|
|||
|
|
"intermediaryId": $intermediary_id,
|
|||
|
|
"name": "测试个人修改",
|
|||
|
|
"certificateNo": "110101199001019999",
|
|||
|
|
"indivType": "中介",
|
|||
|
|
"indivSubType": "本人",
|
|||
|
|
"indivGender": "M",
|
|||
|
|
"indivCertType": "身份证",
|
|||
|
|
"indivPhone": "13900139000",
|
|||
|
|
"indivCompany": "测试公司修改",
|
|||
|
|
"indivPosition": "高级经纪人",
|
|||
|
|
"status": "0",
|
|||
|
|
"remark": "修改测试"
|
|||
|
|
}
|
|||
|
|
EOF
|
|||
|
|
)
|
|||
|
|
|
|||
|
|
local response=$(curl -s -X PUT "$BASE_URL/dpc/intermediary/person" \
|
|||
|
|
-H "Authorization: Bearer $token" \
|
|||
|
|
-H "Content-Type: application/json" \
|
|||
|
|
-d "$update_data")
|
|||
|
|
|
|||
|
|
echo "$response"
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
# 测试修改机构中介
|
|||
|
|
test_update_entity_intermediary() {
|
|||
|
|
local token=$1
|
|||
|
|
local intermediary_id=$2
|
|||
|
|
|
|||
|
|
log_test "测试修改机构中介 (ID: $intermediary_id)..."
|
|||
|
|
|
|||
|
|
local update_data=$(cat <<EOF
|
|||
|
|
{
|
|||
|
|
"intermediaryId": $intermediary_id,
|
|||
|
|
"name": "测试机构修改",
|
|||
|
|
"certificateNo": "91110000YYYYYYYYYY",
|
|||
|
|
"corpCreditCode": "91110000YYYYYYYYYY",
|
|||
|
|
"corpType": "股份有限公司",
|
|||
|
|
"corpNature": "国企",
|
|||
|
|
"corpIndustry": "修改行业",
|
|||
|
|
"corpAddress": "上海市修改区",
|
|||
|
|
"corpLegalRep": "修改法人",
|
|||
|
|
"status": "0",
|
|||
|
|
"remark": "修改测试"
|
|||
|
|
}
|
|||
|
|
EOF
|
|||
|
|
)
|
|||
|
|
|
|||
|
|
local response=$(curl -s -X PUT "$BASE_URL/dpc/intermediary/entity" \
|
|||
|
|
-H "Authorization: Bearer $token" \
|
|||
|
|
-H "Content-Type: application/json" \
|
|||
|
|
-d "$update_data")
|
|||
|
|
|
|||
|
|
echo "$response"
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
# 验证修改结果
|
|||
|
|
verify_update() {
|
|||
|
|
local token=$1
|
|||
|
|
local intermediary_id=$2
|
|||
|
|
local expected_name=$3
|
|||
|
|
|
|||
|
|
local response=$(curl -s -X GET "$BASE_URL/dpc/intermediary/$intermediary_id" \
|
|||
|
|
-H "Authorization: Bearer $token")
|
|||
|
|
|
|||
|
|
local actual_name=$(echo $response | grep -o '"name":"[^"]*' | head -1 | sed 's/"name":"//')
|
|||
|
|
|
|||
|
|
if [ "$actual_name" = "$expected_name" ]; then
|
|||
|
|
return 0
|
|||
|
|
else
|
|||
|
|
return 1
|
|||
|
|
fi
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
# 获取中介列表(按名称筛选)
|
|||
|
|
get_intermediary_by_name() {
|
|||
|
|
local token=$1
|
|||
|
|
local name=$2
|
|||
|
|
|
|||
|
|
local response=$(curl -s -X GET "$BASE_URL/dpc/intermediary/list?name=$name&pageNum=1&pageSize=10" \
|
|||
|
|
-H "Authorization: Bearer $token")
|
|||
|
|
|
|||
|
|
echo "$response"
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
# 主测试流程
|
|||
|
|
main() {
|
|||
|
|
echo "========================================" | tee "$REPORT_FILE"
|
|||
|
|
echo "中介新增和修改功能完整测试" | tee -a "$REPORT_FILE"
|
|||
|
|
echo "测试时间: $(date '+%Y-%m-%d %H:%M:%S')" | tee -a "$REPORT_FILE"
|
|||
|
|
echo "========================================" | tee -a "$REPORT_FILE"
|
|||
|
|
echo "" | tee -a "$REPORT_FILE"
|
|||
|
|
|
|||
|
|
# 登录
|
|||
|
|
TOKEN=$(login)
|
|||
|
|
echo "" | tee -a "$REPORT_FILE"
|
|||
|
|
|
|||
|
|
# 测试1: 新增个人中介
|
|||
|
|
log_test "=== 测试1: 新增个人中介 ==="
|
|||
|
|
add_result=$(test_add_person_intermediary "$TOKEN")
|
|||
|
|
echo "$add_result" | tee -a "$REPORT_FILE"
|
|||
|
|
|
|||
|
|
if echo "$add_result" | grep -q '"code":200'; then
|
|||
|
|
record_pass "个人中介新增成功"
|
|||
|
|
|
|||
|
|
# 获取新增的个人中介ID
|
|||
|
|
sleep 1
|
|||
|
|
person_list=$(get_intermediary_by_name "$TOKEN" "测试个人新增")
|
|||
|
|
person_id=$(echo $person_list | grep -o '"intermediaryId":[0-9]*' | head -1 | sed 's/"intermediaryId"://')
|
|||
|
|
|
|||
|
|
if [ -n "$person_id" ]; then
|
|||
|
|
log_info "获取到新增的个人中介ID: $person_id"
|
|||
|
|
else
|
|||
|
|
log_error "未能获取新增的个人中介ID"
|
|||
|
|
fi
|
|||
|
|
else
|
|||
|
|
record_fail "个人中介新增失败"
|
|||
|
|
person_id=""
|
|||
|
|
fi
|
|||
|
|
echo "" | tee -a "$REPORT_FILE"
|
|||
|
|
|
|||
|
|
# 测试2: 新增机构中介
|
|||
|
|
log_test "=== 测试2: 新增机构中介 ==="
|
|||
|
|
add_result=$(test_add_entity_intermediary "$TOKEN")
|
|||
|
|
echo "$add_result" | tee -a "$REPORT_FILE"
|
|||
|
|
|
|||
|
|
if echo "$add_result" | grep -q '"code":200'; then
|
|||
|
|
record_pass "机构中介新增成功"
|
|||
|
|
|
|||
|
|
# 获取新增的机构中介ID
|
|||
|
|
sleep 1
|
|||
|
|
entity_list=$(get_intermediary_by_name "$TOKEN" "测试机构新增")
|
|||
|
|
entity_id=$(echo $entity_list | grep -o '"intermediaryId":[0-9]*' | head -1 | sed 's/"intermediaryId"://')
|
|||
|
|
|
|||
|
|
if [ -n "$entity_id" ]; then
|
|||
|
|
log_info "获取到新增的机构中介ID: $entity_id"
|
|||
|
|
else
|
|||
|
|
log_error "未能获取新增的机构中介ID"
|
|||
|
|
fi
|
|||
|
|
else
|
|||
|
|
record_fail "机构中介新增失败"
|
|||
|
|
entity_id=""
|
|||
|
|
fi
|
|||
|
|
echo "" | tee -a "$REPORT_FILE"
|
|||
|
|
|
|||
|
|
# 测试3: 修改个人中介
|
|||
|
|
if [ -n "$person_id" ]; then
|
|||
|
|
log_test "=== 测试3: 修改个人中介 ==="
|
|||
|
|
update_result=$(test_update_person_intermediary "$TOKEN" "$person_id")
|
|||
|
|
echo "$update_result" | tee -a "$REPORT_FILE"
|
|||
|
|
|
|||
|
|
if echo "$update_result" | grep -q '"code":200'; then
|
|||
|
|
record_pass "个人中介修改接口调用成功"
|
|||
|
|
|
|||
|
|
# 验证修改结果
|
|||
|
|
sleep 1
|
|||
|
|
if verify_update "$TOKEN" "$person_id" "测试个人修改"; then
|
|||
|
|
record_pass "个人中介修改结果验证成功"
|
|||
|
|
else
|
|||
|
|
record_fail "个人中介修改结果验证失败"
|
|||
|
|
fi
|
|||
|
|
else
|
|||
|
|
record_fail "个人中介修改接口调用失败"
|
|||
|
|
fi
|
|||
|
|
echo "" | tee -a "$REPORT_FILE"
|
|||
|
|
fi
|
|||
|
|
|
|||
|
|
# 测试4: 修改机构中介
|
|||
|
|
if [ -n "$entity_id" ]; then
|
|||
|
|
log_test "=== 测试4: 修改机构中介 ==="
|
|||
|
|
update_result=$(test_update_entity_intermediary "$TOKEN" "$entity_id")
|
|||
|
|
echo "$update_result" | tee -a "$REPORT_FILE"
|
|||
|
|
|
|||
|
|
if echo "$update_result" | grep -q '"code":200'; then
|
|||
|
|
record_pass "机构中介修改接口调用成功"
|
|||
|
|
|
|||
|
|
# 验证修改结果
|
|||
|
|
sleep 1
|
|||
|
|
if verify_update "$TOKEN" "$entity_id" "测试机构修改"; then
|
|||
|
|
record_pass "机构中介修改结果验证成功"
|
|||
|
|
else
|
|||
|
|
record_fail "机构中介修改结果验证失败"
|
|||
|
|
fi
|
|||
|
|
else
|
|||
|
|
record_fail "机构中介修改接口调用失败"
|
|||
|
|
fi
|
|||
|
|
echo "" | tee -a "$REPORT_FILE"
|
|||
|
|
fi
|
|||
|
|
|
|||
|
|
# 输出测试总结
|
|||
|
|
echo "========================================" | tee -a "$REPORT_FILE"
|
|||
|
|
echo "测试总结" | tee -a "$REPORT_FILE"
|
|||
|
|
echo "========================================" | tee -a "$REPORT_FILE"
|
|||
|
|
echo "总测试数: $TOTAL_TESTS" | tee -a "$REPORT_FILE"
|
|||
|
|
echo "通过: $PASSED_TESTS" | tee -a "$REPORT_FILE"
|
|||
|
|
echo "失败: $FAILED_TESTS" | tee -a "$REPORT_FILE"
|
|||
|
|
echo "成功率: $(awk "BEGIN {printf \"%.2f\", ($PASSED_TESTS/$TOTAL_TESTS)*100}")%" | tee -a "$REPORT_FILE"
|
|||
|
|
echo "========================================" | tee -a "$REPORT_FILE"
|
|||
|
|
echo "" | tee -a "$REPORT_FILE"
|
|||
|
|
|
|||
|
|
if [ $FAILED_TESTS -eq 0 ]; then
|
|||
|
|
log_info "所有测试通过!"
|
|||
|
|
exit 0
|
|||
|
|
else
|
|||
|
|
log_error "部分测试失败,请查看详细日志"
|
|||
|
|
exit 1
|
|||
|
|
fi
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
# 执行测试
|
|||
|
|
main
|