61 lines
2.1 KiB
Python
61 lines
2.1 KiB
Python
# 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("✅ 文件系统场景测试完成")
|