存储与自动维护:磁盘为何不会被占满
每天运行数千项测试的套件会全天持续写入证据:视频、跟踪记录、截图和报告。Nexus Studio 会自动限制这些数据的规模。每个文件夹都设有单项测试上限,所有证据共用一个存储配额,磁盘还设有可用空间下限。本页将介绍哪些数据会增长、哪些会优先删除、哪些永不删除,以及每天运行 10,000 次时的磁盘占用情况。
作者:Nexus Studio 团队,Verdict System LLC. 2026年10月9日。
哪些数据会增长,为何规模始终可控
每次运行都会写入数据。测试通过时会保留截图及其元数据。测试失败时会保留一个文件夹: report.md、metadata.json、raw-data.json、screenshot.png, 如果确实发生故障,还会保留 video.webm 和 trace.zip. API、混沌、Smart Monkey、负载及视觉回归测试的运行各自保留独立文件夹,每次运行还会在历史记录中新增一行,并向运行缓存写入临时文件。
仅有单项测试上限还不够。对一项测试而言,保留 20 次失败运行的数据量很小,但对 10,000 项测试而言,就可能占满磁盘。因此,引擎通过两层限制控制存储:每项测试设定上限,所有证据共用一个不会随测试数量增加而增长的配额。
第一层:每项测试的上限
每类证据只保留固定数量的最新运行记录。默认值如下:
| 证据 | 默认保留数量 | 设置 |
|---|---|---|
| 失败 | 每项测试在每个浏览器上的最新 20 次运行 | NEXUS_BUGREPORT_RETAIN |
| 通过 | 每项测试在每个浏览器上的最新 5 次运行 | NEXUS_PASSED_RETAIN |
| API 运行 | 每项 API 测试最新的 20 次通过运行。失败运行没有单独的数量上限:由存储配额限制。 | NEXUS_API_EVIDENCE_KEEP |
| 混沌测试运行 | 每项测试在每个浏览器上最新的 20 次经受住扰动的运行。未经受住扰动的运行没有单独的数量上限:由存储配额限制。 | NEXUS_CHAOS_RETAIN |
| 视觉回归 | 每项测试在每个检查点的最新 10 次 | NEXUS_VISUAL_REGRESSION_RETAIN |
| Smart Monkey 会话 | 最新 10 次 | NEXUS_MONKEY_RETAIN |
| 运行上下文 | 最新 100 次运行 | NEXUS_RUN_CONTEXT_RETAIN |
| History | 每项测试在每个浏览器上的最新 50 行 | NEXUS_HISTORY_RETAIN |
| 遥测归档 | 最多 2 个 zip 文件,保留时间均不超过 7 天,总计 500 MB | NEXUS_CACHE_ZIPS, NEXUS_CACHE_RETENTION_DAYS, NEXUS_CACHE_MAX_MB |
每项限制都对应工作区 .env 中的一行配置。除三项遥测限制外,其余均可在设置中修改。
第二层:所有证据共用一个配额,并设定可用空间下限
NEXUS_EVIDENCE_MAX_GB 默认为 20 GB, 限制所有证据的总大小:失败、通过、API、混沌测试、Smart Monkey、负载测试和视觉回归运行的证据均包含在内。此上限不会随测试数量增加。无论是 100 项还是 10,000 项测试,证据总量都保持在此上限以内。
NEXUS_MIN_FREE_GB 默认为 10 GB, 指磁盘需保留的可用空间。当磁盘可用空间低于此值时,即使证据总量仍未达到配额,也会删除较早的证据。
当任一限制被突破时,引擎会按以下顺序删除整个运行文件夹:
- 通过的运行和视觉回归运行,最早的优先。
- 然后是失败的运行,最早的优先。
- 一旦证据总量低于配额且磁盘可用空间高于下限,清理便会停止。
如果每项测试只剩下最新一次运行,总量却仍超出配额,引擎会在运行结束后提示:请提高配额,或将所需内容归档并清除较早的运行。可用空间下限仅通过清理证据来维持。如果是其他文件占满磁盘,引擎会清理自身的证据,直到每项测试只保留最新一次运行,而 Studio 会持续警告磁盘空间不足。
绝不删除的内容
- 每项测试在每种浏览器上的最新一次运行, 以及最新的 Smart Monkey 会话和负载测试运行。刚结束的运行始终是其所属类别中的最新一次。
- 归档。 您在 Evidence Locker 中通过归档…选择保留的副本存放在证据文件夹旁,而非其中。单项上限和总配额均不影响这些副本。
- 历史记录。 删除运行文件夹不会删除该运行对应的记录行。历史记录有独立的保留范围,默认保留每项测试在每种浏览器上的 50 次运行。
- 监管链。 台账仅允许追加,从不删减。
已封存证据的清除会留有记录
封存需主动启用。封存记录会使用 SHA-256 计算其文件夹内每个文件的哈希值,并将该记录链接到前一条记录,因此如果已封存的文件夹消失却没有任何说明,看起来就与遭到篡改完全一样。
在因配额限制而删除已封存文件夹之前,引擎会向台账追加一条对应的 PURGE 条目,注明该文件夹因磁盘配额而被删除及删除时间。台账仍可证明该文件夹的哈希值,而 nexus verify 会将该记录报告为 PURGED, 而非遭到篡改。如果台账无法记录 PURGE 条目,则保留该文件夹。
哪些维护会自动执行,何时执行
无论采用哪种模式,引擎都会在每次运行后进行自维护:单项测试、套件、循环、Watch 计划、Selenium、pytest 和 API 运行均是如此。
- 每次运行后都会检查可用空间.
- 证据大小检查最多每 15 分钟执行一次,若磁盘可用空间低于下限,则立即执行。此轮维护会删除最早的运行,直到同时满足两项限制。
- 清理临时文件。 各次运行的结果文件和被测应用程序的日志在超过 24 小时后删除。配置错误日志保留最新的 14 个文件。被终止的运行在 Windows 临时文件夹中遗留的文件夹也会在 24 小时后删除。
- 每次运行开始和结束时都会清空 Playwright 的临时输出文件夹.
- 日志达到 10 MB 时轮转。
- 每次运行后, 遥测临时文件会打包为 zip 文件,并受上述三项限制约束。
Studio 中显示的内容
工作区 › 磁盘显示:
- 证据已用空间及其配额;
- 磁盘可用空间及其下限;
- 上次检查的时间,以及上轮维护释放的空间;
- 立即运行维护, 可立即执行相同的维护,无需等到下次运行结束后。
当可用空间低于下限时,Studio 会显示磁盘空间不足警告。两项限制均位于设置中的证据 & 保留下。同一面板还会列出每次运行写入的所有文件夹,以及各自的大小和限制: 每次运行保留的内容.
Docker 和远程主机
引擎可以在本机的 Docker 中运行套件,也可以通过 SSH 在 Linux 服务器上的容器中运行。Studio 本身仍在 Windows 上运行。
- 每个服务的容器日志最多保留三个文件,每个文件上限为 10 MB, 因此即使容器运行数月,也不会因自身输出而占满主机磁盘。
- 自托管 GitHub 运行器只需注册一次。重启时会沿用现有注册信息,而不会重新注册。
- 该主机上的引擎与本机相同,对其在该主机写入的证据采用相同的单项上限、总配额和可用空间下限。
计算示例:每天运行 10,000 次
这是估算,并非实测。假设:
- 每天执行 10,000 次测试运行;
- 失败率为 5%, 即每天失败 500 次;
- 每个失败运行文件夹约 3 MB: 包含视频、跟踪记录、截图和数据。
这相当于每天约 1.5 GB 的失败证据。在默认 20 GB 的上限下,磁盘上会保留最近约两周的失败记录,证据总量始终不超过 20 GB。通过测试的证据会优先删除,将空间留给失败证据,也就是您最可能需要的证据。
3 MB 的估算以同时保留视频和跟踪记录为前提。证据页面上的 BREACHED 文件夹在不含跟踪记录时大小为 531.2 kB。
大型测试套件调优
- 保留更多历史记录: 调高
NEXUS_EVIDENCE_MAX_GB。对于 1 TB 的磁盘,将预算设为 200 GB 可保留默认容量十倍的内容,按每天 1.5 GB 计算,约可保留四个月的失败记录。每个测试的数量上限仍然适用:除非同时调高NEXUS_BUGREPORT_RETAIN, 否则每个测试最多保留 20 次失败运行。 - 减少每次失败占用的空间: 使用
NEXUS_TRACE_ENABLED=false关闭跟踪,或通过NEXUS_VIDEO_VERDICTS减少需要保留视频的判定结果类型。这样,相同预算就能容纳更多天的记录。 - 为其他程序留出空间: 如果机器需要的可用空间超过 10 GB, 请调高
NEXUS_MIN_FREE_GB。 - 每天运行多次的测试: 调高
NEXUS_HISTORY_RETAIN, 例如设为 500, 让历史记录覆盖更长时间,而不只是几天。 - 必须保留的失败记录: 在记录过期被清理前,从证据库中将其归档。
问题
如果每天运行 10,000 个测试,会占满磁盘吗?
证据不会占满磁盘。无论运行多少个测试,证据占用空间都不会超过预算,默认上限为 20 GB, 而且引擎会删除较旧的证据,以保持 10 GB 磁盘可用空间。每天运行次数越多,证据可追溯的时间就越短,而不是占用更多空间。证据以外的文件,例如 Docker 镜像或您自己的工作区,不计入预算。
清理会删除我需要的失败记录吗?
可能会,只要失败记录足够旧:超出预算后,系统会删除最旧的运行记录,优先删除通过的记录,再删除失败的记录,但每个测试和浏览器组合的最新运行记录始终保留。要永久保留某次失败记录,请在证据库中选择归档…。副本存放在证据文件夹之外,不受数量上限或空间预算的影响。
清理后,已封存的记录会被判定为遭到篡改吗?
不会。系统会先将 PURGE 条目写入账本,然后 nexus verify 会将该记录报告为 PURGED。
磁盘快满时会发生什么?
当可用空间低于下限时,默认是 10 GB, 引擎会立即统计证据占用空间,而不等待每 15 分钟一次的检查。即使未超出预算,也会删除较旧的证据,同时 Studio 会显示磁盘空间不足警告。如果空间被其他文件占用,引擎会尽可能释放空间,并持续发出警告。
我需要做什么吗?
不需要。每次运行结束后都会自动执行。在工作区 › 磁盘中选择立即运行维护, 即可立即执行。