初识Cypress
框架简介
一款基于Node.js
的web
自动化测试框架
为什么是Cypress
- 新
- 使用的语言更加贴近前端-->
javascript
、typescript
为主 - 可以覆盖单元、接口、
ui
自动化测试
环境准备
-
- 设置全局
node
--->在node
安装路径下创建node_global
--->输入:npm config set prefix "路径"
- 设置全局
node
缓存--->在node
安装路径下创建node_cache
--->输入:npm config set cache "路径"
- 设置全局
-
使用
Node.js
自带的包管理工具npm
下载cypress
框架- 初始化需要安装
cypress
的目录--->npm init
- 安装
cypress
--->npm install cypress --save-dev
- 初始化需要安装
安装好后该目录结构为:
---目录名
---cypress
---node_moudules
cypress.config.js
package-lock.json
package.json
--->框架配置文件
配置package.json
--->打开方式:script
字段下添加cypress:open
:cypress open
注意:
Cypress
自动生成的默认存放测试用例的根目录,任何创建在此目录下的文件都将被当作测试用例
打开程序:
npm cypress open
Cypress框架的运行机制与Selenium的不同
如果一个框架只说优点不说缺点那就是耍流氓!!!
优点
运行原理:
- 大多数测试工具(如:
Selenium/webdriver
)通过在外部浏览器运行并在网络上执行远程命令来运行 - 因为
Webdriver
底层通信协议基于JSON Wire Protocol
,运行需要网络通信
Cypress
与应用程序在相同的生命周期里执行
Cypress
自集成了mocha
,所以运行时使用webpack将测试代码中的所有模块 bundle 到一个js
文件中执行。在识别出测试中发出的第一个cy.visit()
命令后,Cypress
会更改本地URL
以匹配你远程应用程序的Origin
【满足同源策略】,这使得测试代码和应用程序可以在同一个Run Loop
中运行
缺点
-
因为是一套开箱即用的工具,所以他没有很多的可选性,不想
Selenium
可以搭配java
、python
等语言进行开发,cypress
只能和js
、ts
结合 -
不建议使用
Cypress
进行网站爬虫、性能测试 -
Cypress
不支持多标签模式 -
Cypress
不支持同时打开两个浏览器 -
针对移动端的支持有限