基于UIAutomator的自动化测试方法及装置与流程

文档序号:11918277阅读:478来源:国知局
基于UIAutomator的自动化测试方法及装置与流程

本发明涉及测试技术领域,具体而言,涉及基于UIAutomator的自动化测试方法及装置。



背景技术:

随着自动化测试技术的普及,对设备的用户界面(UI,User Interface)进行测试逐渐由手工测试转为UI自动化测试。UI自动化测试,主要包含网页UI自动化测试和本地应用程序UI自动化测试。手工测试中,是由测试人员根据测试用例中描述的规程一步步执行测试,得到实际结果与期望结果的比较;而UI自动化测试中,是由机器按照用户编写的自动化脚本模拟用户针对UI中的控件操作。目前,基于UIAutomator(安卓自动化测试)的自动化测试大多通过CMD命令窗口执行,每次均需将手机通过USB连接到计算机上,才能执行自动化脚本。甚至要求执行设备都要搭建相应的环境,才能运行自动化脚本脚本,操作不够便捷,用户体验不好。



技术实现要素:

本发明正是基于上述问题,提出了一种基于UIAutomator的自动化测试方法及装置,可以快捷有效的触发执行自动化脚本。

有鉴于此,本发明的一方面提出了一种基于UIAutomator的自动化测试方法,包括:

响应用户对安装在手机上的APK中一按钮控件的点击操作,调用相应的自动化脚本,触发执行该自动化脚本;

其中,手机上存储有至少一自动化脚本;所述APK包括用于调用所述自动化脚本的至少一按钮控件,每一按钮控件对应一所述自动化脚本。

进一步地,所述APK包括自动化脚本更新按钮控件,所述基于UIAutomator的自动化测试方法还包括:

在计算机开启PHP服务器,并对所述PHP服务器进行配置;

存储所述自动化脚本至所述PHP服务器地址目录下;

响应用户对所述自动化脚本更新按钮控件的点击操作,接收从该PHP服务器地址下载的自动化脚本,并存储该自动化脚本到手机指定目录。

进一步地,所述APK包括待测APP覆盖更新按钮控件和待测APP卸载更新按钮控件,还包括:

在计算机开启PHP服务器,并对所述PHP服务器进行配置;

响应用户对所述待测APP覆盖更新按钮控件的点击操作,接收从所述PHP服务器下载的待测APK文件到手机指定目录,安装所述待测APK文件;或

响应用户对所述待测APP卸载更新按钮控件的点击操作,接收从所述PHP服务器下载的待测APK文件到手机指定目录,卸载手机上的待测APP,安装待测APK文件。

进一步地,所述基于UIAutomator的自动化测试方法还包括:

响应用户对计算机上的抓包工具的脚本文件的修改操作,开启所述抓包工具的实时保存日志功能;

响应用户的抓包请求,开启所述抓包工具;

基于用户在手机上的连接配置操作,使得手机连接所述抓包工具;

计算机上的抓包工具实时保存执行所述自动化脚本时生成的抓包日志,并从所述抓包日志中截取可用数据,更新存储的测试报告;

检测所述自动化脚本是否执行完毕,如果尚未执行完毕,执行上一步骤,如果执行完毕,弹窗提示用户到指定目录查看所述测试报告。

进一步地,所述“从所述抓包日志中截取可用数据,更新存储的测试报告”包括:

在所述计算机开启PHP服务器,并对所述PHP服务器进行配置;;

封装预先编写的用于数据截取的PHP程序为一PHP接口,添加所述PHP接口到所述自动化脚本中;

所述自动化脚本调用所述PHP接口,从所述抓包日志中截取可用数据,填充所述可用数据到存储的测试报告中。

本发明另一方面提供了一种基于UIAutomator的自动化测试装置,包括:

触发模块,响应用户对安装在手机上的APK中一按钮控件的点击操作,调用相应的自动化脚本,触发执行该自动化脚本;

其中,手机上存储有至少一自动化脚本;所述APK包括用于调用所述自动化脚本的至少一按钮控件,每一按钮控件对应一所述自动化脚本。

进一步地,所述APK包括自动化脚本更新按钮控件,还包括自动化脚本更新模块,所述自动化脚本更新模块包括:

服务器单元,用于在计算机开启PHP服务器,并对所述PHP服务器进行配置;

存储单元,用于存储所述自动化脚本至PHP服务器地址目录下;

更新单元,用于响应用户对所述自动化脚本更新按钮控件的点击操作,接收从该PHP服务器地址下载的自动化脚本,并存储该自动化脚本到手机指定目录。

进一步地,所述APK包括待测APP覆盖更新按钮控件和待测APP卸载更新按钮控件,还包括待测APP更新模块,所述待测APP更新模块包括:

服务器单元,用于在计算机开启PHP服务器,并对所述PHP服务器进行配置;

覆盖安装单元,用于响应用户对所述待测APP覆盖更新按钮控件的点击操作,接收从所述PHP服务器下载的待测APK文件到手机指定目录,安装所述待测APK文件;

卸载安装单元,用于响应用户对所述待测APP卸载更新按钮控件的点击操作,接收从所述PHP服务器下载的待测APK文件到手机指定目录,卸载手机上的待测APP,安装待测APK文件。

进一步地,所述基于UIAutomator的自动化测试装置还包括测试模块,所述测试模块包括:

实时保存单元,用于响应用户对计算机上的抓包工具的脚本文件的修改操作,开启所述抓包工具的实时保存日志功能;

抓包单元,用于响应用户的抓包请求,开启所述抓包工具;

连接单元,用于基于用户在手机上的连接配置操作,使得手机连接所述抓包工具;

报告单元,用于计算机上的抓包工具实时保存执行所述自动化脚本时生成的抓包日志,并从所述抓包日志中截取可用数据,更新存储的测试报告;

检测单元,用于检测所述自动化脚本是否执行完毕;

提示单元,用于当执行完毕时,弹窗提示用户到指定目录查看所述测试报告。

进一步地,所述测试模块还包括:

服务器单元,用于在所述计算机开启PHP服务器,并对所述PHP服务器进行配置;

PHP接口单元,用于封装预先编写的用于数据截取的PHP程序为一PHP接口,添加所述PHP接口到所述自动化脚本中;

填充单元,用于所述自动化脚本调用所述PHP接口,从所述抓包日志中截取可用数据,填充所述可用数据到存储的测试报告中。

本发明实施例提供的基于UIAutomator的自动化测试方法及装置,通过APK一键触发自动化脚本的执行,不需依赖控制台执行命令,提高测试效率。

为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1示出了本发明实施例提供的基于UIAutomator的自动化测试方法的流程示意图;

图2示出了本发明实施例提供的基于UIAutomator的自动化测试装置的结构示意图;

图3示出了图2所示的基于UIAutomator的自动化测试装置的自动化脚本更新模块的结构示意图;

图4示出了图2所示的基于UIAutomator的自动化测试装置的待测APP更新模块的结构示意图;

图5示出了图2所示的基于UIAutomator的自动化测试装置的测试模块的结构示意图。

主要元件符号说明:

100-基于UIAutomator的自动化测试装置;10-触发模块;20-自动化脚本更新模块;21、31-服务器单元;22-存储单元;23-更新单元;30-待测APP更新模块;32-覆盖安装单元;33-卸载安装单元;40-测试模块;41-实时保存单元;42-抓包单元;43-连接单元;44-报告单元;45-检测单元;46-提示单元。

具体实施方式

为了便于理解本发明,下面将参照相关附图对基于UIAutomator的自动化测试方法及装置进行更清楚、完整地描述。附图中给出了基于UIAutomator的自动化测试方法及装置的优选实施例。基于UIAutomator的自动化测试方法及装置可以通过许多不同的形式来实现,并不限于本文所描述的实施例。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。

实施例1

图1示出了本发明实施例提供的基于UIAutomator的自动化测试方法的流程示意图。

如图1所示,本发明提供的一种基于UIAutomator的自动化测试方法,包括:

步骤S1,响应用户对安装在手机上的APK的点击操作,触发执行手机上的自动化脚本。

具体地,响应用户的抓包请求,开启计算机上的抓包工具。

本实施例中,所述抓包工具用于在安卓(Android)自动化脚本,即UIAutomator自动化脚本执行过程中,根据用户设置的断点进行抓包并更新存储的抓包日志,可以是Fiddler、charles等抓包软件。

进一步地,基于用户在手机上的连接配置操作,使得手机连接所述抓包工具。

目前,多数UIAutomator自动化脚本均通过cmd命令窗口执行,且每次都需要将手机通过USB连接到计算机,才能执行UIAutomator自动化脚本,较为繁琐,用户体验不好。本实施例中,根据用户在手机端的简单配置即可实现与所述抓包工具的通信连接。具体地,当用户设置手机上的代理服务器主机名为所述计算机的IP地址,及设置手机上的代理服务器端口为抓包工具的监听端口,例如“8888”,从而抓包工具可以对自动化脚本的执行进行监听。

进一步地,响应用户对所述抓包工具的脚本文件的修改操作,开启所述抓包工具的实时保存日志功能。

需要说明的是,本实施例中的抓包工具应当具有将更新的抓包日志实时保存至本地计算机相应目录的功能,即实时保存日志功能。然而,很多现有抓包工具在计算机上首次安装后,并没有实时保存日志功能,需要用户对所述抓包工具的脚本文件作相应修改,才能使得抓包工具具有实时保存日志功能。优选地,在对所述抓包工具的脚本文件作相应修改后,抓包工具中生成与实时保存日志功能对应的快捷菜单,避免了后续再次利用对抓包工具时,重新修改脚本文件的麻烦。

本实施例中,所述APK是可以触发执行自动化脚本的软件,包括至少一按钮控件。打开所述APK,初始化APP上各个按钮控件内置的程序逻辑,生成并在手机上显示所有按钮控件,响应用户对所述APK中一按钮控件的点击操作。手机上存储有至少一自动化脚本,每一按钮控件对应一所述自动化脚本。本实施例中,所述按钮控件包括自动化脚本触发按钮控件,待测APP覆盖更新按钮控件、待测APP卸载更新按钮控件或自动化脚本更新按钮控件等。

具体地,响应用户对所述自动化脚本触发按钮控件的点击操作,调用相应的自动化脚本,触发执行手机上的自动化脚本。容易发现,用户只需要点击自动化脚本触发按钮控件即可一键触发保存在手机上的自动化脚本,无需搭建任何执行环境,且实现完全脱离计算机运行,操作便捷。尤其在手机上保存了多个不同的自动化脚本的情况下,可以通过APK上不同的按钮控件一键触发对应的自动化脚本,例如,通过“脚本1”按钮控件触发执行微信APP对应的脚本文件,通过“脚本2”按钮控件触发执行淘宝APP对应的脚本文件,使得操作更方便高效。优选地,本实施例中,自动化脚本和APK是完全分离的,换句话说,如果用户对自动化脚本做出修改,只要自动化脚本的名称没有发生改变,APK无需作任何修改同样适用,用户只需要把自动化脚本重新下载到手机上,即可实现一键触发该自动化脚本的执行。

进一步地,在计算机开启PHP服务器,并对所述PHP服务器进行配置,从而搭建PHP集成环境,存储所述自动化脚本至该PHP服务器地址目录下。响应用户对所述自动化脚本更新按钮控件的点击操作,接收从该PHP服务器地址下载的自动化脚本,存储该自动化脚本到手机指定目录,从而更新手机上的自动化脚本。

进一步地,响应用户对所述待测APP覆盖更新按钮控件的点击操作,接收从所述PHP服务器下载的待测APK文件到手机指定目录,安装所述待测APK文件,从而覆盖安装待测APP。

进一步地,响应用户对所述待测APP卸载更新按钮控件的点击操作,接收从所述PHP服务器下载的待测APK文件到手机指定目录,卸载手机上的待测APP,安装待测APK文件,从而卸载安装待测APP。

可以理解,用户界面的测试过程通常需要多次更改多次测试,自动化脚本更新按钮控件和待测APP更新按钮控件的设置避免了多次更新自动化脚本或待测APP的繁琐。

步骤S2,计算机上的抓包工具实时保存执行所述自动化脚本时生成的抓包日志,并从所述抓包日志中截取可用数据,更新存储的测试报告。

具体地,计算机上的抓包工具在自动化脚本执行到用户设置的每一检测点时进行抓包,并生成抓包日志。所述抓包工具实时保存执行所述自动化脚本时生成的抓包日志。

现有技术中对自动化脚本的执行结果检测时,通常采用图片对比的方法,即先把自动化脚本执行的正确结果图片保存起来,待自动化脚本执行到设置的某一检测点时自动截图并与正确结果图片对比。如果设置的检测点较多,就需要保存比较多的截图。此外,当UI发生了变化时,需要新获取正确结果的截图并保存,较为繁琐,降低测试效率。本实施例中,基于安卓自带自动化工具UIAutomator,结合抓包工具实时生成抓包日志,并从抓包日志里面截取有用信息并添加到测试报告,可以精准、快捷、有效的实现自动化脚本执行的结果的检测。

具体地,从所述抓包日志中直接截取可用数据,更新到存储的测试报告中。对用户编写的用于数据截取的PHP程序进行封装,使之成为一PHP接口,并添加该PHP接口到所述自动化脚本中。自动化脚本调用该PHP接口处理所述抓包日志,并从所述抓包日志中截取可用数据,填充所述可用数据到存储的测试报告中。所述PHP接口包含用户根据测试对象的属性特征设置的数据筛选规则。此外,本实施例中,所述测试报告是以excel表格的形式,用从抓包日志中截取的可用数据填充该excel表格,从而更新所述测试报告,用户可以在计算机端查看测试报告。当然,所述测试报告还可以是其他形式,这里不做限制。

另一实施例中,该基于UIAutomator的自动化测试方法与现有的图片对比方法相结合,使得测试结果校验更精准,报告内容更丰富。需要说明的是,该方法适用于所有需要对抓包日志进行分析的测试中,如PC自动化测试、iOS自动化测试等。

步骤S3,检测所述自动化脚本是否执行完毕。

当所述自动化脚本尚未执行完毕时,执行步骤S2。可以理解,只要所述自动化脚本尚未执行完毕,抓包工具需要持续抓包并更新抓包日志。

步骤S4,当所述自动化脚本执行完毕时,通过手机弹窗提示用户到指定目录查看所述测试报告。

实施例2

图2示出了本发明实施例提供的基于UIAutomator的自动化测试装置的结构示意图。

如图2所示,本发明提供的一种基于UIAutomator的自动化测试装置100,包括触发模块10、自动化脚本更新模块20和待测APP更新模块30。

触发模块10用于响应用户对安装在手机上的APK中一按钮控件的点击操作,调用相应的自动化脚本,触发执行该自动化脚本。

所述APK包括至少一按钮控件。本实施例中,所述按钮控件包括自动化脚本触发按钮控件,待测APP覆盖更新按钮控件、待测APP卸载更新按钮控件或自动化脚本更新按钮控件等。

自动化脚本更新模块20用于更新手机上的自动化脚本。请一并参阅图3所示,本实施例中,自动化脚本更新模块20包括服务器单元21、存储单元22和更新单元23。

服务器单元21用于在计算机搭建PHP集成环境,开启所述PHP服务器。

存储单元22用于存储所述自动化脚本至PHP服务器地址目录下。

更新单元23用于响应用户对所述自动化脚本更新按钮控件的点击操作,接收从该PHP服务器地址下载的自动化脚本,存储该自动化脚本到手机指定目录。

待测APP更新模块30用于更新手机上的待测APP。请一并参阅图4所示,本实施例中,待测APP更新模块30包括服务器单元31、覆盖安装单元32和卸载安装单元33。

服务器单元31用于在计算机搭建PHP集成环境,开启PHP服务器。

覆盖安装单元32用于响应用户对所述待测APP覆盖更新按钮控件的点击操作,接收从所述PHP服务器下载的待测APK文件到手机指定目录,安装所述待测APK文件。

卸载安装单元33用于响应用户对所述待测APP卸载更新按钮控件的点击操作,接收从所述PHP服务器下载的待测APK文件到手机指定目录,卸载手机上的待测APP,安装待测APK文件。

另一实施例中,基于UIAutomator的自动化测试装置100还包括测试模块40。

测试模块40用于实时保存执行所述自动化脚本时生成的抓包日志,并从所述抓包日志中截取可用数据,更新存储的测试报告。请一并参阅图5所示,本实施例中,测试模块40包括实时保存单元41、抓包单元42、连接单元43、报告单元44、检测单元45和提示单元46。

实时保存单元41用于响应用户对计算机上的抓包工具的脚本文件的修改操作,开启所述抓包工具的实时保存日志功能;

抓包单元42用于响应用户的抓包请求,开启所述抓包工具。

连接单元43用于基于用户在手机上的连接配置操作,使得手机连接所述抓包工具。

报告单元44用于计算机上的抓包工具实时保存执行所述自动化脚本时生成的抓包日志,并从所述抓包日志中截取可用数据,更新存储的测试报告。本实施例中,报告单元44包括服务器单元、PHP接口单元和填充单元。

服务器单元用于在所述计算机搭建PHP集成环境,开启PHP服务器。

PHP接口单元用于封装预先编写的用于数据截取的PHP程序为一PHP接口,添加所述PHP接口到所述自动化脚本中。

填充单元用于所述自动化脚本调用所述PHP接口,从所述抓包日志中截取可用数据,填充所述可用数据到存储的测试报告中。

检测单元45用于检测所述自动化脚本是否执行完毕。

提示单元46用于当执行完毕时,弹窗提示用户到指定目录查看所述测试报告。

本发明实施例提供的基于UIAutomator的自动化测试方法及装置,通过APK一键触发自动化脚本的执行,不需依赖控制台执行命令,提高测试效率。

由于UIAutomator的自动化脚本是在手机上运行的,本发明实施例所提供的系统,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,系统实施例部分未提及之处,可参考前述方法实施例中相应内容。

在这里示出和描述的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是为限制,因此,示例性实施例的其他示例可以具有不同的值。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。

在本申请所提供的几个实施例中,应该理解到,所揭露的装置可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述为分离部件说明的单元可以是或者也可以不是物理上分开的,为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

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