CN114064508B - 基于群控技术的移动终端软件测试方法及系统 - Google Patents
基于群控技术的移动终端软件测试方法及系统 Download PDFInfo
- Publication number
- CN114064508B CN114064508B CN202111428774.0A CN202111428774A CN114064508B CN 114064508 B CN114064508 B CN 114064508B CN 202111428774 A CN202111428774 A CN 202111428774A CN 114064508 B CN114064508 B CN 114064508B
- Authority
- CN
- China
- Prior art keywords
- platform
- terminal list
- test
- updated
- terminal
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/02—Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供一种基于群控技术的移动终端软件测试方法及系统方法包括:在jenkins持续集成平台中的测试项目在被触发器触发后,执行:S110、通过调试桥工具获取当前接入jenkins持续集成平台的所有移动终端的设备ID,将设备ID存入第一终端列表中,根据第二终端列表中的设备ID对第一终端列表进行更新;S120、判断更新后的第一终端列表是否为空;S121、若为空,则结束本测试方法;S122、若不为空,则将更新后的第一终端列表中的一个设备ID发送至airtest工具以使airtest工具在该设备ID对应的移动终端上运行测试用例,并在测试用例运行成功后将该设备ID存入第二终端列表中,对第一终端列表进行清空,并返回S110。本发明实现基于群控技术的移动终端测试流程。
Description
技术领域
本说明书一个或多个实施例涉及软件测试技术领域,尤其涉及一种基于群控技术的移动终端软件测试方法及系统。
背景技术
对具备代表性的终端设备做功能检测是软件投放市场上线前的必要操作,伴随着公司业务的不断扩大以及产品系列和移动终端用户数的增加,软件的开发模式也由传统的瀑布模式逐渐转变为敏捷模式,从而引起软件版本不断增多,发布频率也越来越高,而且上线时间也越来越急,同时软件适配的终端用户对产品的质量要求也不断增强。而传统的自动化测试方案仅支持单一移动终端的自动化测试,并且一个移动终端测试完成之后,需要人工干预手动连接设备到电脑上,重新执行测试用例进行下一个移动终端的测试,存在着成本高、效率较低和测试周期长等弊端,已不能很好地满足软件上线时间的需求。
发明内容
本说明书一个或多个实施例描述了一种基于群控技术的移动终端软件测试方法及系统。
根据第一方面,提供了一种基于群控技术的移动终端软件测试方法,包括:在jenkins持续集成平台中的测试项目在被触发器触发后,执行如下步骤:
S110、通过调试桥工具获取当前接入所述jenkins持续集成平台的所有移动终端的设备ID,将所述设备ID存入第一终端列表中,并根据第二终端列表中的设备ID对所述第一终端列表进行更新;所述第二终端列表用于存放已经完成软件测试的移动终端的设备ID;
S120、判断更新后的第一终端列表是否为空;
S121、若更新后的第一终端列表为空,则结束本测试方法;
S122、若更新后的第一终端列表不为空,则将更新后的第一终端列表中的一个设备ID发送至airtest工具以使所述airtest工具在该设备ID对应的移动终端上运行测试用例,并在所述测试用例运行成功后将该设备ID存入所述第二终端列表中,对所述第一终端列表进行清空,并返回S110。
根据第二方面,提供了一种基于群控技术的移动终端软件测试系统,包括:执行模块,用于在jenkins持续集成平台中的测试项目在被触发器触发后执行多个步骤;所述执行模块包括:
列表更新单元,用于执行S110、通过调试桥工具获取当前接入所述jenkins持续集成平台的所有移动终端的设备ID,将所述设备ID存入第一终端列表中,并根据第二终端列表中的设备ID对所述第一终端列表进行更新;所述第二终端列表用于存放已经完成软件测试的移动终端的设备ID;
列表判断单元,用于执行S120、判断更新后的第一终端列表是否为空;S121、若更新后的第一终端列表为空,则结束测试系统的测试流程;S122、若更新后的第一终端列表不为空,则将更新后的第一终端列表中的一个设备ID发送至airtest工具以使所述airtest工具在该设备ID对应的移动终端上运行测试用例,并在所述测试用例运行成功后将该设备ID存入所述第二终端列表中,对所述第一终端列表进行清空,并返回所述列表更新模块中执行所述S110;其中,所述S110和S120为所述多个步骤。
本说明书实施例提供的基于群控技术的移动终端软件测试方法及系统,当部署在jenkins持续集成平台上的测试项目被触发后,首先获取当前接入平台的各个移动终端的设备ID,然后放入到第一终端列表中,然后利用第二终端列表对第一终端列表进行更新,更新后从第一终端列表中选择一个设备ID作为airtest的运行参数,airtest工具在该设备ID对应的移动终端上执行指定的测试用例,当测试用例运行成功后,再次返回到获取当前接入平台的各个移动终端的设备ID的步骤,对下一个未测试的移动终端进行软件测试,直到当前接入平台的所有移动终端都测试完成。本发明在jenkins持续集成平台上通过调试桥工具和airtest工具实现对各个移动终端的逐个测试,即实现各个移动终端的自动切换测试,从而实现基于群控技术的移动终端测试流程。通过这种方式,可以提高自动化测试工具的有效利用率,使前端产品的测试更加高效快捷,既能提升软件产品的质量与稳定性,又可以节约人力资源。
附图说明
为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本说明书的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本说明书一个实施例中基于群控技术的移动终端软件测试方法中在测试项目被触发后执行的各个步骤的示意图;
图2是本说明书一个实施例中多级jenkins持续集成平台和第一服务器的架构图;
图3是本说明书一个实施例中处于激活模式的一条通信链路的示意图。
具体实施方式
下面结合附图,对本说明书提供的方案进行描述。
第一方面,本发明提供一种基于群控技术的移动终端软件测试方法。
如图1所示,该方法包括:在jenkins持续集成平台中的测试项目在被触发器触发后,执行如下步骤:
S110、通过调试桥工具获取当前接入所述jenkins持续集成平台的所有移动终端的设备ID,将所述设备ID存入第一终端列表中,并根据第二终端列表中的设备ID对所述第一终端列表进行更新;所述第二终端列表用于存放已经完成软件测试的移动终端的设备ID;
其中,调试桥为adb(全称:android debug bridge),Android调试桥是一个通用命令行工具,其允许用户与模拟器实例或连接的Android设备进行通信。它可为各种设备操作提供便利,如安装和调试应用,并提供对Unix shell(可用来在模拟器或连接的设备上运行各种命令)的访问。
在具体实施时,在jenkins持续集成平台上安装有调试桥工具,通过调试桥工具在命令行中输入预设指令(例如,adb devices命令),调试桥工具便会输出当前接入jenkins持续集成平台的所有移动终端的设备ID。具体的,调试桥工具可以获取到通过USB集线器工具接入所述jenkins持续集成平台的各个移动终端的设备ID。
在通过调试桥工具获取到当前接入平台的所有移动终端的设备ID之后,将所有的设备ID存放至第一终端列表,实际上当前有一些移动终端已经完成了软件测试,所以还需要将这些已经完成软件测试的移动终端的设备ID从第一终端列表中删除。故本发明中还设置了一个第二终端列表,该列表中存放的是已经完成测试的移动终端的设备ID。所以将第一终端列表中的各个设备ID中与第二终端列表中相同的设备ID删除,从而实现对第一终端列表的更新,得到当前未进行软件测试的各个移动终端的设备ID。
也就是说,S110中所述根据第二终端列表中的设备ID对所述第一终端列表进行更新,可以包括:将所述第一终端列表中的与所述第二终端列表中相同的设备ID删除。
S120、判断更新后的第一终端列表是否为空;
S121、若更新后的第一终端列表为空,则结束本测试方法;
可理解的是,如果更新后的第一终端列表为空,则说明当前接入平台的所有移动终端的设备ID都已经测试完成,所以结束本测试方法,退出循环过程。
可理解的是,经过多次执行本方法的各个步骤,最终可以实现当前接入平台的所有移动终端都测试完成,所以通过本步骤结束整个测试方法。
S122、若更新后的第一终端列表不为空,则将更新后的第一终端列表中的一个设备ID发送至airtest工具以使所述airtest工具在该设备ID对应的移动终端上运行测试用例,并在所述测试用例运行成功后将该设备ID存入所述第二终端列表中,对所述第一终端列表进行清空,并返回S110。
如果更新后的第一终端列表不为空,则说明仍然有移动终端未进行软件测试,此时可以从更新后的第一终端列表中选择一个设备ID,进而对该设备ID对应的移动终端进行软件测试,在实际中可以按照顺序从更新后的第一终端列表中选择一个设备ID进行软件测试。
在选择了一个设备ID之后,将该设备ID发送给airtest工具,这样airtest工具就会将该设备ID作为执行脚本化运行的参数,airtest工具会在这个设备ID对应的移动终端上运行测试用例进行软件测试,当然如果这个移动终端上没有安装待测试的软件,则在运行测试用例之前先下载安装待测试的软件,进而对待测试的软件进行测试。在测试用例运行完毕之后,可以得到测试用例的运行结果,如果运行结果为运行成功,则将这个设备ID存入第二终端列表中,这个设备ID对应的移动终端的软件测试完成,进而返回到S110。
在这里对一个移动终端的软件测试完成之后,返回到S110中,重新获取当前接入平台的各个移动终端的设备ID,将各个设备ID存放入清空后的第一终端列表中,在该第一终端列表中存在一个或多个已经完成软件测试的移动终端的设备ID,因此通过第二终端列表对第一终端列表进行更新,使得第一终端列表中只保留当前未进行软件测试的移动终端的设备ID。
在具体实施时,在返回S110之前,S122还可以包括:
在所述测试用例运行完毕后,生成测试报告,并将所述测试报告上传至数据库进行保存;根据所述测试报告判断所述测试用例是否运行成功,若所述测试用例运行失败后,将所述测试报告推送至测试人员。
也就是说,在测试用例执行完毕之后,可以针对测试用例的执行过程生成对应的测试报告,测试报告中可以包括测试的过程数据、测试的结果数据,进而将测试报告发送至数据库进行保存,以便后续查找进行分析和问题定位等。除此之外,如果测试结果为失败,则可以通过微信、短信、邮件等形式将测试结果推送给测试人员,以便测试人员对各个移动终端上软件的测试情况进行及时了解。
进一步的,为了避免除了软件本身之外的因素对测试结果造成影响,还可以多次对运行失败的移动终端重复进行软件测试,若多次重复测试的结果均为运行失败,则确定这个移动终端为测试失败。
可理解的是,在执行本测试方法之前,需要搭建jenkins持续集成平台,即在平台上部署jenkins持续集成工具,该jenkins持续集成工具包括触发器、构建步骤以及构建后操作,其中构建步骤和构建后操作实际上是上述测试项目的各个执行步骤。
其中,触发器的触发方式分为两种:更新触发方式和定时触发方式,所述更新触发方式为待测试软件有新版本发布时所述触发器触发所述测试项目,所述定时触发方式为所述触发器按照预设时间间隔或在预定时间触发所述测试项目。搭建好jenkins持续集成平台,以及对触发器的触发方式设置完毕后,才可以进入上述各个测试步骤。
也就是说,在测试项目被出发后,则运行测试用例,生成测试报告,将测试报告上传至数据库保存,而且对测试报告进行分析,在测试报告为运行失败时通过微信或其他方式通知测试人员。该流程既可以在移动终端的软件更新时,自动在测试环境中的各移动终端上对软件功能的正确性进行验证,又能对移动终端的软件在生产环境上的运行状态进行监控,并及时报警,提前暴露生产环境下功能的异常并跟进团队做出修改,一定程度上减少用户对软件产品的负面反馈。
当然,在测试项目执行各个测试步骤之前,还需要编写测试用例和调试测试用例。所述测试用例具体可以采用所述airtest工具进行编写和调试。airtest工具是基于图形识别的UI自动化测试框架,它可以识别并连接在当前主机上的移动终端,在测试人员设计完测试用例之后,能按照测试用例的步骤执行。移动终端的测试用例包括变量的申明、安装并启动移动应用程序、抓取页面上需操作的目标图像、对目标图像进行操作(如点击图像、向图像的某一相对坐标位置输入字符、滑屏等操作)、把结果与预期进行对比进而判断测试用例的执行成功与否。
其中,编写的测试用例可以覆盖测试软件的多个功能点,然后对测试用例进行调试。最后通过在命令行中输入指令的方式执行测试用例。
基于群控技术的移动终端的测试用例执行的原理大致为:首先利用python语言,从已经安装了adb工具的平台上,利用adb devices等指令获取当前通过USB hub等工具接入平台的各个移动终端的设备ID,然后把获得的所有设备ID存入第一终端列表中。在最初,还未对任何一个移动终端进行测试,此时第二终端列表为空,在第一终端列表中按顺序选择一个设备ID传递给airtest工具,作为airtest工具执行脚本化运行的参数,airtest工具将在该设备ID对应的移动终端上运行该测试用例,得到运行结果。若测试用例的运行结果为失败,则可以多次运行该测试用例,从而减少外部干扰因素导致的运行失败,如果多次运行结果均为失败,则认为该移动终端的软件测试为失败。如果测试成功,则将设备ID存入第二终端列表中,同时对第一终端列表清空,返回到重新获取接入平台的所有移动终端的设备ID的步骤。这样做是因为在测试过程中有可能会出现连接异常而导致接入的移动终端增加或减少的情况发生,所以在每一次分配给airtest工具一个设备ID之前,需要重新获取一次当前接入平台的所有移动终端的设备ID,并将已经测试完毕的移动终端的设备ID提出,得到当前未进行软件测试的各个移动终端的设备ID,再为airtest工具分配一个设备ID。这样可以一定程度上提高测试用例执行的成功率。
总之,当部署在jenkins持续集成平台上的测试项目被触发后,首先获取当前接入平台的各个移动终端的设备ID,然后放入到第一终端列表中,然后利用第二终端列表对第一终端列表进行更新,更新后按顺序从第一终端列表中选择一个设备ID作为airtest的运行参数,airtest工具在该设备ID对应的移动终端上执行指定的测试用例,当测试用例运行成功后,再次返回到获取当前接入平台的各个移动终端的设备ID的步骤,对下一个未测试的移动终端进行软件测试,直到当前接入平台的所有移动终端都测试完成。
可理解的是,群控技术,即基于互联网载体实现的一对多管理运行操控的技术,本说明书在jenkins持续集成平台上通过调试桥工具和airtest工具实现对各个移动终端的逐个测试,即实现各个移动终端的自动切换测试,从而实现基于群控技术的移动终端测试流程。通过这种方式,可以提高自动化测试工具的有效利用率,使前端产品的测试更加高效快捷,既能提升软件产品的质量与稳定性,又可以节约人力资源。
在具体实施时,为了增加jenkins持续集成平台的处理能力,可以采用多级jenkins持续集成平台,参见图2,所述多级jenkins持续集成平台包括安装有jenkins持续集成工具的主平台以及安装有jenkins持续集成工具的多级子平台,所述主平台与第一服务器通信连接,所述第一服务器用于存储固件更新包;所述主平台上设置有预设缓存区,所述测试终端均与所述主平台相连接。
其中,主平台和子平台可以用于处理不同的业务,例如,主平台获取接入主平台的所有移动终端的设备ID,将设备ID存储到第一终端列表中,并根据第二终端列表对第一终端列表进行更新;子平台可以进行对更新后的第一终端列表进行是否为空的判断、在为空和不为空时的各种处理步骤等。主平台和子平台能够提供的服务不同,各有分工,从而实现整个测试过程。
进一步的,在所述测试项目被触发器触发之后,以及执行S110之前,所述方法还包括:对所述多级jenkins持续集成平台进行固件更新。
也就是说,在对平台进行固件更新之后才会进入测试流程,从而保证测试流程能够顺利执行。
在具体实施时,所述对所述多级jenkins持续集成平台进行固件更新,可以包括:所述主平台向所述第一服务器发送更新包检查请求;所述第一服务器在接收到所述更新包检查请求时,将待更新平台的标识信息发送至所述主平台;若所述主平台根据所述标识信息确定所述待更新平台为子平台,则将该子平台作为目标子平台,并通知所述目标子平台进入固件更新状态;进入所述固件更新状态的所述目标子平台将对应的现有固件数据包备份到所述主平台的所述预设缓存区中;在所述现有固件数据包备份完成后,所述主平台从所述第一服务器下载所述目标子平台的固件更新包,并将所述固件更新包写入所述目标子平台中实现对所述目标子平台的固件更新。
也就是说,主平台会请求第一服务器,检查是否有新的固件更新包,固件更新包有可能是主平台的固件更新包,也有可能是某个子平台的固件更新包,这些新的固件更新包具有一些标识信息,从而得知这些固件更新包是哪个平台的固件更新包。当第一服务器接收到主平台发送来的更新包检查请求后,会检查第一服务器上是否有新的固件更新包,如果有的话,就将新的固件更新包的标识信息发送给主平台。如果没有的话,就会告知主平台没有新的固件更新包。如果根据接收到的标识信息,主平台可以确定是某个子平台存在新的固件更新包,则将该子平台作为目标子平台,并通过该目标子平台进入固件更新状态。当目标子平台接收到进入固件更新状态的指令后,进入固件更新状态,并将现有固件的数据包备份到主平台的预设缓存区中,实现对现有数据的备份。当目标子平台的现有固件数据包备份之后,主平台会从第一服务器中下载目标子平台的新的固件更新包,然后将下载的固件更新包写入目标子平台中,实现对其固件更新。
在具体实施时,所述将该子平台作为目标子平台之后,上述方法还可以包括:所述主平台控制所述主平台与所述目标子平台之间的通信链路上的所有子平台为激活模式以及该通信链路之外的所有子平台为静默模式;对应的,在所述目标子平台更新完成之后,所述方法还包括:所述主平台控制所述该通信链路之外的所有子平台退出所述静默模式。
只有目标子平台与主平台之间的链路上的所有子平台为激活模式,而该链路之外的其它子平台均为静默模式,处于静默模式的子平台即便接收到指令也不会对指令做出响应,这样整个多级平台可以简化为这一条链路上的各个平台,对其它子平台不会造成影响,也不会收到其它子平台的影响,从而防止在指令发送至其它子平台导致的错误更新,提高更新的可靠性和安全性。图3为简化后的一条通信链路。
在目标子平台的更新完成之后,其它链路上的子平台可退出静默模式,从而进入激活模式,可以正常的进行平台原本的工作。
在具体实施时,所述对所述多级jenkins持续集成平台进行固件更新,还可以包括:若所述主平台根据所述标识信息确定所述待更新平台为主平台,则所述主平台从所述第一服务器中所述主平台的固件更新包下载至所述预设缓存区,在下载完成后所述主平台进行重启,并在重启之后运行更新后的程序。
当主平台根据标识信息确定需要更新的平台为主平台,此时主平台可以从第一服务器中获取主平台的固件更新包,将其下载到预设缓存区,实现固件更新包的写入,之后主平台可以进行重启,重启之后便可以运行更新后的新程序,从而实现对主平台的更新。
在具体实施时,所述将所述固件更新包写入所述目标子平台中实现对所述目标子平台的固件更新,可以包括:
S1、在将所述固件更新包写入所述目标子平台之后,所述目标子平台尝试运行更新后的程序,若该更新后的程序成功运行,则所述目标子平台向所述主平台发送所述目标子平台更新成功的通知。
也就是说,将下载的固件更新包写入目标子平台之后,目标子平台会尝试运行更新后的程序,如果能够成功运行,则说明固件更新包的写入是成功的,此时目标子平台可以向主平台发送更新成功的通知。
在具体实施时,如果主平台得知目标子平台更新成功之后,可以将之前备份的现有固件数据包进行擦除。也就是说,本发明提供的方法还可以包括:若所述主平台接收到所述目标子平台更新成功的通知后,则将所述预设缓存区中的所述现有固件数据包删除。这样可以避免无用信息占用过多的内存,提高整个多级平台的运行效率。
当然,也有可能发生运行失败的情况,故还可以包括如下步骤:
S2、若该更新后的程序运行失败,则所述目标子平台向所述主平台发送所述目标子平台更新失败的通知;
S3、所述主平台在接收到所述目标子平台更新失败的通知后,若所述目标子平台的固件更新包的当前下载次数小于预设次数,则再次从所述第一服务器下载所述固件更新包,将所述固件更新包写入所述目标子平台,并返回S1。
也就是说,当更新后的程序运行失败,则目标子平台向主平台发送更新失败的通知,此时主平台会判断这个固件更新包的当前下载次数是否达到预设次数,如果没有达到预设次数,则主平台还会从第一服务器中下载固件更新包,重新将固件更新包写入目标子平台中,重新尝试运行并判断运行是否成功,即返回到S1中。
在具体实施时,上述方法还可以包括:
若所述目标子平台的固件更新包的当前下载次数达到所述预设次数,则所述主平台将所述预设缓存区中所述目标子平台的所述现有固件数据包写入到所述目标子平台中。
也就是说,如果主平台判断这个固件更新包的下载次数达到预设次数,则不会继续下载,而是将在预设缓存区中的之前备份的现有固件数据包写回到目标子平台中,保证目标子平台的正常运行。即,在新程序多次连续未运行成功,则会将主平台中备份的原有程序进行还原。
第二方面提供一种基于群控技术的移动终端软件测试系统,包括:
执行模块,用于在jenkins持续集成平台中的测试项目在被触发器触发后执行多个步骤;其中,所述执行模块包括:
列表更新单元,用于执行S110、通过调试桥工具获取当前接入所述jenkins持续集成平台的所有移动终端的设备ID,将所述设备ID存入第一终端列表中,并根据第二终端列表中的设备ID对所述第一终端列表进行更新;所述第二终端列表用于存放已经完成软件测试的移动终端的设备ID;
列表判断单元,用于执行S120、判断更新后的第一终端列表是否为空;S121、若更新后的第一终端列表为空,则结束测试系统的测试流程;S122、若更新后的第一终端列表不为空,则将更新后的第一终端列表中的一个设备ID发送至airtest工具以使所述airtest工具在该设备ID对应的移动终端上运行测试用例,并在所述测试用例运行成功后将该设备ID存入所述第二终端列表中,对所述第一终端列表进行清空,并返回所述列表更新模块中执行所述S110;其中,所述S110和S120为所述多个步骤。
可理解的是,本发明实施例提供的系统,有关内容的解释、举例、有益效果等部分可以参考上述方法中的相应部分,此处不再赘述。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件、软件、挂件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。
Claims (9)
1.一种基于群控技术的移动终端软件测试方法,其特征在于,包括:
在jenkins持续集成平台中的测试项目在被触发器触发后,执行如下步骤:
S110、通过调试桥工具获取当前接入所述jenkins持续集成平台的所有移动终端的设备ID,将所述设备ID存入第一终端列表中,并根据第二终端列表中的设备ID对所述第一终端列表进行更新;所述第二终端列表用于存放已经完成软件测试的移动终端的设备ID;
S120、判断更新后的第一终端列表是否为空;
S121、若更新后的第一终端列表为空,则结束本测试方法;
S122、若更新后的第一终端列表不为空,则将更新后的第一终端列表中的一个设备ID发送至airtest工具以使所述airtest工具在该设备ID对应的移动终端上运行测试用例,并在所述测试用例运行成功后将该设备ID存入所述第二终端列表中,对所述第一终端列表进行清空,并返回S110;
其中,所述根据第二终端列表中的设备ID对所述第一终端列表进行更新,包括:将所述第一终端列表中的与所述第二终端列表中相同的设备ID删除。
2.根据权利要求1所述的方法,其特征在于,所述触发器触发所述测试项目的方式包括更新触发方式和定时触发方式,所述更新触发方式为待测试软件有新版本发布时所述触发器触发所述测试项目,所述定时触发方式为所述触发器按照预设时间间隔或在预定时间触发所述测试项目。
3.根据权利要求1所述的方法,其特征在于,在返回S110之前,S122还包括:
在所述测试用例运行完毕后,生成测试报告,并将所述测试报告上传至数据库进行保存;根据所述测试报告判断所述测试用例是否运行成功,若所述测试用例运行失败后,将所述测试报告推送至测试人员,并重复执行所述测试用例直至运行成功。
4.根据权利要求1所述的方法,其特征在于,所述测试用例为采用所述airtest工具进行编写和调试。
5.根据权利要求1所述的方法,其特征在于,所述通过调试桥工具获取当前接入所述jenkins持续集成平台的所有移动终端的设备ID,包括:
在所述调试桥工具的命令行输入预设指令后,所述调试桥工具输出通过USB集线器工具接入所述jenkins持续集成平台的各个移动终端的设备ID。
6.根据权利要求1所述的方法,其特征在于,所述jenkins持续集成平台为多级jenkins持续集成平台,所述多级jenkins持续集成平台包括安装有jenkins持续集成工具的主平台以及安装有jenkins持续集成工具的多级子平台,所述主平台与第一服务器通信连接,所述第一服务器用于存储固件更新包;所述主平台上设置有预设缓存区,所述测试终端均与所述主平台相连接;
对应的,在所述测试项目被触发器触发之后,以及执行S110之前,所述方法还包括:对所述多级jenkins持续集成平台进行固件更新;
其中,所述对所述多级jenkins持续集成平台进行固件更新,包括:
所述主平台向所述第一服务器发送更新包检查请求;所述第一服务器在接收到所述更新包检查请求时,将待更新平台的标识信息发送至所述主平台;若所述主平台根据所述标识信息确定所述待更新平台为子平台,则将该子平台作为目标子平台,并通知所述目标子平台进入固件更新状态;进入所述固件更新状态的所述目标子平台将对应的现有固件数据包备份到所述主平台的所述预设缓存区中;在所述现有固件数据包备份完成后,所述主平台从所述第一服务器下载所述目标子平台的固件更新包,并将所述固件更新包写入所述目标子平台中实现对所述目标子平台的固件更新。
7.根据权利要求6所述的方法,其特征在于,所述将该子平台作为目标子平台之后,所述方法还包括:所述主平台控制所述主平台与所述目标子平台之间的通信链路上的所有子平台为激活模式以及该通信链路之外的所有子平台为静默模式;对应的,在所述目标子平台更新完成之后,所述方法还包括:所述主平台控制所述该通信链路之外的所有子平台退出所述静默模式。
8.根据权利要求6所述的方法,其特征在于,还包括:
若所述主平台根据所述标识信息确定所述待更新平台为主平台,则所述主平台从所述第一服务器中所述主平台的固件更新包下载至所述预设缓存区,在下载完成后所述主平台进行重启,并在重启之后运行更新后的程序。
9.一种基于群控技术的移动终端软件测试系统,其特征在于,包括
执行模块,用于在jenkins持续集成平台中的测试项目在被触发器触发后执行多个步骤;所述执行模块包括:
列表更新单元,用于执行S110、通过调试桥工具获取当前接入所述jenkins持续集成平台的所有移动终端的设备ID,将所述设备ID存入第一终端列表中,并根据第二终端列表中的设备ID对所述第一终端列表进行更新;所述第二终端列表用于存放已经完成软件测试的移动终端的设备ID;
列表判断单元,用于执行S120、判断更新后的第一终端列表是否为空;S121、若更新后的第一终端列表为空,则结束测试系统的测试流程;S122、若更新后的第一终端列表不为空,则将更新后的第一终端列表中的一个设备ID发送至airtest工具以使所述airtest工具在该设备ID对应的移动终端上运行测试用例,并在所述测试用例运行成功后将该设备ID存入所述第二终端列表中,对所述第一终端列表进行清空,并返回所述列表更新模块中执行所述S110;其中,所述S110和S120为所述多个步骤;
其中,所述列表更新单元中所述根据第二终端列表中的设备ID对所述第一终端列表进行更新,包括:将所述第一终端列表中的与所述第二终端列表中相同的设备ID删除。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111428774.0A CN114064508B (zh) | 2021-11-29 | 2021-11-29 | 基于群控技术的移动终端软件测试方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111428774.0A CN114064508B (zh) | 2021-11-29 | 2021-11-29 | 基于群控技术的移动终端软件测试方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114064508A CN114064508A (zh) | 2022-02-18 |
CN114064508B true CN114064508B (zh) | 2023-06-27 |
Family
ID=80277114
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111428774.0A Active CN114064508B (zh) | 2021-11-29 | 2021-11-29 | 基于群控技术的移动终端软件测试方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114064508B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103365770A (zh) * | 2012-04-09 | 2013-10-23 | 陆兵 | 移动终端软件测试系统及软件测试方法 |
CN106294158A (zh) * | 2016-08-11 | 2017-01-04 | 北京小米移动软件有限公司 | 终端测试方法、装置及系统 |
CN108228438A (zh) * | 2017-12-29 | 2018-06-29 | 广州品唯软件有限公司 | 一种移动终端的性能测试方法及装置 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10909025B2 (en) * | 2018-06-22 | 2021-02-02 | Jpmorgan Chase Bank, N.A. | System and method for automating functional testing |
CN113220562A (zh) * | 2020-02-06 | 2021-08-06 | 北京沃东天骏信息技术有限公司 | 终端测试方法及装置、计算机存储介质、电子设备 |
CN113297055A (zh) * | 2020-02-24 | 2021-08-24 | 国家广播电视总局广播电视科学研究院 | 一种云测试系统和方法 |
CN111708699A (zh) * | 2020-06-16 | 2020-09-25 | 荆门汇易佳信息科技有限公司 | 针对Android应用程序的智能化集成检测系统 |
CN112765028B (zh) * | 2021-01-22 | 2023-08-04 | 济南大学 | 基于群控机制的Android应用程序测试方法及系统 |
CN113326192B (zh) * | 2021-05-28 | 2023-07-25 | 北京百度网讯科技有限公司 | 用于移动端的应用测试方法、装置、设备及存储介质 |
-
2021
- 2021-11-29 CN CN202111428774.0A patent/CN114064508B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103365770A (zh) * | 2012-04-09 | 2013-10-23 | 陆兵 | 移动终端软件测试系统及软件测试方法 |
CN106294158A (zh) * | 2016-08-11 | 2017-01-04 | 北京小米移动软件有限公司 | 终端测试方法、装置及系统 |
CN108228438A (zh) * | 2017-12-29 | 2018-06-29 | 广州品唯软件有限公司 | 一种移动终端的性能测试方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN114064508A (zh) | 2022-02-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20150100829A1 (en) | Method and system for selecting and executing test scripts | |
CN109902005B (zh) | 一种自动化测试的方法和系统 | |
US20150100832A1 (en) | Method and system for selecting and executing test scripts | |
CN106201672B (zh) | 一种定时任务设置系统及其定时任务运行方法 | |
US10579513B2 (en) | Test run control method and apparatus | |
US20150100830A1 (en) | Method and system for selecting and executing test scripts | |
CN107577597B (zh) | 安装包自动化测试方法、装置、设备和存储介质 | |
US20150100831A1 (en) | Method and system for selecting and executing test scripts | |
CN109388569B (zh) | 远程检测客户端环境异常的方法、测试服务器及存储介质 | |
CN111611157B (zh) | Gms持续集成构建自动化测试方法及系统 | |
CN110457204A (zh) | 代码测试方法、装置、计算机设备和存储介质 | |
CN112199284A (zh) | 程序自动化测试方法及其相应的装置、设备、介质 | |
US7246276B2 (en) | Error tolerant modular testing of services | |
CN114064508B (zh) | 基于群控技术的移动终端软件测试方法及系统 | |
CN113127329B (zh) | 脚本调试方法、装置及计算机存储介质 | |
CN111581081B (zh) | 一种自动化测试系统及方法 | |
CN111209197B (zh) | 应用程序持续集成测试方法、系统、设备和存储介质 | |
CN113986263A (zh) | 代码自动化测试方法、装置、电子设备、存储介质 | |
CN113934446A (zh) | 一种基于容器云平台的微服务配置系统及方法 | |
US20230050723A1 (en) | Device testing arrangement | |
CN111338678A (zh) | 一种存储系统升级校验的方法和设备 | |
CN113094280B (zh) | 升级方法、系统、可读存储介质 | |
CN116149707B (zh) | 分布式系统的升级风险检测和规避方法及装置 | |
CN114666301B (zh) | 一种基于mock服务器的APP测试方法及系统 | |
CN117472756A (zh) | 应用系统测试方法、装置、存储介质及计算机设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |