首页 > 其他分享 >工具 – Cypress

工具 – Cypress

时间:2023-08-02 12:44:14浏览次数:34  
标签:thank get Cypress cy 测试 工具 cypress

介绍

Cypress 是一款 e2e 测试工具。每当我们写好一个组件或者一个页面之后,我们会想对整体做一个测试。

在不使用工具的情况下,我们会开启 browser,然后做一系列点击、滚动、填 form 等等交互,然后观察看看是否全部运行正常,这就是 e2e 测试。

而借助 Cypress,我们可以把这套测试流程写成代码封装起来。让它变成自动化测试。若以后代码修改了,我们就不需要人工测试(费劲)。

 

参考

YouTube – Cypress in a Nutshell

Docs – Get Started

 

Cypress 环境

Cypress 的环境是独立于我们程序的。我们甚至可以用 Cypress 测试别人的程序,比如测试 google.com

Cypress 基于 Node.js,只要 Node.js 就可以了,不需要 Webpack、Vite 之类的。

当然我们也可以把 Cypress 和我们的程序放到一块。它们也不冲突。

 

Get Started

create project

创建一个项目。这里我用 Vite TypeScript。你可以用其它的,Cypress 只要有 Node.js 就可以了。

写一个简单的页面

.html

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>
  <form autocomplete="off">
    <input name="firstName" placeholder="First Name" required>
    <input name="lastName" placeholder="Last Name">
    <button>Submit</button>
    <p class="thank-you">Thank you! We have received your enquiry.</p>
  </form>
  <script type="module" src="./home.ts"></script>
</body>

</html>
View Code

.scss

@use '../module/reset';

body {
  height: 100vh;
  display: flex;
  justify-content: center;
  align-items: center;

  form {
    min-width: 320px;

    display: flex;
    flex-direction: column;
    gap: 16px;

    input {
      border-radius: 4px;
      border: 1px solid black;
      padding: 16px;
    }

    button {
      border-radius: 4px;
      background-color: pink;
      color: red;
      padding: 20px;
      font-size: 20px;
      text-transform: uppercase;
      letter-spacing: 1px;
    }

    .thank-you {
      line-height: 1.5;

      &:not(.shown) {
        display: none;
      }
    }
  }
}
View Code

.ts

import './home.scss';

document.querySelector('form')!.addEventListener('submit', e => {
  e.preventDefault();
  document.querySelector('.thank-you')!.classList.add('shown');
});
View Code

运行

yarn run vite

效果

install cypress

yarn add cypress --dev

添加 cypress 到 tsconfig.json

"compilerOptions": {
  "types": [
    "cypress"
  ]
},

如果是 vite 的话,inclde 也需要添加 cypress folder

运行

yarn run cypress open

它会打开一个 App

进入 E2E Testing。

for 第一次,它会创建一些 folder and file

folder and file

选一个 browser 做测试

创建第一个 test file

文件的位置

write test

describe('test form', () => {
  it('common use', () => {
    cy.visit('https://192.168.1.152:4200/src/home/home.html'); // 访问我们的程序页面
    cy.get('.thank-you').should('not.be.visible'); // 检查 thank you message 必须是 hidden
    cy.get('input[name="firstName"]').type('Derrick'); // 查找 input firstName 输入 'Derrick'
    cy.get('input[name="lastName"]').type('Yam');
    cy.get('button').click(); // 点击 submit
    cy.get('.thank-you').should('be.visible'); // 检查 thank you message 必须是 shown
  });
});

Cypress 的测试代码一般上都是 UI 操作。然后检查 UI 的变化。当然它也可以发 request 检查资料是否输入到 database 等等。

反正人怎么 test 它就怎么 test 就对了啦。

测试结果

它会一行一行跑,去操作 UI。并且检查 UI display 是否正确。

注: Cypress 的 event 都是模拟的,比如 click 它是通过 JavaScript 触发的。有一个插件 cypress-real-events 可以实现 real click 和 keyboard tab

 

标签:thank,get,Cypress,cy,测试,工具,cypress
From: https://www.cnblogs.com/keatkeat/p/17600373.html

相关文章

  • Visual Studio下载_VS编程开发工具Visual Studio官方版 软件推荐
    VisualStudio2019软件特色一、使用VSTS加快从构想到发布的进程1、CI/CD使用高性能管道以闪电般的速度测试代码并将其部署到生产。根据需要开始处理小型任务和纵向扩展。2、Agile开始按自己的方式实现敏捷方法。VSTS提供可配置看板、交互式积压工作(backlog)、简单易用的计划......
  • 免费听音乐的工具有哪些值得推荐的?
    MusicFree使用平台:Android+Windows它和那些“破解音乐软件”不同,用开发者的话来说,这是一款开源免费且插件化、定制化、无广告的免费音乐播放器。划重点,“插件”才是精髓!Android端:初次进入软件,你能看到的只是一个空空如也的播放器,里面啥都没,包括那些歌单、榜单里也都是空的......
  • Idea:新版本Idea底部工具栏Git中没有Local Changes
    在设置中,VersionControl——Commit中,将选中勾选取消即可,如下图:点击Git图标,LocalChanges已显示出来。 ......
  • idea汉化教程 jetbrains系列工具DataGrip PyCharm WebStorm Intellij IDEA Goland cli
    这里以pycharm举例演示其他的ide类似操作。打开pycharmIDE如果是初次打开工具没有任何项目的情况下界面如下直接点击左侧plugins->输入chinese->选择Chinese(Simplified)点击Install。安装完成后重启IDE就已经是中文版了。有项目的情况界面如下点击File->settin......
  • 多连接的数据库管理工具Navicat Premium 16.2.5 Mac版
    NavicatPremium是一款多连接的数据库管理工具,它是一款免费的多通道、多连接程序,它支持企业和组织同时使用多个应用程序,在一个应用程序中运行多个数据库管理程序。使用Premium可以在同一应用程序中执行多个数据库程序。NavicatPremium可根据应用程序或Web服务之间的速度差异调......
  • 服务器管理工具(IPMI)以及ipmitool工具使用
    服务器管理工具(IPMI)概念介绍IPMIIPMI(IntelligentPlatformManagementInterface)是一项标准开放的硬件管理能力接口规范,由Intel、HP、Dell和IBM公司在1998年共同提出,其主要经历过版本1.0与1.5两代,目前最新版本为2.0。IPMI是一种可扩展的标准,它定义了如何监控硬件和......
  • 9 个免费的 AI 动画工具:让图像栩栩如生
    有一些非常简单的方法可以使你的中途图像(你也可以使用其他替代平台来生成AI图像)对于社交媒体创建AI电影或只是为了好玩更有趣,可以使它们更加身临其境,让他们说话(甚至添加自己的声音)所有这些都可以完全免费完成,这些技术中的每一种都不到02分钟。其中一些只需要几秒钟,ir就不必是AI图......
  • mysqlfrm工具使用及基于.frm和.ibd文件的数据恢复和.ibd迁移
    问题概述可以在数据库发生部分文件损坏,又没有相关备份时,利用mysqlfrm工具,读取数据库中表的.frm文件提取建表语句,结合.ibd文件做数据恢复。一、相关概念1、mysqlfrm工具mysqlfrm是一个恢复性质的工具,可以用来读取.frm文件并从该文件中找到表定义,生成ddl语句,生成的ddl语句多用于在另......
  • 电商API数据开发及跨境电商软件开发包括:erp系统,数据分析软件,商家工具,代购集运系统
    ERP信息同步需求地址:console.open.onebound.cn/console/ind…环境HTTP地址HTTPS地址正式环境console.open.onebound.cn/console/?i=…console.open.onebound.cn/console/?i=…公共请求参数:名称类型必须描述methodString是API接口名称,例如:alibaba.health.ys.cep.vip.insure.notice......
  • 9 个免费的 AI 动画工具:让图像栩栩如生
    有一些非常简单的方法可以使你的中途图像(你也可以使用其他替代平台来生成AI图像)对于社交媒体创建AI电影或只是为了好玩更有趣,可以使它们更加身临其境,让他们说话(甚至添加自己的声音)所有这些都可以完全免费完成,这些技术中的每一种都不到02分钟。其中一些只需要几秒钟,ir就不必是AI......