第三方 API 偵錯
產出值得信賴的實作合約,而非文件摘要。
必要輸入
測試前提取四個元素:
- 官方第三方文件位置。
- 可執行的測試環境資訊。
- 本次執行的介面範圍。
- 要求的測試情境(若有提供)。
使用 input-contract.md 進行標準化。僅詢問缺乏且會阻礙有意義或安全結果的資訊。切勿保留憑證值;保留諸如 ENV:CLIENT_SECRET 這類參考。
當文件連結位於 Yuque 時,使用 scripts/yuque_doc.py read <url> --output <temporary.md> --meta-output <temporary.json> 擷取,並從儲存的 Markdown 中提取四個輸入。僅在相關知識庫文件有意義時使用 pull。僅在使用者明確要求寫回 Yuque 時使用 update。
必要產出
- 為每個範圍內的介面建立已記錄的合約。
- 在可行執行時,擷取安全、真實的請求與回應證據。
- 就地修正已記錄的欄位,並為每個修正附上證據標籤。
- 精確保留協定字面值,包含欄位大小寫、標頭、列舉值以及事件名稱。
- 說明驗證、簽章、加密、錯誤、支援範圍、限制以及外部問題。
- 當涉及簽章、驗證、加密或解密時,區分官方演算法合約、可執行的本地程式碼驗證以及真實提供者的互通性。切勿將本地往返視為提供者相容性的證明。
- 優先探測金融 API 中的關鍵請求欄位。至少涵蓋:金額最小值/最大值、單位和格式;電話號碼格式與支援的國家;帳號格式;以及帳戶名稱格式。當其他欄位可能實質影響交易有效性或路由時,擴展此集合。
- 將日期/時間欄位視為精確性敏感的。驗證確切格式與時區;對於時間戳記,驗證數字 vs 字串以及秒 vs 毫秒。
- 展示有用的跨介面情境和資料流程,但不聲稱未觀察到的行為。
- 產出一個自包含的 HTML 報告,每個介面一個分頁。
使用 evidence-model.md 作為報告資料合約,並使用 test-strategy.md 選擇測試。
判斷
優先採用官方機器可讀來源,其次為官方散文。將文件視為假設,執行時期證據視為觀察結果。
選擇適合提供者的工具和探測。不要強制使用通用的 HTTP 執行器或固定的測試序列。在涵蓋重大風險的同時,最小化外部副作用。
根據產出和消耗的值(例如權杖、資源 ID、參考、狀態以及 Webhook 事件)推斷介面關係。當情境測試能實質解釋整合時,加入這些測試。
不要變更正式環境。僅當環境明顯非正式環境且使用者的偵錯請求授權時,才執行測試寫入。記錄每個建立的資源或外部副作用。
情境紀律
將原始頁面、請求、回應和標頭保留在臨時證據檔案中。僅將活躍的介面合約、當前情境、經過編輯的觀察結果以及未解決的差異帶入上下文。保留證據 ID 和路徑,以便最終報告保持可追溯性。
在顯示工具輸出或建立報告資料之前,編輯掉憑證、授權值、私鑰、簽章、個人資料以及已簽章的下載 URL。
報告合約
建立符合 evidence-model.md 的 JSON 結果。使用以下方式渲染:
python3 scripts/render_report.py run.json report.html
python3 scripts/validate_report.py run.json report.html
僅使用以下判決詞彙:
PASS— 觀察結果與聲稱的合約相符。DOCUMENT_MISMATCH— 觀察結果與文件或需求矛盾。OBSERVED— 有用的行為,但無可靠的文件化預期。BLOCKED— 缺少外部條件導致無法執行。NOT_APPLICABLE— 該維度不適用。NOT_EXECUTED— 故意不執行。
渲染器和驗證器會對必要的介面結構、報告章節、請求的情境涵蓋範圍、判決有效性、金融探測維度、外部問題優先順序以及秘密衛生進行硬性閘控。
檢閱仍需判斷的部分:
- 每個已執行的聲明都指向證據;
- 情境步驟顯示輸入、輸出、相依性、副作用、明確的判決以及證據;被阻斷的流程需識別確切的阻斷步驟,並將下游步驟標記為未執行;情境註解僅添加進度或步驟未顯示的資訊;
- 修正區分已記錄、已觀察和建議的行為;
- 用語一致且協定字面值不變;
- 限制、副作用和外部問題準確且明確。