掌桥专利:专业的专利平台
掌桥专利
首页

测试用例运行过程的录屏方法、装置、设备及存储介质

文献发布时间:2023-06-19 11:45:49


测试用例运行过程的录屏方法、装置、设备及存储介质

技术领域

本发明涉及运行测试技术领域,尤其涉及测试用例运行过程的录屏方法、装置、设备及存储介质。

背景技术

Web浏览器和操作系统桌面应用软件的自动测试过程中,对于测试失败(未通过)的用例,如果不能自动录屏,那么用户在后续检查测试结果时,除了查看每个测试用例的输出(包括测试是否通过、失败时的错误信息)之外,将无法直观地具体排查失败时,实际软件的运行状况,从而无法进一步分析测试失败的原因是脚本问题,还是软件本身在某些方面确实有问题。这将导致无法确定后续工作的目标和方向,也无法形成进一步的解决问题的措施。

现有技术主要通过测试工具在确认测试用例失败的时刻,自动截图并本地保存,把这个图片作为后续用户检查的依据。

然而,由于软件测试过程包括一系列操作,相应地在UI(User Interface,用户界面)上有一系列变化,一个图片无法充分说明问题,导致用户排查失败情况时无法准确获知失败原因。

发明内容

本发明提供了测试用例运行过程的录屏方法、装置、设备及存储介质,用于解决用户在排查测试用例失败情况时无法准确获知失败原因的技术问题。

本发明提供了一种测试用例运行过程的录屏方法,所述方法包括:

判断当前启动的测试用例的类型;

当所述类型为预设操作系统上的桌面软件的第一测试用例时,获取录屏配置信息;

根据所述录屏配置信息,对预设显示器进行录屏,得到第一录屏数据;所述显示器用于显示所述第一测试用例的运行过程;

获取所述第一测试用例的运行结果;

保存所述运行结果和所述第一录屏数据。

可选地,所述录屏配置信息包括视频编码信息、所述显示器的尺寸信息以及视频帧率。

可选地,所述根据所述录屏配置信息,对预设显示器进行录屏,得到第一录屏数据的步骤,包括:

根据所述视频编码信息、所述尺寸信息和所述视频帧率,从所述显示器的显示界面中截取当前图像;

计算所述当前图像的当前哈希值;

获取所述当前哈希值的相邻哈希值;

判断所述当前哈希值与所述相邻哈希值是否相同;

若是,忽略所述当前图像,并返回根据所述视频编码信息、所述尺寸信息和所述视频帧率,从所述显示器的显示界面中截取当前图像的步骤;

若否,获取缩放比例,根据所述缩放比例缩放所述当前图像,得到缩放图像;

对所述缩放图像进行色彩空间转换,得到转换图像;

将所述转换图像保存到预设录屏文件中,并返回根据所述视频编码信息、所述尺寸信息和所述视频帧率,从所述显示器的显示界面中截取当前图像的步骤;

当检测到所述第一测试用例运行结束时,停止录屏,并采用所述录屏文件中的所有转换图像生成第一录屏数据。

可选地,还包括:

当所述类型为预设浏览器在预设模式下的第二测试用例时,实时检测所述第二测试用例测试过程中是否产生目标异常;

当检测到所述第二测试用例测试过程中产生了目标异常时,确定所述目标异常对应的UI界面;

生成所述UI界面的UI截图;

获取所述第二测试用例的测试信息;

将所述测试信息添加到所述UI截图上,生成目标UI截图,并将所述目标UI截图保存在预设文件中;

当所述第二测试用例运行结束时,采用所述预设文件中的目标UI截图生成第二录屏数据。

可选地,所述当所述第二测试用例运行结束时,采用所述预设文件中的目标UI截图生成第二录屏数据的步骤,包括:

当所述第二测试用例运行结束时,按照时间顺序,对所述预设文件中的所有目标UI截图进行排序;

计算每个所述目标UI截图的哈希值;

基于所述排序,依次对比相邻两个目标UI截图的哈希值,根据对比结果去除重复的目标UI截图;

采用未去除的目标UI截图生成第二录屏数据。

本发明还提供了一种测试用例运行过程的录屏装置,包括:

类型判断模块,用于判断当前启动的测试用例的类型;

录屏配置信息获取模块,用于当所述类型为预设操作系统上的桌面软件的第一测试用例时,获取录屏配置信息;

第一录屏数据获取模块,用于根据所述录屏配置信息,对预设显示器进行录屏,得到第一录屏数据;所述显示器用于显示所述第一测试用例的运行过程;

运行结果获取模块,用于获取所述第一测试用例的运行结果;

保存模块,用于保存所述运行结果和所述第一录屏数据。

可选地,所述录屏配置信息包括视频编码信息、所述显示器的尺寸信息以及视频帧率。

可选地,所述第一录屏数据获取模块,包括:

当前图像截取子模块,用于根据所述视频编码信息、所述尺寸信息和所述视频帧率,从所述显示器的显示界面中截取当前图像;

当前哈希值计算子模块,用于计算所述当前图像的当前哈希值;

相邻哈希值获取子模块,用于获取所述当前哈希值的相邻哈希值;

判断子模块,用于判断所述当前哈希值与所述相邻哈希值是否相同;

第一返回子模块,用于若是,忽略所述当前图像,并返回根据所述视频编码信息、所述尺寸信息和所述视频帧率,从所述显示器的显示界面中截取当前图像的步骤;

缩放图像获取子模块,用于若否,获取缩放比例,根据所述缩放比例缩放所述当前图像,得到缩放图像;

转换子模块,用于对所述缩放图像进行色彩空间转换,得到转换图像;

第二返回子模块,用于将所述转换图像保存到预设录屏文件中,并返回根据所述视频编码信息、所述尺寸信息和所述视频帧率,从所述显示器的显示界面中截取当前图像的步骤;

第一录屏数据生成子模块,用于当检测到所述第一测试用例运行结束时,停止录屏,并采用所述录屏文件中的所有转换图像生成第一录屏数据。

本发明还提供了一种电子设备,所述设备包括处理器以及存储器:

所述存储器用于存储程序代码,并将所述程序代码传输给所述处理器;

所述处理器用于根据所述程序代码中的指令执行如上任一项所述的测试用例运行过程的录屏方法。

本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质用于存储程序代码,所述程序代码用于执行如上任一项所述的测试用例运行过程的录屏方法。

从以上技术方案可以看出,本发明具有以下优点:本发明通过判断当前启动的测试用例的类型;当类型为预设操作系统上的桌面软件的第一测试用例时,获取录屏配置信息;根据录屏配置信息,对预设显示器进行录屏,得到第一录屏数据;显示器用于显示第一测试用例的运行过程;获取第一测试用例的运行结果;保存运行结果和第一录屏数据。解决了用户在排查测试用例失败情况时无法准确获知失败原因的技术问题。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。

图1为本发明实施例提供的一种测试用例运行过程的录屏系统的架构图;

图2为本发明实施例提供的一种测试用例运行过程的录屏方法的步骤流程图;

图3为为发明实施例提供的一种对显示器进行录屏的过程示意图;

图4为本发明实施例提供的一种测试用例运行过程的录屏装置的结构框图。

具体实施方式

本发明实施例提供了一种测试用例运行过程的录屏方法、装置、设备及存储介质,用于解决用户在排查测试用例失败情况时无法准确获知失败原因的技术问题。

为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本发明一部分实施例,而非全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

本发明适用于常见的操作系统UI平台,包括Windows、Linux桌面或苹果Mac系统桌面。本发明的录屏系统由客户端和服务端组成,客户端是一个Python开发的库,供测试用例调用,与测试用例一起部署,可以运行在一系列测试机器上;客户端主要功能包括录屏过程可靠性保障,视频转码,Chrome leaderless模式录屏,测试过程信息采集与拦截,启动、结束、暂停录屏控制等;服务端的主要功能包括录屏视频在线播放、分布式存储、录屏过程监控告警、测试机监控和评测历史管理等。测试机与服务器共同组成一个分布式存储集群。整个系统的组成如图1所示。

请参阅图2,图2为本发明实施例提供的一种测试用例运行过程的录屏方法的步骤流程图。

本发明提供的一种测试用例运行过程的录屏方法,具体可以包括以下步骤:

步骤201,判断当前启动的测试用例的类型;

步骤202,当类型为预设操作系统上的桌面软件的第一测试用例时,获取录屏配置信息;

在Windows、Linux桌面或者苹果的Mac操作系统的桌面下,都可以通过浏览器测试Web系统、桌面客户端软件,或者模拟器测试安卓或iOS应用。这种情况下,通过录制整个屏幕或者指定的屏幕区域一定的时长,可以获得一段视频,如果这个时长与自动测试过程中的起止时间吻合,那么这个视频就可以作为测试过程中的录屏。

在具体实现中,本发明可以基于Python编程语言实现,支持对上述三类操作系统的录屏,即能够对Windows、Linux和Mac桌面环境下的UI测试过程进行录屏,可以支持Web应用、桌面客户端、运行在模拟器上的移动应用的测试过程录屏。

为了对测试过程进行录屏,本发明首先设置测试用例相对应的录屏配置信息,从而在运行测试用例时,可以直接获取预设的录屏配置信息进行录屏操作。

目前在单元测试、自动测试框架上基本都遵循以测试用例为中心的自动评测代码开发,往往有专门的setup、tearDown方法来启动、结束一个测试用例或测试套件的运行,利用测试框架的这个特性可以通过AOP拦截这些方法来控制录屏的开始、结束时刻或者在测试用例代码中通过显示调用方法来控制录屏过程。然后再开始过程中,读取预设的录屏配置信息,同时启动一个专门的线程池负责录屏、控制录屏操作的启动、暂停和停止。

在一个示例中,录屏配置信息可以包括视频编码信息、显示器的尺寸信息以及视频帧率。

在实际应用中,可以调用OpenCV的VideoWriter_fourcc方法,选用VP08或者其他视频编码器,调用Python的MSS模块的monitors方法获得当前连接的显示器及其宽、高等尺寸信息,这个模块封装了三种操作系统的差异,保证每个操作系统下都能获得录屏需要的数据;

类似地,本发明还可以指定录屏的帧率,或在录屏开始时自动根据当前计算机的CPU、内存处理能力计算适当的帧率数值。具体可以通过以下过程实现:

先录制一个时长2秒的上述指定宽、高的哑视频,然后把这个哑视频通过OpenCV的VideoWriter方法写到硬盘上,计算2秒内能写多少帧,将结果整除以2作为默认的录屏时的视频帧率,接下来删除生成的文件、释放资源;如果录屏时用户指定了帧率,则接下来使用指定的帧率录屏。

步骤203,根据录屏配置信息,对预设显示器进行录屏,得到第一录屏数据;显示器用于显示第一测试用例的运行过程;

在确定了帧率、显示器的尺寸信息、文件保存路径、编码器后,可以根据上述这些数据调用OpenCV的VideoWriter方法,准备开始录屏,得到第一录屏数据。

需要说明的是,该显示屏用于显示第一测试用例的运行过程。

在一个示例中,如图3所示,根据录屏配置信息,对预设显示器进行录屏,得到第一录屏数据的步骤,具体可以包括以下子步骤:

S31,根据视频编码信息、尺寸信息和视频帧率,从显示器的显示界面中截取当前图像;

需要说明的是,在从显示器的显示界面中截取当前图像之后,可以启动一个新的线程在这里异步地执行检查:1)获得图像的宽、高,当宽或高的数值低于指定的阀值(例如800*600像素,可配置),提示用户检查所在服务器的显卡驱动是否已正常安装配置,显卡驱动不正常的情况下UI测试用例会大量失败,这方面的提示也有助于避免录制不正常的视频;2)调用python工具PIL中的ImageChops的difference方法把当前图片与预先准备的相同宽高的黑屏图片对比,接下来判断对比结果的getbbox()方法,如果这个方法的返回值是None,说明当前正在录制视频是全黑屏的,测试程序检测到这种情况后可以输出检查到黑屏的告警到对应的测试结果日志中。如果并未发生上述异常,则继续执行下述步骤。

S32,计算当前图像的当前哈希值;

S33,获取当前哈希值的相邻哈希值;

S34,判断当前哈希值与相邻哈希值是否相同;

S35,若是,忽略当前图像,并返回根据视频编码信息、尺寸信息和视频帧率,从显示器的显示界面中截取当前图像的步骤;

S36,若否,获取缩放比例,根据缩放比例缩放当前图像,得到缩放图像;

S37,对缩放图像进行色彩空间转换,得到转换图像;

S38,将转换图像保存到预设录屏文件中,并返回根据视频编码信息、尺寸信息和视频帧率,从显示器的显示界面中截取当前图像的步骤;

S39,当检测到第一测试用例运行结束时,停止录屏,并采用录屏文件中的所有转换图像生成第一录屏数据。

在实际应用中,录屏是个不断循环的过程,在录屏过程中首先会调用MSS模块的grab方法根据编码信息、显示器的尺寸信息和选定的视频帧率截取当前操作系统下显示器显示界面中的当前图像。

接着计算当前图像的当前哈希值并保存在内存中,然后将当前哈希值与上一个计算得到的相邻图像的相邻哈希值进行比较,如果当前哈希值和相邻哈希值相同,则表征出现了重复的图像,此时可以忽略当前图像,重新截取显示器的当前图像,不断循环上述步骤直至第一测试用例运行结束。在一个示例中,在检测到重复图像时,也可以选择标记该重复图像,在完成所有图像的截图后,根据预设的压缩比对重复帧进行过滤。

进一步地,对于不重复的当前图像,可以根据缩放比例,利用OpenCV的resize方法把当前图像缩放到指定的缩放比例大小,得到缩放图像。

在得到缩放图像后,可以调用OpenCV的cvtColor方法做色彩空间转换,指定转换目标的色彩空间标识为COLOR_RGBA2RGB,得到转换图像,并将转换图像通过VideoWriter方法返回对象写入本地的预设录屏文件中。在录屏结束后,可以销毁录屏过程中产生的对象,释放资源。

需要说明的是,本发明还可以与测试框架集成,通过AOP、异常捕获自动拦截测试结果校验或者运行时的问题,也可以通过开放接口接收从测试用例当前步骤传递过来的要写入视频的信息。通过这些途径收集要写入到视频的信息后,即时写入当前帧的转换图像中。

需要说明的是,如果录屏过程中需要暂停,可以向录屏线程发送暂停信号。

值得注意的是,如果录屏时设置的视频格式与上述写入的不同,可以本地开启一个进程调用ffmpeg进行视频转码,转码后的录屏视频可以由更多播放器播放,视频文件的大小也能降低。

其中,ffmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。

步骤204,获取第一测试用例的运行结果;

步骤205,保存运行结果和第一录屏数据。

在本发明实施例中,可以在录屏结束后,收集测试结果,包括测试用例、测试套件的执行结果,录屏文件的路径以及文件名与第一录屏数据一起写入到数据库中。

本发明通过判断当前启动的测试用例的类型;当类型为预设操作系统上的桌面软件的第一测试用例时,获取录屏配置信息;根据录屏配置信息,对预设显示器进行录屏,得到第一录屏数据;显示器用于显示第一测试用例的运行过程;获取第一测试用例的运行结果;保存运行结果和第一录屏数据。解决了用户在排查测试用例失败情况时无法准确获知失败原因的技术问题。

进一步地,在实际应用中,有些时候会出现测试机无显示器的情况,因此,上述方案需要保障测试机在无显示器情况下的正常录屏。

在一个示例中,可以选择复用现有显示器,通过Windows系统的mstsc服务工具连接测试服务器,Windows的这个工具可以远程连接上述三个操作系统的远程桌面,成功连接后保存为rdp文件。远程连接成功后作为桌面的一个子窗口即可录屏。接下来通过保存打开到对应的测试服务器的远程桌面来保障录屏服务的录制结果正常。整个过程具体可以包括以下步骤:

1)开发一个定时控制客户端程序,执行上述rdp文件,把打开的远程桌面窗口控制为指定的宽高;

2)通过调用Pywin32来检查指定到测试服务器的远程窗口是否成功打开;

3)如果不能成功打开远程桌面则向服务端发送告警,说明指定测试服务器的远程桌面无法打开,通知用户及时处理;

4)客户端程序每隔指定的时间间隔检测一次上述远程窗口是否存在,如果不存在则立即尝试打开上述rdp文件对应的远程窗口,如果不成功则经过服务器向用户发送告警;

5)客户端定时发起到服务端的心跳操作,默认30秒触发一次心跳,服务端超过指定的心跳周期(默认3次,可配置)未收到心跳信息后向系统用户发送告警,通知用户检测测试服务器及其相关资源的运行情况;

6)用户收到告警后,可以及时排查解决死机、网络不通、断电等异常情况引发的问题,实现对录屏过程的保障。

进一步地,本发明还可以实现Chrome在headerless模式下运行测试用例时的自动录屏。其具体可以包括以下步骤:

S41,当类型为预设浏览器在预设模式下的第二测试用例时,实时检测第二测试用例测试过程中是否产生目标异常;

S42,当检测到第二测试用例测试过程中产生了目标异常时,确定目标异常对应的UI界面;

S43,生成UI界面的UI截图;

S44,获取第二测试用例的测试信息;

S45,将测试信息添加到UI截图上,生成目标UI截图,并将目标UI截图保存在预设文件中;

S46,当第二测试用例运行结束时,采用预设文件中的目标UI截图生成第二录屏数据。

其中,步骤S46可以包括以下子步骤:

S461,当第二测试用例运行结束时,按照时间顺序,对预设文件中的所有目标UI截图进行排序;

S462,计算每个目标UI截图的哈希值;

S463,基于排序,依次对比相邻两个目标UI截图的哈希值,根据对比结果去除重复的目标UI截图;

S464,采用未去除的目标UI截图生成第二录屏数据。

在具体实现中,Chrome浏览器的headerless运行模式可以运行在Linux命令行模式下,不需要显示器,有助于充分利用Linux服务器来提升测试效率。

Chrome的这种运行模式是通过chromedriver这个可执行文件运行的,它支持W3C的通信协议JsonWireProtocol,该协议允许向浏览器发送screenshot指令来生成base64编码的PNG格式的截图,这个指令的内容为:“GET/session/:sessionId/screenshot”。据此可实现headerless模式下浏览器内容的自动截图,进一步可以利用所有获得的图片生成测试过程的视频,主要实现步骤包括:

1)利用Python、Java等编程语言的AOP支持机制拦截打开浏览器、打开一个URL、检查测试结果对应的函数或方法,使得变化后的每个浏览器UI都有机会获取对应的UI截图;每个测试套件开始运行时自动生成一个文件夹专门用来保存UI截图;

2)在拦截到的上述指定的函数执行结束,或者通过捕获到指定的异常(例如测试未通过)发生确认需要生成截图后,根据JsonWireProtocol协议的要求向测试浏览器对应的webdriver发送截图指令,生成当前UI的截图,通过OpenCV把当前测试用例名或对应的函数名等测试信息写到UI截图上,此外,还可以利用测试框架的机制获取测试是否通过的结果,然后把这个结果写到UI截图上,如果测试失败,可以根据配置确定是否写上失败的错误信息,得到目标UI截图;

在一个示例中,获取测试用例是否运行成功的机制,目前主流的测试框架都有稳定的方案,例如pytest提供有专门的钩子函数pytest_runtest_makereport(item,call),通过它能获得所有的测试步骤、测试结果、说明、对应的报告名,因此可以对任意步骤截图;

3)将目标UI截图保存在本地预设文件中;并按照时间顺序从小到大编号,同时把文件名、计算得到的每个目标UI截图哈希值、添加自定义消息的内容保存到Redis服务中;

4)利用Python的imageio工具把上述目标UI截图依次读取到内存中,接下来访问Redis获得所有目标UI截图的哈希值,如果顺序相邻的目标UI截图具有相同的哈希值,则说明是相同的目标UI截图,这时如果用户配置要压缩结果文件的大小,则对所有相邻且重复的目标UI截图只保留一个,然后把所有图片放到一个数组中;

5)调用imageio工具的mimsave方法、指定每个图片的显示时长来生成GIF动画文件形式的第二录屏数据并保存;

6)通过Python或Java等编程语言调用选用的测试框架的功能,获得套件和所有用例的测试结果、上述GIF动画文件的文件名并保存到数据库。

采用这种方式生成的第二录屏数据在通过浏览器打开后能自动播放,实际效果与通过一个播放器播放视频的效果类似,能够满足测试结果校验的需要。

请参阅图4,图4为本发明实施例提供的一种测试用例运行过程的录屏装置的结构框图。

本发明实施例提供了一种测试用例运行过程的录屏装置,包括:

类型判断模块401,用于判断当前启动的测试用例的类型;

录屏配置信息获取模块402,用于当类型为预设操作系统上的桌面软件的第一测试用例时,获取录屏配置信息;

第一录屏数据获取模块403,用于根据录屏配置信息,对预设显示器进行录屏,得到第一录屏数据;显示器用于显示第一测试用例的运行过程;

运行结果获取模块404,用于获取第一测试用例的运行结果;

保存模块405,用于保存运行结果和第一录屏数据。

在本发明实施例中,录屏配置信息包括视频编码信息、显示器的尺寸信息以及视频帧率。

在本发明实施例中,第一录屏数据获取模块403,包括:

当前图像截取子模块,用于根据视频编码信息、尺寸信息和视频帧率,从显示器的显示界面中截取当前图像;

当前哈希值计算子模块,用于计算当前图像的当前哈希值;

相邻哈希值获取子模块,用于获取当前哈希值的相邻哈希值;

判断子模块,用于判断当前哈希值与相邻哈希值是否相同;

第一返回子模块,用于若是,忽略当前图像,并返回根据视频编码信息、尺寸信息和视频帧率,从显示器的显示界面中截取当前图像的步骤;

缩放图像获取子模块,用于若否,获取缩放比例,根据缩放比例缩放当前图像,得到缩放图像;

转换子模块,用于对缩放图像进行色彩空间转换,得到转换图像;

第二返回子模块,用于将转换图像保存到预设录屏文件中,并返回根据视频编码信息、尺寸信息和视频帧率,从显示器的显示界面中截取当前图像的步骤;

第一录屏数据生成子模块,用于当检测到第一测试用例运行结束时,停止录屏,并采用录屏文件中的所有转换图像生成第一录屏数据。

在本发明实施例中,装置还包括:

目标异常检测模块,用于当类型为预设浏览器在预设模式下的第二测试用例时,实时检测第二测试用例测试过程中是否产生目标异常;

UI界面确定模块,用于当检测到第二测试用例测试过程中产生了目标异常时,确定目标异常对应的UI界面;

UI截图生成模块,用于生成UI界面的UI截图;

测试信息获取模块,用于获取第二测试用例的测试信息;

目标UI截图保存模块,用于将测试信息添加到UI截图上,生成目标UI截图,并将目标UI截图保存在预设文件中;

第二录屏数据生成模块,用于当第二测试用例运行结束时,采用预设文件中的目标UI截图生成第二录屏数据。

在本发明实施例中,第二录屏数据生成模块,包括:

排序子模块,用于当第二测试用例运行结束时,按照时间顺序,对预设文件中的所有目标UI截图进行排序;

哈希值计算子模块,用于计算每个目标UI截图的哈希值;

去重子模块,用于基于排序,依次对比相邻两个目标UI截图的哈希值,根据对比结果去除重复的目标UI截图;

第二录屏数据生成子模块,用于采用未去除的目标UI截图生成第二录屏数据。

本发明实施例还提供了一种电子设备,设备包括处理器以及存储器:

存储器用于存储程序代码,并将程序代码传输给处理器;

处理器用于根据程序代码中的指令执行本发明任一实施例的测试用例运行过程的录屏方法。

本发明实施例还提供了一种计算机可读存储介质,其特征在于,计算机可读存储介质用于存储程序代码,程序代码用于执行本发明任一实施例的测试用例运行过程的录屏方法。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。

本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。

以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

相关技术
  • 测试用例运行过程的录屏方法、装置、设备及存储介质
  • 一种基于IOS系统的录屏直播方法、装置、设备及存储介质
技术分类

06120113047738