import requests import json # 配置 BASE_URL = "http://localhost:8080" LOGIN_URL = f"{BASE_URL}/login/test" IMPORT_URL = f"{BASE_URL}/ccdi/employee/importData" # 测试账号 username = "admin" password = "admin123" # 登录获取token def login(): """登录获取token""" print("正在登录...") response = requests.post(LOGIN_URL, data={ "username": username, "password": password }) if response.status_code == 200: result = response.json() if result.get("code") == 200: token = result.get("token") print(f"登录成功,获取到token: {token[:20]}...") return token else: print(f"登录失败: {result.get('msg')}") exit(1) else: print(f"登录请求失败: {response.status_code}") exit(1) # 准备测试Excel文件(需要手动准备) def test_duplicate_detection(): """测试Excel内双字段重复检测""" token = login() headers = { "Authorization": f"Bearer {token}" } # 测试场景1: 柜员号在Excel内重复 print("\n=== 测试场景1: 柜员号在Excel内重复 ===") print("准备包含重复柜员号的Excel文件...") print("期望结果: 第二条记录应该被标记为失败,错误信息包含'柜员号[XXX]在导入文件中重复'") # 测试场景2: 身份证号在Excel内重复 print("\n=== 测试场景2: 身份证号在Excel内重复 ===") print("准备包含重复身份证号的Excel文件...") print("期望结果: 第二条记录应该被标记为失败,错误信息包含'身份证号[XXX]在导入文件中重复'") # 测试场景3: 柜员号和身份证号同时重复 print("\n=== 测试场景3: 柜员号和身份证号同时重复 ===") print("准备包含同时重复柜员号和身份证号的Excel文件...") print("期望结果: 两条记录都应该被标记为失败") # 测试场景4: 柜员号在数据库中存在 print("\n=== 测试场景4: 柜员号在数据库中存在 ===") print("准备包含已存在柜员号的Excel文件...") print("期望结果: 如果启用更新支持,则更新;否则报错'柜员号已存在且未启用更新支持'") # 测试场景5: 身份证号在数据库中存在 print("\n=== 测试场景5: 身份证号在数据库中存在 ===") print("准备包含已存在身份证号的Excel文件...") print("期望结果: 如果是新增(柜员号不存在),则报错'该身份证号已存在'") # 测试场景6: 正常导入 print("\n=== 测试场景6: 正常导入(无重复) ===") print("准备无重复的Excel文件...") print("期望结果: 所有记录都应该成功导入") print("\n=== 测试说明 ===") print("请手动准备Excel文件,使用以下接口测试:") print(f"POST {IMPORT_URL}") print("Headers:") print(f" Authorization: Bearer {token[:20]}...") print("Body (multipart/form-data):") print(" file: [Excel文件]") print(" updateSupport: [true/false]") print("\n=== 查询导入状态 ===") print("导入后可以使用以下接口查询状态:") STATUS_URL = f"{BASE_URL}/ccdi/employee/importStatus" print(f"GET {STATUS_URL}?taskId={{taskId}}") print("\n=== 查询失败记录 ===") print("导入失败时可以使用以下接口查询失败记录:") FAILURES_URL = f"{BASE_URL}/ccdi/employee/importFailures" print(f"GET {FAILURES_URL}?taskId={{taskId}}") if __name__ == "__main__": test_duplicate_detection()