Cypress简介
- 基于Javascript的前端测试工具,在浏览器内执行测试,可以进行调试
- 自集成,提供完整的端到端测试
- 可以进行单元测试,接口测试,UI测试。UI和接口可以混合使用,尤其在造数时
- Cypress 底层协议不采用 WebDriver
Cypress原理
selenium与webdriver运行方式
1,在外部浏览器运行,在网络上执行远程命令,
2, Webdriver 底层通信协议基于 JSON Wire Protocol,运行需要网络通信
Cypress 运行的方式
1,与应用程序在相同的生命周期里执行
2,运行测试后,Cypress 使用 webpack 将测试代码中的所有模块 bundle 到一个 js 文件中
3,运行浏览器,并且将测试代码注入到一个空白页中,然后它将在浏览器中运行测试代码,cypress通过一系列操作将测试代码放到一个iframe中运行,当首次加载cypress时,cypress web应用程序先把自己托管在本地的一个随机端口上,在识别出第一个cy.visit()命令后,cypress会更改本地URL以匹配你远程应用程序的origin(满足同源策略–即相同域名、协议、端口),使得测试代码和应用程序在同一个run loop中运行。
4,Cypress 测试代码和应用程序均运行在由 Cypress 全权控制的浏览器中
5,它们运行在同一个Domain 下的不同 iframe 中,所以