跳至主要內容

新網路基礎元件 (Beta)

·3 分鐘閱讀

WebdriverIO 團隊持續努力為其自動化介面提供更多功能,透過將新的網路基礎元件加入其 API。 透過最新的 v6.3 更新,您現在可以輕鬆地在測試中模擬 Web 資源,並定義自訂回應,讓您能夠大幅縮短測試時間,因為現在您可以更好地測試個別情境。 透過此功能,WebdriverIO 趕上了其他熱門的測試工具,如 PuppeteerPlaywrightCypress,甚至進一步簡化了模擬。

從瀏覽器取代 REST API 請求現在可以像以下一樣簡單

const mock = browser.mock('https://todo-backend-express-knex.herokuapp.com/')

mock.respond([{
title: 'Injected (non) completed Todo',
order: null,
completed: false
}, {
title: 'Injected completed Todo',
order: null,
completed: true
}])

browser.url('https://todobackend.com/client/index.html?https://todo-backend-express-knex.herokuapp.com/')

$('#todo-list li').waitForExist()
console.log($$('#todo-list li').map(el => el.getText()))
// outputs: "[ 'Injected (non) completed Todo', 'Injected completed Todo' ]"

除此之外,您還可以修改 JavaScript 的 CSS 檔案,並根據原始回應動態中止請求或修改回應。 您可以在文件中的模擬與間諜章節找到有關所有功能的更多資訊。

頻寬調節

除了模擬外,新版本還提供了另一個網路命令,允許修改瀏覽器的網路輸送量,讓您能夠在不同的網路條件下進行測試,例如,一般的 3G 甚至離線模式

// throttle to Regular 3G
browser.throttle('Regular 3G')
// disable network completely
browser.throttle('Offline')
// set custom network throughput
browser.throttle({
'offline': false,
'downloadThroughput': 200 * 1024 / 8,
'uploadThroughput': 200 * 1024 / 8,
'latency': 20
})

這可以開啟有趣的用例,讓您能夠確保您的漸進式網頁應用程式 (PWA) 為離線使用者儲存所有必要的資源,以便使用該應用程式。

支援

此功能使用 Chrome DevTools 功能來啟用此行為。 因此,它只能在提供此類介面的地方受到支援,目前為 ChromeFirefox NightlyChromium Edge。 Mozilla 的 Firefox 團隊正在努力將其發佈到 Firefox 的穩定版本中,因此預計很快就會支援。

此外,Sauce Labs 的人員正在開發各種 WebDriver 擴充功能,甚至允許在雲端支援此功能。 有關此方面的更多更新將很快發布。

實作

透過此功能,WebdriverIO 現在總是將 Puppeteer 作為第二個自動化驅動程式納入,盡可能啟用這些額外功能。 展望未來,團隊正在尋找更多機會,將 Chrome DevTools 功能加入內建的 API 中。

請告訴我們您的想法! 我們預期這裡和那裡會出現一些錯誤,但我們會確保立即修正它們。 雖然我們對目前介面設計非常有信心,但仍然可能進行一些調整,使其更加使用者友善。

給我們回饋!

我們將此功能作為 beta 功能發布,並希望您能協助我們找出實作和支援方面的弱點。 請試用看看,如果事情不清楚或無法正常運作,請建立一個議題。 我們希望在社群和您的協助下,我們能夠在接下來的幾個月內將其作為穩定版本發布!

歡迎!我能如何幫您?

WebdriverIO AI Copilot