Cypress,它是基于JavaScript的下一代前端测试工具,其底层实现与Selenium/Webdriver完全不同,并不依托于WebDriver Protocol,运行速度比Selenium要快,并且它和被测应用程序运行在同一个浏览器界面,因此Cypress可以测试的范围就是UI集成测试、API接口测试和单元测试
所有的请求会发送给本地主机,其后是环回接口(环回接口用来查错和运行本机内部的网络服务),网络通信会从OSI模型的第三层即网络层开始,遗传经过传输层、会话层、表示层到达应用层,只有物理层和数据链路层被略过,对于浏览器来说一个请求从本地主机到环回接口返回需要花费的时间决定了代码执行的效率,这就是Selenium/WebDriver执行慢根本原因
Cypress默认框架拆解及自定义结构
Allure的报告样式仍旧是目前比较华丽且全面的报告,Cypress可生成Junit形式的xml结果,那自然也可以转换成Allure的样式
Mocha简介Cypress底层依赖于很多优秀的开源测试库,其中比较重要的就是Mocha,它是一个适用于Node.js和浏览器的测试框架,它使得异步测试变得简单灵活;而JavaScript是单线程异步执行的,这就产生了一种复杂的场景,因为异步往往无法直接判断函数的返回值是否符合预期,要验证异步函数的正确与否,就需要测试框架支持回调,利用Promise或者其他方式来验证异步函数的正确性,而Mocha就提供了出色的异步支持包括PromiseCypress继承并扩展了Mocha对异步的支持,而Mocha提供了
Cypress使用技巧及相关代码示例
【附源码】在Cypress中并不认为PO是个很好的模式,Cypress认为跨页面共享逻辑是一个反模式(Anti-Pattern),在Cypress中,它提供了很多方式,允许用户通过更简单的方式直接设置被测应用程序达到的待测试状态,不需要再不同页面一遍又一遍的执行相通操作
【附源码】通常前后端交互会先定义好接口,前后端接口的联调有个契机问题,是否同时完成并进入联调环节,或者一个功能上线但它又是另一个功能的前置条件,不太现实的是双方的时间配合的非常完美,这种情况下Mock便起到了关键作用,以前端向后端发送Ajax/XHR请求为例,Cypress允许你的测试直接访问XHR对象,从而能在整个软件生命周期里轻松测试Ajax/XHR请求并对它的属性进行断言,此外Cypress还允许对请求返回结果进行Stub和Mock
Copyright © 2005-2024 51CTO.COM 版权所有 京ICP证060544号