• Web自动化神器TestCafe(七)—录屏和截图篇


    前言

    ​ 上一篇我们讲到TestCafe如何运行用例,这一篇我们一起来聊聊TestCafe在执行用例的时候如何进行截图,录制测试运行全过程的视频。

    一、屏幕截图

    ​ 通过TestCafe可以在测试运行期间的任何时候对网页页面进行截图,一般我们在用例执行不通过时,对测试网页进行截图,以便后续去查看错误原因。

    注意点: 在远程浏览器中运行测试时,是不支持屏幕截图的

    1、屏幕截图的前提条件

    • windows系统中,需要安装 .NET 4.0或更高版本
    • Linux系统中需要安装兼容ICCCM / EWMH的窗口管理器

    2、截图的方法

    ​ testCafe中内置了两个截图方法,通过调用这两个截图方法,可以在随时在代码进行截图操作。

    • t.takeScreenshot:对浏览器窗口页面进行截图
      fixture `页面截图`
          .page `https://www.baidu.com`;
      
      // 百度首页搜索柠檬班
      test('测试01 ', async t => {
          await t
              .typeText('#kw', '柠檬杯')
              .click('#su')
          	//整个页面截图
              .takeScreenshot();
      });
      
    • t.takeElementScreenshot:对特定的页面元素进行截图
      fixture `页面截图`
          .page `https://www.baidu.com`;
      
      test('screenshot ', async t => {
          //对百度首页搜索按钮截图
          await t.takeElementScreenshot('#su');
      
      });
      

    3、用例失败截图

    ​ TestCafe中除了前面那两个截图的方法,还可以再执行测试的时候,通过添加参数实现自动截图。

    • 1、通过命令行运行时,只需添加参数-s takeOnFails=true
      testcafe chrome tests/baidu.js -s takeOnFails=true
      
    • 2、通过runner.screenshots方法的takeOnFails参数,
      runner.screenshots({
          takeOnFails: true
      });
      
    • 3、配置文件中的screenshots.takeOnfails属性
      {
          "screenshots": {
              "takeOnFails": true
          }
      }
      

    4、截图的参数选项

    选项 类型 描述 默认值
    path String 截图保存到的目录路径 ./screenshots
    takeOnFails Boolean true 在测试失败时拍摄屏幕截图。 false
    pathPattern String 文件名生成的规则 参照下面规则介绍
    fullPage String true 捕获整个页面,包括窗口中没有显示出来的内容 false
    • pathPattern参数的 占位符规则
      占位符 描述
      ${DATE} 当前日期
      ${TIME} 当前时间
      ${TEST_INDEX} 用例的索引(第几条用例)
      ${FILE_INDEX} 截图文件的索引(第几个截图)
      ${FIXTURE} fixture的名称。
      ${TEST} 测试用例的名称。
      ${USERAGENT} ${BROWSER}${BROWSER_VERSION}${OS},和${OS_VERSION}的组合
      ${BROWSER} 浏览器的名称。
      ${BROWSER_VERSION} 浏览器的版本。
      ${OS} 操作系统的名称。
      ${OS_VERSION} 操作系统的版本。

      通过上述占位符我们可以自己指定生成截图文件名的规则。

    5、禁用屏幕截图

    ​ TestCafe中也可以通过相关参数来,禁用代码中或用例执行失败时的截屏操作

    • 命令行运行时,添加参数 --disable-screenshots来禁用截屏。
      testcafe chrome tests/sample-fixture.js --disable-screenshots
      
    • Runner.run API方法的disableScreenshots选项,
      runner.run({
          disableScreenshots: true
      });
      
    • 配置文件的disableScreenshots属性
      {
          "disableScreenshots": true
      }
      

    二、录制视频

    TestCafe在通过Chrome,Firefox,Edge浏览器执行测试的时候,支持 对整个测试过程进行录屏,接下来我们一起来看看录屏相关的设置和操作。

    1、视频录制的前提条件

    ​ 要是有TestCafe来录制视频,首先得安装FFmpeg这个库,关于FFmpeg的安装请参照官方文档 https://ffmpeg.org/。

    注意点:
    • 1、安装之后需要 将FFmpeg安装目录添加到系统的PATH环境变量中
    • 2、 视频默认以.mp4格式保存。

    2、启用录制视频

    视频录制和截图一样,有三种开启方式

    • 1、命令行运行,通过参数--video指定
      //testcafe chrome test.js --video 视频保存的目录
      testcafe chrome test.js --video videos
      
      
    • 2、通过 runner.video这个方法
      // runner.video('视频保存的目录');
      runner.video('videos');
      
      
    • 3、在配置文件中添加videoPath属性
      // videoPath:'视频保存的目录';
      {
          "videoPath": "videos"
      }
      
      

    3、视频录制选项参数

    在开启录屏时还可以添加如下参数,进行相关的配置

    选项 类型 描述 默认值
    failedOnly Boolean true仅记录失败的测试;false记录所有测试。 false
    singleFileBoolean Boolean true将整个录音保存为单个文件;false为每个测试创建一个单独的文件。 false
    ffmpegPath String FFmpeg编解码器可执行文件的路径。
    pathPattern String 文件名生成的规则(和截屏是一样的)
    • 命令行运行添加参数,通过 --video-options

      参数和参数之间用空格隔开

      testcafe chrome t.js --video videos --video-options singleFile=true,failedOnly=true,pathPattern=${USERAGENT}/${FILE_INDEX}.mp4
      
      
    • 通过Runner.video方法添加参数
      runner.video('artifacts/videos', {
          singleFile: true,
          failedOnly: true,
          pathPattern: '${USERAGENT}/${FILE_INDEX}.mp4'
      });
      
      
    • 通过配置文件设置参数
      {
          "videoOptions": {
              "singleFile": true,
              "failedOnly": true,
              "pathPattern": "${USERAGENT}/${FILE_INDEX}.mp4"
          }
      }
      
      

    关于TestCafe的截图和录屏就给大家分享到这里了,后续会持续更新TestCafe相关的技术文章。

    =====请大家尊重原创,如要转载,请注明出处:转载自:https://www.cnblogs.com/nmb-musen/,谢谢!!=====
  • =====有任何疑问,欢迎加微信 MoX66999 (请备注:博客园-木森)=====

  • 相关阅读:
    基于散列的集合 HashSetHashMapHashTable
    英文工作邮件
    英语日常口语
    统计数组中各个元素出现的次数,元素取值范围为:1到N
    编写一个程序,指定一个文件夹,能自动计算出其总容量
    四则运算随机生成100题
    常用异常处理情况
    第三讲 动手动脑-2
    第三讲 动手动脑-1
    使用类的静态字段和构造函数,可以跟踪某个类所创建对象的个数。请写一个类,在任何时候都可以向它查询“你已经创建了多少个对象
  • 原文地址:https://www.cnblogs.com/nmb-musen/p/15331264.html
  • Copyright © 2020-2023  润新知