# framework/scripts/file_system_scenario.py import os import time from framework.core.logger import get_logger logger = get_logger("FileSystemScenario") def run_stress_upload_test(fm, file_path, cycles=3): """ 业务逻辑:文件上传压力测试(大文件上传-取消) """ logger.info(f"🚀 启动上传-取消压测 - {cycles} 次") for i in range(1, cycles + 1): logger.info(f"--- 循环第 {i} 次 ---") try: fm.upload_files(file_path) # 大文件需要等一下让上传进度条和取消按钮出现 time.sleep(3) fm.cancel_upload() except Exception as e: logger.warning(f"压测第 {i} 次异常(可忽略): {e}") # 确保弹窗关闭,不影响下一轮 try: fm.page.evaluate("document.querySelector('button.p-dialog-header-close')?.click()") except: pass time.sleep(1) def run_full_file_lifecycle(fm, folder_name): """ 业务逻辑:完整的文件生命周期流程(大文件版本) """ logger.info(f"--- 开启文件系统全生命周期测试 [{folder_name}] ---") fm.navigate_to() # 1. 创建并进入 fm.create_folder(folder_name) fm.enter_folder(folder_name) # 2. 上传压力测试 from framework.config.settings import Config test_file = Config.TEST_FILE if os.path.exists(test_file): logger.info(f"📄 测试文件: {test_file} ({os.path.getsize(test_file)} bytes)") run_stress_upload_test(fm, test_file, cycles=3) # 3. 正式上传(等待完成) fm.upload_files(test_file) fm.wait_for_success(count=1) # 4. 重命名与删除 fm.rename_item("Fruits-15.zip", "UI_TEST_RENAMED.zip") fm.delete_item("UI_TEST_RENAMED.zip") else: logger.warning(f"⚠️ 测试文件不存在: {test_file},跳过上传测试") # 5. 清理 fm.back_to_root() fm.delete_item(folder_name) logger.info("✅ 文件系统场景测试完成")