Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >下一代浏览器和移动自动化测试框架:WebdriverIO

下一代浏览器和移动自动化测试框架:WebdriverIO

作者头像
测试开发技术
发布于 2024-08-09 05:32:31
发布于 2024-08-09 05:32:31
57400
代码可运行
举报
文章被收录于专栏:测试开发技术测试开发技术
运行总次数:0
代码可运行

1、介绍

今天给大家推荐一款基于Node.js编写且号称下一代浏览器和移动自动化测试框架:WebdriverIO

简单来讲:WebdriverIO 是一个开源的自动化测试框架,它允许测试人员使用 Node.js 编写自动化测试脚本,用于测试Web应用、移动应用和桌面应用程序。能够执行端到端(e2e)、单元和组件测试,主要基于WebDriver、WebDriver BiDi和Chrome DevTools协议进行操作。功能丰富、易于使用的测试框架,支持多种浏览器和设备,并且与Selenium WebDriver API兼容。

官方网址:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
https://webdriver.io/

2、主要功能和特点

  • 开源:WebdriverIO是一个开源项目,它使得开发者和测试人员可以在自己的项目中自由地使用和修改它。
  • 跨平台、多语言支持:支持多种编程语言(如JavaScript、TypeScriptPython等)和多种操作系统(如WindowsLinux、Mac OS等),确保了跨平台和跨语言的兼容性。
  • 多浏览器支持:WebdriverIO遵循W3C WebDriver标准,确保了与主流浏览器的无缝集成,同时支持WebDriver BiDi和Chrome DevTools协议,利用这两个强大的工具集,可以直接控制浏览器的底层功能,进行更精细的调试和测试。
  • Appium整合:WebdriverIO不仅支持Web应用程序的测试,还通过Appium平台提供了对AndroidiOS应用的自动化支持。
  • 丰富的API和工具:WebdriverIO提供了一组强大的API和工具,使得开发人员能够轻松地编写和执行自动化测试脚本。这些API和工具包括遍历元素列表的方法(如$$、forEach、map、filter和reduce等),使得开发者可以灵活地进行元素操作。
  • 支持多种测试框架和断言库:WebdriverIO支持BDD/TDD测试框架,如Cucumber、Jasmine和Mocha,以及断言库如Chai、Expect.js等。这些支持使得开发者可以根据自己的喜好和需求选择合适的测试框架和断言库进行测试。
  • 易用性与可扩展、封装了Selenium WebDriver API:与Selenium相比,WebdriverIO提供了更简洁的API,使得编写测试脚本变得更加简单易懂,尤其是对于熟悉jQuery的开发者来说。通过封装Selenium WebDriver API, WebdriverIO拥有高度的可扩展性,允许用户根据需要扩展其功能。
  • 支持多种测试模式:WebdriverIO不仅支持web应用的自动化测试,还支持Native移动端应用和Electron开发的桌面端应用的测试。

3、环境安装

1、安装Node.js

  • 下载与安装:访问Node.js官网https://nodejs.org/下载并安装最新稳定版的Node.js。安装过程通常是“傻瓜式”的,直接点击“下一步”直到完成即可,并确保配置到环境变量中。
  • 安装完成后,打开命令行或终端,输入node -v来检查Node.js是否安装成功,如果显示版本号,则说明安装成功。

2、初始化NPM空间

  • 在想要存放WebdriverIO项目的文件夹中(例如D盘的WebdriverIO-test文件夹),打开命令行或终端。
  • 输入npm init -y命令来初始化一个新的NPM项目空间。这个命令会创建一个package.json文件,用于管理项目的依赖包。

3、安装WebdriverIO CLI

  • 在命令行或终端中,输入npm i --save-dev @wdio/cli命令来安装WebdriverIO的命令行接口(CLI)。
  • 安装完成后,可以在node_modules/.bin/目录下找到wdio命令。但为了方便使用,建议将其添加到环境变量中,或者在命令行中通过完整路径调用。

4、生成配置文件

  • 安装完CLI后,使用npx wdio config 命令来生成一个基本的配置文件
  • 执行命令后,会在项目根目录下生成一个wdio.conf.js文件,这个文件包含了WebdriverIO的配置信息

5、安装其他依赖(可选)

  • 根据您的测试需求,您可能还需要安装其他NPM包,如浏览器驱动程序(chromedriver、geckodriver等)的npm封装包。
  • 这些包可以通过npm install命令来安装,例如:npm install chromedriver

对于Chrome和Firefox等浏览器,您需要下载与浏览器版本相匹配的驱动程序(如chromedriver、geckodriver)。

4、编写脚本

根据wdio.conf.js文件中的配置项,配置项目的测试环境、浏览器、测试框架等,就可以开始编写测试脚本了。

以下是一个简单的 WebdriverIO 脚本示例,用于在百度中搜索 "WebdriverIO":

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// 引入 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())。

5、小结

综上所述,WebdriverIO是一个功能强大、灵活易用的自动化测试框架,适用于多种测试场景和需求。无论是新手还是经验丰富的测试工程师,都能通过WebdriverIO实现高效的自动化测试,感兴趣的读者可以尝试一下。

项目地址:https://github.com/webdriverio/webdriverio

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-08-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 测试开发技术 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Node.js的下一代浏览器和移动自动化测试框架-WebdriverIO
web自动化测试工具Selenium支持多种语言,如Python、Java、Ruby、JavaScript等,大多数测试人员使用最多的语言就是Python、Java了,并且很多技术社区与网上的学习资料查找起来很方便,很容易上手。但对于其他语言,比如JavaScript,相对来说资源就少很多了,针对JavaScript本篇将介绍一款在Node.js环境下的web与移动自动化测试框架 - WebdriverIO。
wangmcn
2024/07/18
4560
Node.js的下一代浏览器和移动自动化测试框架-WebdriverIO
推荐几款常用Web自动化测试神器!
Web自动化测试在保证质量、提升效率、软件开发加速迭代上起到关键作用,它已经成为现代软件测试中不可或缺的一部分,今天给大家介绍推荐几款常用的Web自动化测试工具。
测试开发技术
2023/09/11
5.3K0
推荐几款常用Web自动化测试神器!
自动化测试工具-Taiko
Web自动化测试工具从刚开始接触的QTP(UFT),到现在绝大多数公司或项目都在使用的Selenium,以及之后有很大发展前景的Cypress。可以看出自动化测试工具越来越丰富了,当然这里所提到的都是比较有代表性的,市面上的优秀工具远远不止这三个。
wangmcn
2022/07/26
1.5K0
自动化测试工具-Taiko
惊!Midscene.js:一款AI 驱动的 UI 自动化测试利器,小白也能秒上手!
在软件开发测试领域,UI自动化测试一直是我们的“心头大患”。传统测试工具依赖繁琐的元素定位(如CSS选择器、XPath),一旦页面结构变化,脚本就可能失效;复杂交互场景(如动态加载、多步骤验证)需要编写大量代码,维护成本高昂;而数据抓取、性能监控等场景更是让测试人员苦不堪言。
测试开发技术
2025/04/18
1.6K0
惊!Midscene.js:一款AI 驱动的 UI 自动化测试利器,小白也能秒上手!
自动化测试框架Robot Framework - 自动化测试示例
SeleniumLibrary是Robot Framework的Web测试库,内部使用Selenium工具。
wangmcn
2022/07/26
2.1K0
自动化测试框架Robot Framework - 自动化测试示例
17款好用的跨浏览器测试神器,兼容性测试必备!
Hi,大家好,我是CoCo。市面上有很多不同的浏览器,每种浏览器都有数百万用户。因此,在开发一个网站或 Web 应用程序时,就需要测试它与不同浏览器的兼容性。最好、最方便的方法是使用跨浏览器检查工具。
可可的测试小栈
2022/06/06
2.8K0
17款好用的跨浏览器测试神器,兼容性测试必备!
回顾18年我的Java自动化测试框架
18年的时候,根据项目组需要,编写了一套 Java 版的自动化测试框架,可进行包括 APP(Android、iOS)、H5、Web、接口的自动化测试任务。测试报告可通过 HTML 报告或 Excel 报告的方式进行查看。此框架在项目组期间已落地使用并助力测试回归时发现了一些问题(BUG)。
wangmcn
2022/07/26
8960
回顾18年我的Java自动化测试框架
自动化测试框架之战:Selenium、Cypress 与 Playwright 大比拼!
随着软件行业的快速发展,自动化测试已经成为提高软件质量、缩短发布周期的重要手段。随着技术的不断进步,市场上涌现出了众多自动化测试框架,其中Selenium、Cypress和Playwright以其各自的优势脱颖而出,成为测试开发者们的热门选择。
测试开发技术
2024/12/31
1.3K0
自动化测试框架之战:Selenium、Cypress 与 Playwright 大比拼!
【UI 自动化测试平台解决方案】使用 Selenium IDE 录制 UI 自动化测试脚本UI 自动化录制:Selenium IDESeleniumSelenium IDE
通过 Selenium IDE 录制并重播功能,可以快速创建UI 自动化测试用例。
一个会写诗的程序员
2018/12/14
3.2K0
【UI 自动化测试平台解决方案】使用 Selenium IDE 录制 UI 自动化测试脚本UI 自动化录制:Selenium IDESeleniumSelenium IDE
9款开源自动化测试框架!
自动化测试框架由一组最佳实践,通用工具和库组成,可帮助测试人员评估多个Web和移动应用的功能,安全性,可用性和可访问性。而在,软件开发世界中有很多的自动化测试框架,该如何选择?
测试开发技术
2021/12/13
3.7K0
9款开源自动化测试框架!
【软件测试】自动化测试selenium(一)
自动化测试是指使用软件工具或脚本来执行测试任务的过程,以替代人工进行重复性、繁琐或耗时的测试活动。通过编写脚本和使用自动化测试工具,可以自动执行测试用例、验证软件系统的功能和性能,并生成相应的测试结果和报告。
xxxflower
2023/10/16
2.1K0
【软件测试】自动化测试selenium(一)
Web UI自动化框架大比拼
对于测试从业者来说,手工测试是一个绕不过去的坎。当年我校招毕业以测试工程师岗位进了一家互联网公司。入职第一天就被师父"拉去干活",至今印象深刻,是一个投顾管理平台(投资顾问管理客户的平台,主要功能是为用户做理财资讯推荐)。主要工作就是让我结合测试用例对这个web页面进行测试,说白了就是点点点。测试新人嘛,这些对于我来说挺新鲜的,但是随着时间的流逝,不到几个月就感觉有点不对了,手工测试完全是个机械化的工作,在执行用例过程大脑是没有思考的,长此以往,会让你的大脑形成固化思维,在测试过程中大脑能得到的测试价值边际效应是递减的,所以这也就解释了大部分手工测试人员普遍测试积极性不高,对未来充满焦虑。
互联网金融打杂
2022/08/01
1.7K0
Web UI自动化框架大比拼
Electron自动化测试技术选型调研
Electron简介 Electron是一个开源的框架,用于构建跨平台的桌面应用程序。它由GitHub开发并于2013年首次发布。Electron允许开发人员使用Web技术(如HTML、CSS和JavaScript)来构建桌面应用程序,同时可以在Windows、macOS和Linux等操作系统上运行。
zx钟
2023/09/24
1.9K0
Electron自动化测试技术选型调研
从理论到工具:带你全面了解自动化测试框架
软件行业正迈向自主、快速、高效的未来。为了跟上这个高速前进的生态系统的步伐,必须加快应用程序的交付时间,但不能以牺牲质量为代价。快速实现质量是必要的,因此质量保证得到了很多关注。为了满足卓越的质量和更快的上市时间的需求,自动化测试将被优先考虑。对于微型、小型和中型企业(SMEs)来说,自动化自身的测试过程是非常必要的,而最关键的方面是选择正确的自动化测试框架。
陈哥聊测试
2020/10/19
1.8K0
从理论到工具:带你全面了解自动化测试框架
web自动化测试(3):web功能自动化测试selenium基础课
继上篇《web自动化测试(1):为什么选择selenium做自动化测试》,本文介绍如selenium使用
周陆军
2021/07/26
1.8K0
《手把手教你》系列基础篇(七十二)-java+ selenium自动化测试-框架设计基础-TestNG简单介绍(详解教程)
前面文章细心的小伙伴会发现宏哥在运行测试用例的时候有的是在main方法下,而有的不需要用main方法去执行用例,那么为什么有的就不需要在main方法下就能够成功运行测试用例了。这就需要单元测试框架的支持,这篇宏哥就来简单介绍TestNG单元测试框架的安装和基本使用。
北京-宏哥
2022/03/10
2.5K0
《手把手教你》系列基础篇(七十二)-java+ selenium自动化测试-框架设计基础-TestNG简单介绍(详解教程)
Web UI自动化框架对比
自动化化框架简介功能支持编程语言自动生成代码插件环境要求Puppeteer提供建立在DevTools协议(devtools-protocol),控制Chrome或Chromium的高阶API node库。Puppeteer默认无界面运行,不过可以通过配置变为有界面运行Chrome或Chromium• 生成页面 PDF。 • 抓取 SPA(单页应用)并生成预渲染内容(即“SSR”(服务器端渲染))。 • 自动提交表单,进行 UI 测试,键盘输入等。 • 创建一个时时更新的自动化测试环境。使用最新的 JavaS
沈宥
2022/05/10
1.3K0
Web UI自动化框架对比
Selenium自动化测试框架入门整理
本文主要针对Selenium自动化测试框架入门整理,只涉及总体功能及框架要点介绍说明,以及使用前提技术基础要求整理说明。作为开发人员、测试人员入门参考。
嘉为蓝鲸
2018/12/21
1.7K0
手把手带你做UI自动化测试
互联网产品的迭代速度远高于传统软件,尤其是移动APP不但更新频繁,还需要在不同硬件、系统版本的环境下进行大量兼容测试,这就给传统测试方法和测试工具带来了巨大挑战。为满足产品敏捷开发、快速迭代的需求,自动化测试逐渐流行起来。自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程。
程序员鑫港
2021/12/27
5K0
自动化测试框架
为了适应快速发展的行业生态系统的步伐,必须加快应用程序交付时间,而且必须不能以质量为代价。在更短的时间内达到质量的目的至关重要,因此质量保障倍受关注。为了满足对卓越质量和更快迭代的要求,越来越多的企业引入自动化,并将优先进行自动化测试。敏捷开发模型使其测试过程自动化变得越来越必要,但是最关键的方面是选择正确的测试自动化框架。
FunTester
2020/09/27
2.5K0
推荐阅读
相关推荐
Node.js的下一代浏览器和移动自动化测试框架-WebdriverIO
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档