用你的 AI Agent 自動平行執行多項網站測試
Playwright MCP 得一次呼叫一個工具才能操作瀏覽器:又慢又吃 Token。現在 Claude Code 或 Codex 只要幾行程式碼,就能在 ego (lite) 中跑完整套測試:快 2.4 倍,還能在各自獨立的 Space 中平行執行多項測試。
只要開口就能跑網站測試
舉例來說,我請 Codex 檢查這個電商網站有沒有問題。Codex 會跑完整套測試、修好所有問題,再把結果告訴我。我唯一要做的事,就是滑 TikTok 等它跑完。
同一個頁面,畫面上從壞掉變成正常
商品頁面渲染出來是壞的。Agent 在 ego (lite) 中查看,直接修正原始碼裡的 CSS,開啟的頁面畫面就立刻正確顯示。
用 ego (lite) 以閃電般的速度跑網站測試
跑網站測試的舊做法是用 Playwright MCP 或 Chrome DevTools MCP,這類工具得一次呼叫一個工具:每個下一步都要等模型讀完上一步的結果,又慢又貴。現在 Agent 能用一段 JS 程式碼一次跑完多個步驟,靠的是 ego (lite),任務完成得更快,花的 Token 也更少。
| ego (lite) | Playwright MCP | Chrome DevTools MCP | |
|---|---|---|---|
| Agent 怎麼操作它 | 透過 /ego-browser 這個 skill | 外部 MCP 伺服器。每個動作都要呼叫一次工具。 | 外部 MCP 伺服器。每個動作都要呼叫一次工具。 |
| 設定 | 不用設定,任何 Agent 都能用。 | 要用 npx 安裝、設定啟動模式,還常常遇到啟動失敗和找不到 Chrome 的錯誤。 | 遠端除錯、user-data-dir、跨主機設定。 |
| Token 用量 | 低。不需要 MCP 工具 schema,只有 Agent 記錄的內容才會進入上下文:每輪只有一次 Snapshot,不是每個動作都要一次。 | 高。使用者回報 Token 消耗增至 6 倍,並出現 20 萬 Token 的上下文溢位。 | 高。螢幕截圖很吃 Token。 |
| 登入狀態 | 你自己已登入的瀏覽器。跟你 Chrome 的登入狀態一樣 | 預設是獨立瀏覽器;要帶登入狀態得靠擴充功能模式或 storage-state 設定。 | 能接上,但會佔用你正在用的分頁。 |
| iframe/shadow DOM/第三方 SDK 元件 | 它的頁面 Snapshot 內建於渲染引擎中,所以能讀取這些內容的每一處。 | 無障礙 Snapshot 對 iframe 有盲點。 | 原始 DOM,你自己處理。 |
| Console/網路請求/追蹤紀錄 | Console 記錄、網路請求與追蹤紀錄,直接從 Chrome DevTools 資料讀取。 | Console 記錄、網路請求、螢幕截圖。 | 最深入:Lighthouse、效能、記憶體用量。 |
| 元素定位穩定度 | 依語意標籤定位,class 名稱怎麼改都不受影響。 | @N ref/無障礙標籤,相當穩定。 | 原始 DOM 選擇器。 |
| 圖形驗證碼 / 機器人偵測 | 真實人類的連線階段,最不容易觸發偵測。 | 獨立/無頭瀏覽器,常被偵測攔截。 | 接上時效果較好,但會佔用你的分頁。 |
| 平行任務數 | 生來就支援透過 Space 同時執行多項任務。 | 每台伺服器一個連線階段;要平行執行就得自己管理額外的獨立實例。 | 單一實例,分頁數一多就當機。 |
問題從來都不是瀏覽器本身,而是中間那層中介。
在開發者論壇和議題追蹤系統裡,抱怨最多的就是 MCP 這一層——它是 Agent 和瀏覽器之間的中介:連線斷掉、核准堆積如山、連線階段中斷、Token 用量暴增。ego (lite) 已經幫你設定好一切,不會再遇到莫名其妙的錯誤。
瀏覽器本身沒問題,出問題的是連到它的那條線。
- 連線方式: 工具明明列出來了,Agent 卻不呼叫;任務卡在「等待核准」;同一個伺服器在不同用戶端行為還不一樣
- 核准次數: 每呼叫一次工具就跳一次核准視窗,一個任務常常跳 10 到 30 次,就算開了「全部允許」也一樣
- 穩定度: 任務跑到一半停住,或明明已經導航成功卻還是逾時
中間沒有任何中介層:ego (lite) 本身就是瀏覽器
- 設計上就很穩定: Agent 直接跟自己擁有的本機瀏覽器溝通,中間沒有 MCP 傳輸層會斷線或卡住
- 核准次數更少: 一次執行就能跑完多個步驟,不用每個動作都呼叫一次工具
- 結果可預期: 跟任何 AI Agent 都能直接搭配使用,每次行為都一致
不用寫測試腳本,不用維護選擇器,直接說出要檢查什麼就好。
Playwright 測試、Cypress 測試、Selenium:你自己寫測試、自己維護選擇器,class 一改名或版面一調整就全部壞掉。ego (lite) 接受白話描述的檢查項目,並依元素的語意定位,介面改版也不會讓測試失效。
你自己寫測試規格,自己維護選擇器
- 手動撰寫並版本控管一套
.spec涵蓋你想測試的每個流程 - 固定寫死像這樣的選擇器
page.click(".btn-x7f3")介面一改版就會壞掉 - 自己加等待邏輯和重試機制對抗測試不穩定
- 自己搭建登入自動化流程或 storage-state 檔案,才能測試登入後的頁面
- 每次改版後重新執行並修復整套測試
直接說出要檢查什麼
- 不用寫測試規格:一句話告訴你的 Agent 要檢查什麼
- 依元素的語意定位,而不是靠 CSS class,改名或版面調整都不會讓它失效
- 智慧等待機制自動處理非同步內容,不用自己寫死等待時間
- 不需要登入自動化,就能測試你登入後的頁面
- 需要視覺回歸測試?Agent 會直接比對螢幕截圖
如果你需要版本控管、無人值守在 CI 中執行的無頭測試套件,或是要跨 Firefox 和 WebKit 測試, 繼續留著 Playwright。ego (lite) 是你開發時,快速、零腳本的開發內迴圈工具。
AI Agent 怎麼操作 ego (lite)
Agent 靠寫一段完整的 JavaScript 程式來操作瀏覽器。單次呼叫就打包所有步驟:打開商店、加入商品、等待結帳,並在瀏覽器內依序執行,Agent 不需要等一個動作回傳結果才送出下一個。
它能處理通常會讓網站測試變得不穩定的因素
我們實測了開發者公認最難自動化的情境。用 ego (lite),Agent 全部都能搞定。它的語意 Snapshot 是在 Chromium 渲染引擎內部直接產生的,所以能看穿一般注入腳本看不到的 shadow root 和跨文件 iframe。
Shadow DOM
Acts inside web-component shadow roots, where injected scripts go blind.
Payment iframes
Fills card fields inside cross-document iframes, like a Stripe checkout.
Custom date pickers
Picks a date range in a custom calendar with no test ids.
Drag and drop
Real HTML5 drag: moves a kanban card, the board follows.
Infinite scroll
Scrolls a lazy feed until every item is loaded, no hand-tuned waits.
Paginated tables
Walks every page of an admin table and pulls each row.
Conditional modals
Cookie banners and dialogs that pop up mid-flow get handled, not tripped over.
Autocomplete
Types an address, waits for the suggestions, picks the right one.
如果點擊落在被遮擋或停用的按鈕上,會回報為失敗,而不是誤判成通過,就跟真正的測試框架處理方式一樣。
你已登入的瀏覽器,控制權還是在你手上
讓 Agent 在你已登入的瀏覽器裡自由行動,會想先停下來確認清楚是很合理的。以下就是能力的界線。
它在自己的 Space 裡運作
Agent 在瀏覽器內的獨立工作區中執行。它會共用你的登入狀態,但你的分頁和視窗完全不會被動到。
每一步都看得到
在你 Mac 上執行的真實有畫面瀏覽器,不是躲在背景的無頭程序。可以即時看著它跑,隨時能從 Agent 的 CLI 中斷它。
沒有任何資料離開你的 Mac
瀏覽紀錄、cookie 和連線階段都留在你自己的電腦上。ego (lite) 不會上傳這些內容。
當流程會產生真實副作用時,像是真的會扣款的結帳、真的會刪除資料的刪除操作,就讓 Agent 對著 localhost 或測試環境測試, 就跟你手動測試的方式一樣.
使用方式,一步一步說明
三步驟完成網站應用程式測試:讓你的 Agent 對著 localhost 或任意網址動作、說出要檢查什麼、回報哪裡失敗。
一款你每天都在用的 Chromium 瀏覽器。一鍵匯入你的 Chrome 登入狀態,讓 Agent 用你的身分測試。
它應該測試什麼?
/ego-browser 打開 localhost:3000,走一遍結帳流程,告訴我哪裡壞了
輸入 /ego-browser ,用你 Agent 聽得懂的任何語言,直接說出要檢查什麼。
| 頁面 | 結果 |
|---|---|
| /checkout | 確定 |
| /product/gift-card | console 錯誤 |
| /product/camera | 圖片 404 錯誤 |
每個出問題的頁面都會附上能解釋原因的 console 錯誤或失敗的請求,不只是回報通過或失敗。
ego (lite) 適合的場景,以及不適合的場景
為快速開發迴圈而生:邊開發邊重現問題、除錯、驗證修正結果。
ego (lite) 最擅長的事
開發內迴圈,在真實瀏覽器裡完成。
- 在真實已登入的瀏覽器中重現並除錯
- 不需要登入自動化,就能測試登入後的流程
- 讀取 console 錯誤、失敗的請求和頁面狀態
- 跨多個頁面平行執行探索性檢查
- 在發現問題的同一個連線階段中驗證修正結果
什麼時候該用 Playwright
誠實面對能力的界線。
- 在 CI 中無人值守執行的無頭回歸測試套件(ego (lite) 是有畫面的 Mac 瀏覽器)
- 跨 Firefox 和 WebKit 的測試(ego (lite) 是 Chromium 核心)
- 一套你自己維護、版本控管、結果可預期的測試套件
給你的 Agent 一個真實瀏覽器來測試
下載 Mac 版 ego (lite)FAQ
不需要。你只要用你原本就在用的 AI Agent,像 Claude Code、OpenAI Codex 或 Cursor,用白話告訴它要檢查什麼。Agent 會幫你寫並執行瀏覽器操作步驟。不用維護 .spec 檔案,也不用手動寫 CSS 選擇器,因為 ego (lite) 是根據頁面的語意 Snapshot 來定位元素。
Playwright MCP 是一個 MCP 伺服器,你的 Agent 每個動作都要呼叫一次工具,十五個步驟的任務就要跟模型來回十五趟,又慢又燒 Token。ego (lite) 本身就是瀏覽器:Agent 寫一小段 JavaScript 程式碼,就能在你真實已登入的瀏覽器上一次跑完多個步驟。我們用 Claude Code 搭配 Opus 4.8 測試同一個任務,ego (lite) 大約 18 秒、來回 2 次就完成,Playwright MCP 則花了大約 43 秒、來回 9 次。它還能平行執行多項測試任務,各自在獨立的 Space 中,這是單一 MCP 瀏覽器做不到的。
可以,而且這正是它最厲害的地方。ego (lite) 就是你每天在用、已經登入的瀏覽器,Agent 能直接測試儀表板、內部管理後台和帳號流程,不用你先搭建登入自動化。因為它的行為就跟真實人類操作一樣,比起無頭瀏覽器或全新啟動的瀏覽器,觸發圖形驗證碼或機器人偵測的機率也低得多。
每個任務都在自己的 Space 裡執行,那是同一個瀏覽器裡的獨立工作區,就像同一個設定檔開出的額外視窗。各個 Space 共用你的登入狀態,但各自保有獨立頁面,平行執行時不會互相衝突,也不會干擾你正在用的分頁。對網站來說,看起來就像一個已登入的使用者開了好幾個分頁。如果你的應用程式每個帳號只允許一個作用中連線階段,就把這些流程改成依序執行,或改用測試帳號。
可以,具體來說,Agent 會拍一張基準截圖和一張新截圖,逐像素比對,告訴你哪裡變了、變在哪裡。這是 Agent 在你的瀏覽器裡直接做比對,不需要另外架設視覺測試產品,所以不用接 Percy 或 Chromatic 這類服務。如果你需要有審核流程和 CI 關卡的託管基準服務,專門的視覺測試工具還是比較合適的選擇。
目前還不行。ego (lite) 是你 Mac 上一個真實、有畫面的瀏覽器,是為了讓你邊開發邊測試而打造的:重現問題、除錯、驗證修正結果、跑遍你的各個頁面做檢查。如果你需要在 CI 中無人值守執行的無頭測試套件,或是要跨 Firefox 和 WebKit 測試,繼續留著你的 Playwright 測試套件就好。ego (lite) 是快速的開發內迴圈工具,不是 CI 執行器。
真實使用者會遇到的功能與執行階段問題:流程中斷、按鈕沒反應、沒被攔截的 JavaScript 錯誤、失敗的網路請求、console 錯誤、跑出錯誤的數值。Agent 會讀取頁面狀態加上 console 和網路請求,回報哪裡失敗、為什麼失敗,不只是給你一個綠燈或紅燈。
Agent 在自己的 Space 中工作,你的分頁和視窗完全不會被動到,一切都在一個真實可見的瀏覽器視窗中發生,你隨時能看著它跑、也能從 Agent 的 CLI 隨時中斷。你的瀏覽資料只留在自己的電腦上:ego (lite) 不會上傳你的瀏覽紀錄、cookie 或連線階段。遇到會產生真實副作用的流程,像是真的會扣款的結帳,就讓 Agent 對著 localhost 或測試環境測試,跟你手動測試的方式一樣。如果你連接外部 Agent 或模型供應商,該供應商會有自己的資料政策。