Senro 測試
根據使用者要求,從他們加入 Senro 的頁面所屬的儲存庫中,生成確定數量的有用 Senro 測試案例。編碼代理不執行 WebMCP 或生成的測試;Senro 稍後會針對已註冊的頁面執行這個套件。
工作流程
-
確認目前的儲存庫包含正在測試其 WebMCP 行為的頁面。將儲存庫視為唯一的事實來源。
-
在生成任何內容之前先檢查儲存庫。排除
.git、相依性目錄、建置輸出、涵蓋率輸出和生成檔案。 -
使用專案本身的原始碼、框架、相依性、測試、測試固件和文件,來判斷網站如何暴露其 WebMCP 工具。不要假設特定的 WebMCP API、框架、檔案佈局或註冊模式。
-
為每個發現的工具建立內部清單,包含其名稱、描述、輸入結構描述、註解、實作方式和可用的範例。
-
如果無法從儲存庫中確定任何 WebMCP 工具,則停止並清楚地報告。如果存在多個不相關的網站或應用程式,請識別它們並詢問要使用哪一個。
-
讀取相關的路由、元件、資料檔案、測試固件、驗證程式碼、文件和現有測試,以映射真實的使用者旅程和可見的成功與失敗狀態。
-
在撰寫測試案例之前先閱讀
references/import-format-v1.md。僅使用其中記錄的欄位和結構。 -
生成使用者要求的確切數量的不同測試案例。涵蓋儲存庫中最強的路徑,包括成功工作流程、邊界條件、無效輸入、空結果、復原、有重大影響的動作,以及在原始碼支援下的可見狀態斷言。
-
如果儲存庫無法支援請求數量的、有原始碼依據的有意義案例,請報告此限制並停止。不要用虛構的場景、值或行為來填充套件。
-
僅使用發現的原始碼所支援的工具名稱和引數。絕不虛構 ID、帳戶、產品、列舉值或後端狀態。當無法安全確定精確的執行時期值時,使用僅目標(goal-only)測試。
-
僅在原始碼支援預期路徑時才使用預期的工具呼叫。不要強迫一個可能有多個有效路徑的工作流程走完全相同的軌跡。
-
如有需要,建立
./senro目錄。將套件寫入./senro/test-cases.json。如果該檔案已存在於磁碟上,則使用下一個可用的數字後綴,例如./senro/test-cases-2.json。已刪除的 Git 追蹤檔案不算衝突。將套件直接保留在./senro中;不要歸檔或移動現有檔案。 -
在報告成功之前,針對你生成的確切檔案執行內建的結構性預先驗證器:
node <skill-root>/scripts/validate-tests.mjs <output-path> -
報告確切的輸出路徑、測試數量、路徑涵蓋率以及任何假設。不要聲稱測試已通過執行時間驗證;Senro 必須在實際頁面上執行套件。
輸出規則
- 寫入一個帶有
tests陣列的 JSON 物件。 - 保持測試名稱簡潔,不超過 70 個字元。
- 撰寫自然的使用者請求。僅在對測試的行為至關重要時才包含技術細節。
- 在原始碼支援的情況下,變換對話模式、評估類型和路徑複雜度。對於明確的請求使用腳本式對話,對於需要澄清或多輪決策的情況使用模擬對話。若增加變異無法帶來有用的涵蓋率,則不要強求。
- 腳本測試僅提供一條初始使用者訊息。
- 模擬測試提供空的作者訊息列表,且沒有作者跟進。
- 確保每個測試都有一個目標、一個必需的預期呼叫,或一個頁面檢查。
- 在成功的結果中描述代理應完成什麼。對必要的呼叫和引數使用工具呼叫預期值,對最終頁面狀態使用頁面檢查。當存在多個有效路徑時,不要在結果中規定實作路徑。
- 保持設定呼叫具體;絕不要在設定引數中使用匹配器運算子。
- 從原始碼中使用穩定的選擇器進行頁面檢查。
- 斷言穩定的最終頁面狀態,而不是後續有效動作可能清除的臨時訊息。透過支援的工具呼叫和結果檢查或成功的結果來驗證中間行為。
- 當工具呼叫評估被停用時,使用
expectedCall: null。它並不禁止工具呼叫。 - 在生成套件期間不要修改網站原始碼。
- 不要將機密、憑證或私人客戶資料寫入套件。