一份回應,連同它的來歷。FIXTURE STUDY / 14
先知道來源,再拿來測試。
從 OpenAPI 3.0.x 選定一個 JSON 回應,優先驗證來源 example,或以固定 seed 產生有界 fixture。把驗證、被拒絕的候選與來源一起留下,不把測試資料當成真實 API 保證。
01 / 放入文件,明確檢查
SOURCE → INSPECT → SELECT固定案例皆人工合成。載入、輸入或選項變動不會自動解析。
只支援 3.0.x。YAML 1.2 core JSON-compatible grammar,包含 JSON 但不是 strict JSON;拒絕 aliases/anchors/tags/directives/多文件/merge/重複鍵。每份 1M UTF-16、token depth 100、token objects 200K、每 collection 10K entries、scalar 100K。按檢查才建立專用 module worker,最多 20 秒,不在主執行緒解析。
02 / 選一份實際回應
只列文件實際存在的 method/path/status/JSON media;不猜 default、2XX 或 wildcard。請依序明確選取,不自動套用第一個回應。選項最多 2,000;清單每批顯示 50 個,可翻頁。
這是您的確認,不是自動匿名化。Example/enum 會原樣沿用,可能含敏感值;不稱它們為 server 實測回應。有效 example 優先,改 seed 不覆蓋它。
03 / 產物與驗證,分開核對
JSON fixture · 實際值
僅 ready + validation passed 可顯示/下載產物;否則無 fixture。不是所有 literals 自動成為 synthetic,也不是 API 契約測試。
獨立 validator
候選/生成診斷
這次支援的靜態子集與限額
Explicit type;object/array/string/integer/number/boolean、nullable/enum、required/readOnly/writeOnly、boolean additionalProperties、基本 numeric bounds、Unicode codepoint 長度、array bounds/uniqueItems。Response readOnly 保留與必填;writeOnly 省略且不能出現在回應。Optional/writeOnly schema 也全面 preflight,example 不繞過 unsupported。
拒絕 format/pattern/oneOf 等 composition/schema-valued additionalProperties/unknown keywords/外部或循環 refs。只用有限 numeric roundtrip、safe integer、絕對值 ≤1e12,不四捨五入 unsafe precision。Schema depth 24/nodes 2,000、ref hops 16/resolutions 10K、output 100K units/instance nodes 10K、array 100/string 2,048 codepoints、enum 128/32,768 units、attempts 256/validation work 50K。No-valid-fixture 不是證明 schema 無解。
04 / 看見沿用、拒絕與嘗試
PROVENANCE / NOT ANONYMIZATION本工具政策,不是 OAS 規範優先序:media.example/選定 named examples.value → resolved root schema.example → seeded generation。候選均獨立驗證,default 忽略並提示,不當 example。每列保留 instance pointer、來源使用點與定義;rejected warning 不因 fallback passed 而隱藏。
05 / 帶走內容,或只帶走來歷
TWO DELIBERATE DOWNLOADSFixture JSON
包含實際沿用/生成值。請檢查後再分享,不是匿名化資料。
驗證/來源摘要
只含狀態、codes、選項/seed、選擇與位置、provenance、限額。不含文件/fixture/example/default/enum literals。
可重現的測試起點,不是真實服務的替身。
免登入,不 fetch refs/externalValue,不執行程式、不架 mock server、不上傳/記錄來源、不保存或放進 query/hash/分享 URL。所有資源隨網站提供。檢查 ready 只是列出回應,不是完整 OAS 或 schema 有效;生成 passed 僅代表支援子集,不保證真實 API 行為。
每次明確檢查/產生建立獨立 worker。20 秒逾時、取消、重跑、來源/選項變動、清除或離開會終止舊工作,沒有主執行緒 fallback。來源編輯也清除檢查與測試資料確認;選項編輯保留未改動文件的檢查,但清除 fixture/下載。位置是原始 UTF-16 end-exclusive,行/欄從 1 起算。匯出只使用公開投影 helper,下載連結短期回收。