谈起web自动化测试,大家首先想到的是Selenium!随着近几年前端技术的发展,出现了不少前端测试框架,这些测试框架大多并不依赖于Selenium,这一点跟后端测试框架有很大不同,如Robot Framework做Web自动化测试本质上还是使用的Selenium,包括各语言的xUnit单元测试框架。

多吧!这还只是一部分呢?你以为这些都是不知名的小项目?错了!

我特地把Selenium加了进来,其中mocha和jtest在Github上的stats是多于Selenium的,剩下的其它项目也都不弱。

本文要介绍的是Cypress测试框架! why? 因为人家的文档都是带视频的。

看一下人家官方的文档,像这样的视频还有好几段,简直是对新手的宠爱。

看到这么好的教程,不学一学感觉都对不起人家,是的!这就是我选择了解一下Cypress的原因。

官网:

https://docs.cypress.io

The web has evolved. Finally, testing has too.

Web已经进化了,最后,测试也有。

这类测试框架统称为e2e测试,即end to end(端到端)测试。理论上前端页面由前端框架来测试确实更为合适。这几天我在搭建UI自动化测试框架,顺便封装了一些元素定位,随着对前端技术的了解,我几乎将所有元素定位都换成了CSS,配合JS处理一些Selenium很难操作的元素,确实效率提高了很多,页面元素也没那么难操作了,包括学了点Jenkins的配置,当然,这个话题会放到下一次来分享。

安装:

安装很简单,首先你要安装node.js。

创建cypress_sample练习目录:

> mkdir cypress_sample
> cd cypress_sample

安装cypress:

cypress_sample > npm install cypress --save-dev

启动cypress:

cypress_sample > ./node_modules/.bin/cypress open

第一次启动Cypress,它已经为我们准备了丰富的例子。

通过vs code 打开cypress_sample项目。

在examples/目录下面创建baidu.spec.js文件,代码如下:


describe('My First Test', function () {it('Does not do much!', function () {cy.visit("https://www.baidu.com")cy.get("#kw", {timeout: 2000}).type("cypress test")cy.wait(100)cy.get("#su", { timeout: 2000 }).click()})
})

上上图,找到在Tests列表中找到 baidu.spec.js文件,点击运行。

在VS code 中编辑保存脚本后,上图的窗口会自动执行,速度上比selenium快多了,Selenium启动浏览器怎么着也得3~5秒吧,上面的脚本不到2秒就跑完了,元素定位主要以CSS为主,这其实不是问题,CSS本来就很强大的说。

也许,这是未来前端测试的方向,至少对于前端人员来说,快速验证界面功能,我想不到有什么理由不选择它,而是Selenium。当然,对于测试人员,脚本的可维护性,报告的生成,以及与持续集成的结合都有一整套成熟的方案。对于Cypress来说(其它前端测试框架不了解),整合能力还不够强,可能JavaScript也是一个门槛。毕竟,这两年,大家刚学会Python。

e2e测试框架之Cypress相关推荐

  1. 自动化测试(二)02——单元测试类工具-Karma、Jasmine、Mocha、Jest、AVA E2E测试类工具-cypress、nightmare、nightwatch、testcafe

    自动化测试(二)02--单元测试类工具-Karma.Jasmine.Mocha.Jest.AVA & E2E测试类工具-cypress.nightmare.nightwatch.testcaf ...

  2. Vue + nightwatch + Chrome76进行e2e测试的正确配置(一)

    2019.08.19 修正文章中的错误 除了单元测试之外,前端还有一个额外的测试:e2e测试,也就是端到端测试,用来模拟用户操作.对于Vue来说,推荐的e2e测试框架有nightwatch和cypre ...

  3. vue e2e 测试

    1.vue e2e测试概述 e2e 测试 端对端测试,属于黑盒测试,通过编写测试用例,自动化模拟用户操作,确保组件间通信正常,程序流数据传递如预期. 典型 e2e 测试框架对比 名称 断言 是否跨浏览 ...

  4. e2e 测试 出现的错误

    每次开始学习vue的新知识时,总在环境这一块出现很多坑.这次我来记录一下,我在搭建vue e2e测试框架是踏过的坑吧. 我们都只知道,使用vue init webpack 项目名字<项目名字不能 ...

  5. E2E测试---Cypress 使用

    E2E测试-Cypress 使用 官网 GitHub 安装 # npm npm install cypress --save-dev# yarn yarn add cypress --dev 添加 n ...

  6. 前端E2E测试略详解(以cypress为例)

    上一篇文章很简略的介绍了E2E测试的一些框架,本文从相对更详细的层面进行整理 E2E测试 (by cypress): cypress安装 npm install cypress --save-dev ...

  7. 端到端测试框架Cypress简介

    初识Cypress Cypress (https://www.cypress.io/)是一款功能强大的端到端的Web 测试框架.相比于其他类似最大的特点就是有个可视化的UI界面,调试起来相当直观方便. ...

  8. 自动化测试(一)基本介绍——测试框架的分类 单元测试工具 E2E测试工具

    自动化测试(一)基本介绍--测试框架的分类 & 单元测试工具 & E2E测试工具 5-3 自动化测试 课程介绍 在前端界,浏览器兼容性是让工程师们头疼的问题,对于经验丰富的人来说,很清 ...

  9. 自动化测试(二)01-前端测试分为单元测试、集成测试和E2E测试 测试工具对比-适合TDD或 BDD、断言、异步测试 测试工具的类型

    自动化测试(二)01-前端测试分为单元测试.集成测试和E2E测试 & 测试工具对比-适合TDD或 BDD.断言.异步测试 & 测试工具的类型 前端自动化测试 测试是一个庞大的主题,包括 ...

最新文章

  1. Spring Boot 使用 Graylog 收集日志
  2. MATLAB 未找到支持的编译器或 SDK。您可以安装免费提供的 MinGW-w64 C/C++ 编译器
  3. Django项目--登录判断装饰器
  4. ImportError: cannot import name ‘activations‘ from ‘keras.layers‘
  5. Jquery自定义$的名称(自定义变量)
  6. SSDP:DDoS***的“新宠”
  7. matlab四宫格画图_Matlab绘图初级教程
  8. 评价的等级优良差_老师问:小学考试用优良等级评价,可取吗?
  9. 在计算机中这样切换大小英语字母,怎么在Excel2016表格中快速转换字母大小写
  10. PR模板 有趣的波普艺术网络自媒体宣传PR视频模板
  11. 人工神经网络编程内容,神经网络用什么编程
  12. python怎么读音发音英语-django的英文读法是什么
  13. 圣诞节,用python给微信的头像加一个圣诞帽,整起
  14. 量化交易——羊驼交易法则
  15. 海洋环流与海浪数值模式
  16. 【渝粤教育】国家开放大学2018年秋季 2045T金融企业会计 参考试题
  17. 运放的原理、应用、参数和命名规则
  18. 微信小程序——View背景设置
  19. MiniGui打开GridView控件
  20. Apache Commons-pool2使用入门

热门文章

  1. 到底什么时候不应该使用机器学习?
  2. 微软撤回了开放面部识别数据集,出于法律原因
  3. 机器视觉图像处理技术使无人系统机器人帮人类完成更多危险任务
  4. SAP MM 存储条件 - Room Temperature Vs Ambient
  5. 干货丨一文带你玩转机器学习和深度学习
  6. codeblocks的错误提示框不见了
  7. 为什么数学的用途这么大?
  8. 哈佛大学惊人发现:新冠对人类未来影响巨大!
  9. 2020年五大虚拟现实和增强现实趋势
  10. 互联网大脑,城市大脑的“大脑”究竟什么含义?