初识Cypress

发布时间 2023-04-16 22:24:45作者: 俊king

初识Cypress

框架简介

一款基于Node.jsweb自动化测试框架

为什么是Cypress

  1. 使用的语言更加贴近前端-->javascripttypescript为主
  2. 可以覆盖单元、接口、ui自动化测试

环境准备

  • Node.js

    • 设置全局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:opencypress 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中运行

缺点

  1. 因为是一套开箱即用的工具,所以他没有很多的可选性,不想Selenium可以搭配javapython等语言进行开发,cypress只能和jsts结合

  2. 不建议使用Cypress进行网站爬虫、性能测试

  3. Cypress不支持多标签模式

  4. Cypress不支持同时打开两个浏览器

  5. 针对移动端的支持有限