若是说Web自动化测试,你们最熟悉不过的就是Selenium了。其实还有testcafe、mocha、jtest和cypress等,这些都是github上国外作自动化测试比较火的项目,而近些年Cypress逐渐被国际上承认的最佳实践。而国内一些公司和一些技术追求者、社区等已经使用和学习。前端
Cypress测试框架之因此愈来愈受欢迎,仍是有自身的缘由,官方文档写得好,而且是视频。社区强有力支持,迭代不断,目前已是200多个迭代。最核心的是Cypress不须要浏览器驱动,运行速度比Selenium快。webpack
Cypress官网地址:https://docs.cypress.iogit
官方文档中的视频:github
文档中带视频,这样对于初学者简直是雪中送炭,大大下降的学习难度。固然Cypress自己的学习难度也很低。web
时代在变化,网络也在变化,就像官网所说:The web has evolved,Finally, testing has too。(网络已经发展,最后,测试也是如此!)后端
随便着Web应用项目的不断发展,测试也要不断发展,Cypress是为现代网络打造的,基于JavaScript语言的一种前端自动化测试工具,测试也是如此,对浏览器中运行的全部内容进行快速,轻松和可靠的测试。Cypress是自集成的,这类测试框架统称为e2e测试,即end to end(端到端)测试。理论上前端页面由前端框架来测试确实更为合适。它提供了一套完整的端到端的测试体验,正如官网上所说:浏览器
1. 安装Cypress很简单,无需依赖项,无需额外下载或更改代码。前端框架
2. 轻松,快速地编写测试,并在构建Web应用程序时观察它们的实时执行。服务器
3. 在CI中调试测试就像在本地运行测试同样容易。具备内置的并行化和负载平衡功能。网络
4. 记录CI测试数据,屏幕截图和视频-并在“ 仪表盘”中查看汇总的下一级看法。
Cypress在与应用程序相同的生命周期里执行,当你运行测试时,Cypress首先使用webpack将测试代码中的全部模块bundle到一个js文件中,而后,它会运行浏览器,而且将测试代码注入一个空白的页面里,而后它将在浏览器中运行测试代码。
在每次测试首次加载Cypress时,内部Cypress Web应用程序先把本身托管在本地的一个随机端口上,在识别出测试中发出的第一个cy.visit()命令后,Cypress将会更改其本地的URL以匹配你远程应用程序的Origin,这使得你的测试代码和应用程序能够在一个Run Loop中运行。
由于Cypress测试代码和应用程序均运行在由Cypress全权控制的浏览器中,且它们运行在同一个Domain下的不一样iframe内,因此Cypress的测试代码能够直接操做DOM,Windows Objects甚至Local Storages而无须经过网络访问,这就是Cypress能够运行的更快的缘由。
Cypress还能够在网络请求层进行即时读取和更改网络流量的操做,Cypress背后是Node.js Process,任何发往浏览器以外的HTTP的请求和响应,均由Cypress生成的,被Node.js Process控制的Proxy进行转发,这使得Cypress不只能够修改进出浏览器的全部内容,还能够更改可能影响自动化浏览器操做的代码。这便得Cypress相对于其它测试工具来说不只能从根本上控制整个自动化测试的流程,还能够提供稳定性更加可靠的结果 。
时间穿梭:Cypress会在测试运行时拍摄快照。只需将鼠标悬停在“ 命令日志”中的命令上,便可准确查看每一步都发生了什么
可调试性:中止猜想你的测试失败的缘由。直接从熟悉的工具如Chrome DevTools进行调试。咱们可读的错误和堆栈跟踪使调试更加快速便捷。
实时重载:每当你对测试进行更改时,Cypress都会自动从新加载。查看应用程序中实时执行的命令。
自动等待:不要在测试中添加等待或休眠。Cypress在继续下一步以前会自动等待元素至可操做状态时才会执行命令或断言。异步操做再也不是噩梦。
间谍,存根和时钟:Cypress容许你验证并控制函数行为,Mock服务器响应或更改系统时间,你喜欢的单元测试就在眼前。
网络流量控制:Cypress能够Mock服务器返回结果,无须链接后端服务器便可实现轻松控制,模拟网络请求。
运行结果一致性:Cypress架构不使用Selenium或Webdriver,在运行速度,可靠性测试,测试结果一致性上均有良好的保障。
截图和视频:Cypress在测试运行失败时自动截图,在无头运行时录制整个测试套件的视频,使你轻松掌握测试运行状况。
前面已经说过Cypress很早就出来了,最近一年多时间愈来愈火,被国内大大小小公司以及一些技术爱好者所欢迎,蹭个热度,学习一下前端知识,更加有利于测试。Github上第一个迭代版本是在2014年6月:
团队介绍:
说的是Cypress是一个革命性的测试工具,而且开源,已经被全球1万3千多名IT人员所使用。
以上就是Cypress的一些简介,学习工具前能够了解一下,能更好的使用它为咱们工做提升效率与质量。另外,对测试及测试开发感兴趣的,对测试有独到看法的朋友,能够加入学习交流QQ群。一块儿成长!