You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

多轮迭代测试失败时input json追加写日志仅单次生效问题求解

问题根因
  • 原代码使用'w'(覆盖写入)模式打开日志文件,每次触发失败逻辑打开文件时,都会清空文件原有内容,因此仅会保留最后一次失败用例的写入结果
  • 无意义重定向sys.stdout,不仅增加额外风险,也不属于写入文件的常规实现方案
修复后代码
import json

if statuscode != 200:
    json_data = context.payload
    # 追加模式打开日志文件,新增内容直接追加到文件末尾
    with open("1AP.log", "a", encoding="utf-8") as log_file:
        # 可选:添加分隔线区分不同失败用例
        log_file.write("\n" + "*"*40 + " 失败用例输入 " + "*"*40 + "\n")
        # ensure_ascii=False避免中文等非ASCII字符乱码
        log_file.write(json.dumps(json_data, indent=2, ensure_ascii=False) + "\n")
优化说明
  • 打开模式替换为'a'(追加模式),每次写入不会清空历史记录,所有失败用例的输入都会完整保留
  • 使用with语法自动管理文件句柄,无需手动调用close(),异常场景也不会出现文件资源泄漏
  • 新增分隔线标识,多个失败用例的内容不会混淆,排查问题时更容易定位
  • 新增编码配置,避免中文等非ASCII字符写入时出现乱码
  • 移除sys.stdout重定向逻辑,不会影响其他正常的标准输出打印

内容的提问来源于stack exchange,提问作者Apratim Chaudhuri

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 14:18:01