

























在前端开发中,UI测试一直是个痛点。手动测试费时费力,传统自动化测试工具配置复杂。
直到遇到了Cypress,一切都变得不同了...
🚀 接入方便
npm install cypress --save-dev🔄 端到端测试支持
📖 语法全面易懂
cy.get('.button').click()
cy.contains('提交').should('be.visible')
cy.url().should('include', '/dashboard')
💰 本地完全免费

第一步:安装和基础配置
// package.json
{
"scripts": {
"cypress:open": "cypress open",
"cypress:run": "cypress run"
}
}
**第二步:项目特定配置, 在根目录添加cypress.config.js文件 内容如下: **
// cypress.config.js
import { defineConfig } from 'cypress'
export default defineConfig({
e2e: {
// 基础URL
baseUrl: 'https://y-dev.abc.com',
// 测试文件的位置
specPattern: 'cypress/e2e/**/*.cy.{js,jsx,ts,tsx}',
// 支持文件的位置
supportFile: 'cypress/support/e2e.js',
// 视窗设置
viewportWidth: 1280,
viewportHeight: 720,
// 其他配置
defaultCommandTimeout: 10000,
setupNodeEvents(on, config) {
return config
},
}
})
第三步:自定义命令
// 可以通过设置cookie,来同步登录状态
Cypress.Commands.add('setLoginCookie', () => {
cy.setCookie('Passport', 'cookie_value', {
domain: '.abc.com'
})
})
简单元素检查
it('检查下载链接存在', () => {
cy.get('a.downloadexe')
.should('exist')
.should('have.attr', 'href')
.should('contain.text', '下载客户端')
})
复杂交互测试
it('创建车队弹窗交互', () => {
// 点击按钮
cy.get('div[data-type="creatteam"]').click()
// 验证弹窗显示
cy.get('.carauto-create-mask')
.should('have.css', 'display', 'block')
// 关闭弹窗
cy.get('.carauto-create-close').click()
// 验证弹窗隐藏
cy.get('.carauto-create-mask')
.should('have.css', 'display', 'none')
})
数据验证测试
it('送礼物功能测试', () => {
let initialValue = 0
// 获取初始值
cy.get('.seat-meili-num')
.invoke('text')
.then((text) => {
initialValue = parseInt(text) || 0
})
// 执行送礼操作...
// 验证数值变化
cy.get('.seat-meili-num')
.invoke('text')
.then((text) => {
const finalValue = parseInt(text) || 0
expect(finalValue).to.be.at.least(initialValue + 52)
})
})
🎯 智能等待机制
setTimeout 的痛苦🔍 强大的调试能力
📱 多种测试模式
开发效率提升
代码质量提升
团队协作改善
语法陷阱
// ❌ 错误
const text = cy.get('.element').text()
// ✅ 正确
cy.get('.element').invoke('text').then((text) => {
// 处理文本
})
Cypress不仅仅是一个测试工具,更是提升开发体验的利器。
从配置到编写测试用例,整个过程如丝般顺滑。
如果你也在为前端测试而头疼,不妨试试Cypress,
相信你会和我一样,被它的优雅所征服。
git 仓库地址 :https://github.com/YalongYan/cypress-demo
参考:
https://docs.cypress.io/app/get-started/why-cypress
https://www.cypress.io/
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。