内存测试方法、装置及电子设备与流程

文档序号:14860406发布日期:2018-07-04 06:55阅读:154来源:国知局
内存测试方法、装置及电子设备与流程

本发明涉及软件测试技术领域,尤其涉及一种内存测试方法、装置及电子设备。



背景技术:

目前随着软件测试技术的发展,移动终端中的应用程序对内存的需求也在同步增长,由于移动终端的内存泄露对应用程序性能会产生较大的影响,需要对移动终端中应用程序产生的内存泄漏进行测试。相关技术中,在对移动终端中的某个应用程序的安装包,进行内存泄露测试阶段之后,项目测试人员使用eclipse和androidstudio工具对其进行内存泄露的测试,即,由项目测试人员手工录制触发内存泄漏场景,而后生成测试文件。

这种方式下,由于依赖项目测试人员人工测试,测试的时间成本较高,测试效率较低,且测试精确度不佳。



技术实现要素:

本发明旨在至少在一定程度上解决相关技术中的技术问题之一。

为此,本发明的一个目的在于提出一种内存测试方法,不仅能够节省内存泄露的测试时间,而且提升测试精确度,并有效提升测试效率。

本发明的另一个目的在于提出一种内存测试装置。

本发明的另一个目的在于提出一种电子设备。

本发明的另一个目的在于提出一种存储介质。

本发明的另一个目的在于提出一种应用程序。

为达到上述目的,本发明第一方面实施例提出的内存测试方法,包括:获取所述移动终端的内存的当前占用比值,判断所述当前占用比值是否大于或者等于预设阈值;如果所述当前占用比值大于或者等于所述预设阈值,则调用测试软件进行内存泄漏测试并生成测试文件,以对所述移动终端的内存进行测试。

在本发明的一个实施例中,所述获取所述移动终端的内存的当前占用比值,包括:

每隔预设间隔时间根据预设配置文件调用监控器;

通过所述监控器获取所述移动终端的内存的当前占用比值。

在本发明的一个实施例中,在所述获取所述移动终端的内存的当前占用比值之前,还包括:

将所述监控器的onstart方法写入所述移动终端中的应用程序oncreate方法中,以在所述移动终端中的应用程序启动运行时,启动所述监控器。

在本发明的一个实施例中,所述获取所述移动终端的内存的当前占用比值,包括:

获取所述移动终端的总内存和当前空闲内存;

根据所述总内存和所述当前空闲内存计算所述内存的当前占用比值。

在本发明的一个实施例中,所述调用测试软件进行内存泄漏测试并生成测试文件之后,还包括:

读取所述测试文件中应用程序的进程产生内存泄漏事件的信息;

根据所述信息生成提示消息,并对所述提示消息进行显示。

在本发明的一个实施例中,所述预设配置文件还包括:所述测试文件的存储路径,在所述调用测试软件进行内存泄漏测试并生成测试文件之后,还包括:

将所述测试文件存储在所述存储路径中。

本发明第一方面实施例提出的内存测试方法,通过获取移动终端的内存的当前占用比值,在当前占用比值大于或者等于预设阈值时,调用测试软件进行内存泄漏测试并生成测试文件,以对移动终端的内存进行测试,不仅能够节省内存泄露的测试时间,而且提升测试精确度,并有效提升测试效率。

为达到上述目的,本发明第二方面实施例提出的内存测试装置,包括:获取模块,用于获取所述移动终端的内存的当前占用比值;判断模块,用于判断所述当前占用比值是否大于或者等于预设阈值;调用模块,用于在所述当前占用比值大于或者等于所述预设阈值时,调用测试软件进行内存泄漏测试并生成测试文件,以对所述移动终端的内存进行测试。

在本发明的一个实施例中,所述获取模块具体用于:

每隔预设间隔时间根据预设配置文件调用监控器;

通过所述监控器获取所述移动终端的内存的当前占用比值。

在本发明的一个实施例中,还包括:

写入模块,用于在获取所述移动终端的内存的当前占用比值之前,将所述监控器的onstart方法写入所述移动终端中的应用程序oncreate方法中,以在所述移动终端中的应用程序启动运行时,启动所述监控器。

在本发明的一个实施例中,所述获取模块还用于:

获取所述移动终端的总内存和当前空闲内存;

根据所述总内存和所述当前空闲内存计算所述内存的当前占用比值。

在本发明的一个实施例中,还包括:

读取模块,用于读取所述测试文件中所述应用程序的进程产生内存泄漏事件的信息;

生成模块,用于根据所述信息生成提示消息,并对所述提示消息进行显示。

在本发明的一个实施例中,所述预设配置文件还包括:所述测试文件的存储路径,还包括:

存储模块,用于在所述调用测试软件进行内存泄漏测试并生成测试文件之后,将所述测试文件存储在所述存储路径中。

本发明第二方面实施例提出的内存测试装置,通过获取移动终端的内存的当前占用比值,在当前占用比值大于或者等于预设阈值时,调用测试软件进行内存泄漏测试并生成测试文件,以对移动终端的内存进行测试,不仅能够节省内存泄露的测试时间,而且提升测试精确度,并有效提升测试效率。

为达到上述目的,本发明第三方面实施例提出的电子设备,包括:处理器,存储器,电源电路,多媒体组件,音频组件,输入/输出(i/o)的接口,传感器组件,以及通信组件;其中,电路板安置在壳体围成的空间内部,所述处理器和所述存储器设置在所述电路板上;所述电源电路,用于为所述移动终端的各个电路或器件供电;所述存储器用于存储可执行程序代码;所述处理器通过读取所述存储器中存储的可执行程序代码来运行与所述可执行程序代码对应的程序,以用于执行:获取所述移动终端的内存的当前占用比值,判断所述当前占用比值是否大于或者等于预设阈值;如果所述当前占用比值大于或者等于所述预设阈值,则调用测试软件进行内存泄漏测试并生成测试文件,以对所述移动终端的内存进行测试。

本发明第三方面实施例提出的电子设备,通过获取移动终端的内存的当前占用比值,在当前占用比值大于或者等于预设阈值时,调用测试软件进行内存泄漏测试并生成测试文件,以对移动终端的内存进行测试,不仅能够节省内存泄露的测试时间,而且提升测试精确度,并有效提升测试效率。

为达上述目的,本发明第四方面实施例提出了一种存储介质,其中,该存储介质用于存储应用程序,所述应用程序用于在运行时执行本发明实施例所述的内存测试方法。

本发明第四方面实施例提供的存储介质,通过获取移动终端的内存的当前占用比值,在当前占用比值大于或者等于预设阈值时,调用测试软件进行内存泄漏测试并生成测试文件,以对移动终端的内存进行测试,不仅能够节省内存泄露的测试时间,而且提升测试精确度,并有效提升测试效率。

为达上述目的,本发明第五方面实施例提出了一种应用程序,其中,所述应用程序用于在运行时执行本发明实施例所述的内存测试方法。

本发明第五方面实施例提供的应用程序,通过获取移动终端的内存的当前占用比值,在当前占用比值大于或者等于预设阈值时,调用测试软件进行内存泄漏测试并生成测试文件,以对移动终端的内存进行测试,不仅能够节省内存泄露的测试时间,而且提升测试精确度,并有效提升测试效率。

本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。

附图说明

本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:

图1是本发明一实施例提出的内存测试方法的流程示意图;

图2是本发明另一实施例提出的内存测试方法的流程示意图;

图3是本发明另一实施例提出的内存测试方法的流程示意图;

图4是本发明另一实施例提出的内存测试方法的流程示意图;

图5是本发明另一实施例提出的内存测试方法的流程示意图;

图6是本发明一实施例提出的内存测试装置的结构示意图;

图7是本发明另一实施例提出的内存测试装置的结构示意图;

图8是本发明实施例的一个电子设备的结构示意图。

具体实施方式

下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。相反,本发明的实施例包括落入所附加权利要求书的精神和内涵范围内的所有变化、修改和等同物。

图1是本发明一实施例提出的内存测试方法的流程示意图。

参见图1,该内存测试方法包括:

s11:获取移动终端的内存的当前占用比值,判断当前占用比值是否大于或者等于预设阈值。

其中,移动终端可以是智能手机、平板电脑、个人数字助理、电子书等具有各种操作系统的硬件设备。

在本发明的实施例中,预设阈值可以由移动终端的出厂程序预先设定,或者,预设阈值也可以由用户进行设置,例如为90%,对此不作限制。

在本发明的实施例中,可以每隔预设间隔时间根据预设配置文件调用监控器;通过监控器获取移动终端的内存的当前占用比值。

一些实施例中,参见图2,步骤s11包括:

s21:每隔预设间隔时间根据预设配置文件调用监控器。

其中,预设间隔时间可以由移动终端的出厂程序预先设定,或者,预设阈值也可以由用户进行设置,例如为5秒,对此不作限制。

在本发明的实施例中,预设配置文件为预先配置的,可以使项目测试人员在任意项目中灵活地根据预设配置文件调用监控器中的onstart函数对内存泄露进行实时监控,有效节省内存泄露的测试时间,提升测试效率。

例如,可以通过monkey发送伪随机的用户事件流,对移动终端中的应用程序做压力测试,其中,monkey是androidsdk提供的一个命令行工具,能够简单方便地运行在任何版本的android模拟器和实体设备上。通过monkey自动测试运行程序每隔预设间隔时间(例如,5秒)根据预设配置文件调用监控器,以通过监控器获取移动终端的内存的当前占用比值。

s22:通过监控器获取移动终端的内存的当前占用比值。

通过监控器获取移动终端的内存的当前占用比值,能够对内存泄露情况进行实时监控,不依赖于项目测试人员人工测试,有效节省内存泄露的测试时间,提升测试效率。

s23:判断当前占用比值是否大于或者等于预设阈值。

可选地,判断当前占用比值是否大于或者等于预设阈值,在当前占用比值大于或者等于预设阈值时,表明移动终端中的应用程序存在内存泄漏的情况,此时需要调用测试软件进行内存泄漏测试,在当前占用比值小于预设阈值时,表明应用程序未存在内存泄漏的情况,此时不作任何处理。

本实施例中,通过监控器获取移动终端的内存的当前占用比值,判断当前占用比值是否大于或者等于预设阈值,能够通过监控器对内存泄露情况进行实时监控,不依赖于项目测试人员人工测试,有效节省内存泄露的测试时间,提升测试效率。

在本发明的实施例中,还可以获取移动终端的总内存和当前空闲内存;根据总内存和当前空闲内存计算内存的当前占用比值。

一些实施例中,参见图3,步骤s11具体包括:

s31:获取移动终端的总内存和当前空闲内存。

可选地,可以通过监控器获取移动终端的总内存和当前空闲内存,分别标记为totalmemory()和freememory(),以根据总内存和当前空闲内存计算内存的当前占用比值,能够通过监控器对内存的使用情况进行实时监控,有效节省内存泄露的测试时间。

s32:根据总内存和当前空闲内存计算内存的当前占用比值。

可选地,可以根据下述公式得到移动终端的内存的当前占用比值为:

其中,usedmemory为移动终端已使用的内存,usedpersent为移动终端的内存的当前占用比值。

s33:判断当前占用比值是否大于或者等于预设阈值。

可选地,判断当前占用比值usedpersent是否大于或者等于预设阈值,在usedpersent大于或者等于预设阈值时,表明移动终端中的应用程序存在内存泄漏的情况,此时需要调用测试软件进行内存泄漏测试,在usedpersent小于预设阈值时,表明应用程序未存在内存泄漏的情况,此时不作任何处理。

本实施例中,通过获取移动终端的总内存和当前空闲内存;根据总内存和当前空闲内存计算内存的当前占用比值,判断当前占用比值是否大于或者等于预设阈值,能够有效节省内存泄露的测试时间,提升测试效率。

一些实施例中,参见图4,在步骤s11之前,还包括:

s41:将监控器的onstart方法写入移动终端中的应用程序oncreate方法中,以在移动终端中的应用程序启动运行时,启动监控器。

在本发明的实施例中,监控器的入口函数为oncreate()。

可选地,在每个应用程序启动运行时,android系统会为其且仅创建1个application类的对象,所以application可以说是单例模式(singleton)的1个类。且由于application对象的生命周期是全部程序中最长的,因此它的生命周期就等于整个程序的生命周期,而它运行时的第一个函数为oncreate(),所以,需要将监控器的onstart方法写入移动终端中的应用程序oncreate方法中,以在移动终端中的应用程序启动运行时,启动监控器。

本步骤中,通过将监控器的onstart方法写入移动终端中的应用程序oncreate方法中,以在移动终端中的应用程序启动运行时,启动监控器,能够通过监控器对内存泄露情况进行实时监控,不依赖于项目测试人员人工测试,有效节约测试的时间成本,提升测试效率。

s12:如果当前占用比值大于或者等于预设阈值,则调用测试软件进行内存泄漏测试并生成测试文件,以对移动终端的内存进行测试。

可选地,在当前占用比值大于或者等于预设阈值时,例如,在移动终端内存的当前占用比值大于或者等于90%时,表明移动终端中的应用程序存在内存泄露的情况,此时,需要调用测试软件进行内存泄漏测试。

在调用测试软件进行内存泄漏测试后,生成测试文件,例如,生成hprof文件,其中,hprof文件是二进制格式,后缀名为.hprof,对于android执行android.os.debug.dumphprofdata(hprofpath)方法后所生成的文件,需要使用androidsdk提供的hprof-conv工具将.hprof文件从dalvik格式转换成j2sehprof格式,以对移动终端的内存进行测试。

一些实施例中,参见图5,在步骤s12后,还包括:

s51:读取测试文件中应用程序的进程产生内存泄漏事件的信息。

可选地,可以读取测试文件中应用程序的进程产生内存泄漏事件的信息,以根据信息生成提示消息。

s52:根据信息生成提示消息,并对提示消息进行显示。可选地,在读取到测试文件中应用程序的进程产生内存泄漏事件的信息时,可以根据信息生成提示消息,并对提示消息进行显示,以便于项目测试人员实时跟进检测结果,例如,可以采用email和短信的方式通知相关测试人员,对此不作限制,能够实现android内存泄露的自动化实时监控,使得项目测试人员实时跟进内存测试结果,有效提升内存泄露的测试效率。

s53:将测试文件存储在存储路径中。

在本发明的实施例中,预设配置文件还包括:测试文件的存储路径。

可选地,将测试文件存储在预设配置文件中的存储路径中,能够使项目测试人员在任意项目中灵活调用监控器中的onstart函数对内存泄露进行实时监控,有效节省内存泄露的测试时间,提升测试效率。

本实施例中,读取测试文件中应用程序的进程产生内存泄漏事件的信息,根据信息生成提示消息,并对提示消息进行显示,能够实现android内存泄露的自动化实时监控,使得项目测试人员实时跟进内存测试结果,有效提升内存泄露的测试效率,通过将测试文件存储在存储路径中,能够使项目测试人员在任意项目中灵活调用监控器中的onstart函数对内存泄露进行实时监控,有效节省内存泄露的测试时间,提升测试效率。

本实施例中,通过获取移动终端的内存的当前占用比值,在当前占用比值大于或者等于预设阈值时,调用测试软件进行内存泄漏测试并生成测试文件,以对移动终端的内存进行测试,不仅能够节省内存泄露的测试时间,而且提升测试精确度,并有效提升测试效率。

图6是本发明一实施例提出的内存测试装置的结构示意图。

参见图6,该内存测试装置60包括:获取模块601、判断模块602、调用模块603,以及测试模块。其中,

获取模块601,用于获取移动终端的内存的当前占用比值。

判断模块602,用于判断当前占用比值是否大于或者等于预设阈值。

调用模块603,用于在当前占用比值大于或者等于预设阈值时,调用测试软件进行内存泄漏测试并生成测试文件,以对移动终端的内存进行测试。

一些实施例中,参见图7,获取模块601具体用于:

每隔预设间隔时间根据预设配置文件调用监控器;

通过监控器获取移动终端的内存的当前占用比值。

一些实施例中,参见图7,该内存测试装置60还包括:

写入模块604,用于在获取移动终端的内存的当前占用比值之前,将监控器的onstart方法写入移动终端中的应用程序oncreate方法中,以在移动终端中的应用程序启动运行时,启动监控器。

一些实施例中,参见图7,获取模块601还用于:

获取移动终端的总内存和当前空闲内存;

根据总内存和当前空闲内存计算内存的当前占用比值。

一些实施例中,参见图7,还包括:

读取模块605,用于读取测试文件中应用程序的进程产生内存泄漏事件的信息。

生成模块606,用于根据信息生成提示消息,并对提示消息进行显示。

可选地,预设配置文件还包括:测试文件的存储路径。

一些实施例中,参见图7,该内存测试装置60还包括:

存储模块607,用于在调用测试软件进行内存泄漏测试并生成测试文件之后,将测试文件存储在存储路径中。

需要说明的是,前述图1-图5实施例中对内存测试方法实施例的解释说明也适用于该实施例的内存测试装置,其实现原理类似,此处不再赘述。

本实施例中,通过获取移动终端的内存的当前占用比值,在当前占用比值大于或者等于预设阈值时,调用测试软件进行内存泄漏测试并生成测试文件,以对移动终端的内存进行测试,不仅能够节省内存泄露的测试时间,而且提升测试精确度,并有效提升测试效率。

本发明实施例还提供了一种电子设备,参见图8,终端设备800可以包括以下一个或多个组件:处理器801,存储器802,电源电路803,多媒体组件804,音频组件805,输入/输出(i/o)的接口806,传感器组件807,以及通信组件808。

电源电路803,用于为移动终端的各个电路或器件供电;存储器802用于存储可执行程序代码;处理器801通过读取存储器802中存储的可执行程序代码来运行与可执行程序代码对应的程序,以用于执行以下步骤:

获取移动终端的内存的当前占用比值,判断当前占用比值是否大于或者等于预设阈值;

如果当前占用比值大于或者等于预设阈值,则调用测试软件进行内存泄漏测试并生成测试文件,以对移动终端的内存进行测试。

需要说明的是,前述图1-图5实施例中对内存测试方法实施例的解释说明也适用于该实施例的电子设备,其实现原理类似,此处不再赘述。

本实施例中,通过获取移动终端的内存的当前占用比值,在当前占用比值大于或者等于预设阈值时,调用测试软件进行内存泄漏测试并生成测试文件,以对移动终端的内存进行测试,不仅能够节省内存泄露的测试时间,而且提升测试精确度,并有效提升测试效率。

为了实现上述实施例,本发明还提出一种存储介质。其中,该存储介质用于存储应用程序,该应用程序用于在运行时执行本发明实施例的内存测试方法,其中,该内存测试方法包括:

获取移动终端的内存的当前占用比值,判断当前占用比值是否大于或者等于预设阈值;如果当前占用比值大于或者等于预设阈值,则调用测试软件进行内存泄漏测试并生成测试文件,以对移动终端的内存进行测试。

需要说明的是,本实施例的应用程序执行内存测试方法和原理和实现方式与上述实施例的内存测试方法类似,为了避免冗余,此处不再赘述。

本发明实施例的存储介质,通过获取移动终端的内存的当前占用比值,在当前占用比值大于或者等于预设阈值时,调用测试软件进行内存泄漏测试并生成测试文件,以对移动终端的内存进行测试,不仅能够节省内存泄露的测试时间,而且提升测试精确度,并有效提升测试效率。

为了实现上述实施例,本发明还提出一种应用程序,其中,该应用程序用于在运行时执行本发明实施例的内存测试方法,其中,该内存测试方法包括:

获取移动终端的内存的当前占用比值,判断当前占用比值是否大于或者等于预设阈值;

如果当前占用比值大于或者等于预设阈值,则调用测试软件进行内存泄漏测试并生成测试文件,以对移动终端的内存进行测试。

需要说明的是,本实施例的应用程序执行内存测试方法和原理和实现方式与上述实施例的内存测试方法类似,为了避免冗余,此处不再赘述。

本发明实施例的应用程序,通过获取移动终端的内存的当前占用比值,在当前占用比值大于或者等于预设阈值时,调用测试软件进行内存泄漏测试并生成测试文件,以对移动终端的内存进行测试,不仅能够节省内存泄露的测试时间,而且提升测试精确度,并有效提升测试效率。

需要说明的是,在本发明的描述中,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。

流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。

应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(pga),现场可编程门阵列(fpga)等。

本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。

此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。

上述提到的存储介质可以是只读存储器,磁盘或光盘等。

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。

尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。

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