本文翻译自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测试视频很有用。