前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Cypress web自动化29-失败截图以及用例录制mp4视频

Cypress web自动化29-失败截图以及用例录制mp4视频

作者头像
上海-悠悠
发布2020-06-04 10:44:55
1.6K0
发布2020-06-04 10:44:55
举报

前言

做 web 自动化的时候,我们希望用例失败了能截图,这是之前用 selenium 写 ui 自动化用例的时候经常遇到的问题。 cypress 可以说是业界良心了,不仅帮我们失败的时候自动截图保存下来,还把每个用例都录制成了mp4的小视频,方便追踪问题的时候回放视频

screenshots 失败截图

Cypress自带截屏功能,无论你是在使用cypress open的交互模式下运行,还是在使用cypress run的运行模式下运行(可能是在CI中)。

  • 要手动截屏,你可以使用cy.screenshot()命令。
  • 在交互模式之外的运行过程中发生失败时,Cypress将自动捕捉屏幕截图。
  • 可以通过Cypress.Screenshot.defaults()将screenshotOnRunFailure设置为false来关闭此行为。
  • 截图存储在screenshotsFolder中,默认设置为cypress/screenshots。
  • 在cypress run之前,Cypress将清空任何现有的截图。
  • 如果你不想在运行前清空你的截图文件夹,你可以设置trashAssetsBeforeRuns为false。

当我们用命令行执行完用例后

cypress run

运行结果

 (Video)

  -  Started processing:  Compressing to 32 CRF
  -  Finished processing: D:\Cypress\cypress\videos\xx.js.mp4                            (0 seconds)

====================================================================================================

  (Run Finished)

       Spec                                              Tests  Passing  Failing  Pending  Skipped
  ┌────────────────────────────────────────────────────────────────────────────────────────────────┐
  │ ×  baidu.js                                 00:46        1        -        1        -        - │
  ├────────────────────────────────────────────────────────────────────────────────────────────────┤
  │ √  blog.js                                  00:07        1        1        -        -        - │
  ├────────────────────────────────────────────────────────────────────────────────────────────────┤
  │ √  debug.js                                 00:02        1        1        -        -        - │
  ├────────────────────────────────────────────────────────────────────────────────────────────────┤
  │ ×  hook_demo.js                             00:18        6        2        4        -        - │
  ├────────────────────────────────────────────────────────────────────────────────────────────────┤
  │ √  login_fixture.js                         00:03        1        1        -        -        - │
  ├────────────────────────────────────────────────────────────────────────────────────────────────┤
  │ ×  login_web.js                             00:06        1        -        1        -        - │
  ├────────────────────────────────────────────────────────────────────────────────────────────────┤
  │ √  parametrize.js                           00:47        3        3        -        -        - │
  ├────────────────────────────────────────────────────────────────────────────────────────────────┤
  │ ×  web_a.js                                 00:11        1        -        1        -        - │
  ├────────────────────────────────────────────────────────────────────────────────────────────────┤
  │ ×  web_home.js                              00:09        2        -        1        -        1 │
  ├────────────────────────────────────────────────────────────────────────────────────────────────┤
  │ √  web_white_list.js                          2ms        -        -        -        -        - │
  ├────────────────────────────────────────────────────────────────────────────────────────────────┤
  │ √  xuexi.js                                 142ms        1        1        -        -        - │
  ├────────────────────────────────────────────────────────────────────────────────────────────────┤
  │ √  xx.js                                      2ms        -        -        -        -        - │
  └────────────────────────────────────────────────────────────────────────────────────────────────┘
    ×  5 of 12 failed (42%)                     02:35       18        9        8        -        1

从上面的结果可以看出哪些用例失败了,比如我想看 login_web.js 这条为什么失败

在 /cypress/screenshots 目录下可以看到每个js名称命名的文件夹,下面找到对应的失败截图

从上面截图就能快速定位到问题,访问登录页面的时候,定位 #count 元素失败了

videos 视频录制

在运行用例的时候,已经对每个用例录制了对应的视频 /cypress/videos 目录下就能找到以脚本命名的.mp4 视频,这点简直不要太赞!

接下来看下效果

很容易看出是因为没打开登录首页,因为其他用例登录后有 cookies 了,就直接进入到已登录后的页面了

视频功能

可以通过将video设置为false来关闭录制视频功能。

视频存储在videosFolder中,默认设置为cypress/videos。

当cypress run完成后,Cypress将自动压缩视频以节省文件大小。默认情况下,会压缩成32 CRF,但是这是可配置的videoCompression属性。

当使用—record来执行测试的时候,视频在每一个spec文件运行后都会被处理,压缩并且上传到Dashboard Service,不管用例成功还是失败。

为了将这种行为改变为仅在测试失败的情况下才处理视频,请将videoUploadOnPasses配置项设置为false。

在cypress run之前,Cypress清空现有的视频。如果你不想在运行前清空你的视频文件夹,你可以将trashAssetsBeforeRuns设置为false。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-05-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 从零开始学自动化测试 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • screenshots 失败截图
  • videos 视频录制
  • 视频功能
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档