Cabbie 是一个基于 WebDriver 协议的 Node.js 库,用于在多个浏览器和平台上自动化测试 Web 应用程序。它提供了一个易于使用且可靠的 API,同时还支持并行测试、远程测试以及各种 Webdriver 测试驱动程序,例如 Selenium。
安装 Cabbie
你可以通过 NPM 来安装 Cabbie:
npm install cabbie --save-dev
使用 Cabbie 进行测试
首先,你需要创建一个 cabbie
实例来管理浏览器会话:
const Cabbie = require('cabbie'); const driver = new Cabbie('chromedriver', { baseUrl: 'http://localhost:8080', });
这里我们使用 Chrome 浏览器作为测试浏览器,Chrome 浏览器需要预先安装 ChromeDriver。baseUrl
是你正在测试的网站地址。
然后,你可以使用 driver
实例进行各种操作来测试你的应用程序:
(async function() { await driver.activeWindow.navigateTo('/'); const title = await driver.activeWindow.title(); console.log(title); // 输出页面标题 await driver.quit(); })();
这里通过 navigateTo()
方法将浏览器导航到指定的 URL,然后获取页面标题并输出。最后,通过 quit()
方法关闭浏览器会话。
在多个浏览器和平台上进行测试
Cabbie 可以支持多个浏览器和平台,例如 Chrome、Firefox、Safari 等,你只需要在创建 cabbie
实例时指定浏览器驱动程序即可。例如,要使用 Firefox 进行测试:
const driver = new Cabbie('geckodriver', { baseUrl: 'http://localhost:8080', capabilities: { browserName: 'firefox', }, });
这里我们需要预先安装 GeckoDriver,然后指定 Firefox 浏览器。
并行测试
Cabbie 支持多个浏览器实例的并行测试,以加快测试速度。你可以使用 Promise.all()
来并行运行多个测试,并等待所有测试完成:
-- -------------------- ---- ------- ------ ---------- - ----- ------- - - --- ---------------------- --------- -------------------------- --- --------------------- - -------- ------------------------ ------------- - ------------ ---------- -- --- -- ----- ------------------------------ -- -------------------------------------- --- ------ ------ -- -------- - ----- ----- - ----- ---------------------------- ------------------- ----- -------------- - -----
这里我们创建了两个不同的 cabbie
实例来测试 Chrome 和 Firefox,然后使用 Promise.all()
并行运行它们。最后,输出每个浏览器的页面标题并关闭浏览器会话。
远程测试
Cabbie 支持在远程浏览器环境中进行测试,例如 Sauce Labs、BrowserStack 等。你只需要在创建 cabbie
实例时指定远程服务 URL 和浏览器配置即可:
-- -------------------- ---- ------- ----- ------ - --- --------------------------------------- - -------- ------------------------ ------------- - ------------ --------- --------- -------- ---- -------- --------- --------- --------------------------- ---------- ----------------------------- -- ---
这里我们使用了 Sauce Labs 的远程服务来测试 Chrome 浏览器,并指定 Windows 10 操作系统和最新版本的 Chrome 浏览器
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/41297