monkey测试的方法及装置、计算机设备、存储介质与流程

文档序号:17790198发布日期:2019-05-31 20:04阅读:276来源:国知局
monkey测试的方法及装置、计算机设备、存储介质与流程

本发明涉及计算机领域,尤其涉及一种monkey测试的方法及装置、计算机设备、存储介质。



背景技术:

现有技术中,应用软件(app)在研发过程中,或者在发布之前,都会进行monkey测试,也有人叫做搞怪测试,就是用一些稀奇古怪的操作方式去测试被测试系统,以测试系统的稳定性。

现有技术中,monkey测试程序通常内置在终端的操作系统或软件中,在终端出厂或软件发布之前,第一次正常使用操作系统或软件时,首先会触发monkey测试程序并完成测试,如果测试通过,则可以正常使用,系统自动删除monkey测试程序,如果测试失败,则返厂维修或者重新调试。这样导致现有技术中的monkey测试方案每次只能测试一台设备或者测试一个app,不能集中管控,测试效率太低,测试速度太慢。

针对相关技术中存在的上述问题,目前尚未发现有效的解决方案。



技术实现要素:

有鉴于此,本发明实施例提供了一种monkey测试的方法及装置、计算机设备、存储介质。

一方面,本发明实施例提供了一种monkey测试的方法,所述方法包括:连接多个测试对象;向所述多个测试对象发送monkey测试命令,触发所述多个测试对象并发执行monkey测试程序,其中,所述monkey测试命令携带所述monkey测试程序;接收所述多个测试对象在执行所述monkey测试程序后生成的多个运行日志。

可选的,连接多个测试对象包括以下至少之一:连接多个测试终端,其中,每个测试终端为一个测试对象;连接一个测试终端上的多个应用软件app,其中,每个app为一个测试对象。

可选的,触发所述多个测试对象并发执行monkey测试程序包括:触发预先创建的控件坐标数据库,其中,所述控件坐标数据库存储有多个控件坐标及每个控件坐标所在的显示界面的标识,每个控件坐标被触发时产生一个伪输入事件;从所述控件坐标数据库中选取所述测试对象当前显示界面的标识所对应的至少一个控件坐标,向所述多个测试对象发送所述控件坐标,以使所述多个测试对象并行触发所述控件坐标,并响应每个控件坐标所产生的伪输入事件;判断所述测试对象是否出现错误响应;当所述测试对象出现错误响应时,捕获堆栈中测试对象错误响应前所响应的最后一个伪输入事件所调用的monkey测试程序。

可选的,在所述多个测试对象为在一个测试终端上的多个app时,触发所述多个测试对象并发执行monkey测试程序包括:根据所述测试终端的承载阈值确定并发执行monkey测试程序的app的承载个数;根据预设优先级确定所述多个app执行monkey测试程序的执行顺序;按照所述执行顺序,每次选择不超过所述承载个数的app,并发执行monkey测试程序。

可选的,在接收所述多个测试对象在执行所述monkey测试程序后生成的多个运行日志之后,所述方法还包括以下至少之一:将所述多个测试对象生成的多个运行日志归类存储在与每个测试对象对应的文件夹中;将所述多个测试对象生成的多个运行日志归类存储在与每个monkey测试程序对应的文件夹中。

可选的,向所述多个测试对象发送monkey测试命令包括:搜索所述多个测试对象的标识信息,其中,所述标识信息包括以下之一:设备号,开发商名称,app名称;根据每个测试对象的标识信息向所述多个测试对象发送monkey测试命令。

可选的,在接收所述多个测试对象在执行所述monkey测试程序后生成的多个运行日志之后,所述方法还包括:存储所述多个运行日志,以及在所述多个运行日志中存在包括错误响应的测试结果的指定运行日志时,定位到所述指定运行日志。

另一方面,本发明实施例提供了一种monkey测试的装置,所述装置包括:连接模块,用于连接多个测试对象;触发模块,用于向所述多个测试对象发送monkey测试命令,触发所述多个测试对象并发执行monkey测试程序,其中,所述monkey测试命令携带所述monkey测试程序;接收模块,用于接收所述多个测试对象在执行所述monkey测试程序后生成的多个运行日志。

可选的,所述连接模块包括以下至少之一:第一连接单元,用于连接多个测试终端,其中,每个测试终端为一个测试对象;第二连接单元,用于连接一个测试终端上的多个应用软件app,其中,每个app为一个测试对象。

可选的,所述触发模块包括:触发单元,用于触发预先创建的控件坐标数据库,其中,所述控件坐标数据库存储有多个控件坐标及每个控件坐标所在的显示界面的标识,每个控件坐标被触发时产生一个伪输入事件;发送单元,用于从所述控件坐标数据库中选取所述测试对象当前显示界面的标识所对应的至少一个控件坐标,向所述多个测试对象发送所述控件坐标,以使所述多个测试对象并行触发所述控件坐标,并响应每个控件坐标所产生的伪输入事件;判断单元,用于判断所述测试对象是否出现错误响应;捕获单元,用于当所述测试对象出现错误响应时,捕获堆栈中测试对象错误响应前所响应的最后一个伪输入事件所调用的monkey测试程序。

可选的,在所述多个测试对象为在一个测试终端上的多个app时,所述触发模块包括:第一确定单元,用于根据所述测试终端的承载阈值确定并发执行monkey测试程序的app的承载个数;第二确定单元,用于根据预设优先级确定所述多个app执行monkey测试程序的执行顺序;触发单元,用于按照所述执行顺序,每次选择不超过所述承载个数的app,并发执行monkey测试程序。

可选的,所述装置还包括以下至少之一:第一存储模块,用于在所述接收模块接收所述多个测试对象在执行所述monkey测试程序后生成的多个运行日志之后,将所述多个测试对象生成的多个运行日志归类存储在与每个测试对象对应的文件夹中;第二存储模块,用于在所述接收模块接收所述多个测试对象在执行所述monkey测试程序后生成的多个运行日志之后,将所述多个测试对象生成的多个运行日志归类存储在与每个monkey测试程序对应的文件夹中。

可选的,所述触发模块包括:搜索单元,用于搜索所述多个测试对象的标识信息,其中,所述标识信息包括以下之一:设备号,开发商名称,app名称;发送单元,用于根据每个测试对象的标识信息向所述多个测试对象发送monkey测试命令。

可选的,所述装置还包括:处理模块,用于在所述接收模块接收所述多个测试对象在执行所述monkey测试程序后生成的多个运行日志之后,存储所述多个运行日志,以及在所述多个运行日志中存在包括错误响应的测试结果的指定运行日志时,定位到所述指定运行日志。

根据本发明的又一个实施例,还提供了一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。

根据本发明的又一个实施例,还提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项方法实施例中的步骤。

通过本发明,在连接多个测试对象之后,向多个测试对象发送monkey测试命令,触发多个测试对象并发执行monkey测试程序,可以并发对测试对象进行monkey测试,解决了现有技术中的进行monkey测试时效率过低的技术问题,极大提高了monkey测试的工作效率,测试速度更快。

【附图说明】

为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。

图1是本发明实施例的一种monkey测试的移动终端的硬件结构框图;

图2是根据本发明实施例的monkey测试的方法的流程图;

图3是本发明实施例中控制终端连接多个测试终端的示意图;

图4是本发明实施例触发多个测试对象并发执行monkey测试程序的流程图;

图5是根据本发明实施例的monkey测试的装置的结构框图。

【具体实施方式】

下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。

需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。

实施例1

本申请实施例一所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。以运行在移动终端上为例,图1是本发明实施例的一种monkey测试的移动终端的硬件结构框图。如图1所示,移动终端10可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器mcu或可编程逻辑器件fpga等的处理装置)和用于存储数据的存储器104,可选地,上述移动终端还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述移动终端的结构造成限定。例如,移动终端10还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。

存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本发明实施例中的monkey测试的方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至移动终端10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括移动终端10的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(networkinterfacecontroller,简称为nic),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(radiofrequency,简称为rf)模块,其用于通过无线方式与互联网进行通讯。

在本实施例中提供了一种monkey测试的方法,图2是根据本发明实施例的monkey测试的方法的流程图,如图2所示,该流程包括如下步骤:

步骤s202,连接多个测试对象;

步骤s204,向多个测试对象发送monkey测试命令,触发多个测试对象并发执行monkey测试程序,其中,monkey测试命令携带monkey测试程序;

步骤s206,接收多个测试对象在执行monkey测试程序后生成的多个运行日志。

通过本实施例的方案,在连接多个测试对象之后,向多个测试对象发送monkey测试命令,触发多个测试对象并发执行monkey测试程序,可以并发对测试对象进行monkey测试,解决了现有技术中的进行monkey测试时效率过低的技术问题,极大提高了monkey测试的工作效率,测试速度更快。

本实施例的执行主体可以是服务器,或者是终端,如移动终端,web终端等,在应用在服务器上执行,测试对象所在的测试终端连接到服务器,渠道方式不限,可以是有线方式,也可以是无线方式,只要能够使测试终端连上服务器即可,服务器可以连接一个用户界面,该用户界面可以运行在与服务器连接的控制终端上,用于与测试人员进行交互,显示相关测试画面,图3是本发明实施例中控制终端连接多个测试终端的示意图。

在本实施例中,本实施例中的连接多个测试对象包括以下至少之一:连接多个测试终端,其中,每个测试终端为一个测试对象;连接一个测试终端上的多个应用软件app,其中,每个app为一个测试对象。

多个monkey测试的测试对象除了可以对应多个测试终端之外,还可以对应一个测试终端的多个app(应用程序)。一个测试对象可以是一个测试终端(可以是测试终端的硬件或者是操作系统,或者是测试终端上运行的app),每个测试终端的设备号可以作为识别标识,每个测试终端上运行一个或多个待测试的app,每个app的名称(或者开发商等)可以作为识别标识;在多个app在可以使用同一个monkey测试程序进行测试的情况下,多个测试对象也可以是一个测试终端上运行的多个app。

可选的,向多个测试对象发送monkey测试命令包括:搜索多个测试对象的标识信息,其中,标识信息包括以下之一:设备号,开发商名称,app名称;根据每个测试对象的标识信息向多个测试对象发送monkey测试命令。通过测试对象的标识信息来连接,可以实现分类的monkey测试。

在本实施例中,触发多个测试对象并发执行monkey测试程序需要在本地触发预先创建的控件坐标数据库,图4是本发明实施例触发多个测试对象并发执行monkey测试程序的流程图,触发多个测试对象并发执行monkey测试程序包括:

步骤s402,触发预先创建的控件坐标数据库,其中,控件坐标数据库存储有多个控件坐标及每个控件坐标所在的显示界面的标识,每个控件坐标被触发时产生一个伪输入事件;

步骤s404,从控件坐标数据库中选取测试对象当前显示界面的标识所对应的至少一个控件坐标,向多个测试对象发送控件坐标,以使多个测试对象并行触发控件坐标,并响应每个控件坐标所产生的伪输入事件;

步骤s406,判断测试对象是否出现错误响应(如闪退,无反应等于预设响应不符的现象);

步骤s408,当测试对象出现错误响应时,捕获堆栈中测试对象错误响应前所响应的最后一个伪输入事件所调用的monkey测试程序。该应用程序即为bug程序,需要在app上进行修复。

monkey所调用的应用程序是可以运行在模拟器里或实际设备中的程序,它向系统发送随机的伪输入事件流(如按键输入、触摸屏输入以及手势输入等),实现对正在开发的应用程序进行稳定性测试。

可选的,在多个测试对象为在一个测试终端上的多个app时,触发多个测试对象并发执行monkey测试程序包括:

s11,根据测试终端的承载阈值确定并发执行monkey测试程序的app的承载个数;

s12,根据预设优先级确定多个app执行monkey测试程序的执行顺序;

s13,按照执行顺序,每次选择不超过承载个数的app,并发执行monkey测试程序。

由于在多个测试终端并行执行monkey测试命令时,每个测试终端只执行一个monkey测试命令,每个终端没有承载负担,因此可以多个测试终端并发执行。而在一个测试终端上并行执行多个monkey测试命令时(每个app是一个测试对象),可以设置一定的承载量,和不同monkey测试命令的优先级,按照app的重要程度,或者是monkey测试的重要程度作为优先级来分批并行处理,每一批并行执行monkey测试命令。在多个monkey测试命令分别对应不同的app时,可以根据app的标识信息来适配app,每个monkey测试命令还携带一个与其适配的app标识信息。

在本实施例的可选实施方式中,在接收多个测试对象在执行monkey测试程序后生成的多个运行日志之后,还包括以下至少之一:将多个测试对象生成的多个运行日志归类存储在与每个测试对象对应的文件夹中;将多个测试对象生成的多个运行日志归类存储在与每个monkey测试程序对应的文件夹中。

在本实施例的可选实施方式中,在接收多个测试对象在执行monkey测试程序后生成的多个运行日志之后,还包括:存储多个运行日志,以及在多个运行日志中存在包括错误响应的测试结果的指定运行日志时,定位到指定运行日志。

针对每一个测试对象(如app),每一个monkey测试,都会产生一个运行日志,该运行日志用于记录该app进行一个monkey测试的运行过程和测试结果。在进行monkey测试过程中,同时记录monkey日志信息,写入本地日志文件,然后通过算法调用外发接口(如,outlook邮件接口),定时将日志文件通过邮件发送给指定的邮箱,这样所有的日志都存放在服务器,同时也会保存在app所在的终端上。

由于app已经将日志文件发送给服务器,因此可以直接在控制终端上请求批量查看各个app的日志文件,在查看失败时,也可以到app所在终端的本地来查看。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。

实施例2

在本实施例中还提供了一种monkey测试的装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。

图5是根据本发明实施例的monkey测试的装置的结构框图,如图5所示,该装置包括:

连接模块50,用于连接多个测试对象;

触发模块52,用于向所述多个测试对象发送monkey测试命令,触发所述多个测试对象并发执行monkey测试程序,其中,所述monkey测试命令携带所述monkey测试程序;

接收模块54,用于接收所述多个测试对象在执行所述monkey测试程序后生成的多个运行日志。

可选的,所述连接模块包括以下至少之一:第一连接单元,用于连接多个测试终端,其中,每个测试终端为一个测试对象;第二连接单元,用于连接一个测试终端上的多个应用软件app,其中,每个app为一个测试对象。

可选的,所述触发模块包括:触发单元,用于触发预先创建的控件坐标数据库,其中,所述控件坐标数据库存储有多个控件坐标及每个控件坐标所在的显示界面的标识,每个控件坐标被触发时产生一个伪输入事件;发送单元,用于从所述控件坐标数据库中选取所述测试对象当前显示界面的标识所对应的至少一个控件坐标,向所述多个测试对象发送所述控件坐标,以使所述多个测试对象并行触发所述控件坐标,并响应每个控件坐标所产生的伪输入事件;判断单元,用于判断所述测试对象是否出现错误响应;捕获单元,用于当所述测试对象出现错误响应时,捕获堆栈中测试对象错误响应前所响应的最后一个伪输入事件所调用的monkey测试程序。

可选的,在所述多个测试对象为在一个测试终端上的多个app时,所述触发模块包括:第一确定单元,用于根据所述测试终端的承载阈值确定并发执行monkey测试程序的app的承载个数;第二确定单元,用于根据预设优先级确定所述多个app执行monkey测试程序的执行顺序;触发单元,用于按照所述执行顺序,每次选择不超过所述承载个数的app,并发执行monkey测试程序。

可选的,所述装置还包括以下至少之一:第一存储模块,用于在所述接收模块接收所述多个测试对象在执行所述monkey测试程序后生成的多个运行日志之后,将所述多个测试对象生成的多个运行日志归类存储在与每个测试对象对应的文件夹中;第二存储模块,用于在所述接收模块接收所述多个测试对象在执行所述monkey测试程序后生成的多个运行日志之后,将所述多个测试对象生成的多个运行日志归类存储在与每个monkey测试程序对应的文件夹中。

可选的,所述触发模块包括:搜索单元,用于搜索所述多个测试对象的标识信息,其中,所述标识信息包括以下之一:设备号,开发商名称,app名称;发送单元,用于根据每个测试对象的标识信息向所述多个测试对象发送monkey测试命令。

可选的,所述装置还包括:处理模块,用于在所述接收模块接收所述多个测试对象在执行所述monkey测试程序后生成的多个运行日志之后,存储所述多个运行日志,以及在所述多个运行日志中存在包括错误响应的测试结果的指定运行日志时,定位到所述指定运行日志。

需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。

实施例3

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

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

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。

上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机装置(可以是个人计算机,服务器,或者网络装置等)或处理器(processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。

本发明的实施例还提供了一种存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。

可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:

s1,连接多个测试对象;

s2,向所述多个测试对象发送monkey测试命令,触发所述多个测试对象并发执行monkey测试程序,其中,所述monkey测试命令携带所述monkey测试程序;

s3,接收所述多个测试对象在执行所述monkey测试程序后生成的多个运行日志。

可选地,在本实施例中,上述存储介质可以包括但不限于:u盘、只读存储器(read-onlymemory,简称为rom)、随机存取存储器(randomaccessmemory,简称为ram)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。

本发明的实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。

可选地,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。

可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:

s1,连接多个测试对象;

s2,向所述多个测试对象发送monkey测试命令,触发所述多个测试对象并发执行monkey测试程序,其中,所述monkey测试命令携带所述monkey测试程序;

s3,接收所述多个测试对象在执行所述monkey测试程序后生成的多个运行日志。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。

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