阅读原文

1. 目前E2E测试工具有哪些?

项目 Web Star
puppeteer Chromium (~170Mb Mac, ~282Mb Linux, ~280Mb Win) 31906
nightmare Electron 15502
nightwatch WebDriver 8135
protractor selenium 7532
casperjs PhantomJS 7180
cypress Electron 5303
Zombie 不需要 4880
testcafe 不需要 4645
CodeceptJS webdriverio 1665

端到端测试一般都需要一个Web容器,来运行前端应用。例如Chromium, Electron, PhantomJS, WebDriver等等。

从体积角度考虑,这些Web容器体积一般都很大

从速度的角度考虑:PhantomJS, WebDriver < Electon, Chromium

而且每个工具的侧重点也不同,建议按照需要去选择。

2. 优秀的端到端测试工具应该有哪些特点?

  • 安装简易:我希望它非常容易安装,最好可以一行命令就可以安装完毕
  • 依赖较少:我只想做个E2E测试,不想安装jdk, python之类的东西
  • 速度很快:运行测试用例的速度要快
  • 报错详细:详细的报错
  • API完备:鼠标键盘操作接口,DOM查询接口等
  • Debug方便:出错了可以很方便的调试,而不是去猜

3. 为什么要用Cypress?

Cypress基本上拥有了上面的特点之外,还有以下特点。

  • 时光穿梭 测试运行时,Cypress会自动截图,你可以轻易的查看每个时间的截图
  • Debug友好 不需要再去猜测为什么测试有失败了,Cypress提供Chrome DevTools, 所以Debug是非常方便的。
  • 实时刷新 Cypress检测测试用例改变后,会自动刷新
  • 自动等待 不需要在使用wait类似的方法等待某个DOM出现,Cypress会自动帮你做这些
  • Spies, stubs, and clocks Verify and control the behavior of functions, server responses, or timers. The same functionality you love from unit testing is right at your fingertips.
  • 网络流量控制 在不涉及服务器的情况下轻松控制,存根和测试边缘案例。无论你喜欢,你都可以存储网络流量。
  • 一致的结果 我们的架构不使用Selenium或WebDriver。向快速,一致和可靠的无剥落测试问好。
  • 截图和视频 查看失败时自动截取的截图,或无条件运行时整个测试套件的视频。

4. 安装cypress

4.1. 使用npm方法安装

注意这个方法需要下载压缩过Electron, 所以可能会花费几分钟时间,请耐心等待。

npm i cypress -D

4.2. 直接下载Cypress客户端

你可以把Cypress想想成一个浏览器,可以单独把它下载下来,安装到电脑上,当做一个客户端软件来用。

打开之后就是这个样子,可以手动去打开项目,运行测试用例。

5. 初始化Cypress

Cypress初始化,会在项目根目录自动生成cypress文件夹,并且里面有些测试用例模板,可以很方便的学习。

初始化的方法有两种。

  1. 如果你下载的客户端,那么你用客户端打开项目时,它会检测项目目录下有没有Cypress目录,如果没有,就自动帮你生成模板。
  2. 如果你使用npm安装的Cypress,可以使用命令node_modules/.bin/cypress open去初始化

6. 编写测试用例

// hacker-news.js
describe('Hacker News登录测试', () => {it('登录页面', () => {cy.visit('https://news.ycombinator.com/login?goto=news')cy.get('input[name="acct"]').eq(0).type('test')cy.get('input[name="pw"]').eq(0).type('123456')cy.get('input[value="login"]').click()cy.contains('Bad login')})
})

7. 查看结果

打开Cypress客户端,选择要测试项目的根目录,点击hacker-news.js后,测试用例就会自动运行

运行结束后,左侧栏目鼠标移动上去,右侧栏都会显示出该步骤的截图,所以叫做时光穿梭功能。

从截图也可以看出来,Cypress的步骤描述很详细。

端到端测试哪家强?不容错过的Cypress相关推荐

  1. 服务端 I/O 性能大比拼:Node、PHP、Java、Go哪家强?

    理解应用程序的输入/输出(I/O)模型,意味着其在计划处理负载与残酷的实际使用场景之间的差异.若应用程序比较小,也没有服务于很高的负载,也许它影响甚微.但随着应用程序的负载逐渐上涨,采用错误的I/O模 ...

  2. 手机续航测试软件哪个好,手机续航哪家强?58款手机续航测试对比,TOP10有你的手机吗?...

    原标题:手机续航哪家强?58款手机续航测试对比,TOP10有你的手机吗? 大家在买手机的时候,除了关注颜值.性能外,肯定也很关心手机的续航能力.在机不离手的今天,手机的续航表现会直接影响到用户的使用幸 ...

  3. 系统测试与端到端测试:哪一个更适合选择?

    系统测试与端到端测试:哪一个更适合选择? 概述系统测试以及端到端测试: 端到端测试和系统测试总是并驾齐驱,但即使是经验丰富的测试专业人员也可能会对每个测试提供的巨大好处感到困惑,只选择一个. 在本文中 ...

  4. 服务器 amd cpu性能排行榜,AMD霸榜,桌面端移动端服务器端全面领先!最强CPU性能破世界纪录...

    "AMD Yes!"这句口号继续有效,AMD全面霸占CPU性能排行榜,桌面端移动端服务器端全面领先! 最近几年,Intel的CPU不给力,看来能打败AMD CPU的只有它自己. 在 ...

  5. 带你测试对比深度学习框架!TensorFlow,Keras,PyTorch...哪家强?(附数据集)

    授权自AI科技大本营(ID: rgznai100) 本文长度为3556字,建议阅读7分钟 亚马逊MXNet在CNN.RNN与NLP情感分析任务上性能强劲,而TensorFlow仅擅长于特征提取. 深度 ...

  6. 测试你的前端代码 - part3(端到端测试)

    本文作者:Gil Tayar 编译:胡子大哈 翻译原文:http://huziketang.com/blog/posts/detail?postId=58d50da37413fc2e8240855c ...

  7. 如何做好 Android 端音视频测试?

    在用户眼中,优秀的音视频产品应该具有清晰.低延时.流畅.秒开.抗丢包.高音效等特征.为了满足用户以上要求,网易云信的工程师通过自建源站,在SDK端为了适应网络优化进行QoS优化,对视频编码器进行优化, ...

  8. 我与无影的初体验:使用无影云桌面进行一个开源 Angular 项目的端到端测试

    近日很荣幸地收到了阿里云邀请做一个关于阿里旗下无影云桌面的评测,从官网上了解到阿里云无影云桌面原名为弹性云桌面,融合了无影产品技术后更名升级,可广泛应用于具有高数据安全管控.高性能计算等要求的安全办公 ...

  9. SAP 电商云 Spartacus UI 的单元测试和端到端测试,以及 CI/CD 相关话题

    单元测试 在项目根目录的 package.json 下面,定义了测试相关的 script: 可以直接 npm run test:libs, 启动所有库的单元测试: 也可以手动执行单个库的单元测试,例如 ...

最新文章

  1. build with runtime package
  2. 需求获取安排计划书_创业型公司商业计划书PPT怎么写?才是投资人最想看的,免费领取...
  3. linux 消息队列_Linux进程间通信第六讲 标准IPC之消息队列
  4. java 开发环境的搭建
  5. .NET Remoting Security使用小结 – TcpChannel
  6. 第四次c语言实验报告模板,C语言实验报告模板.doc
  7. C++ 偏微分数值计算库_一文带你了解计算流体力学CFD及其应用领域
  8. 华为机试题2[编程题] 汽水瓶
  9. paroot忘记root密码
  10. 【PyTorch】推荐收藏!史上最全的 PyTorch trick 集锦
  11. 苹果手机怎么编辑word文档_怎么用苹果手机扫描文件转换成Word?这个方法我一定要告诉你...
  12. 分析方法论_用户生命周期的建立
  13. (五)谷歌地图坐标转换:经纬度如何实现转换成谷歌地图平面坐标
  14. 斑马打印机驱动安装(ZT410)
  15. 训练人物和摩托车的yolov4-tiny模型教程
  16. window.print打印指定区域
  17. js android 通讯录,JavaScript实现通讯录功能
  18. android开机动画 暂停,修改build.prop,停在开机画面。求大神
  19. AMOS分析技术:模型整体拟合度指标
  20. 山东大学软件学院数据仓库数据挖掘期末复习

热门文章

  1. 亲密关系沟通-【认识需求2】-建立良好沟通环境
  2. 运行loadrunner自带的webtour项目无法启动
  3. python3序列化_python3 json序列化问题
  4. go 遍历二维数组json_for-range造就循环永动机?快来看看go中for-range的那些事!
  5. 华为手机助手安卓版_91手机助手安卓版
  6. get请求可以传body吗_面试必备:GET和POST的区别详细解说
  7. perl cgi session php,如何使用Perl中的CGI :: Session处理Web会话?
  8. java onkeydown_java笔记 js onkeypress与onkeydown 事件区别详细说明
  9. 松下机器人找原点步骤_松下机器人操作规程2017
  10. html 弹窗 支持ie8,浏览器兼容性的问题、支持IE8、不支持IE6、想解决这个问题、两个都支持、...