71 lines
2.3 KiB
Python
71 lines
2.3 KiB
Python
import time
|
||
import random
|
||
import string
|
||
from framework.core.logger import get_logger
|
||
from framework.business.quantization_page import QuantizationPage
|
||
|
||
logger = get_logger("QuantizationScenario")
|
||
|
||
def _create_and_submit_task(quant_page: QuantizationPage, task_name: str):
|
||
"""内部辅助函数:执行单次完整的任务创建流"""
|
||
# 1. 进入任务创建流程
|
||
quant_page.navigate_to()
|
||
quant_page.click_create_task()
|
||
|
||
# 2. 输入名称
|
||
quant_page.input_task_name(task_name)
|
||
|
||
# 3. 选择编译模式
|
||
quant_page.select_mode_fast_eval()
|
||
|
||
# 4. 选择镜像
|
||
quant_page.select_image("dcloud_ai_toolchain_ubuntu_22_s100_cpu-2")
|
||
|
||
# 5. 选取模型文件
|
||
quant_page.upload_model_file("model", "result.onnx")
|
||
|
||
# 6. 输入 march 值
|
||
quant_page.input_march_param("nash-e")
|
||
|
||
# 7. 提交表单
|
||
quant_page.click_final_submit()
|
||
|
||
|
||
def run_quantization_lifecycle(quant_page: QuantizationPage):
|
||
"""量化任务全生命周期流程"""
|
||
logger.info("开始执行量化工具自动化流程...")
|
||
|
||
# ================= 阶段 1:手动终止链路 =================
|
||
random_str1 = ''.join(random.choices(string.ascii_uppercase + string.digits, k=8))
|
||
task_1 = f"AutoQuant_{random_str1}"
|
||
logger.info(f"--- 阶段一: 测试任务手动终止与删除 [{task_1}] ---")
|
||
|
||
_create_and_submit_task(quant_page, task_1)
|
||
|
||
# 1. 查日志
|
||
quant_page.open_and_close_logs(task_1)
|
||
# 2. 停止
|
||
quant_page.stop_task(task_1)
|
||
# 3. 删除
|
||
quant_page.delete_task(task_1)
|
||
|
||
|
||
# ================= 阶段 2:完整成功链路 =================
|
||
random_str2 = ''.join(random.choices(string.ascii_uppercase + string.digits, k=8))
|
||
task_2 = f"AutoQuant_{random_str2}"
|
||
logger.info(f"--- 阶段二: 测试任务完整成功链路 [{task_2}] ---")
|
||
|
||
_create_and_submit_task(quant_page, task_2)
|
||
|
||
# 1. 查日志
|
||
quant_page.open_and_close_logs(task_2)
|
||
|
||
# 监控状态流转为终态 (完成或失败)
|
||
quant_page.wait_for_task_finished(task_2)
|
||
|
||
# + 成功后的新增操作: 报告查看与全量下载拦截
|
||
quant_page.open_and_close_report(task_2)
|
||
quant_page.download_all_results(task_2)
|
||
|
||
logger.info("✅ 量化工具全生命周期(异常截断+成功收尾) 双链路完整验证通过!")
|