今天给大家推荐一款基于Node.js编写且号称下一代浏览器和移动自动化测试框架:WebdriverIO
简单来讲:WebdriverIO 是一个开源的自动化测试框架,它允许测试人员使用 Node.js 编写自动化测试脚本,用于测试Web应用、移动应用和桌面应用程序。能够执行端到端(e2e)、单元和组件测试,主要基于WebDriver、WebDriver BiDi和Chrome DevTools协议进行操作。功能丰富、易于使用的测试框架,支持多种浏览器和设备,并且与Selenium WebDriver API兼容。
官方网址:
https://webdriver.io/
1、安装Node.js
https://nodejs.org/
下载并安装最新稳定版的Node.js。安装过程通常是“傻瓜式”的,直接点击“下一步”直到完成即可,并确保配置到环境变量中。2、初始化NPM空间
npm init -y
命令来初始化一个新的NPM项目空间。这个命令会创建一个package.json
文件,用于管理项目的依赖包。3、安装WebdriverIO CLI
npm i --save-dev @wdio/cli
命令来安装WebdriverIO的命令行接口(CLI)。node_modules/.bin/
目录下找到wdio命令。但为了方便使用,建议将其添加到环境变量中,或者在命令行中通过完整路径调用。4、生成配置文件
npx wdio config
命令来生成一个基本的配置文件5、安装其他依赖(可选)
npm install chromedriver
。对于Chrome和Firefox等浏览器,您需要下载与浏览器版本相匹配的驱动程序(如chromedriver、geckodriver)。
根据wdio.conf.js
文件中的配置项,配置项目的测试环境、浏览器、测试框架等,就可以开始编写测试脚本了。
以下是一个简单的 WebdriverIO 脚本示例,用于在百度中搜索 "WebdriverIO":
// 引入 WebdriverIO
const { remote } = require('webdriverio');
(async () => {
// 设置 WebDriver 的配置
const options = {
path: '/',
capabilities: {
browserName: 'chrome'
}
};
// 初始化 WebDriver 实例
const browser = await remote(options);
try {
// 打开百度主页
await browser.url('https://www.baidu.com');
// 在搜索框中输入搜索词
await browser.setValue('#kw', 'WebdriverIO');
// 点击搜索按钮
await browser.click('#su');
// 等待搜索结果页面加载完成
await browser.pause(2000); // 这里简单使用 pause,实际项目中可能需要更复杂的等待策略
// 获取搜索结果标题(假设是第一个搜索结果)
const title = await browser.getTitle();
console.log('搜索结果页面的标题是:', title);
// 关闭浏览器
await browser.deleteSession();
} catch (err) {
console.error('测试出错:', err);
}
})();
这个示例使用了 remote 方法来初始化 WebDriver 实例,这是 WebdriverIO v5 的用法。如果你使用的是 WebdriverIO v6 或更高版本,可能需要使用不同的 API(如 new Browser())。
综上所述,WebdriverIO
是一个功能强大、灵活易用的自动化测试框架,适用于多种测试场景和需求。无论是新手还是经验丰富的测试工程师,都能通过WebdriverIO实现高效的自动化测试,感兴趣的读者可以尝试一下。
项目地址:https://github.com/webdriverio/webdriverio