随着时间的推移,我们的社区开发了几个项目,您可以将它们用作设置自己的测试套件的灵感。
v9 样板项目
webdriverio/cucumber-boilerplate
我们自己的Cucumber测试套件样板。我们为您创建了超过150个预定义的步骤定义,因此您可以立即开始在项目中编写功能文件。
- 框架:
- Cucumber
- WebdriverIO
- 特性:
- 超过150个预定义步骤,几乎涵盖了您所需的一切
- 集成WebdriverIO的Multiremote功能
- 自己的演示应用
webdriverio/jasmine-boilerplate
使用Babel特性和页面对象模式运行WebdriverIO测试与Jasmine的样板项目。
- 框架
- WebdriverIO
- Jasmine
- 特性
- 页面对象模式
- Sauce Labs集成
webdriverio/electron-boilerplate
在最小的Electron应用程序上运行WebdriverIO测试的样板项目。
- 框架
- WebdriverIO
- Mocha
- 特性
- Electron API模拟
syamphaneendra/webdriverio9-boilerplate
这个样板项目具有WebdriverIO 9移动测试,使用Cucumber、TypeScript和Appium,适用于Android和iOS平台,遵循页面对象模型模式。特点包括全面的日志记录、报告、移动手势、应用到网页导航以及CI/CD集成。
-
框架:
- WebdriverIO v9
- Cucumber v9
- Appium v2.5
- TypeScript v5
-
特性:
- 多平台支持
- Android (UiAutomator2)
- iOS (XCUITest)
- 移动手势
- 滚动
- 滑动
- 长按
- 隐藏键盘
- 应用到Web导航
- 上下文切换
- WebView支持
- 浏览器自动化(Chrome/Safari)
- 新鲜应用状态
- 场景之间自动重置应用
- 可配置的重置行为(noReset, fullReset)
- 设备配置
- 集中式设备管理
- 轻松平台切换
- JavaScript / TypeScript的目录结构示例。以下是JS版本,TS版本也有相同的结构。
- 多平台支持
amiya-pattnaik/wdio-testgen-from-gherkin-js
amiya-pattnaik/wdio-testgen-from-gherkin-ts
自动从Gherkin .feature文件生成WebdriverIO页面对象类和Mocha测试规范 - 减少手动工作,提高一致性,并加速QA自动化。该项目不仅生成与webdriver.io兼容的代码,还增强了webdriver.io的所有功能。我们创建了两个版本,一个用于JavaScript用户,另一个用于TypeScript用户。但两个项目的工作方式相同。
它是如何工作的?
- 该过程遵循两步自动化:
- 步骤1:Gherkin到stepMap(生成stepMap.json文件)
- 生成stepMap.json文件:
- 解析用Gherkin语法编写的.feature文件。
- 提取场景和步骤。
- 生成一个结构化的.stepMap.json文件,包含:
- 要执行的操作(例如,click, setText, assertVisible)
- 用于逻辑映射的selectorName
- DOM元素的选择器
- 值或断言的注释
- 生成stepMap.json文件:
- 步骤2:stepMap到代码(生成WebdriverIO代码)。
使用stepMap.json生成:
- 生成一个具有共享方法和browser.url()设置的基本page.js类。
- 在test/pageobjects/中为每个功能生成WebdriverIO兼容的页面对象模型(POM)类。
- 生成基于Mocha的测试规范。
- JavaScript / TypeScript的目录结构示例。以下是JS版本,TS版本也有相同的结构。
project-root/
├── features/ # Gherkin .feature files (user input / source file)
├── stepMaps/ # Auto-generated .stepMap.json files
├── test/
│ ├── pageobjects/ # Auto-generated WebdriverIO tests Page Object Model classes
│ └── specs/ # Auto-generated Mocha test specs
├── src/
│ ├── cli.js # Main CLI logic
│ ├── generateStepsMap.js # Feature-to-stepMap generator
│ ├── generateTestsFromMap.js # stepMap-to-page/spec generator
│ ├── utils.js # Helper methods
│ └── config.js # Paths, fallback selectors, aliases
│ └── __tests__/ # Unit tests (Vitest)
├── testgen.js # CLI entry point
│── wdio.config.js # WebdriverIO configuration
├── package.json # Scripts and dependencies
├── selector-aliases.json # Optional user-defined selector overrides the primary selector
v8 样板项目
amiya-pattnaik/webdriverIO-with-cucumberBDD
- 框架: WDIO-V8 与 Cucumber (V8x).
- 特性:
- 页面对象模型使用ES6 /ES7风格的基于类的方法和TypeScript支持
- 多选择器选项示例,可同时使用多个选择器查询元素
- 多浏览器和无头浏览器执行示例 - 使用Chrome和Firefox
- 与BrowserStack、Sauce Labs、TestMu AI(前身为LambdaTest)的云测试集成
- 从MS-Excel读/写数据的示例,便于从外部数据源进行测试数据管理,并提供示例
- 支持任何RDBMS(Oracle、MySql、TeraData、Vertica等)的数据库,执行任何查询/获取结果集等,并提供E2E测试示例
- 多种报告(Spec、Xunit/Junit、Allure、JSON)和在Web服务器上托管Allure和Xunit/Junit报告
- 使用演示应用https://search.yahoo.com/ 和 http://the-internet.herokuapp.com 的示例
- BrowserStack、Sauce Labs、TestMu AI(前身为LambdaTest)和Appium特定的
.config文件(用于在移动设备上回放)。有关在本地机器上一键设置iOS和Android的Appium,请参考appium-setup-made-easy-OSX。
amiya-pattnaik/webdriverIO-with-mochaBDD
- 框架: WDIO-V8 与 Mocha (V10x).
- 特性:
- 页面对象模型使用ES6 /ES7风格的基于类的方法和TypeScript支持
- 使用演示应用https://search.yahoo.com 和 http://the-internet.herokuapp.com 的示例
- 多浏览器和无头浏览器执行示例 - 使用Chrome和Firefox
- 与BrowserStack、Sauce Labs、TestMu AI(前身为LambdaTest)的云测试集成
- 多种报告(Spec、Xunit/Junit、Allure、JSON)和在Web服务器上托管Allure和Xunit/Junit报告
- 从MS-Excel读/写数据的示例,便于从外部数据源进行测试数据管理,并提供示例
- 连接到任何RDBMS(Oracle、MySql、TeraData、Vertica等)的数据库示例,执行任何查询/获取结果集等,并提供E2E测试示例
- BrowserStack、Sauce Labs、TestMu AI(前身为LambdaTest)和Appium特定的
.config文件(用于在移动设备上回放)。有关在本地机器上一键设置iOS和Android的Appium,请参考appium-setup-made-easy-OSX。
amiya-pattnaik/webdriverIO-with-jasmineBDD
- 框架: WDIO-V8 与 Jasmine (V4x).
- 特性:
- 页面对象模型使用ES6 /ES7风格的基于类的方法和TypeScript支持
- 使用演示应用https://search.yahoo.com 和 http://the-internet.herokuapp.com 的示例
- 多浏览器和无头浏览器执行示例 - 使用Chrome和Firefox
- 与BrowserStack、Sauce Labs、TestMu AI(前身为LambdaTest)的云测试集成
- 多种报告(Spec、Xunit/Junit、Allure、JSON)和在Web服务器上托管Allure和Xunit/Junit报告
- 从MS-Excel读/写数据的示例,便于从外部数据源进行测试数据管理,并提供示例
- 连接到任何RDBMS(Oracle、MySql、TeraData、Vertica等)的数据库示例,执行任何查询/获取结果集等,并提供E2E测试示例
- BrowserStack、Sauce Labs、TestMu AI(前身为LambdaTest)和Appium特定的
.config文件(用于在移动设备上回放)。有关在本地机器上一键设置iOS和Android的Appium,请参考appium-setup-made-easy-OSX。
syamphaneendra/webdriverio-web-mobile-boilerplate
这个样板项目有WebdriverIO 8测试,使用cucumber和typescript,遵循页面对象模式。
-
框架:
- WebdriverIO v8
- Cucumber v8
-
特性:
- Typescript v5
- 页面对象模式
- Prettier
- 多浏览器支持
- Chrome
- Firefox
- Edge
- Safari
- Standalone
- 跨浏览器并行执行
- Appium
- 与BrowserStack和Sauce Labs的云测试集成
- Docker服务
- 共享数据服务
- 每个服务的单独配置文件
- 测试数据管理和按用户类型读取
- 报告
- Dot
- Spec
- 包含失败截图的多个cucumber html报告
- Gitlab仓库的Gitlab管道
- Github仓库的Github actions
- 用于设置docker hub的Docker compose
- 使用AXE进行可访问性测试
- 使用Applitools进行视觉测试
- 日志机制
klassijs/klassi-js (cucumber-template)
-
框架
- WebdriverIO (v8)
- Cucumber (v8)
-
特性
- 包含cucumber中的示例测试场景
- 集成cucumber html报告,失败时嵌入视频
- 集成Lambdatest和CircleCI服务
- 集成视觉、可访问性和API测试
- 集成电子邮件功能
- 集成s3存储桶用于测试报告的存储和检索
serenity-js/serenity-js-mocha-webdriverio-template/
Serenity/JS模板项目,帮助您开始使用最新的WebdriverIO、Mocha和Serenity/JS进行Web应用程序的验收测试。
-
框架
- WebdriverIO (v8)
- Mocha (v10)
- Serenity/JS (v3)
- Serenity BDD报告
-
特性
- Screenplay模式
- 测试失败时自动截图,嵌入报告
- 使用GitHub Actions的持续集成(CI)设置
- Demo Serenity BDD报告发布到GitHub Pages
- TypeScript
- ESLint