Cypress 简介

575 阅读3分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第1天,点击查看活动详情

开发结束之后,总是逃脱不了的话题便是测试。但是搜遍全网,使用的都是 Selenium。兴致勃勃的准备用它大展身手,结果发现连门都进不去。但是在了解了一下 Cypress 之后,让我内心直呼:这就是我想象中的测试工具啊

Cypress简介

Cypress 官网(😓 最近可能打不开): cypress.io

Cypress 是基于JavaScript语言的前端自动化测试工具,集成了一套完整的端到端测试方法,可以对浏览器中运行的所有内容进行快速、简单、可靠的测试,并且可以进行接口测试。

Cypress 的特点和优势

安装简单

安装简单,无工具环境搭建心智负担。

Hot Reload

保存修改之后,自动重新加载

F12 Debugger

像调试网页一样,调试测试代码

Screenshot 和 Video

默认情况下,Cypress 会记录每一步运行的记录,同时在报错的时候,除了界面提示之外,还会自动截图和录制视频,方便问题回溯

指令人性化,代码复用率高

集成多种测试库,封装了很多人性化的指令。同时可以自定义添加命令,纯js代码,代码复用程度较高

友好的网络请求

可以拦截和模拟 API 返回。可以监听 API 请求

Cypress 的缺点和劣势

无法录制,需要写代码

不能通过录制的方式,快速生成测试代码,此条参考 PlayWrite

资料少

官网打开有点慢,国内针对性介绍的资料较少。

选取元素和异步问题较难

选取元素这个问题,基本上所有的UI测试工具都会遇到,难点取决于使用人员的经验。Cypress 能做的也只是提供了便捷的选择器

异步问题主要体现在 api 请求速度不定,导致的页面渲染快慢问题,导致的元素选择或者界面跳转报错

可测试的浏览器较少

目前支持的浏览器较少,有 Chrome,Edge,Firefox 等主流浏览器

只支持 Javascript

目前开发语言只支持 Javascript,熟悉 Java 或 Python 等的童鞋可能要学一门新的语言

Cypress 跟 Selenium 对照

功能/特性CypressSelenium
编程语言JavascriptPython、C#、Java、JavaScript
浏览器支持Chrome, Firefox, Edge, Electron以及 IE, Safari
驱动依赖针对不同的浏览器,需要安装不同的驱动
自动等待无需在测试中添加等待或休眠。在移至下一条指令之前、Cypress会自动等待命令和声明
开发友好有实时重载,每步过程,debugger等不友好
网络相关提供api 监控,stub和计时等
待补充

尾声

本文尽量使用简洁的语言进行描述,没有假大空和绚烂的技术,纯纯的就是为了技术,为了成长。下一文开始coding。