首页 星云 工具 资源 星选 资讯 热门工具
:

PDF转图片 完全免费 小红书视频下载 无水印 抖音视频下载 无水印 数字星空

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

编程知识
2024年08月12日 07:00

1、介绍

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

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

官方网址:

https://webdriver.io/

2、主要功能和特点

  • 开源:WebdriverIO是一个开源项目,它使得开发者和测试人员可以在自己的项目中自由地使用和修改它。

  • 跨平台、多语言支持:支持多种编程语言(如JavaScript、TypeScript、Python等)和多种操作系统(如Windows、Linux、Mac OS等),确保了跨平台和跨语言的兼容性。

  • 多浏览器支持:WebdriverIO遵循W3C WebDriver标准,确保了与主流浏览器的无缝集成,同时支持WebDriver BiDi和Chrome DevTools协议,利用这两个强大的工具集,可以直接控制浏览器的底层功能,进行更精细的调试和测试。

  • Appium整合:WebdriverIO不仅支持Web应用程序的测试,还通过Appium平台提供了对Android和iOS应用的自动化支持。

  • 丰富的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":

// 引入 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

From:https://www.cnblogs.com/jinjiangongzuoshi/p/18341544
本文地址: http://shuzixingkong.net/article/999
0评论
提交 加载更多评论
其他文章 Java类和对象 小白版
一、类 一、类的定义 具有同种属性的对象称为类。定义了它所包含的全体对象的公共特征和功能,对象就是类的一个实例化。 类的三种常见成员:属性、方法、构造器 二、类的编写 1.类名的定义; 2.类属性(特性)的编写;属性 ( 成员变量 ) = 访问修饰符 + 数据类型 +变量名 //定义人类 publi
关于REACT范式的一些思考
关于REACT范式的一些思考 REACT范式经过近一年的探索,让我们在很多领域有了非常广泛的应用,它确实提升了很多之前无法解决的问题,比如大模型虽然在语言理解和交互式决策方面在任务中表现出令人印象深刻的表现,但是如何让模型基于解释来使用 LLMs 以交错方式生成推理跟踪和特定于任务的操作 一直是一个
关于REACT范式的一些思考 关于REACT范式的一些思考 关于REACT范式的一些思考
编程技巧 --- 远程调试
引言 最近在做的项目上做了一些性能优化的工作,用到了 Visual Studio 远程调试,所以本篇文章整理一下远程调试技巧。 首先,了解一下 Visual Studio远程调试是什么? Visual Studio 的远程调试功能允许在本地调试远程计算机上运行的应用程序。用远程调试,可以在本地计算机
编程技巧 --- 远程调试 编程技巧 --- 远程调试 编程技巧 --- 远程调试
在python项目的docker镜像里使用pdm管理依赖
前言 在 DjangoStarter 项目中,我已经使用 pdm 作为默认的包管理器,不再直接使用 pip 所以部署的时候 dockerfile 和 docker-compose 配置也得修改一下。 dockerfile 首先修改一下 dockerfile ARG PYTHON_BASE=3.11
七天.NET 8操作SQLite入门到实战详细教程(选型、开发、发布、部署)
教程简介 EasySQLite是一个七天.NET 8操作SQLite入门到实战详细教程(包含选型、开发、发布、部署)! 什么是SQLite? SQLite 是一个软件库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。SQLite 是在世界上最广泛部署的 SQL 数据库引擎。S
七天.NET 8操作SQLite入门到实战详细教程(选型、开发、发布、部署) 七天.NET 8操作SQLite入门到实战详细教程(选型、开发、发布、部署) 七天.NET 8操作SQLite入门到实战详细教程(选型、开发、发布、部署)
《花100块做个摸鱼小网站! 》第二篇—后端应用搭建和完成第一个爬虫
一、前言 大家好呀,我是summo,前面已经教会大家怎么去阿里云买服务器(链接在这,需要自取),以及怎么搭建JDK、Redis、MySQL这些环境或者数据库。从这篇文章开始就进入正式的编码阶段了,我们从后端开始,先把热搜数据获取到,然后再开始前端部分。 本来我想把后端应用搭建和完成第一个爬虫分为两篇
《花100块做个摸鱼小网站! 》第二篇—后端应用搭建和完成第一个爬虫 《花100块做个摸鱼小网站! 》第二篇—后端应用搭建和完成第一个爬虫 《花100块做个摸鱼小网站! 》第二篇—后端应用搭建和完成第一个爬虫
Blazor开发框架Known-V2.0.7
V2.0.7 Known是基于Blazor的企业级快速开发框架,低代码,跨平台,开箱即用,一处代码,多处运行。 官网:http://known.pumantech.com Gitee: https://gitee.com/known/Known Github:https://github.com/k
Blazor开发框架Known-V2.0.7 Blazor开发框架Known-V2.0.7 Blazor开发框架Known-V2.0.7
当 Spring 循环依赖碰上 Aysnc,调试过程中出现 BeanCurrentlyInCreationException,有点意思
开心一刻 前两天有个女生加我,我同意了 第一天,她和我聊文学,聊理想,聊篮球,聊小猫小狗 第二天,她和我说要看我腹肌 吓我一跳,我反手就删除拉黑,我特喵一肚子的肥肉,哪来的腹肌! 循环依赖 关于 Spring 的循环依赖,我已经写了 4 篇 Spring 的循环依赖,源码详细分析 → 真的非要三级缓
当 Spring 循环依赖碰上 Aysnc,调试过程中出现 BeanCurrentlyInCreationException,有点意思 当 Spring 循环依赖碰上 Aysnc,调试过程中出现 BeanCurrentlyInCreationException,有点意思 当 Spring 循环依赖碰上 Aysnc,调试过程中出现 BeanCurrentlyInCreationException,有点意思