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

屏幕画面获取方法、装置及计算机可读介质以及测试端

文献发布时间:2023-06-19 09:44:49


屏幕画面获取方法、装置及计算机可读介质以及测试端

技术领域

本发明涉及画面获取技术领域,特别涉及屏幕画面获取方法、装置及计算机可读介质以及测试端。

背景技术

移动设备成为了使用最为广泛的电子产品,随着移动设备上的各种APP的使用频率越来越高,APP的可靠性就变得尤为重要,因此,APP在上线前需要进行测试。

目前的APP测试是由一个测试端连接多个被测端,在被测端上运行需要测试的APP。然而,通过这种方式进行测试,测试人员无法通过测试端对被测端的屏幕画面进行查看,进而无法看到APP测试时在被测端上的执行过程且无法了解整个测试过程中的各种状态。

因此,需要一种能够获取被测端屏幕画面的方法。

发明内容

本发明实施例提供了屏幕画面获取方法、装置及计算机可读介质以及测试端,能够获取被测端的屏幕画面。

第一方面,本发明实施例提供了屏幕画面获取方法,应用于测试端,其中,所述测试端连接至少一个被测端并控制所述至少一个被测端进行APP测试,每个所述测试端中预先安装有minicap服务,还包括:

根据每个被测端的设备标识生成设备列表;

将所述设备列表输出到显示端进行显示;

接收显示端返回的针对至少一个被测端的选择指令,其中,所述选择指令中包括至少一个目标被测端的设备标识;

对于每个目标测试端,均执行:

通过minicap服务与所述当前被测端建立连接;

控制所述当前被测端根据预设的周期对屏幕画面进行截屏并推送图片流数据;

将所述图片流数据渲染到所述显示端。

优选地,

所述通过minicap服务与所述当前被测端建立连接,包括:

通过adb命令获取到所述当前被测端的CPU支持的应用程序二进制接口ABI;

将对应ABI的minicap可执行文件和共享库so文件传输到所述当前被测端的指定目录;

获取所述当前被测端对应的软件开发工具包sdk版本,将sdk版本共享库拷贝到所述指定目录,以使所述当前被测端启动minicap服务并返回minicap端口;

通过所述minicap端口与所述当前被测端建立连接。

优选地,

所述控制所述当前被测端根据预设的周期对屏幕画面进行截屏并推送图片流数据,包括:

编写python命令,其中所述python命令中包括与所述minicap服务建立socket服务并根据预设的周期截屏并将所述图片流数据进行推送的控制代码;

将所述python命令推送给所述测试端;

通过所述python命令控制所述当前被测端根据预设的周期截屏并将所述图片流数据进行推送。

优选地,

所述将所述图片流数据渲染到所述显示端,包括:

在所述显示端上针对每个目标测试端创建一个显示窗口;

将每个目标测试端的身份标识和图片流数据在对应的显示窗口上进行显示;

优选地,

还包括:

在检测到所述显示端关闭时,控制所述socket服务关闭,停止接收所述图片流数据。

第二方面,本发明实施例提供了基于上述第一方面中任一提供的屏幕画面获取方法的测试端,包括:

生成模块,用于根据每个被测端的设备标识生成设备列表;

输出模块,用于将所述设备列表输出到显示端进行显示;

接收模块,用于接收显示端返回的针对至少一个被测端的选择指令,其中,所述选择指令中包括至少一个目标被测端的设备标识;

处理模块,用于对于每个目标测试端,均执行:

通过minicap服务与所述当前被测端建立连接;

控制所述当前被测端根据预设的周期对屏幕画面进行截屏并推送图片流数据;

将所述图片流数据渲染到所述显示端。

优选地,

所述处理模块,在执行所述通过minicap服务与所述当前被测端建立连接时,具体执行:

通过adb命令获取到所述当前被测端的CPU支持的应用程序二进制接口ABI;

将对应ABI的minicap可执行文件和共享库so文件传输到所述当前被测端的指定目录;

获取所述当前被测端对应的软件开发工具包sdk版本,将sdk版本共享库拷贝到所述指定目录,以使所述当前被测端启动minicap服务并返回minicap端口;

通过所述minicap端口与所述当前被测端建立连接。

优选地,

所述处理模块,在执行所控制所述当前被测端根据预设的周期对屏幕画面进行截屏并推送图片流数据时,具体执行:

编写python命令,其中所述python命令中包括与所述minicap服务建立socket服务并根据预设的周期截屏并将所述图片流数据进行推送的控制代码;

将所述python命令推送给所述测试端;

通过所述python命令控制所述当前被测端根据预设的周期截屏并将所述图片流数据进行推送。

优选地,

所述处理模块,在执行所述将所述图片流数据渲染到所述显示端时,具体执行:

在所述显示端上针对每个目标测试端创建一个显示窗口;

将每个目标测试端的身份标识和图片流数据在对应的显示窗口上进行显示;

优选地,

所述处理模块,还用于检测到所述显示端关闭时,控制所述socket服务关闭,停止接收所述图片流数据。

第三方面,本发明实施例提供了显示测试端屏幕画面的装置,包括:至少一个存储器和至少一个处理模块;

所述至少一个存储器,用于存储机器可读程序;

所述至少一个处理模块,用于调用所述机器可读程序,执行上述第一方面中任一提供的显示测试端屏幕画面的方法。

第四方面,本发明实施例提供了计算机可读介质,所述计算机可读介质上存储有计算机指令,所述计算机指令在被处理模块执行时,使所述处理模块执行上述第一方面中任一提供的显示测试端屏幕画面的方法。

本发明实施例提供了屏幕画面获取方法、装置及计算机可读介质以及测试端。由上述技术方案可知,APP测试采用远程集中管理的模式,由一测试端连接多个被测端进行APP测试,每个被测端中预先安装有minicap服务。在进行测试的时候,获取到每个被测设备的设备标识,并根据设备标识生成设备列表。将设备列表输出到显示端进行显示,这样测试人员就可以在显示端上查看正在进行APP测试的被测端的设备列表,并在显示端上选择需要获取屏幕画面的至少一个被测端。当接收到显示端返回的至少一个被测端的选择指令时,对每个被选择的目标测试端,均通过预先安装的minicap服务与其建立连接,并控制目标测试端根据预设的周期对屏幕画面进行截屏并作为图片流数据推送,将推送的图片流数据渲染到所述显示端,以使测试人员通过显示端查看到选择的被测端的显示过程。由此可见,本发明提供的方案在集中测试的情况下,为了使测试人员能够通过显示端看到测试的执行过程,通过minicap服务与被测端建立连接,能够获取被测端屏幕画面。

附图说明

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

图1是本发明一实施例提供的一屏幕画面获取方法的流程图;

图2是本发明一实施例提供的一测试端的示意图。

具体实施方式

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

如前所述,目前的APP测试是由一个测试端连接多个被测端,在被测端上运行需要测试的APP。然而,通过这种方式进行测试,测试人员无法通过测试端对被测端的屏幕画面进行查看,进而无法看到APP测试时在被测端上的执行过程且无法了解整个测试过程中的各种状态。因此,需要一种能够获取被测端屏幕画面的方法。

下面通过本发明各个实施例提供的屏幕画面获取方法、装置及计算机可读介质以及测试端作详细说明。

如图1所示,本发明实施例提供了屏幕画面获取方法,应用于测试端,其中,所述测试端连接至少一个被测端并控制所述至少一个被测端进行APP测试,每个所述测试端中预先安装有minicap服务,还包括以下步骤:

步骤101:根据每个被测端的设备标识生成设备列表;

步骤102:将所述设备列表输出到显示端进行显示;

步骤103:接收显示端返回的针对至少一个被测端的选择指令,其中,所述选择指令中包括至少一个目标被测端的设备标识;

步骤104:对于每个目标测试端,均执行:通过minicap服务与所述当前被测端建立连接;控制所述当前被测端根据预设的周期对屏幕画面进行截屏并推送图片流数据;将所述图片流数据渲染到所述显示端。

由上述技术方案可知,APP测试采用远程集中管理的模式,由一测试端连接多个被测端进行APP测试,每个被测端中预先安装有minicap服务。在进行测试的时候,获取到每个被测设备的设备标识,并根据设备标识生成设备列表。将设备列表输出到显示端进行显示,这样测试人员就可以在显示端上查看正在进行APP测试的被测端的设备列表,并在显示端上选择需要获取屏幕画面的至少一个被测端。当接收到显示端返回的至少一个被测端的选择指令时,对每个被选择的目标测试端,均通过预先安装的minicap服务与其建立连接,并控制目标测试端根据预设的周期对屏幕画面进行截屏并作为图片流数据推送,将推送的图片流数据渲染到所述显示端,以使测试人员通过显示端查看到选择的被测端的显示过程。由此可见,本发明提供的方案在集中测试的情况下,为了使测试人员能够通过显示端看到测试的执行过程,通过minicap服务与被测端建立连接,能够获取被测端屏幕画面。

此外,获取设备列表可以adb命令来实现,adb命令是安卓系统开发的调试工具,用于获取机器内部的相关信息。通过adb命令,能够获取已连接的所有被测端的列表以及被测端的序列号等关键详细信息,即被测端的身份标识。测试人员可以通过选择序列号来选择被测端,通过显示端输入选择指令,选择需要查看屏幕画面的至少一个被测端。

在本发明一实施例中,所述通过minicap服务与所述当前被测端建立连接,包括:

通过adb命令获取到所述当前被测端的CPU支持的应用程序二进制接口ABI;

将对应ABI的minicap可执行文件和共享库so文件传输到所述当前被测端的指定目录;

获取所述当前被测端对应的软件开发工具包sdk版本,将sdk版本共享库拷贝到所述指定目录,以使所述当前被测端启动minicap服务并返回minicap端口;

通过所述minicap端口与所述当前被测端建立连接。

具体来说,每个被测端的CPU支持的应用程序二进制接口ABI不同,因此,通过上述的adb命令先获取到当前被测端的CPU支持的应用程序二进制接口,ABI分为4种不同的可执行文件和共享库so文件,分别是:x86_64、x86、arm64-v8a和armeabi-v7a。将对应的ABI且minicap可执行文件和so文件传输到当前被测端的指定目录。然后获取到设备对应的sdk版本,并将sdk版本共享库拷贝到该设备指定目录。软件开发工具包一般都是一些软件工程师为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件时的开发工具的集合。软件开发工具广义上指辅助开发某一类软件的相关文档、范例和工具的集合。软件开发工具包是一些被软件工程师用于为特定的软件包、软件框架、硬件平台、操作系统等创建应用软件的开发工具的集合。它可以简单的为某个程序设计语言提供应用程序接口API的一些文件,但也可能包括能与某种嵌入式系统通讯的复杂的硬件。一般的工具包括用于调试和其他用途的实用工具。sdk还经常包括示例代码、支持性的技术注解或者其他的为基本参考资料澄清疑点的支持文档。通过运行sdk来运行可执行文件和so文件,调用minicap服务并且将minicap端口转发,即可通过minicap端口与被测端建立连接。

在本发明一实施例中,所述控制所述当前被测端根据预设的周期对屏幕画面进行截屏并推送图片流数据,包括:

编写python命令,其中所述python命令中包括与所述minicap服务建立socket服务并根据预设的周期截屏并将所述图片流数据进行推送的控制代码;

将所述python命令推送给所述测试端;

通过所述python命令控制所述当前被测端根据预设的周期截屏并将所述图片流数据进行推送。

具体来说,python是一种跨平台的计算机程序设计语言,是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越多被用于独立的、大型项目的开发。通过python编写一条命令,通过minicap端口与minicap服务建立socket服务的命令,发送给当前被测端去执行:通过已接收到的minicap端口与当前被测端的minicap服务建立socket服务,控制当前被测端根据预设的周期进行截屏,并将截屏文件以图片流的形式推送。截屏的周期可以根据测试时的网络速度来设置,如果速度较快,则可以以更短的周期进行截屏并能够流畅的进行图片流数据的发送,如果网速较慢,周期较短可能导致图片流数据过大,可能会导致图片流的发送不流畅,测试人员无法查看到实时屏幕。

在本发明一实施例中,所述将所述图片流数据渲染到所述显示端,包括:在所述显示端上针对每个目标测试端创建一个显示窗口;将每个目标测试端的身份标识和图片流数据在对应的显示窗口上进行显示;在检测到所述显示端关闭时,控制所述socket服务关闭,停止接收所述图片流数据。

具体来说,显示端为web端,可以为连接到测试端的电脑,通过前端页面来进行显示。可以在电脑的前端页面上生成多个窗口,每一个窗口显示一被测端的屏幕画面,也可以将多个被测端的屏幕画面整合到一起进行显示。当电脑被关闭时,测试端后台关闭socket连接,不再接受图片流数据。

如图2所示,本发明一实施例提供了上述实施例中任一提供的屏幕画面获取方法的测试端,包括:

生成模块201,用于根据每个被测端的设备标识生成设备列表;

输出模块202,用于将所述设备列表输出到显示端进行显示;

接收模块203,用于接收显示端返回的针对至少一个被测端的选择指令,其中,所述选择指令中包括至少一个目标被测端的设备标识;

处理模块204,用于对于每个目标测试端,均执行:

通过minicap服务与所述当前被测端建立连接;

控制所述当前被测端根据预设的周期对屏幕画面进行截屏并推送图片流数据;

将所述图片流数据渲染到所述显示端。

在本发明一实施例中,所述处理模块204,在执行所述通过minicap服务与所述当前被测端建立连接时,具体执行:

通过adb命令获取到所述当前被测端的CPU支持的应用程序二进制接口ABI;

将对应ABI的minicap可执行文件和共享库so文件传输到所述当前被测端的指定目录;

获取所述当前被测端对应的软件开发工具包sdk版本,将sdk版本共享库拷贝到所述指定目录,以使所述当前被测端启动minicap服务并返回minicap端口;

通过所述minicap端口与所述当前被测端建立连接。

在本发明一实施例中,所述处理模块,在执行所控制所述当前被测端根据预设的周期对屏幕画面进行截屏并推送图片流数据时,具体执行:

编写python命令,其中所述python命令中包括与所述minicap服务建立socket服务并根据预设的周期截屏并将所述图片流数据进行推送的控制代码;

将所述python命令推送给所述测试端;

通过所述python命令控制所述当前被测端根据预设的周期截屏并将所述图片流数据进行推送。

在本发明一实施例中,所述处理模块204,在执行所述将所述图片流数据渲染到所述显示端时,具体执行:

在所述显示端上针对每个目标测试端创建一个显示窗口;

将每个目标测试端的身份标识和图片流数据在对应的显示窗口上进行显示;

在本发明一实施例中,所述处理模块204,还用于检测到所述显示端关闭时,控制所述socket服务关闭,停止接收所述图片流数据。

可以理解的是,本发明实施例示意的结构并不构成对测试端的具体限定。在本发明的另一些实施例中,测试端可以包括比图示更多或者更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件、软件或者软件和硬件的组合来实现。

上述测试端内的各单元之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。

本发明还提供了一种计算机可读介质,存储用于使一计算机执行如本文所述的屏幕画面获取方法的指令。具体地,可以提供配有存储介质的系统或者装置,在该存储介质上存储着实现上述实施例中任一实施例的功能的软件程序代码,且使该系统或者装置的计算机(或CPU或MPU)读出并执行存储在存储介质中的程序代码。

在这种情况下,从存储介质读取的程序代码本身可实现上述实施例中任何一项实施例的功能,因此程序代码和存储程序代码的存储介质构成了本发明的一部分。

用于提供程序代码的存储介质实施例包括软盘、硬盘、磁光盘、光盘(如CD-ROM、CD-R、CD-RW、DVD-ROM、DVD-RAM、DVD-RW、DVD+RW)、磁带、非易失性存储卡和ROM。可选择地,可以由通信网络从服务器计算机上下载程序代码。

此外,应该清楚的是,不仅可以通过执行计算机所读出的程序代码,而且可以通过基于程序代码的指令使计算机上操作的操作系统等来完成部分或者全部的实际操作,从而实现上述实施例中任意一项实施例的功能。

此外,可以理解的是,将由存储介质读出的程序代码写到插入计算机内的扩展板中所设置的存储器中或者写到与计算机相连接的扩展单元中设置的存储器中,随后基于程序代码的指令使安装在扩展板或者扩展单元上的CPU等来执行部分和全部实际操作,从而实现上述实施例中任一实施例的功能。

本发明各个实施例至少具有以下优点和进步:

1、在本发明实施例中,在集中测试的情况下,为了使测试人员能够通过显示端看到测试的执行过程,通过minicap服务与被测端建立连接,能够获取被测端屏幕画面。

2、在远程移动端设备管理模式下,可以直观的看到屏幕的实时状态,实时的了解到真机上的自动化测试用例的执行状态和移动端设备的状态。

3、B/S架构使得只要与远程网络互通就可看到移动设备屏幕。

需要说明的是,上述各流程和各系统结构图中不是所有的步骤和模块都是必须的,可以根据实际的需要忽略某些步骤或模块。各步骤的执行顺序不是固定的,可以根据需要进行调整。上述各实施例中描述的系统结构可以是物理结构,也可以是逻辑结构,即,有些模块可能由同一物理实体实现,或者,有些模块可能分由多个物理实体实现,或者,可以由多个独立设备中的某些部件共同实现。

以上各实施例中,硬件单元可以通过机械方式或电气方式实现。例如,一个硬件单元可以包括永久性专用的电路或逻辑(如专门的处理器,FPGA或ASIC)来完成相应操作。硬件单元还可以包括可编程逻辑或电路(如通用处理模块或其它可编程处理模块),可以由软件进行临时的设置以完成相应操作。具体的实现方式(机械方式、或专用的永久性电路、或者临时设置的电路)可以基于成本和时间上的考虑来确定。

上文通过附图和优选实施例对本发明进行了详细展示和说明,然而本发明不限于这些已揭示的实施例,基于上述多个实施例本领域技术人员可以知晓,可以组合上述不同实施例中的代码审核手段得到本发明更多的实施例,这些实施例也在本发明的保护范围之内。

相关技术
  • 屏幕画面获取方法、装置及计算机可读介质以及测试端
  • 屏幕画面的调整方法、装置、设备和计算机可读存储介质
技术分类

06120112282460