Web UI自动化框架对比
2020-05-23 本文已影响0人
沈宥
自动化化框架 | 简介 | 功能 | 支持编程语言 | 自动生成代码插件 | 环境要求 | 社区活资料 |
---|---|---|---|---|---|---|
Puppeteer | 提供建立在DevTools协议(devtools-protocol),控制Chrome或Chromium的高阶API node库。Puppeteer默认无界面运行,不过可以通过配置变为有界面运行Chrome或Chromium | • 生成页面 PDF。 • 抓取 SPA(单页应用)并生成预渲染内容(即“SSR”(服务器端渲染))。 • 自动提交表单,进行 UI 测试,键盘输入等。 • 创建一个时时更新的自动化测试环境。 使用最新的 JavaScript 和浏览器功能直接在最新版本的Chrome中执行测试。 • 捕获网站的 timeline trace,用来帮助分析性能问题。 • 测试浏览器扩展。 |
JavaScript | Chrome插件 puppeteer-recorder |
node版本不低于v6.4.0,但是async/await只在Node v7.6.0或更高的版本支持。 需要最近版本的Chromium浏览器 |
官方文档 接口文档 教程文档 |
Selenium | 浏览器自动化测试库,底层基于webdriver实现,浏览器实现了webdriver功能都可以用它来自动调起和测试。 | • 测试与浏览器的兼容性; • 测试系统功能; • 支持自动录制动作,和自动生成 .NET、Perl、Python、Ruby 和 Java 等不同语言的测试脚本。 |
Java、Python、ruby、PHP、C#、JavaScript | Firefox 插件 Selenium IDE |
需自行下载webdriver并匹配浏览器版本,设置webdriver环境变量 |
官方文档 Python版本接口文档 |
Nightwatch | Node.js调用Webdriver API实现的端到端(e2e)测试框架。基于webdriver实现。 | • 内置测试运行程序 • 能控制selenium服务器 • 支持由供应商提供并运行的selenium主机,比如BrowserStack或SauceLabs上的主机 • 用CSS和Xpath选择元素。 |
JavaScript | 无 | 本地环境里建立一个独立Selenium服务器,以及webdriver程序 | 教程文档 |
Cypress | Cypress 是在 Mocha API 的基础上开发的一套开箱即用的 E2E 测试框架,并不依赖前端框架,也无需其他测试工具库,配置简单,并且提供了强大的 GUI 图形工具,可以自动截图录屏,实现时空旅行并在测试流程中 Debug。 | • 端到端测试 • 整合测试 • 单元测试 |
JavaScript | 无 | macOS >=10.9(64-bit only) Linux Ubuntu >=12.04, Fedora 21 and Debian 8 (64-bit only) Windows >=7 Node.js >=8 |
官网 官方文档 |
SikuliX | Sikuli可利用屏幕截图直接引用 GUI 元素进行编程,点击界面函数按钮按照提示截图即可完成编程。 | • 与平台无关 • 代码可读性强,用图形表示逻辑关系 • 提供.jar包,实现各类测试工具之间的互补 • 用例设计与程序实施可分离 |
Java、Python、Ruby | sikuli IDE | Java 6 | sikuli官网 |
![](https://img.haomeiwen.com/i1721545/c6f9abff491b6639.png)