用于移动端的应用测试方法、装置、设备及存储介质制造方法及图纸

技术编号:29872763 阅读:13 留言:0更新日期:2021-08-31 23:47
本公开公开了一种用于移动端的应用测试方法,涉及计算机技术领域,尤其涉及软件测试领域,可用于UI测试和AI测试场景。具体实现方案为:获取需要在移动端执行的应用测试任务,其中,移动端上部署有安卓调试桥ADB和ADB守护进程ADBD;基于应用测试任务的类型,调用对应的测试逻辑;以及通过执行测试逻辑来完成应用测试任务,并在测试过程中由ADB和/或ADBD执行相应的ADB命令。

【技术实现步骤摘要】
用于移动端的应用测试方法、装置、设备及存储介质
本公开涉及计算机
,尤其涉及软件测试领域,可用于UI测试场景。具体涉及一种用于移动端的应用测试方法、装置、设备及存储介质。
技术介绍
随着移动互联网技术的高速发展,App种类越来越多,功能也越来越复杂,更新换代也越来越快。为了提高App测试效率,市面上纷纷涌现出了Appium、Uiautomator、Uiautomator2、Airtest等一系列UI测试框架。这些测试框架通常都需要依赖ADB(AndroidDebugBridge,简称安卓调试桥)命令。
技术实现思路
本公开提供了一种用于移动端的应用测试方法、装置、设备、存储介质以及计算机程序产品。根据本公开的一方面,提供了一种用于移动端的应用测试方法,包括:获取需要在所述移动端执行的应用测试任务,其中,所述移动端上部署有安卓调试桥ADB和ADB守护进程ADBD;基于所述应用测试任务的类型,调用对应的测试逻辑;以及通过执行所述测试逻辑来完成所述应用测试任务,并在测试过程中由所述ADB和/或所述ADBD执行相应的ADB命令。根据本公开的另一方面,提供了一种用于移动端的应用测试装置,包括:获取模块,用于获取需要在所述移动端执行的应用测试任务,其中,所述移动端上部署有安卓调试桥ADB和ADB守护进程ADBD;调用模块,用于基于所述应用测试任务的类型,调用对应的测试逻辑;以及测试模块,用于通过执行所述测试逻辑来完成所述应用测试任务,并在测试过程中由所述ADB和/或所述ADBD执行相应的ADB命令。根据本公开的另一方面,提供了一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本公开实施例所述的方法。根据本公开的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据本公开实施例所述的方法。根据本公开的另一方面,提供了一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现根据本公开实施例所述的方法。应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。附图说明附图用于更好地理解本方案,不构成对本公开的限定。其中:图1示例性示出了适于本公开实施例的系统架构;图2示例性示出了根据本公开实施例的用于移动端的应用测试方法的流程图;图3示例性示出了根据本公开实施例的ADB与ADBD之间的连接逻辑图;图4示例性示出了根据本公开实施例的任务执行示意图;图5示例性示出了根据本公开实施例的任务执行流程图;图6示例性示出了根据本公开实施例的用于移动端的应用测试装置的框图;图7示例性示出了用来实现本公开实施例的电子设备的框图。具体实施方式以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。应该理解,市面上很多UI测试框架都需要依赖ADB命令。比如,Appium、Uiautomator2需要使用命令“adbshellaminstrument”启动测试任务中的case。而ADB命令需要通过ADB(AndroidSDK里的一个工具,用这个工具可以直接操作管理Android模拟器或真实的Android设备)来操作管理移动端。如果直接在移动端应用中执行ADB命令,则移动端操作系统可能会拦截ADB命令,导致ADB命令实际上无法在移动端执行。因此,相关技术中在应用这些测试框架进行UI测试时,都会在PC端部署ADB-client和ADB-server,同时在移动端部署ADBD(ADBDaemon,简称ADB守护进程),由此导致使用移动端进行开发或者测试必须将移动端通过USB与PC端联机才可以实现。然而,App的迭代速度很快,不可能使用一个移动端(如一部手机)来完成一次迭代所需求的所有case回归,通常需要建立移动终端集群(如手机集群),将大量移动终端集中放置在机房(数据中心),以分布式运行方式执行所有case,以使case的执行速度得以成倍提升。在实现本公开实施例的过程中,专利技术人发现,随着移动终端集群的建立,出现了一系列问题。比如,单个PC能连接的手机数量是一定的,且通过USB挂载手机会影响USB的带宽,且PC与手机之间可能会中断连接。再比如,随着集群内手机数量的不断增加,还必须增加PC、USB连接线、USB-HUB连接线等一系列组件,导致成本越来越高。再比如,如果手机与PC分处异地,那么为了配合移动终端集群,还需要为PC采购和配置各种软件,才能使集群中的移动终端正常运行。再比如,如果要进行手工测试和自动化测试切换,测试人员需要不停地往返于机房和工位,从而浪费有限的办公时间。再比如,公司采购的手机往往会分发至各个部门以备测试使用,这种情况下,如果某个或者某些部门暂时没有测试任务,那么分发至这个或这些部门的手机将处于闲置状态,导致资源浪费。基于此,本公开提出了一种移动端可以脱机使用的应用测试方法,即,使移动端脱离PC以及USB连接线的束缚,能够独立运行自动化应用测试任务,减少设备、机房空间的投入,提高闲置设备的利用率。以下将结合具体实施例详细阐述本公开。适于本公开实施例的用于移动端的应用测试方法和装置的系统架构介绍如下。图1示例性示出了适于本公开实施例的系统架构。需要注意的是,图1所示仅为可以应用本公开实施例的系统架构的示例,以帮助本领域技术人员理解本公开的
技术实现思路
,但并不意味着本公开实施例不可以用于其他环境或场景。如图1所示,系统架构100可以包括:移动终端集群101(如包括移动端1~移动端N),云服务器102和客户端103。其中,云服务器102包括任务管理服务1021、设备管理服务1022和数据库1023。在本公开实施例中,移动端1~移动端N中的每个都同时部署有ADB和ADBD,因而它们可以脱机执行自动化应用测试任务。此外,在本公开实施例中,移动端1~移动端N中的任一移动端都可以基于任务管理服务1021和设备管理服务1022以及自身安装的任务执行器来脱机完成自动化应用测试任务。在一些实施例中,用户可以通过客户端103(前端,如web平台)输入任务信息(如包括任务所属的产品线、代码分支、版本、case等条件)并触发任务。任务被触发后,用户输入的任务信息可以进入云端的任务管理服务1021,并通过该服务进行拼装,从而转换成自动化执行应用测试任务时真正需要的任务本文档来自技高网
...

【技术保护点】
1.一种用于移动端的应用测试方法,包括:/n获取需要在所述移动端执行的应用测试任务,其中,所述移动端上部署有安卓调试桥ADB和ADB守护进程ADBD;/n基于所述应用测试任务的类型,调用对应的测试逻辑;以及/n通过执行所述测试逻辑来完成所述应用测试任务,并在测试过程中由所述ADB和/或所述ADBD执行相应的ADB命令。/n

【技术特征摘要】
1.一种用于移动端的应用测试方法,包括:
获取需要在所述移动端执行的应用测试任务,其中,所述移动端上部署有安卓调试桥ADB和ADB守护进程ADBD;
基于所述应用测试任务的类型,调用对应的测试逻辑;以及
通过执行所述测试逻辑来完成所述应用测试任务,并在测试过程中由所述ADB和/或所述ADBD执行相应的ADB命令。


2.根据权利要求1所述的方法,还包括:
在所述ADB和所述ADBD之间建立通信连接,
其中,所述ADB与所述ADBD之间通过socket通信。


3.根据权利要求1所述的方法,还包括:
周期性向设备管理服务发送ping命令,以确定所述移动端处于可用状态。


4.根据权利要求1所述的方法,还包括:
响应于PC端执行特定的ADB命令,启动部署在所述移动端的所述ADB。


5.根据权利要求1所述的方法,还包括:
轮询任务管理服务,以确定是否存在需要在所述移动端执行的应用测试任务;
其中,响应于确定存在需要在所述移动端执行的应用测试任务,执行所述获取需要在所述移动端执行的应用测试任务的操作。


6.根据权利要求5所述的方法,还包括:
在完成所述应用测试任务后,向所述任务管理服务返回任务执行结果。


7.一种用于移动端的应用测试装置,包括:
获取模块,用于获取需要在所述移动端执行的应用测试任务,其中,所述移动端上部署有安卓调试桥ADB和ADB守护进程ADBD;
调用模块,用于基于所述应用测试任务的类型,调用对应的测试逻辑;以及
测试模块,用于通过执行所述测试逻辑来完成所述应用测试任务,并在测试过程中由所述ADB和/或所述A...

【专利技术属性】
技术研发人员:张沛黄琦沈惠玲刘华丽
申请(专利权)人:北京百度网讯科技有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1