一文详解!Cypress环境搭建与配置

news2024/11/17 5:30:24

目录

前言:

基础环境安装

Cypress安装与配置

通过直接下载安装及配置

启动Cypress


前言:

Cypress是一个现代化的前端测试框架,具有易用性、可靠性和可调试性等优势,适用于UI自动化测试、端到端(E2E)测试和集成测试等场景。

基础环境安装

安装与配置

首先从Node.js官网下载node-v14.15.1-x64.msi

下载完成后,双击安装,在Custom Setup阶段,注意确保添加系统环境变量的选项(Add to PATH)是选中的否则后续还需要自行配制

环境验证

C:\Users\Administrator>node --version
v14.15.1
C:\Users\Administrator>npm --version
6.14.8

Cypress安装与配置

通过npm安装及配置(推荐模式)

  • 新建一个Cypress的文件夹,然后在文件夹内执行命令npm init从而生成package.json文件

  • 使用npm install cypress --save-dev命令安装Cypress

D:\cypress>npm install cypress --save-dev
npm WARN deprecated har-validator@5.1.5: this library is no longer supported
> cypress@5.6.0 postinstall D:\cypress\node_modules\cypress
> node index.js --exec install
Installing Cypress (version: 5.6.0)
  √  Downloaded Cypress
  √  Unzipped Cypress
  √  Finished Installation C:\Users\Administrator\AppData\Local\Cypress\Cache\5.6.0
You can now open Cypress by running: node_modules\.bin\cypress open
https://on.cypress.io/installing-cypress
npm WARN saveError ENOENT: no such file or directory, open 'D:\cypress\package.json'
npm notice created a lockfile as package-lock.json. You should commit this file.
npm WARN enoent ENOENT: no such file or directory, open 'D:\cypress\package.json'
npm WARN cypress No description
npm WARN cypress No repository field.
npm WARN cypress No README data
npm WARN cypress No license field.
+ cypress@5.6.0
added 216 packages from 147 contributors and audited 216 packages in 540.664s
12 packages are looking for funding
  run `npm fund` for details
found 0 vulnerabilities

在D:\cypress\node_modules\cypress目录下会自动生成一个package.json文件,作用是一样的

通过yarn安装及配置

yarn是一个JavaScript包管理工具,它是为了弥补npm的一些缺陷而出现的,通过其官方地址下载yarn-x.xx.x.msi文件,然后双击完成安装即可,然后将yarn的执行文件路径C:\Program Files (x86)\Yarn\bin;配置到系统环境变量中

然后启动命令行验证环境

C:\Users\Administrator>yarn
yarn install v1.22.5
info No lockfile found.
[1/4] Resolving packages...
[2/4] Fetching packages...
[3/4] Linking dependencies...
[4/4] Building fresh packages...
success Saved lockfile.
Done in 0.06s.
C:\Users\Administrator>yarn -version
1.22.5

实际上使用npm也可以安装yarn,命令是npm install -g yarn安装成功后,便可以使用yarn安装cypress,与上一个安装方式一样,新建一个Cypress目录,然后在目录下执行命令yarn add cypress --dev即可

Microsoft Windows [版本 10.0.10240]
(c) 2015 Microsoft Corporation. All rights reserved.
D:\cypress>yarn add cypress --dev
yarn add v1.22.5
info No lockfile found.
warning package-lock.json found. Your project contains lock files generated by tools other than Yarn. It is advised not to mix package managers in order to avoid resolution inconsistencies caused by unsynchronized lock files. To clear this warning, remove package-lock.json.
[1/4] Resolving packages...
warning cypress > @cypress/request > har-validator@5.1.5: this library is no longer supported
[2/4] Fetching packages...
[3/4] Linking dependencies...
[4/4] Building fresh packages...
success Saved lockfile.
success Saved 165 new dependencies.
info Direct dependencies
└─ cypress@5.6.0
info All dependencies
├─ @cypress/listr-verbose-renderer@0.4.1
├─ @cypress/request@2.88.5
├─ @cypress/xvfb@1.2.4
├─ @samverschueren/stream-to-observable@0.3.1
├─ @types/sinonjs__fake-timers@6.0.2
├─ @types/sizzle@2.3.2
├─ ajv@6.12.6
├─ ansi-escapes@3.2.0
├─ ansi-styles@2.2.1
├─ any-observable@0.3.0
├─ arch@2.2.0
├─ asn1@0.2.4
├─ async@3.2.0
├─ asynckit@0.4.0
├─ at-least-node@1.0.0
├─ aws-sign2@0.7.0
├─ aws4@1.11.0
├─ balanced-match@1.0.0
├─ bcrypt-pbkdf@1.0.2
├─ blob-util@2.0.2
├─ bluebird@3.7.2
├─ brace-expansion@1.1.11
├─ buffer-crc32@0.2.13
├─ buffer-from@1.1.1
├─ cachedir@2.3.0
├─ caseless@0.12.0
├─ chalk@1.1.3
├─ check-more-types@2.24.0
├─ ci-info@2.0.0
├─ cli-cursor@2.1.0
├─ cli-table3@0.6.0
├─ cli-truncate@0.2.1
├─ code-point-at@1.1.0
├─ color-convert@2.0.1
├─ color-name@1.1.4
├─ colors@1.4.0
├─ combined-stream@1.0.8
├─ commander@5.1.0
├─ common-tags@1.8.0
├─ concat-map@0.0.1
├─ concat-stream@1.6.2
├─ core-util-is@1.0.2
├─ cross-spawn@7.0.3
├─ cypress@5.6.0
├─ dashdash@1.14.1
├─ debug@4.3.1
├─ delayed-stream@1.0.0
├─ ecc-jsbn@0.1.2
├─ elegant-spinner@1.0.1
├─ emoji-regex@8.0.0
├─ end-of-stream@1.4.4
├─ eventemitter2@6.4.3
├─ execa@4.1.0
├─ executable@4.1.1
├─ exit-hook@1.1.1
├─ extend@3.0.2
├─ extract-zip@1.7.0
├─ extsprintf@1.3.0
├─ fast-deep-equal@3.1.3
├─ fast-json-stable-stringify@2.1.0
├─ fd-slicer@1.1.0
├─ forever-agent@0.6.1
├─ form-data@2.3.3
├─ fs-extra@9.0.1
├─ fs.realpath@1.0.0
├─ get-stream@5.2.0
├─ getos@3.2.1
├─ getpass@0.1.7
├─ glob@7.1.6
├─ global-dirs@2.0.1
├─ graceful-fs@4.2.4
├─ har-schema@2.0.0
├─ har-validator@5.1.5
├─ has-ansi@2.0.0
├─ has-flag@4.0.0
├─ http-signature@1.2.0
├─ human-signals@1.1.1
├─ indent-string@3.2.0
├─ inflight@1.0.6
├─ inherits@2.0.4
├─ ini@1.3.5
├─ is-ci@2.0.0
├─ is-fullwidth-code-point@3.0.0
├─ is-installed-globally@0.3.2
├─ is-observable@1.1.0
├─ is-path-inside@3.0.2
├─ is-promise@2.2.2
├─ is-stream@1.1.0
├─ is-typedarray@1.0.0
├─ isarray@1.0.0
├─ isexe@2.0.0
├─ isstream@0.1.2
├─ json-schema-traverse@0.4.1
├─ json-schema@0.2.3
├─ json-stringify-safe@5.0.1
├─ jsonfile@6.1.0
├─ jsprim@1.4.1
├─ lazy-ass@1.6.0
├─ listr-silent-renderer@1.1.1
├─ listr-update-renderer@0.5.0
├─ listr-verbose-renderer@0.5.0
├─ listr@0.14.3
├─ lodash.once@4.1.1
├─ lodash@4.17.20
├─ log-symbols@4.0.0
├─ log-update@2.3.0
├─ merge-stream@2.0.0
├─ mime-db@1.44.0
├─ mime-types@2.1.27
├─ mimic-fn@1.2.0
├─ minimatch@3.0.4
├─ mkdirp@0.5.5
├─ moment@2.29.1
├─ ms@2.1.2
├─ npm-run-path@4.0.1
├─ number-is-nan@1.0.1
├─ oauth-sign@0.9.0
├─ onetime@2.0.1
├─ ospath@1.2.2
├─ p-map@2.1.0
├─ path-is-absolute@1.0.1
├─ path-key@3.1.1
├─ pend@1.2.0
├─ performance-now@2.1.0
├─ pify@2.3.0
├─ pretty-bytes@5.4.1
├─ process-nextick-args@2.0.1
├─ psl@1.8.0
├─ pump@3.0.0
├─ punycode@2.1.1
├─ qs@6.5.2
├─ querystring@0.2.0
├─ ramda@0.26.1
├─ readable-stream@2.3.7
├─ request-progress@3.0.0
├─ restore-cursor@2.0.0
├─ rimraf@3.0.2
├─ rxjs@6.6.3
├─ safe-buffer@5.1.2
├─ safer-buffer@2.1.2
├─ shebang-command@2.0.0
├─ shebang-regex@3.0.0
├─ slice-ansi@0.0.4
├─ sshpk@1.16.1
├─ string_decoder@1.1.1
├─ string-width@4.2.0
├─ strip-final-newline@2.0.0
├─ supports-color@7.2.0
├─ symbol-observable@1.2.0
├─ throttleit@1.0.0
├─ tmp@0.2.1
├─ tough-cookie@2.5.0
├─ tslib@1.14.1
├─ tunnel-agent@0.6.0
├─ tweetnacl@0.14.5
├─ typedarray@0.0.6
├─ universalify@1.0.0
├─ untildify@4.0.0
├─ uri-js@4.4.0
├─ url@0.11.0
├─ util-deprecate@1.0.2
├─ uuid@3.4.0
├─ verror@1.10.0
├─ which@2.0.2
└─ wrap-ansi@3.0.1
Done in 20.32s.
D:\cypress>

通过直接下载安装及配置

首先从Cypress官网下载Cypress的zip包,从该地址下载的Cypress为最新版本的,如果想获取指定版本的Cypress可以从此地址找对应版本

下载解压后,双击.exe文件即可启动Cypress在这里插入图片描述

执行npm init命令来生成package.json文件,首先将命令行引导到解压好的cypress目录下,然后执行npm init它会引导你配置生成package.json文件

然后在命令行所在路径下就会生成package.json文件

package.json文件也可以手动创建,通常存在于项目的根目录下,它定义了这个项目所需要的各种模块及项目的各项配置信息,例如名称、版本、依赖、脚本等等

使用直接下载的方式存在 一些麻烦,官方给出的说明如下

Recording runs to the Dashboard is not possible from the direct download. This download is only intended as a quick way to try out Cypress. To record tests to the Dashboard, you’ll need to install Cypress as an npm dependency.

启动Cypress

执行cypress open启动Cypress

```bash
D:\cypress\node_modules\.bin>cypress open
It looks like this is your first time using Cypress: 5.6.0
√  Verified Cypress! C:\Users\Administrator\AppData\Local\Cypress\Cache\5.6.0\Cypress
Opening Cypress...
```
此时在打开的窗口可能会遇到报错,报错内容类似于
Error: EEXIST: file already exists, mkdir 'C:\cypress\node_modules\.bin\cypress'

这种情况下找到C:\cypress\node_modules.bin\下的cypress文件,将其改名,然后再执行命令就可以了

如果启动Cypress的时候,缺少依赖等等错误,可以尝试重新安装Cypress,命令如下

.\node_modules\.bin\cypress.cmd install --force

执行npm run cypress:open启动Cypress

在package.json文件中添加脚本

{
  "scripts": {
    "cypress:open": "cypress open",
    "cypress:run":"cypress run",
  }
}

然后执行npm run cyrepss:open即可

D:\Cypress>npm run cypress:open
> cypress@1.0.0 cypress:open D:\Cypress
> cypress open

执行npx cypress open启动Cypress

npm从5.2开始增加了npx命令,主要用于提升从npm注册表使用软件包的提前,它会随着npm自动安装,当然也可以手动安装

bash D:\>npx cypress open

执行yarn run cypress open启动Cypress

如果是使用yarn命令安装的Cypress,那么还可以通过执行yarn run cypress open启动Cypress

C:\cypress>yarn run cypress open
yarn run v1.22.5
$ C:\cypress\node_modules\.bin\cypress open

直接启动.exe文件

如果是下载的windows版本的,那么它包含一个.exe文件,双击即可启动

配置Cypress

在package.json文件中,增加启动命令,如下所示

{
  "name": "davieyang",
  "version": "1.0.0",
  "description": "trainning",
  "main": "index.js",
  "scripts": {
"cypress:open": "cypress open",
"cypress:run": "cypress run",
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC"
}

然后再启动和运行cypress的时候便可以直接使用命令

yarn cypress:open

yarn cypress:run

 作为一位过来人也是希望大家少走一些弯路,希望能对你带来帮助。(WEB自动化测试、app自动化测试、接口自动化测试、持续集成、自动化测试开发、大厂面试真题、简历模板等等),相信能使你更好的进步! 

留【自动化测试】即可【自动化测试交流】:574737577(备注ccc)icon-default.png?t=N4P3http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=2szVdJcy6VnqVi_zYhQd8aI9U5yfUv34&authKey=leQfP2SBsSV1%2FUzpd2OtJhdk%2F0SH%2FzEdi8uCVyM4q8w%2FHQEA1WUh3aqS9kyXZxUH&noverify=0&group_code=574737577

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/642282.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

JavaScript:从入门到精通:初始JS

JS基本思想 1. 浏览器对 JS 支持2. JS程序的组成3. JS 开发工具 1. 浏览器对 JS 支持 🧡背景 1997年 微软和网景公司合作发布了 ECMAScript 的语言规范 从那时起,微软所有浏览器都支持ECMAScript 标准 1999年,ECMAScript 第三版,…

Python篇——数据结构与算法(第五部分:数据结构)

数据结构是指相互之间存在着一种或多种关系的数据元素的集合和该集合中数据元素之间的关系组成简单来说,数据结构就是设计数据以何种方式组织并存储在计算机中比如:列表、集合与字典等都是一种数据结构N.Wirth:“程序 数据结构算法” 1、列…

如何识别二叉树的“亲戚”?——探秘判断子树的奥妙

本篇博客会讲解力扣“572. 另一棵树的子树”的解题思路,这是题目链接。先来审题: 本题的思路是:使用递归,把大问题化作小问题。 先来思考:如何判断q是不是p的子树呢? q是p的子树有3种情况,分别…

不断进化!奇点云助豫园股份构建集团统一战略的数据平台

“一张图、一颗心、一场仗,构建集团统一战略的数据平台,豫园股份不断进化。” 日前,2023 StartDT Day 数智科技大会正式举办。企业客户、行业专家、技术专家与数万位参会伙伴相聚云上,共话数据时代进化之道。 作为消费产业的数字…

Spring Cloud - Ribbon 负载均衡原理、负载策略、懒加载

目录 ​编辑 一、Ribbon 负载均衡原理 1.1、前言 1.2、负载均衡的工作流程 二、负载均衡策略 2.1、策略原理 2.2、负载均衡自定义方式 三、Ribbon 加载方式 一、Ribbon 负载均衡原理 1.1、前言 ps:案例是上一章所讲的 “根据订单id查询订单的同时&#xff0…

Matlab机器人运动学与正逆解算法学习笔记

文章目录 ※ 参考资料建立DH模型△ 基本概念和标准DH/改进DH○ 连杆与关节的编号○ 标准DH与改进DH △ DH参数模型建立方法○ 标准DH参数定义及方法简介 连杆坐标系建立方法 标准DH参数含义※ 关于DH参数以哪个轴的指向为准的问题 标准DH坐标系间的齐次变换矩阵 ○ 改进DH参数…

WPS AI内测申请窍门;AI数字人最全工具盘点;AI超级个体必读书籍;产品国际化与本地化指南;生成式AI应用路线图 | ShowMeAI日报

👀日报&周刊合集 | 🎡生产力工具与行业应用大全 | 🧡 点赞关注评论拜托啦! 🤖 生成式AI应用路线图:多模态AI的应用能力演进 随着生成式AI「对生成内容的可控性」不断提高,其应用场景也在不断…

【算法系列 | 6】深入解析排序算法之——堆排序

序言 你只管努力,其他交给时间,时间会证明一切。 文章标记颜色说明: 黄色:重要标题红色:用来标记结论绿色:用来标记一级论点蓝色:用来标记二级论点 决定开一个算法专栏,希望能帮助大…

整理 钢琴教材 铃木钢琴教程(铃木)

邮箱不能及时回复,现放到网盘里了,文末按需自取 铃木钢琴教程第1册 文件名:铃木钢琴教程第1册 超清PDF 文件大小:7.05 MB 下载地址:https://download.csdn.net/download/qq_36040764/85051148 铃木钢琴教程第2册 文件名:铃木钢琴教程第2册 超清PDF 文件大小:5.54 …

边缘检测笔记

边缘是什么? 图像的边缘是指图像局部区域中亮度变化明显的部分,边缘位于像素的灰度值产生突变的地方。 边缘的正负之分:由暗到亮为正,由亮变暗为负。 图像的高频信号和低频信号 简单理解为,图像中高频分量&#xff08…

在Windows11平台安装JDK11(双11)

目录 引言一、安装前说明1.系统要求2.多版本安装 二、JDK11安装三、安装成功验证1.验证2.Path环境变量 总结 引言 本文主要是详细讲解在 Windows 11 系统上安装 JDK 11,安装时有一些注意事项需要说明。与 JDK 8 的安装过程有少许不一样。 一、安装前说明 1.系统要…

GPT-4的中国2023高考作文

我选取2023年上海的作文题(我比较感兴趣),题目如下: 面对这个题目,不知道各位有什么想法么?如果你去考试,你会怎么写? 来,我们看看AI是怎么写的。 以下是GPT-4的作文&a…

vmware虚拟机网络“桥接模式”与“NAT模式”的联网原理及linux环境下IP配置指引

一、vmware虚拟机网络“桥接模式”与“NAT模式”的区别 选中虚拟机》设置》网络适配器,打开虚拟机设置面板 我们看到网络连接处有多个选项,今天良哥通过试验告诉你“桥接模式”和“NAT模式”的联网原理、区别及两种模式下IP地址配置的详细方法。 桥接模…

spring-data-elasticsearch.4.2.0 jar包冲突导致:StackOverflow

最近要求es做升级改造: 目前版本: 1. springframework 4.3.3-RELEASE 2. spring-data-elasticsearch: 2.0.3 3. elasticsearch: 2.4.0 4. 工具类: ElasticsearchTemplate 升级后ES版本7.10.0 1. springframework 升级到 5.3.10 2. spring-data-elasticsearch 升级到 4.…

热门bi报表软件推荐,哪款bi报表软件更功能更强大?

随着商业智能(BI)的不断发展和应用,越来越多的企业开始关注和使用BI报表软件。但是在众多的BI报表软件中,如何选择一款既功能强大又易于使用的软件,成为了许多企业和个人面临的难题。下面将为大家介绍5款热门的BI报表软…

爆肝百万字;学完这些你的python就无敌了

前言 最近高考刚刚结束,不少大学也快陆陆续续的要放暑假了,不少人表示暑假想学点python知识,或提升下自己,或打算学点技术兼职赚点零花钱,于是肝了一份Python最新学习文档总结资料 :全文档1378页&#xff…

Python的离线安装

原文链接 在没有外网的情况下,安装Python环境只能采用离线方式。 Windows离线安装Python Python离线安装包的下载地址:https://www.python.org/ftp/python/ 我选择的是:python-3.8.5-amd64.exe 双击运行安装包即可完成安装。 安装完成后…

简化本地Feign调用

在平常的工作中,OpenFeign作为微服务间的调用组件使用的非常普遍,接口配合注解的调用方式突出一个简便,让我们能无需关注内部细节就能实现服务间的接口调用。 但是工作中用久了,发现 Feign 也有些使用起来麻烦的地方,…

【Haproxy 搭建Web 群集】

目录 一、Haoroxy 基础了解1、常见的Web集群调度器2、Haproxy 应用分析 二、Haproxy 调度算法原理三、HAProxy的主要特性四、HAProxy负载均衡策略五、LVS、Nginx、HAproxy的区别1、Nginx的优点,缺点2、LVS的优点和缺点3、HAProxy的优点 六、Haproxy搭建 Web 群集实验…

跟着LearnOpenGL学习8--摄像机

文章目录 一、前言二、摄像机/观察空间2.1、摄像机位置2.2、摄像机方向2.3、右轴2.4、上轴2.5、LookAt2.6、LookAt测试 三、自由移动3.1、移动速度 四、视角移动4.1、欧拉角 五、鼠标输入5.1、缩放 六、摄像机类 一、前言 前面的教程中我们讨论了观察矩阵以及如何使用观察矩阵…