一种设备UI自动化测试方法、装置、电子设备和介质与流程

文档序号:19906432发布日期:2020-02-11 14:33阅读:203来源:国知局
一种设备UI自动化测试方法、装置、电子设备和介质与流程

本发明涉及自动化测试领域,特别涉及一种设备ui自动化测试方法、装置、电子设备和介质。



背景技术:

终端设备是一种经由通信设施向计算机输入程序和数据或接收计算机输出处理结果的设备。终端设备通常设置在能利用通信设施与远处计算机联接工作的方便场所,它主要由通信接口控制装置与专用或选定的输入输出装置组合而成;众多分散的终端设备经由通信设施而与计算机联接的系统称为联机系统。

随着计算机技术的飞速发展,终端设备目前已在人们的日常生活中得到了广泛的使用,也为人们的生活带来了诸多的方便。为了确保终端设备能够正常使用,各终端设备在进入市场之前都需要经过测试环节,而终端设备的自动化测试一直是业界难题,尤其是嵌入式终端设备上lcdui(即界面)显示以及触摸屏点击、按键点击等的测试,都需要由人工进行操作,这也导致整体测试效率极其低下。

当然,目前也存在有少数特定的ui自动化测试工具,例如uiautomator和appnium,其中,uiautomator是谷歌发布安卓系统时同时发布的原生测试工具,appnium是基于uiautomator进行封装后的测试工具。但是,uiautomator和appnium测试的都是纯后台数据,不方便查看是否有显示异常;且uiautomator和appnium都仅适用于安卓系统的终端设备的ui自动化测试,通用性极差。



技术实现要素:

本发明要解决的技术问题,在于提供一种设备ui自动化测试方法、装置、电子设备和介质,解决现有终端设备的ui测试需依赖人工操作导致的测试效率低下的问题。

第一方面,本发明提供了一种设备ui自动化测试方法,所述方法包括:

运行python脚本启动浏览器,通过浏览器向web端的设备网页服务应用发送ui测试请求;

通过界面管理应用接收web端的设备网页服务应用响应于所述ui测试请求并发送的请求界面html数据的消息;

界面管理应用响应于所述请求界面html数据的消息,遍历当前界面显示的所有控件生成html界面数据,并将html界面数据返回给web端的设备网页服务应用;

浏览器接收web端的设备网页服务应用将html界面数据与web资源进行整合后并返回的待显示web数据;

浏览器解析所述待显示web数据并进行显示,且将显示结果返回给python脚本。

进一步地,所述方法还包括:

运行python脚本发送点击事件给浏览器,浏览器构建点击测试请求,将点击测试请求发送给web端的设备网页服务应用;

通过界面管理应用接收web端的设备网页服务应用响应于所述点击测试请求并解析发送的参数;

界面管理应用通过参数找到对应的控件坐标,并通知硬件管理层根据所述控件坐标触发点击事件,同时将点击结果返回给web端的设备网页服务应用;

浏览器接收web端的设备网页服务应用返回的点击结果,并由浏览器将点击结果返回给python脚本。

进一步地,所述运行python脚本启动浏览器,通过浏览器向web端的设备网页服务应用发送ui测试请求具体为:

运行python脚本,通过selenium测试工具来启动浏览器,浏览器在地址栏中自动输入终端设备ip,并根据终端设备ip以http请求的方式向web端的设备网页服务应用发送ui测试请求。

进一步地,所述浏览器构建点击测试请求,将点击测试请求发送给web端的设备网页服务应用具体为:浏览器在接收到python脚本发送的点击事件后,触发控件的点击事件,并获取点击事件的控件参数构建点击测试请求,所述控件参数至少包含控件id;浏览器以http请求的方式将构建出的点击测试请求发送给web端的设备网页服务应用。

第二方面,本发明提供了一种设备ui自动化测试装置,所述装置包括第一测试请求模块、消息接收模块、界面数据返回模块、web数据接收模块以及web数据显示模块;

所述第一测试请求模块,用于运行python脚本启动浏览器,通过浏览器向web端的设备网页服务应用发送ui测试请求;

所述消息接收模块,用于通过界面管理应用接收web端的设备网页服务应用响应于所述ui测试请求并发送的请求界面html数据的消息;

所述界面数据返回模块,用于界面管理应用响应于所述请求界面html数据的消息,遍历当前界面显示的所有控件生成html界面数据,并将html界面数据返回给web端的设备网页服务应用;

所述web数据接收模块,用于浏览器接收web端的设备网页服务应用将html界面数据与web资源进行整合后并返回的待显示web数据;

所述web数据显示模块,用于浏览器解析所述待显示web数据并进行显示,且将显示结果返回给python脚本。

进一步地,所述装置还包括第二测试请求模块、参数接收模块、事件触发模块以及结果返回模块;

所述第二测试请求模块,用于运行python脚本发送点击事件给浏览器,浏览器构建点击测试请求,将点击测试请求发送给web端的设备网页服务应用;

所述参数接收模块,用于通过界面管理应用接收web端的设备网页服务应用响应于所述点击测试请求并解析发送的参数;

所述事件触发模块,用于界面管理应用通过参数找到对应的控件坐标,并通知硬件管理层根据所述控件坐标触发点击事件,同时将点击结果返回给web端的设备网页服务应用;

所述结果返回模块,用于浏览器接收web端的设备网页服务应用返回的点击结果,并由浏览器将点击结果返回给python脚本。

进一步地,所述运行python脚本启动浏览器,通过浏览器向web端的设备网页服务应用发送ui测试请求具体为:

运行python脚本,通过selenium测试工具来启动浏览器,浏览器在地址栏中自动输入终端设备ip,并根据终端设备ip以http请求的方式向web端的设备网页服务应用发送ui测试请求。

进一步地,所述浏览器构建点击测试请求,将点击测试请求发送给web端的设备网页服务应用具体为:浏览器在接收到python脚本发送的点击事件后,触发控件的点击事件,并获取点击事件的控件参数构建点击测试请求,所述控件参数至少包含控件id;浏览器以http请求的方式将构建出的点击测试请求发送给web端的设备网页服务应用。

第三方面,本发明提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现第一方面所述的方法。

第四方面,本发明提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现第一方面所述的方法。

本发明实施例中提供的一个或多个技术方案,至少具有如下技术效果或优点:

本发明实施例提供的方法、装置、设备和介质,能够替代人工操作进行终端设备lcdui显示与控制以及触摸屏点击、按键点击等点击事件的自动化测试,可很大的提升对终端设备的整体测试效率。

上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。

附图说明

下面参照附图结合实施例对本发明作进一步的说明。

图1为本发明中终端设备的系统框架图。

图2为本发明中界面管理应用、设备网页服务应用以及python脚本之间进行通信的原理框图。

图3为本发明实施例一中一种设备ui自动化测试方法的时序图。

图4为本发明实施例二中装置在执行ui显示测试时的结构示意图。

图5为本发明实施例二中装置在执行点击事件测试时的结构示意图。

具体实施方式

本发明实施例通过提供一种设备ui自动化测试方法、装置、电子设备及介质,用于解决现有终端设备的ui测试需依赖人工操作导致的测试效率低下的问题,能够很大的提升整体测试效率。

本发明实施例中的技术方案,总体思路如下:

依据终端设备lcdui与webui的元素属性基本一致,将终端设备ui显示的元素映射为webui的元素,以使得能够在web端原封不动的将坐标、配色、尺寸等显示出来,同时根据ui坐标注入点击事件到触摸屏设备/dev/input/eventx;然后利用成熟丰富的webui自动化测试工具selenium对ui显示和点击事件进行测试。换句话说,本发明的核心思想其实就是:将终端设备ui控件动态生成为html控件给web服务器进行显示,它是一个纯软件的处理过程。

在介绍具体实施例之前,先介绍本发明实施例方法所对应的终端设备的系统框架,如图1所示,对于现有的终端设备,不管是安卓系统的终端设备还是linux系统的终端设备,基本都会包含硬件、linux系统内核、设备硬件控制层和应用程序;其中,硬件是指构成终端设备的电子材料,包括lcd液晶、触摸屏、网卡等;linux系统内核是linux组织发布的系统,在linux系统内核中包含有触摸屏驱动、lcd液晶驱动、网络协议栈等;设备硬件控制层是指为了方便应用程序控制底层硬件提供的接口。

在本发明的技术方案中,主要包括三个部件:界面管理应用、设备网页服务应用以及python脚本;三个部件之间的通信如图2所示,其中,python脚本通过selenium测试工具与浏览器(如谷歌浏览器等)通信,浏览器通过http协议与设备网页服务应用进行通信,设备网页服务应用通过ipc:unixsocket与界面管理应用进行通信。

所述界面管理应用是指终端设备lcd上显示界面的应用,根据业务功能分为界面绘制、界面控件管理以及业务逻辑的界面切换三个功能,这些功能通过使用mvc框架根据业务需要进行互相调用实现。

所述设备网页服务应用是指为了方面用户管理终端设备而提供的web入口,用户可以使用浏览器打开终端设备网页,并对终端设备进行配置或者控制。所述设备网页服务应用主要包含web服务器、web界面控制和web资源,其中,web服务器是指用于响应浏览器请求的后台服务,当接收到请求后,web服务器会对请求进行解析生成环境变量;web界面控制是指用于响应web服务器生成的环境变量,调用内部逻辑生成html页面给浏览器进行显示;web资源是指用于提供图标、html静态页面等。

所述python脚本则是自动化测试的控制入口,具体可根据业务需要进行实现。

接下来开始介绍本发明具体实施例:

实施例一

本实施例提供一种设备ui自动化测试方法,如图3所示,所述方法包括:

运行python脚本启动浏览器,通过浏览器向web端的设备网页服务应用发送ui测试请求;

通过界面管理应用接收web端的设备网页服务应用响应于所述ui测试请求并发送的请求界面html数据的消息;在具体实施时,当web端的设备网页服务应用接收到所述ui测试请求后,设备网页服务应用会对所述ui测试请求进行解析并获取参数表,然后再根据获取的参数表发送界面html数据的请求消息给界面管理应用;

界面管理应用响应于所述请求界面html数据的消息,遍历当前界面显示的所有控件生成html界面数据,并将html界面数据返回给web端的设备网页服务应用;即在具体实施时,当界面管理应用接收到界面html数据的请求消息后,会去遍历当前界面显示的所有控件来生成html界面数据,从而实现将终端设备ui显示的元素映射为webui的元素;

浏览器接收web端的设备网页服务应用将html界面数据与web资源进行整合后并返回的待显示web数据;在具体实施时,当web端的设备网页服务应用接收到html界面数据后,会通知web界面控制将该html界面数据与静态html数据和其它web资源进行整合生成待显示web数据(即完整html数据)。

浏览器解析所述待显示web数据并进行显示,且将显示结果返回给python脚本,至此就完成了ui显示的测试。

在本实施例一中,所述方法还包括:

运行python脚本发送点击事件给浏览器,浏览器构建点击测试请求,将点击测试请求发送给web端的设备网页服务应用;其中,点击事件可以包括按键点击、输入框的输入点击等各种点击事件;

通过界面管理应用接收web端的设备网页服务应用响应于所述点击测试请求并解析发送的参数;在具体实施时,当web端的设备网页服务应用接收到点击测试请求后,会对点击测试请求进行解析并获取参数,然后将获取的参数发送给界面管理应用,参数中包括控件id和其它参数;

界面管理应用通过参数(即控件id和其它参数)找到对应的控件坐标,并通知硬件管理层根据所述控件坐标触发点击事件,同时将点击结果返回给web端的设备网页服务应用;

浏览器接收web端的设备网页服务应用返回的点击结果,并由浏览器将点击结果返回给python脚本,至此就完成了点击事件的测试。

在本实施例一中,所述运行python脚本启动浏览器,通过浏览器向web端的设备网页服务应用发送ui测试请求具体为:

运行python脚本,通过selenium测试工具来启动浏览器,浏览器在地址栏中自动输入终端设备ip,并根据终端设备ip以http请求的方式向web端的设备网页服务应用发送ui测试请求。

在本实施例一中,所述浏览器构建点击测试请求,将点击测试请求发送给web端的设备网页服务应用具体为:浏览器在接收到python脚本发送的点击事件后,触发控件的点击事件,并获取点击事件的控件参数构建点击测试请求,所述控件参数至少包含控件id;浏览器以http请求的方式将构建出的点击测试请求发送给web端的设备网页服务应用。

基于同一发明构思,本发明还提供了与实施例一中的方法对应的装置,详见实施例二。

实施例二

在本实施例中提供了一种设备ui自动化测试装置,如图4所示,所述装置包括第一测试请求模块、消息接收模块、界面数据返回模块、web数据接收模块以及web数据显示模块;

所述第一测试请求模块,用于运行python脚本启动浏览器,通过浏览器向web端的设备网页服务应用发送ui测试请求;

所述消息接收模块,用于通过界面管理应用接收web端的设备网页服务应用响应于所述ui测试请求并发送的请求界面html数据的消息;在具体实施时,当web端的设备网页服务应用接收到所述ui测试请求后,设备网页服务应用会对所述ui测试请求进行解析并获取参数表,然后再根据获取的参数表发送界面html数据的请求消息给界面管理应用;

所述界面数据返回模块,用于界面管理应用响应于所述请求界面html数据的消息,遍历当前界面显示的所有控件生成html界面数据,并将html界面数据返回给web端的设备网页服务应用;即在具体实施时,当界面管理应用接收到界面html数据的请求消息后,会去遍历当前界面显示的所有控件来生成html界面数据,从而实现将终端设备ui显示的元素映射为webui的元素;

所述web数据接收模块,用于浏览器接收web端的设备网页服务应用将html界面数据与web资源进行整合后并返回的待显示web数据;在具体实施时,当web端的设备网页服务应用接收到html界面数据后,会通知web界面控制将html界面数据与静态html数据和其它web资源进行整合生成待显示web数据(即完整html数据);

所述web数据显示模块,用于浏览器解析所述待显示web数据并进行显示,且将显示结果返回给python脚本,至此就完成了ui显示的测试。

在本发明实施例二中,如图5所示,所述装置还包括第二测试请求模块、参数接收模块、事件触发模块以及结果返回模块;

所述第二测试请求模块,用于运行python脚本发送点击事件给浏览器,浏览器构建点击测试请求,将点击测试请求发送给web端的设备网页服务应用;其中,点击事件可以包括按键点击、输入框的输入点击等各种点击事件;

所述参数接收模块,用于通过界面管理应用接收web端的设备网页服务应用响应于所述点击测试请求并解析发送的参数;在具体实施时,当web端的设备网页服务应用接收到点击测试请求后,会对点击测试请求进行解析并获取参数,然后将获取的参数发送给界面管理应用,参数中包括控件id和其它参数;

所述事件触发模块用于界面管理应用通过参数(即控件id和其它参数)找到对应的控件坐标,并通知硬件管理层根据所述控件坐标触发点击事件,同时将点击结果返回给web端的设备网页服务应用;

所述结果返回模块,用于浏览器接收web端的设备网页服务应用返回的点击结果,并由浏览器将点击结果返回给python脚本,至此就完成了点击事件的测试。

在本实施例二中,所述运行python脚本启动浏览器,通过浏览器向web端的设备网页服务应用发送ui测试请求具体为:

运行python脚本,通过selenium测试工具来启动浏览器,浏览器在地址栏中自动输入终端设备ip,并根据终端设备ip以http请求的方式向web端的设备网页服务应用发送ui测试请求。

在本实施例二中,所述浏览器构建点击测试请求,将点击测试请求发送给web端的设备网页服务应用具体为:浏览器在接收到python脚本发送的点击事件后,触发控件的点击事件,并获取点击事件的控件参数构建点击测试请求,所述控件参数至少包含控件id;浏览器以http请求的方式将构建出的点击测试请求发送给web端的设备网页服务应用。

基于同一发明构思,本发明提供了实施例一对应的电子设备实施例,详见实施例三。

实施例三

本实施例提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时,可以实现实施例一中的实施方式。

由于本实施例所介绍的电子设备为实施本发明实施例一中方法所采用的设备,故而基于本发明实施例一中所介绍的方法,本领域所属技术人员能够了解本实施例的电子设备的具体实施方式以及其各种变化形式,所以在此对于该电子设备如何实现本发明实施例中的方法不再详细介绍。只要本领域所属技术人员实施本发明实施例中的方法所采用的设备,都属于本发明所欲保护的范围。

基于同一发明构思,本发明提供了实施例一对应的存储介质,详见实施例四。

实施例四

本实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时,可以实现实施例一中的实施方式。

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

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

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

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

综上所述,本发明实施例中提供的技术方案,至少具有如下技术效果或优点:本发明实施例提供的方法、装置、电子设备及介质,能够替代人工操作进行终端设备lcdui显示与控制以及触摸屏点击、按键点击等点击事件的自动化测试,可很大的提升对终端设备的整体测试效率。同时,本发明的技术方案在具体使用时还具有以下优势:

①方便性,该自动化测试的方案几乎能够在web上实时显示终端设备ui和具体的元素属性,可十分方便进行显示异常查看;而不像安卓设备自动化工具appnium、uiautomator属于纯后台数据,不方便查看是否有显示异常。

②易集成,该自动化测试方案使用的是webui自动化工具(selenium),因此,能够与现有的web自动化测试使用同一套工具和接口,而无需再学习其他工具。

③易移植实现,在不同的终端设备上只需要实现ui映射功能,其他部分都是复用的。

④易拓展,可以将非ui相关的功能也实现映射功能,并在web端进行测试或者控制。

虽然以上描述了本发明的具体实施方式,但是熟悉本技术领域的技术人员应当理解,我们所描述的具体的实施例只是说明性的,而不是用于对本发明的范围的限定,熟悉本领域的技术人员在依照本发明的精神所作的等效的修饰以及变化,都应当涵盖在本发明的权利要求所保护的范围内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1