本文翻译自Video capture in Squish 7.0 – feature focus (原文发布于2022年3月4日)
原文作者:Qt公司软件工程师Katarina Behrens
翻译:Joyce Jiang

Squish GUI Tester 7.0是首个提供独特新功能的Squish版本:通过捕获测试执行的视频调试和记录测试。

长期以来,可以通过Squish捕获AUT运行时的截图,不仅支持在失败时自动截图也支持使用脚本语言的API函数按需截图。虽然这有助于用户了解AUT和桌面上发生故障时的情况,但它提供的是一个相当静态的事件图片。

用视频捕获测试执行的能力提供了一个更动态的概述,尤其是在接近测试失败的时候,这也是客户长期以来所追求的。在Squish GUI Tester 7.0中,我们终于实现了这一点。

Squish IDE和Squish命令行界面均提供了以MPEG-4视频的形式记录部分或全部测试的选项。该视频包含在测试结果中,可以在Squish IDE和Test Center中新集成的视频播放器中回放。

用Squish GUI Tester 捕获视频

第一步:在测试脚本中开始和停止视频捕获

作为获得运行AUT桌面视频捕获的第一步,我们需要调整测试脚本,并标记视频捕获的开始和停止位置。

为此,我们在Squish测试API中加入了两个新函数:'test.startVideoCapture' 和 'test.stopVideoCapture'。

您可以在测试脚本中多次插入这些函数,如果需要,可以成对插入(每一个'test.startVideoCapture'都应该有一个对应的'test.stopVideoCapture'),
但最后的'test.stopVideoCapture'除外。

这项是可选的,如果不存在,视频捕获将随着测试执行的结束而自动结束。

在手动编写脚本时,您可以在Squish支持的任何脚本语言中使用这些API函数。但是,录制过程中从IDE控制栏调用这些函数可提供更流畅的用户体验。

在Control Bar的“Insert”菜单中有两个新选项,用于插入视频捕获的起点和终点。有了这两个选项更容易确保成对插入,因为您必须先开始视频捕获,然后才能停止它。

在任何给定的时间内,Control Bar的标题会显示视频捕获是否处于工作状态中。

第二步:通过主动视频捕获回放测试

一旦我们插入了表示测试执行视频捕获的开始和停止点,我们就可以像往常一样使用Squish IDE中的绿色“Replay”按钮。

现在,除了回放记录的用户交互外,Squish将在一个MPEG-4视频文件中捕获AUT和桌面上发生的一切。对每一对"test.start-"和 "stopVideoCapture "命令分割的测试都会有一个视频附件包含在测试结果中。

对于用户使用squishrunner命令行界面的用户和/或使用squishrunner与各种CI工具集成的用户来说,有一种替代方法可以通过视频捕获来回放测试:'--enable-video-capture

当与“--testcase”结合使用时,将会从头到尾捕获所给定测试用例的测试执行。与“--testsuite”结合使用时,同样适用于给定测试套件中的每个测试用例。

最后,提醒一句:由于Squish总是捕获AUT运行的整个桌面,为了避免侵犯隐私,我们建议在启动视频捕获的测试前,关闭所有文档、停止聊天通知,并终止AUT以外任何可能在后台运行的程序。

第三步:查看测试结果中的视频附件

一旦我们用视频捕获回放测试,并获得附带一个或多个视频的测试结果,我们可以在Squish IDE中通过新的基于JavaFX的视频播放器查看这些视频。双击IDE中“Test Results”视图中的任意视频附件打开视频播放器。一个新的IDE视图(标签)打开,视频播放开始。视频播放器包含所有控制视频播放的基本按钮(开始、停止、暂停、快进、倒退),一个滑块可以移动到视频中的任何位置,还有一个简单的设置按钮可以调整视频播放的速度。

为了立即跳转到视频捕获的特定点(例如:跳转到测试失败的发生点),我们增加了GUI控件帮助用户实现它。右键单击“Test Results”视图中所选定的时间点,在右键菜单中选择“Jump to Video at Timestamp” 或在该视图工具栏中选择同名按钮。视频播放器将所选的时间点上以暂停状态打开,这样用户就可以很容易地定位到事件发生前后的情况。

视频播放和测试结果也可以并行查看,默认情况下是相互关联的。滑块在视频播放器中的位置随着用户在结果树中的上下移动而移动,选中的条目会突出显示。同样,随着视频回放的进行,“Test Results” 视图中的高亮位置也会随之移动。

如果您不使用Squish IDE,您可以在Test Center中查看捕获的测试执行视频。

支持平台

视频捕获功能在所有的Squish GUI Tester版本的桌面端(Linux, Windows, macOS),移动端(Android, iOS)和Squish for Web中均可使用。这要归功于与所有Squish二进制包附带的跨平台ffmpeg库。需要通过源代码构建的Squish用户可以在这里阅读如何在他们的平台上启用ffmpeg支持并使用视频捕获功能。

总之,我们希望您喜欢这个功能,并发现捕获GUI测试视频很有用。

4月15日(星期五)下午我们将举办一场相关网络研讨会,推荐石油天然气、医疗设备、工业自动化、EDA、航空航天、汽车等行业的测试工程师、测试经理、和项目经理点击这里了解详情、报名参会。

Squish 7.0中视频捕获 (含相关网络直播研讨会报名信息)相关推荐

  1. 音视频开发总结之三网络直播技术

    一. 直播流程总览 目前主流的直播架构中主要有两种方案,即流媒体转发.P2P.流媒体转发,是一种在视频直播中以流的方式将连续的音.视频数据经编码压缩后传输到流媒体服务器,用户实时从服务器获取流媒体资源 ...

  2. linux 列出当前视频设备,如何获取Linux(ubuntu)上的视频捕获设备(网络摄像机)列表?(C / C ++)...

    小编典典 这是我编写的代码段.大概是一本书.我想您可以遍历所有/ dev / videoN节点并获取信息. #include #include #include #include #include i ...

  3. ADO.NET 2.0 中的架构

    Bob Beauchemin DevelopMentor 适用于: Microsoft ADO.NET 2.0 Microsoft Visual Studio 2005 C# 编程语言 摘要:了解在 ...

  4. 在 Anaconda3 5.0.0 中安装 Plot.ly Dash

    在 Anaconda3 5.0.0 中安装 Plot.ly Dash 安装包 plotly包可以直接在 Anaconda3 5.0.0 中安装 Anaconda3 5.0.0 中不包含 Dash 相关 ...

  5. WSS 3.0中An unexpected error has occurred的一个解决方案

    之前在CodePlex上讨论到我在WSS v3里遇到的一个Bug,CKS团队的TheKid向我引用了他的一个解决方案,大意如下 如果需要了解WSS 3.0中An unexpected error ha ...

  6. html5 音频事件,HTML5中视频和音频核心事件的相关研究

    摘 要: 本文通过对HTML 5中视频和音频重要事件的研究,总结出HTML 5中重要事件在什么时候使用其中重要的相关属性,并以实例利用事件相关属性进行设置,给读者以相应启发. 关键字:HTML 5:视 ...

  7. 火车头过滤 css样式_HTML5和CSS3过滤器中的网络摄像头视频捕获

    火车头过滤 css样式 Webcam Video Capture in HTML5 and CSS3 filters As we know – HTML5 defines a new element ...

  8. Java正则表达式中的捕获组的概念及相关API使用

    要弄清这三个方法,首先要弄清Java正则表达式中的捕获组的概念.捕获组也就是Pattern中以括号对"()"分割出的子Pattern.至于为什么要用捕获组呢,主要是为了能找出在一次 ...

  9. 自媒体短视频中视频相关的问题总结,涉及视频类型、质量、时长和原创等方面

    自媒体短视频中视频相关的问题总结,涉及视频类型.质量.时长和原创等方面 大家好,我是我赢助手,专注于自媒体短视频去水印.去重和文案提取运营! 前几天跟大家分享了我最近在做的一个短视频账号,也就是刚刚开 ...

最新文章

  1. 朴素、Select、Poll和Epoll网络编程模型实现和分析——Poll模型
  2. python序列类型包括哪三种映射类型_python序列类型包括哪三种_后端开发
  3. Masking GAN pytorch
  4. 这家获得谷歌投资的企业想把亚马逊挑下神坛
  5. Corodva Could not resolve com.android.tools.build:gradle:3.0.1 解决方法
  6. 用键盘来操纵鼠标指针(鼠标损坏时的应急措施)
  7. target tile component.js load logic
  8. 如何在SAP Cloud for Customer里自定义query
  9. Module build failed: Error: Missing binding
  10. IOC操作Bean管理XML方式(P名称空间注入)
  11. android代码清除锁屏密码,清除Android手机锁屏密码的三个小妙招
  12. 基于JAVA+SpringBoot+Vue+Mybatis+MYSQL的物资管理系统
  13. POM (Project Object Model)简介
  14. 48. Be aware of template metaprogramming
  15. 分享几个Python小技巧函数里的4个小花招 1
  16. 《集体智慧编程》笔记(一)
  17. php 漏洞扫描,10个最佳PHP代码安全扫描程序来查找漏洞
  18. SOUI使用过程知识点小结1
  19. 通过app NA渲染后的app source 抓包
  20. EasyOcr报错 --- [WinError 10054] An existing connection was forcibly closed by the remote host

热门文章

  1. 学术小技巧:如何使用easyscholar来提高论文查找效率
  2. 关于手机连接上WiFi但是部分软件不能上网解决办法
  3. argparse使用方法简单总结
  4. go编译so win10_Win7/Win10下搭建Go语言开发环境
  5. Microsoft Jet 数据库引擎打不开文件 的正确解决方法
  6. pygame实现贪吃蛇
  7. UML实践:餐馆系统示例
  8. Learning in situ: 视频流媒体中真实环境下训练的自适应码率选择算法Fugu
  9. 佛教与人生(了解学习佛法的科普文章)
  10. 银行IT智能运维一体化建设实践分享