多系统的测试方法、装置和移动终端及测试设备
技术领域
本发明涉及自动化测试技术领域,具体而言,本发明涉及一种多系统的测试方法、装置和移动终端及测试设备。
背景技术
目前,智能手机、平板电脑、二合一电脑、电子阅读器和智能穿戴设备等移动终端已经广泛普及。
相当多的移动终端中安装有两个以上操作系统。在移动终端出厂前或交付前,需要对移动终端中的每个操作系统以及运行其中的应用进行测试。
目前还不存在对移动终端的双操作系统的自动化测试方法。现有的测试方法通常都是单操作系统的测试方法。以双操作系统为例,当需要对双操作系统(或其应用)进行测试时,通常需要搭建一套测试环境,并为每一个操作系统单独编写一套专用的测试脚本,根据两套测试脚本依次测试两个操作系统中的应用。
然而,利用现有的测试方法,需要准备两套测试脚本、两个操作系统通常只能先后测试无法同时测试、且测试脚本需要中途切换,容易导致测试不便、测试耗时较长和测试工作量大,造成测试效率低下。
此外,当双操作系统的服务和应用等不互相兼容时,互为两个异构操作系统。此时,利用现有方法对两个异构操作系统进行测试,通常需要搭建两套测试环境,进一步增加了测试复杂度、测试工作量和测试耗时等等,导致测试效率进一步降低。
总之,现有的测试方法,存在对两个以上操作系统无法同时进行测试的缺陷。
发明内容
本发明针对现有方式的缺点,提出一种多系统的测试方法、装置和移动终端及测试设备,用以解决现有技术存在对移动终端中的两个以上操作系统无法同时进行测试的问题。
本发明的实施例根据第一个方面,提供了一种多系统的测试方法,包括:
第一测试数据传输服务获取第一操作系统的第一待显示测试结果后,向测试设备发送第一待显示测试结果;
其它测试数据传输服务获取其它操作系统的其它待显示测试结果后,向所述测试设备发送所述其它待显示测试结果;
使得所述测试设备对第一待显示测试结果和所述其它待显示测试结果进行显示。
本发明的实施例根据第二个方面,还提供了一种多系统的测试方法,包括:
接收移动终端中第一操作系统的第一待显示测试结果和其它操作系统的其它待显示测试结果;第一待显示测试结果和所述其它待显示测试结果分别是所述移动终端中的第一测试数据传输服务和其它测试数据传输服务获取的;
对接收的第一待显示测试结果和所述其它待显示测试结果进行显示。
本发明的实施例根据第三个方面,还提供了一种多系统的测试装置,包括:
第一测试数据传输服务模块,用于获取第一操作系统的第一待显示测试结果后,向测试设备发送第一待显示测试结果;
其它测试数据传输服务模块,用于获取其它操作系统的其它待显示测试结果后,向所述测试设备发送所述其它待显示测试结果;
第一测试数据传输服务模块和所述其它测试数据传输服务模块用于使得所述测试设备对第一待显示测试结果和所述其它待显示测试结果进行显示。
本发明的实施例根据第四个方面,还提供了一种多系统的测试装置,包括:
测试结果接收模块,用于接收移动终端中第一操作系统的第一待显示测试结果和其它操作系统的其它待显示测试结果;第一待显示测试结果和所述其它待显示测试结果分别是所述移动终端中的第一测试数据传输服务和其它测试数据传输服务获取的;
测试结果显示模块,用于对接收的第一待显示测试结果和所述其它待显示测试结果进行显示。
本发明的实施例根据第五个方面,还提供了一种移动终端,包括:
存储器;
处理器;
至少两个操作系统,包括第一操作系统和其它操作系统,存储于所述存储器中;
第一测试数据传输服务程序和其它测试数据传输服务程序,存储于所述存储器中,被配置为由所述处理器执行时实现如下步骤:
获取第一操作系统的第一待显示测试结果后,向测试设备发送第一待显示测试结果;
获取其它操作系统的其它待显示测试结果后,向所述测试设备发送所述其它待显示测试结果;
使得所述测试设备对第一待显示测试结果和所述其它待显示测试结果进行显示。
本发明的实施例根据第五个方面,还提供了一种测试设备,包括:
存储器;
处理器;
至少一个测试程序,存储于所述存储器中,被配置为由所述处理器执行时实现如下步骤:
接收移动终端中第一操作系统的第一待显示测试结果和其它操作系统的其它待显示测试结果;第一待显示测试结果和所述其它待显示测试结果分别是所述移动终端中的第一测试数据传输服务和其它测试数据传输服务获取的;
对接收的第一待显示测试结果和所述其它待显示测试结果进行显示。
本发明实施例中,可以分别独立地获取到测试中的移动终端中第一操作系统的第一待显示测试结果和其它操作系统的其它待显示测试结果,并一并输送到测试设备进行显示。相比于传统的仅能获取到前台操作系统的待显示测试结果相比,可以对两个以上操作系统的待显示测试结果进行同时显示,使得测试程序可以基于同时显示的两个以上操作系统的测试结果分别对两个以上操作系统进行各自独立的测试;当同时参与测试的操作系统为N个时,同时测试使得测试时间大约可以缩短为依次先后测试的1/N,N为大于1的自然数。
本发明附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为本发明实施例的测试系统的软硬件架构的一个特例的示意图;
图2为本发明实施例的多系统的一种测试方法的流程示意图;
图3为本发明实施例的多系统的另一种测试方法的流程示意图;
图4为本发明实施例的展开介绍的多系统的测试方法流程示意图;
图5为本发明实施例一种多系统的测试装置的内部结构的框架示意图;
图6为本发明实施例另一种多系统的测试装置的内部结构的框架示意图;
图7为本发明实施例提供的一种移动终端的内部结构的框架示意图;
图8为本发明实施例提供的一种测试设备的内部结构的框架示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
本技术领域技术人员可以理解,这里所使用的“终端”、“终端设备”既包括无线信号接收器的设备,其仅具备无发射能力的无线信号接收器的设备,又包括接收和发射硬件的设备,其具有能够在双向通信链路上,进行双向通信的接收和发射硬件的设备。这种设备可以包括:蜂窝或其他通信设备,其具有单线路显示器或多线路显示器或没有多线路显示器的蜂窝或其他通信设备;PCS(Personal Communications Service,个人通信系统),其可以组合语音、数据处理、传真和/或数据通信能力;PDA(Personal Digital Assistant,个人数字助理),其可以包括射频接收器、寻呼机、互联网/内联网访问、网络浏览器、记事本、日历和/或GPS(Global Positioning System,全球定位系统)接收器;常规膝上型和/或掌上型计算机或其他设备,其具有和/或包括射频接收器的常规膝上型和/或掌上型计算机或其他设备。这里所使用的“终端”、“终端设备”可以是便携式、可运输、安装在交通工具(航空、海运和/或陆地)中的,或者适合于和/或配置为在本地运行,和/或以分布形式,运行在地球和/或空间的任何其他位置运行。这里所使用的“终端”、“终端设备”或“移动终端”还可以是通信终端、上网终端、音乐/视频播放终端,例如可以是PDA、MID(Mobile Internet Device,移动互联网设备)和/或具有音乐/视频播放功能的移动电话,也可以是智能电视、机顶盒等设备。
本发明的发明人注意到,目前存在表面上的移动终端的双操作系统的自动化测试方法。本发明的发明人经过研究发现,表面上的双操作系统的测试方法,是现有的单操作系统的测试方法的简单叠加拼凑;实际上,仍然需要准备两套测试脚本分别针对两个操作系统进行测试,两个操作系统也只能作为两个整体先后进行测试,仍然无法同时进行测试,测试仍然不便、测试耗时仍然较长和测试工作量仍然较大,测试效率仍然较为低下。
本发明的发明人经过研究发现,现有的测试方法只能获取被测试的移动终端中前台操作系统的待显示的测试结果进行显示,而无法获取后台操作系统的待显示的测试结果进行显示,导致对后台操作系统的测试不可控制,从而导致仅能同时对单操作系统(即前台操作系统)进行测试,无法对两个以上操作系统同时进行测试。
本发明实施例中提供了一种针对移动终端的多操作系统的测试系统,包括:移动终端和测试设备。
测试设备具体可以是服务器、台式电脑或其组合等。
移动终端具体可以是智能手机、平板电脑、二合一电脑、电子阅读器和智能穿戴设备等等。
本发明实施例的移动终端中安装有至少两个操作系统。至少两个操作系统包括:第一操作系统和其它操作系统。事实上,其它操作系统可以代表除了第一操作系统之外的任一操作系统。
虽然本发明实施例的技术方案也适用于三个及以上操作系统的测试场合,但是为了便于理解,下文以两个操作系统为例,具体介绍本发明实施例的技术方案。
本发明实施例中的两个操作系统即可以是互为同构操作系统,也可以是互为异构操作系统。
下面简单介绍一下异构的操作系统的概念。
本发明实施例中容器中的操作系统的大致可以分为下述几个从底层指向上层的层次结构:
“Hardware Platform”--硬件层,表示该操作系统支持什么样的硬件平台,包括该操作系统对移动终端中的实体硬件进行虚拟化得到的设备节点(设备文件);例如安卓系统中的设备节点/dev/fb0,dev(device,设备)节点名下的第1个fb(framebuffer,帧缓冲)节点。
“Kernel”--内核层,属于操作系统的核心,目前主流操作系统除了微软的Windows系统,绝大多数操作系统的内核都是基于Linux或Unix内核源码或在此内核源码基础上进行裁剪得到的。现有的Windows系统与Linux系统的内核之间的差异较大。
“System Call Interface”--系统调用层,为方便对内核层的功能调用而封装的接口层。
“Base Library”--基础类库层,提供基于某些计算机编程语言(比较常见的是基于C的glibc库)的基本软件功能(读写文件、连接网络、鼠标键盘输入、绘制基本图形等)。
“framework”--系统框架层,提供该操作系统的特有服务、进程管理、窗口管理等功能。
“Application”--应用层,运行在该操作系统上的应用程序,文中的测试脚本就属于该层。
本发明实施例中的两个操作系统可以有多种架构方式。
一种多操作系统的架构方式为两个操作系统都为独立完整的操作系统。若两个操作系统中所包含的如上任何一层的不同,则可以认为该两个操作系统互为异构操作系统。从外在表现来看,主要是指一个操作系统的应用层的同一个应用程序是否能在其他操作系统上正常运行:若能,则该两个操作系统互为非异构操作系统;若不能,则该两个操作系统互为异构操作系统。
例如,Android就是google公司的安卓系统、以及基于安卓系统做二次开发的手机操作系统,注意这两种手机操作系统不属于异构操作系统,针对本文的环境可以认为是同一种操作系统:所以同一份测试脚本或同一个应用程序当然可以在两者上正常安装、运行。Android、IOS就属于互为异构操作系统,基于两者各自开发的应用程序在对方上不能安装、运行。
另一种多操作系统的架构方式为两个以上操作系统共享同一内核系统。
具体地,移动终端可以包括:内核系统和两个以上操作系统。
本发明实施例中的操作系统,是设置在以Linux container(容器)虚拟化技术创建的容器中的操作系统。操作系统可以为传统意义上的Linux操作系统或Unix操作系统,也可以是基于Linux操作系统衍生出来的Android系统或Ubuntu系统等,还可以为以Windows平台为基础的windows系统等等。实际上,本发明中的操作系统不限于前述例举的操作系统,可以涵盖所有能够在容器中运行的操作系统。
容器中的操作系统包括上述除了“Hardware Platform”--硬件层和“Kernel”--内核层之外的其它层。
内核系统包括:Kernel、或者在Kernel基础上增加功能模块之后得到的增强型Kernel。进一步,内核系统还可以包括各容器中的操作系统所共用的设备和软件服务。两个以上容器中的操作系统共享内核系统。
下面简单介绍一下本发明实施例的测试系统中,被测试的移动终端与测试设备之间的连接和交互关系。
移动终端与测试设备在物理上可以有线电连接,也可以无线连接。
移动终端与测试设备中搭建一套测试环境。测试环境包括测试程序、和测试数据传输程序。
测试程序设置在测试设备中,供人机交互。
较佳地,测试程序具体可以是基于Sikuli的测试程序。Sikuli是一种图形化编程技术,以图像检索技术为基础,提供了一套基于Jython的脚本语言以及集成开发环境,使用者可以利用屏幕截图直接引用GUI(Graphical User Interface,图形用户界面)元素进程编程,得到测试程序。
移动终端的每个操作系统中或者容器中,设置测试数据传输程序的服务端,可以简称测试数据传输服务。测试设备中设置测试数据传输程序的客户端。
较佳地,测试数据传输程序具体可以为VNC(Virtual Network Console,虚拟网络控制台)。VNC是一款跨平台(例如跨Unix和Linux操作系统)的开源的远程控制软件。
VNC基本上是由两部分组成:一部分是作为客户端的应用程序VNCviewer,本发明实施例中设置在测试设备中;另外一部分是作为VNC服务器端的应用程序VNCServer,简称VNC服务,本发明实施例中设置在移动终端的每个容器中(独立位于该容器中的操作系统之外)或者每个操作系统中。VNC的服务器端应用程序在Unix和Linux操作系统中适应性很强,图形用户界面十分友好。在任何安装了客户端的应用程序VNCviewer的Linux平台的测试设备都能十分方便地和安装了服务器端的应用程序VNCserver的移动终端相互连接。进一步,服务器端的VNCserver还内建了Java Web接口,这样测试人员通过服务器端对移动终端的操作就能通过浏览器显示出来,这样的操作过程和显示方式比较直观方便。
较佳地,图1是本发明实施例的测试系统的软硬件架构的一个特例的示意图。图1中PC(Personal Computer,个人电脑)端表示测试设备;PC端中设置有基于Sikuli的测试程序,测试程序根据Jython测试脚本进行测试;VNCClient表示客户端VNCviewer。移动设备表示移动终端;共用的设备和软件服务表示两个容器中的操作系统共用的设备和软件服务器;两个容器中的操作系统中的第一操作系统、其它操作系统可以分别具体为Android、XyzOS;第一容器中的第一VNC服务具体可以是图1中的AndroidVNCServer;其它容器中的其它VNC服务具体可以是图1中的XyzVNCServer。
本发明实施例的多系统的一种测试方法的流程示意图如图2所示,包括下述步骤:S201、第一测试数据传输服务获取第一操作系统的第一待显示测试结果后,向测试设备发送第一待显示测试结果;S202、其它测试数据传输服务获取其它操作系统的其它待显示测试结果后,向测试设备发送其它待显示测试结果;使得测试设备对第一待显示测试结果和其它待显示测试结果进行显示。
本发明实施例的多系统的另一种测试方法的流程示意图如图3所示,包括下述步骤:S301、接收移动终端中第一操作系统的第一待显示测试结果和其它操作系统的其它待显示测试结果;第一待显示测试结果和其它待显示测试结果分别是移动终端中的第一测试数据传输服务和其它测试数据传输服务获取的;S302、对接收的第一待显示测试结果和其它待显示测试结果进行显示。
本发明实施例中,可以分别独立地获取到测试中的移动终端中第一操作系统的第一待显示测试结果和其它操作系统的其它待显示测试结果,并一并输送到测试设备进行显示。相比于传统的仅能获取到前台操作系统的待显示测试结果相比,可以对两个以上操作系统的待显示测试结果都进行显示,使得测试程序可以基于显示的两个以上操作系统的测试结果分别对两个以上操作系统进行各自独立的测试;当同时参与测试的操作系统为N个时,同时测试使得测试时间大约可以缩短为依次先后测试的1/N,N为大于1的自然数。
较佳地,本发明实施例,可以基于显示的两个以上操作系统的测试结果对两个以上操作系统的对应内容(例如相同功能的服务或应用等)进行同步对比测试和同步对比显示,使得测试和显示的对比性更加突出,便于测试人员更加直观地掌握各操作系统各自不同的特性,便于测试人员及时根据更加直观的不同特性对各操作系统的服务或应用等进行调整,提升了测试的效率和效果。
较佳地,本发明实施例中的测试数据传输程序具体可以是跨平台的测试数据传输程序,可以测试人员自行开发该测试程序,可以直接调用多种现有的此类传输程序,也可以在现有的传输程序进行二次开发等等。
较佳地,本发明实施例中的测试数据传输程序具体采用了本发明的发明人基于VNC源码自行开发(例如,修改和编译)的VNC程序;测试数据传输服务(VNCserver)具体为虚拟网络控制台服务,第一测试数据传输服务具体为第一虚拟网络控制台服务,其它测试数据传输服务具体为其它虚拟网络控制台服务;测试数据传输客户端具体为虚拟网络控制台客户端(VNCClient)。
下面展开介绍本发明实施例的多系统的测试方法,该方法的流程示意图如图4所示,包括下述步骤:
S401:第一虚拟网络控制台服务调用第一操作系统中的外观投掷器获取第一操作系统当前待显示的测试结果,作为第一待显示测试结果。
本发明的发明人经过研究发现,当现有技术中的前台操作系统为Android系统或者基于Android的衍生系统时,通常通过安卓系统的examples(样本)目录下附带一个基于vnc技术的工具软件fbvncserver,但是fbvncserver是从安卓系统的设备节点/dev/fb0处于直接获取待屏幕显示数据。这种获取待显示数据的方法无法解决本方案要解决的技术问题:因为当两个操作系统共用一套硬件设备,比如:/dev/fb0和屏幕时,每一时刻由前台操作系统占用相应的设备,尤其是/dev/fb0和屏幕都是被前台操作系统独占的,所以此时从fb0处获取不到后台操作系统待屏幕显示数据,这个关键点就决定了Android的许多自动化测试方案无法同时监控双操作系统(即使是双安卓系统)的图形界面,也就无法同时测试两个系统了。
本发明实施例中,本发明的发明人,为多种架构的操作系统分别开发了各自的虚拟网络控制台服务。具体地,第一虚拟网络控制台服务对应第一操作系统中,其它虚拟网络控制台服务对应其它操作系统中。虚拟网络控制台服务不是从设备节点(例如fb0)处获取待显示数据,而是通过比设备节点更为上层的相关的图像服务获取待显示数据。
本发明实施例中,移动终端中运行有第一操作系统和其它操作系统,第一操作系统和其它操作系统都根据测试设备发送的测试指令同时进行测试中。
第一虚拟网络控制台服务可以设置在第一容器中与第一操作系统相并列,也可以设置在第一操作系统中作为第一操作系统的一部分。
较佳地,第一虚拟网络控制台服务,调用外观投掷器通过指定接口从指定的内存空间或缓存空间中获取第一操作系统当前待显示的测试结果。
例如,如图1所示,作为第一虚拟网络控制台服务的AndroidVNCServer,调用作为第一操作系统的Android系统的SurfaceFlinger(调用外观投掷器)服务,获取Android系统当前屏幕待显示的测试结果。较佳地,AndroidVNCServer调用SurfaceFlinger,由SurfaceFlinger调用OpenGLES等相关接口,从CPU/GPU的缓存中或由它们存放在内存的指定区域内,获取待显示的数据(由于在测试过程中,因此即为待显示的测试结果)。其中,OpenGLES(Open Graphics Libraryfor Embedded Systems,嵌入式系统的开放式图形库),是基于OpenGL(Open Graphics Library,开放式图形库)进行裁剪和/或定制而来的,是OpenGL三维图形API(Application Programming Interface,应用程序编程接口)的子集,针对诸如智能手机、PDA和游戏主机等嵌入式的移动终端而设计。
再如,当第一操作系统为IOS系统时,第一虚拟网络控制台服务调用IOS中的GLKit图形框架服务,通过指定接口从指定的内存空间或缓存空间中获取第一操作系统当前待显示的测试结果。其中,GLKit是一组Objective(目标)-C类,即一组供开发者方便调用的API,为使用OpenGLES提供一个面向对象接口,用来简化OpenGLES应用的开发。
此外,当第一操作系统为Windows Phone或Windows 10Mobile等Window家族的移动操作系统时,第一虚拟网络控制台服务调用第一操作系统中的图形框架服务,通过指定接口从指定的内存空间或缓存空间中获取第一操作系统当前待显示的测试结果。
可以理解,本步骤中,虚拟网络控制台服务通过调用外观投掷器等操作系统自带的图形框架服务获取待显示的数据(例如测试结果),而不是通过设备节点获取待显示的数据,从而实现获取待显示的测试结果与设备节点的无关性,可以避免仅能获取到独占设备节点的前台操作系统的待显示数据的缺陷;可以实现既能获取前台操作系统的待显示数据,又能获取后台操作系统的待显示数据,从而整体上便于后续基于前后台操作系统同时显示的测试结果对前后台操作系统同时进行测试。
S402:第一虚拟网络控制台服务向测试设备发送第一待显示测试结果。
本发明的发明人,为多种架构的操作系统分别开发了各自的虚拟网络控制台(VNC)传输管理器,设置在移动终端的对应操作系统中。具体地,第一虚拟网络控制台传输管理器设置在第一操作系统中,其它虚拟网络控制台传输管理器设置在其它操作系统中。
较佳地,第一虚拟网络控制台传输管理器被设置为基础库的形式,例如设置为libvnc库,并提供相关接口供调用。
第一虚拟网络控制台服务,调用预设的第一虚拟网络控制台传输管理器,向测试设备发送第一待显示测试结果。
例如,当第一操作系统为Android系统时,第一虚拟网络控制台服务通过调用Android系统的libvnc库的相关接口,实现调用预设的第一虚拟网络控制台传输管理器;并调用第一虚拟网络控制台传输管理器,将第一待显示测试结果向测试设备(中的虚拟网络控制台客户端)发送。
此外,当第一操作系统为IOS系统或者Windows家族的移动操作系统时,可以采用下述步骤S404中的方法,将第一待显示测试结果向测试设备发送,此处不再赘述。
可以理解,通过虚拟网络控制台服务、虚拟网络控制台传输管理器和虚拟网络控制台客户端构成的跨平台的数据传输程序,实现数据在移动终端和测试设备之间传递。
S403:其它虚拟网络控制台服务调用其它操作系统中的图形管理器获取其它操作系统当前待显示的测试结果,作为其它待显示测试结果。
本发明实施例中,步骤S401与S402为第一组步骤,步骤S403与步骤S404为第二组步骤。这两组步骤是相互独立的,可以同时执行,也可以先后执行(例如先执行第一组步骤后执行第二组步骤,或先执行第二组步骤后执行第一组步骤)。
较佳地,其它虚拟网络控制台服务,调用图形管理器将实时获取到的作为其它操作系统待显示的测试结果的顶层窗口的图像数据,实时更新至指定的共享内存。其它虚拟网络控制台服务从共享内存中实时获取作为待显示的测试结果的顶层窗口的图像数据。
其它虚拟网络控制台服务可以设置在其它容器中与其它操作系统相并列,也可以设置在其它操作系统中作为其它操作系统的一部分。
例如,作为其它虚拟网络控制台服务的XyzNVCServer,调用作为其它操作系统的XyzOS(Xyz Operating System)的图形框架子系统system-main服务(属于图形管理器)的接口去实时获取XyzOS顶层窗口的(即当前待显示的)图像数据。
具体地,system-main服务为XzyOS的图形管理器,随XzyOS启动而自动启动,能够实时获取到XzyOS的顶层窗口的图像数据(当XzyOS或其服务或应用处于测试状态时,待显示的测试结果放置在顶层窗口中,形成图像数据);system-main服务将获取到的顶层窗口的图像数据,实时更新至指定的共享内存中。XyzNVCServer从共享内存中实时获取作为待显示的测试结果的顶层窗口的图像数据。进一步,XyzNVCServer可以指定的频率(例如与移动终端屏幕的刷新频率相同步的频率)从共享内存中获取作为待显示的测试结果的顶层窗口的图像数据。
可以理解,本步骤中,虚拟网络控制台服务通过调用图形管理器等操作系统自带的图形框架服务获取待显示的数据(例如测试结果),而不是通过设备节点获取待显示的数据,从而实现获取待显示的测试结果与设备节点的无关性,可以避免仅能获取到独占设备节点的前台操作系统的待显示数据的缺陷;可以实现既能获取前台操作系统的待显示数据,又能获取后台操作系统的待显示数据,从而整体上便于后续基于前后台操作系统同时显示的测试结果对前后台操作系统同时进行测试。
S404:其它虚拟网络控制台服务向测试设备发送其它待显示测试结果。
本发明的发明人,为多种架构的操作系统分别开发了各自的虚拟网络控制台(VNC)传输管理器,设置在移动终端的对应操作系统中。具体地,其它虚拟网络控制台传输管理器设置在其它操作系统中。
其它虚拟网络控制台服务,调用预设的其它虚拟网络控制台传输管理器,向测试设备发送其它待显示测试结果。
例如,作为其它虚拟网络控制台服务的XyzNVCServer,调用预设的作为其它虚拟网络控制台传输管理器的libVNCServer的VNC功能,将其它待显示测试结果向向测试设备发送。
S405:接收移动终端中第一操作系统的第一待显示测试结果和其它操作系统的其它待显示测试结果。
测试设备中的测试程序,通过测试设备中的虚拟网络控制台客户端分别独立接收第一操作系统的第一待显示测试结果和其它操作系统的其它待显示测试结果。
例如,如图1所示,当测试程序为Sikuli时,Sikuli通过作为虚拟网络控制台客户端VNCClient,分别独立接收第一操作系统Android的第一待显示测试结果和其它操作系统XyzOS的其它待显示测试结果。
S406:对接收的第一待显示测试结果和其它待显示测试结果进行显示。
具体地,对第一待显示测试结果和其它待显示测试结果分别进行独立显示。较佳地,同时对第一待显示测试结果和其它待显示测试结果分别进行独立显示。
进一步,对第一待显示测试结果和其它待显示测试结果进行(同时)对比显示。
利用测试程序中截图相关功能点(例如功能),对同时独立显示的第一待显示测试结果和其它待显示测试结果进行截图处理,基于截图生成测试脚本,可以实现一套测试脚本测试两个以上异构操作系统。包含截图功能在内的相关功能点可以由脚本环境结合当前操作系统环境实现。
较佳地,测试程序具体地为以图像检索技术为基础的图形化测试编程工具,例如Sikuli。
从上述图4的方法流程可以看出,利用本发明的发明人自主研发的虚拟网络控制台服务(例如XyzVNCServer、和AndroidVNCServer),结合虚拟网络控制台传输管理器和图形化测试编程工具,可以实现了一套完整的两个以上操作系统自动化测试方案:不管第一操作系统Android、其它操作系统XyzOS中哪个系统处于前台、哪个系统处于后台,都能同时监控到两个操作系统显示的测试结果画面,可以非常方便地对包含两个操作系统的UI测试功能在内的的多个测试项目同步开展测试,大大节省了测试运行时间。
较佳地,本发明实施例的测试方式可以将两个操作系统的测试时间缩小至传统的两个单操作系统先后组合测试方案时间的1/2;而且,本发明实施例中,编写一套测试脚本就可以同时测试两个以上异构的操作系统,与传统的为每个异构的操作系统单独编写一套测试脚本相比,自动化脚本的编写工作也至少缩减1/2的工作量,总体来讲对于整个项目的自动化测试工作的工期可以至少大大缩短;同时还能方便比对两个操作系统的某些图形界面的差异,或者同时使用双系统的某个相同或非相同功能:比如同时使用两个系统的摄像头拍照。
基于上述多系统的测试方法,本发明实施例提供了一种多系统的测试装置,设置于本发明实施例的移动终端中,该测试装置的内部结构的框架示意图如图5所示,包括:第一测试数据传输服务模块501和其它测试数据传输服务模块502。
第一测试数据传输服务模块501用于获取第一操作系统的第一待显示测试结果后,向测试设备发送第一待显示测试结果。
其它测试数据传输服务模块502用于获取其它操作系统的其它待显示测试结果后,向测试设备发送其它待显示测试结果。
第一测试数据传输服务模块501和其它测试数据传输服务模块502用于使得测试设备对第一待显示测试结果和其它待显示测试结果进行显示。
较佳地,第一测试数据传输服务模块501具体用于调用第一操作系统中的外观投掷器获取第一操作系统当前待显示的测试结果,作为第一待显示测试结果。
以及,其它测试数据传输服务模块502具体用于调用其它操作系统中的图形管理器获取其它操作系统当前待显示的测试结果,作为其它待显示测试结果。
较佳地,第一测试数据传输服务模块501具体用于调用外观投掷器通过指定接口从指定的内存空间或缓存空间中获取第一操作系统当前待显示的测试结果。
以及,其它测试数据传输服务模块502具体用于调用图形管理器将实时获取到的作为其它操作系统待显示的测试结果的顶层窗口的图像数据,实时更新至指定的共享内存;从共享内存中实时获取作为待显示的测试结果的顶层窗口的图像数据。
较佳地,第一测试数据传输服务模块501具体用于调用预设的第一虚拟网络控制台传输管理器,向测试设备发送第一待显示测试结果。
以及,其它测试数据传输服务模块502具体用于调用预设的其它虚拟网络控制台传输管理器,向测试设备发送其它待显示测试结果。
上述第一测试数据传输服务模块501和其它测试数据传输服务模块502功能的实现方法,可以参考上述图2-4的流程步骤的具体内容,此处不再赘述。
基于上述多系统的测试方法,本发明实施例提供了另一种多系统的测试装置,设置于本发明实施例的测试设备中,该测试装置的内部结构的框架示意图如图6所示,包括:测试结果接收模块601和测试结果显示模块602。
测试结果接收模块601用于接收移动终端中第一操作系统的第一待显示测试结果和其它操作系统的其它待显示测试结果;第一待显示测试结果和所述其它待显示测试结果分别是所述移动终端中的第一测试数据传输服务和其它测试数据传输服务获取的。
测试结果显示模块602用于对接收的第一待显示测试结果和所述其它待显示测试结果进行显示。
较佳地,测试结果接收模块601具体用于通过虚拟网络控制台客户端分别独立接收第一操作系统的第一待显示测试结果和所述其它操作系统的其它待显示测试结果。
较佳地,测试结果显示模块602具体用于对第一待显示测试结果和所述其它待显示测试结果分别进行独立显示。
较佳地,测试结果显示模块602具体用于同时对第一待显示测试结果和所述其它待显示测试结果分别进行独立显示。
上述测试结果接收模块601和测试结果显示模块602功能的实现方法,可以参考上述图2-4的流程步骤的具体内容,此处不再赘述。
基于上述多系统的测试方法,本发明实施例提供的一种移动终端的内部结构的框架示意图如图7所示,包括:存储器701和处理器702。
本发明实施例的移动终端中还包括至少两个操作系统;至少两个操作系统包括第一操作系统和其它操作系统,存储于存储器701中。
本发明实施例的移动终端中还包括第一测试数据传输服务程序和其它测试数据传输服务程序,存储于存储器701中,被配置为由处理器702执行时实现如下步骤:
获取第一操作系统的第一待显示测试结果后,向测试设备发送第一待显示测试结果;
获取其它操作系统的其它待显示测试结果后,向测试设备发送其它待显示测试结果;
使得测试设备对第一待显示测试结果和其它待显示测试结果进行显示。
较佳地,第一测试数据传输服务程序在实现获取第一操作系统的第一待显示测试结果的步骤过程中,具体实现下述步骤:当第一测试数据传输服务具体为第一虚拟网络控制台服务时,调用第一操作系统中的外观投掷器获取第一操作系统当前待显示的测试结果,作为第一待显示测试结果。
以及,其它测试数据传输服务程序在实现其它测试数据传输服务获取其它操作系统的其它待显示测试结果的步骤过程中,具体实现下述步骤:当其它测试数据传输服务具体为其它虚拟网络控制台服务时,调用其它操作系统中的图形管理器获取其它操作系统当前待显示的测试结果,作为其它待显示测试结果。
较佳地,第一测试数据传输服务程序在实现调用第一操作系统中的外观投掷器获取第一操作系统当前待显示的测试结果的步骤过程中,具体实现下述步骤:调用外观投掷器通过指定接口从指定的内存空间或缓存空间中获取第一操作系统当前待显示的测试结果。
以及,其它测试数据传输服务程序在实现调用其它操作系统中的图形管理器获取其它操作系统当前待显示的测试结果的步骤过程中,具体实现下属步骤:调用图形管理器将实时获取到的作为其它操作系统待显示的测试结果的顶层窗口的图像数据,实时更新至指定的共享内存;其它虚拟网络控制台服务从共享内存中实时获取作为待显示的测试结果的顶层窗口的图像数据。
较佳地,第一测试数据传输服务程序在实现向测试设备发送第一待显示测试结果的步骤过程中,具体实现下述步骤:调用预设的第一虚拟网络控制台传输管理器,向测试设备发送第一待显示测试结果。
以及,其它测试数据传输服务程序在实现向测试设备发送其它待显示测试结果的步骤过程中,具体实现下述步骤:调用预设的其它虚拟网络控制台传输管理器,向测试设备发送其它待显示测试结果。
基于上述多系统的测试方法,本发明实施例提供的一种测试设备的内部结构的框架示意图如图8所示,包括:存储器801和处理器802。
本发明实施例的测试设备中还包括:至少一个测试程序。至少一个测试程序,存储于存储器801中,被配置为由处理器802执行时实现如下步骤:
接收移动终端中第一操作系统的第一待显示测试结果和其它操作系统的其它待显示测试结果;第一待显示测试结果和其它待显示测试结果分别是移动终端中的第一测试数据传输服务和其它测试数据传输服务获取的;
对接收的第一待显示测试结果和其它待显示测试结果进行显示。
较佳地,至少一个测试程序在实现接收移动终端中第一操作系统的第一待显示测试结果和其它操作系统的其它待显示测试结果的步骤过程中,具体实现下述步骤:通过虚拟网络控制台客户端分别独立接收第一操作系统的第一待显示测试结果和其它操作系统的其它待显示测试结果。
较佳地,至少一个测试程序在实现对接收的第一待显示测试结果和其它待显示测试结果进行显示的步骤过程中,具体实现下述步骤:对第一待显示测试结果和其它待显示测试结果分别进行独立显示。
较佳地,至少一个测试程序在实现对第一待显示测试结果和其它待显示测试结果分别进行独立显示的步骤过程中,具体实现下述步骤:同时对第一待显示测试结果和其它待显示测试结果分别进行独立显示。
本发明实施例中,可以分别独立地获取到测试中的移动终端中第一操作系统的第一待显示测试结果和其它操作系统的其它待显示测试结果,并一并输送到测试设备进行显示。相比于传统的仅能获取到前台操作系统的待显示测试结果相比,可以对两个以上操作系统的待显示测试结果进行同时显示,使得测试程序可以基于同时显示的两个以上操作系统的测试结果分别对两个以上操作系统进行各自独立的测试;当同时参与测试的操作系统为N个时,同时测试使得测试时间大约可以缩短为依次先后测试的1/N,N为大于1的自然数。
而且,本发明实施例中,可以基于显示的两个以上操作系统的测试结果对两个以上操作系统的对应内容(例如相同功能的服务或应用等)进行同步对比测试和同步对比显示,使得测试和显示的对比性更加突出,便于测试人员更加直观地掌握各操作系统各自不同的特性,便于测试人员及时根据更加直观的不同特性对各操作系统的服务或应用等进行调整,提升了测试的效率和效果。
进一步,本发明实施例中,可以基于同时显示的两个以上异构的操作操作的测试结果,生成同一套测试脚本;利用同一套测试脚本和同一套测试环境对两个以上异构的操作系统进行测试,大大减少了检测的工作量,缩短了测试时间,提升了测试效率。
本技术领域技术人员可以理解,本发明包括涉及用于执行本申请中所述操作中的一项或多项的设备。这些设备可以为所需的目的而专门设计和制造,或者也可以包括通用计算机中的已知设备。这些设备具有存储在其内的计算机程序,这些计算机程序选择性地激活或重构。这样的计算机程序可以被存储在设备(例如,计算机)可读介质中或者存储在适于存储电子指令并分别耦联到总线的任何类型的介质中,所述计算机可读介质包括但不限于任何类型的盘(包括软盘、硬盘、光盘、CD-ROM、和磁光盘)、ROM(Read-Only Memory,只读存储器)、RAM(Random Access Memory,随即存储器)、EPROM(Erasable ProgrammableRead-Only Memory,可擦写可编程只读存储器)、EEPROM(Electrically ErasableProgrammable Read-Only Memory,电可擦可编程只读存储器)、闪存、磁性卡片或光线卡片。也就是,可读介质包括由设备(例如,计算机)以能够读的形式存储或传输信息的任何介质。
本技术领域技术人员可以理解,可以用计算机程序指令来实现这些结构图和/或框图和/或流图中的每个框以及这些结构图和/或框图和/或流图中的框的组合。本技术领域技术人员可以理解,可以将这些计算机程序指令提供给通用计算机、专业计算机或其他可编程数据处理方法的处理器来实现,从而通过计算机或其他可编程数据处理方法的处理器来执行本发明公开的结构图和/或框图和/或流图的框或多个框中指定的方案。
本技术领域技术人员可以理解,本发明中已经讨论过的各种操作、方法、流程中的步骤、措施、方案可以被交替、更改、组合或删除。进一步地,具有本发明中已经讨论过的各种操作、方法、流程中的其他步骤、措施、方案也可以被交替、更改、重排、分解、组合或删除。进一步地,现有技术中的具有与本发明中公开的各种操作、方法、流程中的步骤、措施、方案也可以被交替、更改、重排、分解、组合或删除。
以上所述仅是本发明的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。