Communitygithub.com

RageClick

將一個 URL 和使用者目標轉換成簡短、可重現的序列,以打破約定的行為。

RageClick 是什麼?

RageClick 是一個專門設計來測試本地端 Web 應用程式工作流程的技能,透過組合多種干擾手段(例如重複點擊、導航、無效檔案、重新整理與延遲請求)來揭露承諾行為中的缺陷。它使用 Playwright 作為可重現的執行引擎,只接受 loopback URL,並建立全新的瀏覽器上下文以隔離狀態。使用者需先利用現有的瀏覽器工具檢查頁面,撰寫 JSON 格式的測試計畫,再執行 `run.mjs` 腳本,該腳本會產生包含截圖、追蹤、影片及重播腳本的證據報告。此技能特別強調客觀斷言與主觀 UX 評論的分離,並要求對每個案例至少進行兩次重複測試,以確認缺陷的可重現性。它支援開發者使用 `replay.mjs` 作為回歸指令,並允許在修復應用程式後重新執行相同的計畫以驗證修復效果。

相容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/K-kiron/RageClick/tree/main/skills/rageclick

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

RageClick 是做什麼的?

將一個 URL 和使用者目標轉換成簡短、可重現的序列,以打破約定的行為。使用現有的瀏覽器工具檢查真實頁面,然後使用內建的 Playwright runner 獲取可重現的證據。此技能不評估視覺設計,也不聲稱代表真實的使用者研究。

範圍與成功標準

僅在擁有的固定裝置、本地應用程式或明確授權的測試環境中工作。內建的 runner 只接受 loopback URL,會啟動一個全新的瀏覽器上下文,並封鎖所有非確切來源的請求。本地應用程式仍可能透過其伺服器修改真實後端:在提交之前,請建立合成資料和一次性帳號。請勿購買、發送訊息、刪除有價值的資料或變更存取設定。現有權限僅涵蓋約定的工作流程。

根據使用者目標和觀察到的 UI,找出一個具體的不變量:一個專案對應一個提交意圖、在無效檔案後復原、或草稿在承諾儲存後仍然存在。如果契約不明確,請記錄觀察結果或詢問該特定行為,而不是憑空發明一個缺陷。記錄應用程式版本或提交 commit;若無法取得,請使用 unknown。

探索、擾動、重播

  1. 使用可用的瀏覽器工具或目標來源檢查目前頁面。從實際證據中選取穩定的標籤(label)、角色(role)或測試 ID(test ID)。先執行一般的成功工作流程。如果無法完成,請先解決該先決條件或單獨回報。

  2. 閱讀 references/plan.md 來撰寫 JSON 計畫。從 references/perturbations.md 中選擇適用的範本。每個案例只改變一個維度。全新的瀏覽器上下文可以隔離瀏覽器狀態,但伺服器資料需要已知的重置或獨特的一次性帳號。請勿假設全新的瀏覽器能重設資料庫。

  3. 在此技能目錄中,先執行 npm ci 和 npx playwright install chromium,然後執行:

    node scripts/run.mjs --url http://127.0.0.1:3000 --plan /absolute/path/case.json --out /absolute/path/evidence --app-version COMMIT
    

    輸出的目錄必須是全新的。runner 會寫入一份可讀的報告、精確的計畫、步驟結果、截圖、追蹤、影片和重播腳本。它無法自行推斷目標或選取器(selector);這是技能本身的工作。請將產生的證據保留在目標儲存庫之外,除非要求作為一個持久的範例。

  4. 將 observed_failure 視為斷言不匹配,而不是已確立的根本原因。在新狀態下重複同一個案例至少兩次,才能稱為可重現。捕捉失敗和通過的情況;永遠不要丟棄矛盾的重新執行結果。execution_error 表示某個動作、選取器、瀏覽器或邊界失敗,並非產品證據。將主觀的 UX 評論與客觀斷言分開記錄。

  5. 在不改變失敗原因的前提下,盡可能縮短序列。然後使用 replay.mjs 作為回歸指令(exit 0 表示通過,1 表示斷言不匹配,2 表示執行/設定錯誤)。如果被授權修復應用程式,請對修復後的版本重新執行相同的計畫,並驗證一般路徑仍可通過。永遠不要為了製造通過的結果而更改斷言。

回報違反的契約、實際狀態與預期狀態、發生次數、應用程式/瀏覽器版本、確切指令與證據路徑。說明何時缺少影片、追蹤、基準線、重置或可重複性。在分享擷取內容之前,請先編輯掉憑證和個人資料;追蹤記錄可能包含完整的請求和回應資料。此技能不隱含任何發布或外部訊息。

限制

runner 使用 Chromium、CSS 選取器、原生指標事件、合成內聯檔案和有界的請求延遲。請求延遲不是頻寬限制或封包遺失。它無法自動化遠端暫存環境、HTTP 重新導向(包括同來源重新導向)、串流回應、多來源登入、Service Worker、WebSocket 或任意 JavaScript 程式碼。回應會透過 Playwright 緩衝處理,重新導向和傳輸重試功能已停用,因此串流和網路時間精確度有限。瀏覽器憑證和 Set-Cookie 政策測試也不受支援:API 傳輸儲存回應 cookie 的方式可能與瀏覽器 fetch 不同。對於不受支援的工作流程,請使用已取得授權的可用瀏覽器工具,並維持相同的證據契約;明確標記不受支援的擾動。請勿為了讓測試通過而削弱 runner 的來源邊界。

相關技能