一种应用的测试方法及装置制造方法

文档序号:6550429阅读:157来源:国知局
一种应用的测试方法及装置制造方法
【专利摘要】本发明实施例提供了一种应用的测试方法及装置,该方法包括:获得待测试应用所在终端的耗电量分布信息,所述耗电量分布信息包括所述待测试应用使用的所述终端中的至少一个硬件单元中每个所述硬件单元的耗电量;获得所述待测试应用所在终端的硬件单元的设备参数、所述待测试应用对应的主进程的运行状态信息和所述待测试应用的界面信息中至少一个;依据所述硬件单元的设备参数、所述待测试应用对应的主进程的运行状态信息和所述待测试应用的界面信息中至少一个以及所述耗电量分布信息,获得所述待测试应用的硬件单元使用状况分析结果。根据本发明实施例提供的技术方案,可以实现提高应用测试参数的覆盖率和提高应用的测试效率。
【专利说明】一种应用的测试方法及装置 【【技术领域】】
[0001] 本发明涉及通信【技术领域】,尤其涉及一种应用的测试方法及装置。 【【背景技术】】
[0002] 随着智能终端的快速发展,各种应用(Application, APP)应运而生,智能终端中 安装的应用不仅需要提供复杂的功能,还需要具有良好的性能,在应用的测试过程中,十分 关注应用的耗电性能。
[0003] 目前测试过程中,应用的测试工具能够对应用的耗电性能进行测试,获得耗电量 的百分比或者应用的总耗电量。然而,目前的测试工具不能获得应用的耗电量分布,无法实 现依据应用的耗电量分布对应用的耗电性能进行优化,使得应用测试参数的覆盖率和应用 的测试效率比较低。 【
【发明内容】

[0004] 有鉴于此,本发明实施例提供了一种应用的测试方法及装置,可以实现提高应用 测试参数的覆盖率和提高应用的测试效率。
[0005] 本发明实施例提供了一种应用的测试方法,包括:
[0006] 获得待测试应用所在终端的耗电量分布信息,所述耗电量分布信息包括所述待测 试应用使用的所述终端中的至少一个硬件单元中每个所述硬件单元的耗电量;
[0007] 获得所述待测试应用所在终端的硬件单元的设备参数、所述待测试应用对应的主 进程的运行状态信息和所述待测试应用的界面信息中至少一个;
[0008] 依据所述硬件单元的设备参数、所述待测试应用对应的主进程的运行状态信息和 所述待测试应用的界面信息中至少一个以及所述耗电量分布信息,获得所述待测试应用的 硬件单元使用状况分析结果。
[0009] 上述方法中,所述获得待测试应用所在终端的耗电量分布信息,包括:
[0010] 从功率分布文件中获得所述待测试应用所在终端中每个所述硬件单元的额定电 流数据;
[0011] 获得所述待测试应用对应的主进程的标识和子进程的标识;
[0012] 依据每个所述硬件单元的名称、所述主进程的标识和所述子进程的标识,调用电 量计时器提供的接口函数,以获得所述子进程或者主进程使用的硬件单元的时长;
[0013] 依据所述待测试应用所在终端中每个所述硬件单元的额定电流数据和所述子进 程或者主进程使用的硬件单元的时长,获得所述待测试应用使用的所述至少一个硬件单元 中每个所述硬件单元的耗电量。
[0014] 上述方法中,所述获得待测试应用所在终端的硬件单元的设备参数,包括:依据硬 件单元与接口函数的对应关系,调用所述终端中硬件单元对应的接口函数,以获得所述硬 件单元的设备参数;所述硬件单元的设备参数包括以下信息中至少一个:所述待测试应用 所在终端的屏幕亮度、所述待测试应用所在终端的网络开关状态、所述待测试应用所在终 端的网络传输状态和所述待测试应用所在终端的传感器开关状态;或者,依据所述待测试 应用的标识,获得待测试应用所使用的唤醒锁,依据所述唤醒锁对应的电量计时器的数值, 获得所述唤醒锁被待测试应用所使用的时长;和/或,
[0015] 所述获得所述待测试应用对应的主进程的运行状态信息,包括:调用运行时刻函 数,以使得所述运行时刻函数依据输入的待测试应用的标识,运行过程状态指令,以获得所 述待测试应用对应的主进程的运行状态;和/或,
[0016] 所述获得待所述待测试应用的界面信息,包括:调用运行时刻函数,以使得所述运 行时刻函数运行日志获取指令,以获得所述待测试应用所在终端的操作系统的日志信息; 依据所述日志信息获得所述待测试应用渲染的界面以及渲染时刻。
[0017] 上述方法中,若所述硬件单元为传感器,所述依据所述硬件单元的设备参数以及 所述耗电量分布信息,获得所述待测试应用的使用状况分析结果,包括:若所述硬件单元的 设备参数为传感器开启,且所述耗电量分布信息为所述传感器的耗电量为0,确定所述待测 试应用的使用状况分析结果为使用所述传感器不合理。
[0018] 上述方法中,若所述硬件单元为网络单元,所述依据所述待测试应用对应的主进 程的运行状态信息以及所述耗电量分布信息,获得所述待测试应用的硬件单元使用状况分 析结果,包括:若所述待测试应用对应的主进程的运行状态信息为非运行状态,且所述耗电 量分布信息为网络单元的耗电量不为〇,确定所述待测试应用的使用状况分析结果为所述 待测试应用对应的子进程使用的硬件单元的耗电量不为0。
[0019] 上述方法中,若所述硬件单元为中央处理器CPU,所述依据所述待测试应用的界面 信息以及所述耗电量分布信息,获得所述待测试应用的硬件单元使用状况分析结果,包括: 依据所述待测试应用的界面信息,获得唤醒锁的状态变化信息;若所述状态变化信息为所 述唤醒锁由使用状态变为非使用状态,且所述耗电量分部信息为CPU的耗电量与耗电量峰 值之间的差值小于预设的耗电量阈值,确定所述待测试应用的使用状况分析结果为所述唤 醒锁没有释放使用的CPU。
[0020] 上述方法中,所述方法还包括:
[0021] 依据预设的邮箱地址,将所述待测试应用所在终端的硬件单元的设备参数、所述 待测试应用对应的主进程的运行状态信息和所述待测试应用的界面信息中至少一个、所述 待测试应用所在终端的耗电量分布信息和所述待测试应用的硬件单元使用状况分析结果, 发送至所述邮箱地址对应的邮箱;和/或,
[0022] 显示提示信息,所述提示信息用于提示从存储设备获得所述待测试应用所在终端 的硬件单元的设备参数、所述待测试应用对应的主进程的运行状态信息和所述待测试应用 的界面信息中至少一个、所述待测试应用所在终端的耗电量分布信息和所述待测试应用的 硬件单元使用状况分析结果;和/或,
[0023] 显示提示窗口,所述提示窗口中显示所述待测试应用所在终端的耗电量分布信 息;其中,所述提示窗口为移动浮层;所述提示窗口显示所述待测试应用所在终端的耗电 量分布信息的方式包括显示耗电量分布数值和/或总耗电量随时间的变化曲线图。
[0024] 本发明实施例还提供一种应用的测试装置,包括:
[0025] 耗电量获取单元,用于获得待测试应用所在终端的耗电量分布信息,所述耗电量 分布信息包括所述待测试应用使用的所述终端中的至少一个硬件单元中每个所述硬件单 元的耗电量;
[0026] 事件获取单元,用于获得所述待测试应用所在终端的硬件单元的设备参数、所述 待测试应用对应的主进程的运行状态信息和所述待测试应用的界面信息中至少一个;
[0027] 分析单元,用于依据所述硬件单元的设备参数、所述待测试应用对应的主进程的 运行状态信息和所述待测试应用的界面信息中至少一个以及所述耗电量分布信息,获得所 述待测试应用的硬件单元使用状况分析结果。
[0028] 上述装置中,所述耗电量获取单元,具体用于:
[0029] 从功率分布文件中获得所述待测试应用所在终端中每个所述硬件单元的额定电 流数据;
[0030] 获得所述待测试应用对应的主进程的标识和子进程的标识;
[0031] 依据每个所述硬件单元的名称、所述主进程的标识和所述子进程的标识,调用电 量计时器提供的接口函数,以获得所述子进程或者主进程使用的硬件单元的时长;
[0032] 依据所述待测试应用所在终端中每个所述硬件单元的额定电流数据和所述子进 程或者主进程使用的硬件单元的时长,获得所述待测试应用使用的所述至少一个硬件单元 中每个所述硬件单元的耗电量。
[0033] 上述装置中,所述事件获取单元,具体用于:
[0034] 依据硬件单元与接口函数的对应关系,调用所述终端中硬件单元对应的接口函 数,以获得所述硬件单元的设备参数;所述硬件单元的设备参数包括以下信息中至少一个: 所述待测试应用所在终端的屏幕亮度、所述待测试应用所在终端的网络开关状态、所述待 测试应用所在终端的网络传输状态和所述待测试应用所在终端的传感器开关状态;或者, 依据所述待测试应用的标识,获得待测试应用所使用的唤醒锁,依据所述唤醒锁对应的电 量计时器的数值,获得所述唤醒锁被待测试应用所使用的时长;和/或,
[0035] 调用运行时刻函数,以使得所述运行时刻函数依据输入的待测试应用的标识,运 行过程状态指令,以获得所述待测试应用对应的主进程的运行状态;和/或,
[0036] 调用运行时刻函数,以使得所述运行时刻函数运行日志获取指令,以获得所述待 测试应用所在终端的操作系统的日志信息;依据所述日志信息获得所述待测试应用渲染的 界面以及渲染时刻。
[0037] 上述装置中,若所述硬件单元为传感器,所述分析单元,具体用于:若所述硬件单 元的设备参数为传感器开启,且所述耗电量分布信息为所述传感器的耗电量为〇,确定所述 待测试应用的使用状况分析结果为使用所述传感器不合理。
[0038] 上述装置中,若所述硬件单元为网络单元,所述分析单元,具体用于:若所述待测 试应用对应的主进程的运行状态信息为非运行状态,且所述耗电量分布信息为网络单元的 耗电量不为〇,确定所述待测试应用的使用状况分析结果为所述待测试应用对应的子进程 使用的硬件单元的耗电量不为〇。
[0039] 上述装置中,若所述硬件单元为中央处理器CPU,所述分析单元,具体用于:依据 所述待测试应用的界面信息,获得唤醒锁的状态变化信息;若所述状态变化信息为所述唤 醒锁由使用状态变为非使用状态,且所述耗电量分部信息为CPU的耗电量与耗电量峰值之 间的差值小于预设的耗电量阈值,确定所述待测试应用的使用状况分析结果为所述唤醒锁 没有释放使用的CPU。
[0040] 上述装置中,所述装置还包括:
[0041] 输出单元,用于依据预设的邮箱地址,将所述待测试应用所在终端的硬件单元的 设备参数、所述待测试应用对应的主进程的运行状态信息和所述待测试应用的界面信息中 至少一个、所述待测试应用所在终端的耗电量分布信息和所述待测试应用的硬件单元使用 状况分析结果,发送至所述邮箱地址对应的邮箱;和/或,
[0042] 显示单元,用于显示提示信息,所述提示信息用于提示从存储设备获得所述待测 试应用所在终端的硬件单元的设备参数、所述待测试应用对应的主进程的运行状态信息和 所述待测试应用的界面信息中至少一个、所述待测试应用所在终端的耗电量分布信息和所 述待测试应用的硬件单元使用状况分析结果;和/或,
[0043] 所述显示单元,还用于显示提示窗口,所述提示窗口中显示所述待测试应用所在 终端的耗电量分布信息;其中,所述提示窗口为移动浮层;所述提示窗口显示所述待测试 应用所在终端的耗电量分布信息的方式包括显示耗电量分布数值和/或总耗电量随时间 的变化曲线图。
[0044] 由以上技术方案可以看出,本发明实施例具有以下有益效果:
[0045] 本发明实施例提供的技术方案能够实现待测试应用所使用的硬件单元的使用情 况的自动分析,从而提高待测试应用的测试效率。
[0046] 与现有技术中只能够获得待测试应用的总耗电量的技术方案相比,能本发明实施 例提供的技术方案够提高测试参数的覆盖率,为待测试应用的性能优化提供更多详细的数 据。 【【专利附图】

【附图说明】】
[0047] 为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附 图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域 普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附 图。
[0048] 图1是本发明实施例所提供的技术方案使用的装置;
[0049] 图2是本发明实施例所提供的应用的测试方法的流程示意图;
[0050] 图3是本发明实施例所提供的邮箱地址设置界面的示意图;
[0051] 图4是本发明实施例所提供的移动浮层的示意图;
[0052] 图5(a)和图5(b)是本发明实施例所提供的待测试应用的配置示意图;
[0053] 图6是本发明实施例所提供的应用的测试装置的功能方块图。 【【具体实施方式】】
[0054] 为了更好的理解本发明的技术方案,下面结合附图对本发明实施例进行详细描 述。
[0055] 应当明确,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基 于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其 它实施例,都属于本发明保护的范围。
[0056] 在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制 本发明。在本发明实施例和所附权利要求书中所使用的单数形式的"一种"、"所述"和"该" 也旨在包括多数形式,除非上下文清楚地表示其他含义。
[0057] 应当理解,本文中使用的术语"和/或"仅仅是一种描述关联对象的关联关系,表 示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B 这三种情况。另外,本文中字符"/",一般表示前后关联对象是一种"或"的关系。
[0058] 取决于语境,如在此所使用的词语"如果"可以被解释成为"在……时"或"当…… 时"或"响应于确定"或"响应于检测"。类似地,取决于语境,短语"如果确定"或"如果检 测(陈述的条件或事件)"可以被解释成为"当确定时"或"响应于确定"或"当检测(陈述 的条件或事件)时"或"响应于检测(陈述的条件或事件)"。
[0059] 本发明实施例所提供的技术方案使用的装置如图1所示,主要包括耗电量获取单 元、事件获取单元和分析单元,还可以包括显示单元和输出单元。本发明实施例所提供的方 法和装置在终端侧实现,用于对终端上安装的待测试应用进行测试,以获得待测试应用的 硬件单元使用状况分析结果,还可以将待测试应用的相关测试数据存储在存储设备中。可 以理解的是,本发明实施例中所述终端可以包括个人计算机(Personal Computer, PC)、笔 记本电脑、手机或者平板电脑。本发明实施例中,所述终端的操作系统可以包括:I〇S系统、 安卓(Android)系统、塞班(Symbian)系统、Windows系统等。
[0060] 本发明实施例给出一种应用的测试方法,请参考图2,其为本发明实施例所提供的 应用的测试方法的流程示意图,如图所示,该方法包括以下步骤:
[0061] S201,获得待测试应用所在终端的耗电量分布信息,所述耗电量分布信息包括所 述待测试应用使用的所述终端中的至少一个硬件单元中每个所述硬件单元的耗电量。
[0062] 具体的,终端中安装的应用在运行时,会依据功能需求,占用终端中的硬件单元, 该硬件单元包括传统的硬件单元和扩展的硬件单元。其中,传统的硬件单元可以包括:中 央处理器(Central Processing Unit, CPU)、屏幕、内存、网络单元等。其中,网络单元可 以包括无线保真(Wireless Fidelity, Wi-Fi)单元、移动蜂窝网络单元或者全球定位系统 (Global Positioning System, GPS)网络单元等。扩展的硬件单元可以包括:相机和传感 器等。
[0063] 另外,对于使用安卓系统的终端,终端上安装的每个应用会持有对应的唤醒锁 (Wakelock),应用持有某唤醒锁时,就会使用该唤醒锁对应的硬件单元,从而导致该应用耗 电。其中,每个唤醒锁可以对应至少一个硬件单元。
[0064] 如图1所示,优选的,耗电量获取单元获得待测试应用所在终端的耗电量分布信 息的方法可以包括:
[0065] 首先,对于一部设备而言,一般的,电压值U是恒定不变的。能耗公式为W = uxixt,依据该公式可以知道通过获取硬件单元的额定电流以及使用该硬件单元的时间, 就可以获得硬件单元的耗电量。
[0066] 例如,使用安卓系统的终端中,预先设置有功率分布文件(如power_profile. xml),该功率分布文件用于存储该终端中的每个硬件单元的额定电流数据,因此,本发明实 施例中,可以从预设的功率分布文件中获得所述待测试应用所在终端中每个硬件单元的额 定电流数据。
[0067] 例如,功率分布文件可以包括如下述字符串:
[0068] 〈device name =" Android" >
[0069] <i-All value are in mA except as noted->
[0070] 〈item name = "none" >0〈/item>
[0071] 〈item name = " screen on" >200〈/item>〈 ! -min brite->
[0072] 〈item name = "bluetooth, active" >150〈/item>
[0073] 〈item name = " bluetooth, on" >l〈/item>
[0074] 〈item name = "bluetooth, at" >l〈/item>〈 ! -TBD->
[0075] 〈item name = " screen, full" >160〈/item>〈 ! -360max on calendar->
[0076] 〈item name ="wifi. on">l〈/item>〈 ! -wifi 处于开启状态,但未传输数据- >
[0077] 〈item name ="wifi. active" >150〈/item>〈 ! -wifi 处于传输数据状态->
[0078] 〈item name = " dsp. audio" >150〈/item>
[0079] 〈item name = " dsp. video" >200〈/item>
[0080] 〈item name = "radio, active" >150〈/item>
[0081] 〈item name = " gps. on" >55〈/item>
[0082] 〈item name = " battery, capacity" >1750〈/item>
[0083] 〈item name = " radio, scanning" >90〈/item>〈 ! -TBD->
[0084] 例如,〈item name =" screen on" >200〈/item>表示待测试应用所在终端中的屏 幕在开启状态下的额定电流是200mA。
[0085] 再例如,〈item name ="wifi. active">150〈/item>表示待测试应用所在终端中的 Wi-Fi单元在传输数据时的额定电流是150mA。
[0086] 然后,获得所述待测试应用对应的主进程的标识和子进程的标识;依据每个所述 硬件单元的名称、所述主进程的标识和所述子进程的标识,调用电量计时器提供的接口函 数,以获得所述子进程或者主进程使用的硬件单元的时长。
[0087] 其中,获得所述待测试应用对应的主进程的标识和子进程的标识的方法可以 是:终端的操作系统在启动待测试应用后,会为该待测试应用分配一个用户标识(User Identity,UID),还会为该用户标识分配对应的一个主进程的标识和至少一个子进程的标 识,主进程的标识和子进程的标识可以为进程标识(Process Identity,PID)。因此,对于 给定的待测试应用,可以依据该待测试应用的标识,如待测试应用的名称Packagename,获 得该待测试应用的用户标识,然后依据用户标识获得该待测试应用对应的主进程的标识和 子进程的标识。
[0088] 其中,终端中由电量计时器来负责统计应用使用的硬件单元的时长,电量计时器 的数目可以是多个。例如,使用安卓系统的终端中的BatteryStateService模块中包括多 个电量计时器,每个电量计时器统计应用使用的某一硬件单元的时长。
[0089] 其中,获得所述子进程或者主进程使用的硬件单元的时长的方法可以是:
[0090] 调用电量计时器提供的接口函数,将硬件单元的名称和主进程的标识输入到该接 口函数,接口函数依据硬件单元的名称和主进程的标识,从用于记录该主进程使用的硬件 单元的时长的电量计时器中获得该主进程使用的硬件单元的时长;同理,调用电量计时器 提供的接口函数,将硬件单元的名称和子进程的标识输入到该接口函数,接口函数依据硬 件单元的名称和子进程的标识,从用于记录该子进程使用的硬件单元的时长的电量计时器 中获得该子进程使用的硬件单元的时长。
[0091] 需要说明的是,由于可以存在多个子进程或者主进程都使用同一硬件单元,所以 需要依据主进程的标识以及硬件单元的名称,或者,子进程的标识以及硬件单元的名称,获 得使用该硬件单元的至少一个子进程或者至少一个主进程中,某一个主进程或者某一个子 进程的使用时长。
[0092] 需要说明的是,待测试应用对应的主进程主要用于实现待测试应用渲染界面的功 能;待测试应用的主进程对应的子进程主要用于实现该待测试应用的其他功能,如消息推 送功能和定位功能等。
[0093] 最后,依据所述待测试应用所在终端中每个硬件单元的额定电流数据和所述子进 程或者主进程使用的硬件单元的时长,获得所述待测试应用使用的所述至少一个硬件单元 中每个所述硬件单元的耗电量。
[0094] 例如,可以依据获得的待测试应用所在终端中硬件单元的额定电流与主进程使用 的该硬件单元的时长的乘积,获得待测试应用使用的该硬件单元的耗电量;或者,可以依据 获得的待测试应用所在终端中硬件单元的额定电流与子进程使用的该硬件单元的时长的 乘积。
[0095] 例如,以硬件单元为GPS单元为例,获得该GPS单元的耗电量的方法可以是:依 据待测试应用的名称获得对应的用户标识,然后依据该用户标识获得对应的所有进程,包 括主进程和子进程;获得每个进程所使用的所有硬件单元,判断这些硬件单元中是否存在 GPS单元,如果存在,依据使用GPS单元的进程的标识,调用接口函数,以获得电量计时器记 录的该进程使用的GPS的时长,利用该方法获得所有使用GPS单元的进程的时长总和,将该 时长总和与GPS单元的额定电流相乘,以获得待测试应用所在终端中GPS单元的耗电量。其 中,电量计时器在每次终端充电后都会将之前的计时置为〇,以便于重新开始计时。
[0096] 需要说明的是,使用的时长可以是两次获取到的时长的差值,这样就可以获得两 次获取时长操作之间,硬件单元的耗电量。
[0097] S202,获得所述待测试应用所在终端的硬件单元的设备参数、所述待测试应用对 应的主进程的运行状态信息和所述待测试应用的界面信息中至少一个。
[0098] 具体的,如图1所示,事件获取单元获得待测试应用所在终端的硬件单元的设备 参数、待测试应用对应的主进程的运行状态信息和待测试应用的界面信息中至少一个。 [0099] 优选的,事件获取单元获得待测试应用所在终端的硬件单元的设备参数的方法可 以包括:依据硬件单元与接口函数的对应关系,调用所述终端中硬件单元对应的接口函数, 以获得所述硬件单元的设备参数;所述硬件单元的设备参数包括以下信息中至少一个:所 述待测试应用所在终端的屏幕亮度、所述待测试应用所在终端的网络开关状态、所述待测 试应用所在终端的网络传输状态和所述待测试应用所在终端的传感器开关状态。其中,网 络传输状态包括网络传输类型和网络传输产生的流量。或者,依据待测试应用的用户标识, 获得待测试应用所使用的唤醒锁,依据所述唤醒锁获得该唤醒锁对应的电量计时器,读取 电量计时器的数值,以获得该唤醒锁被待测试应用所使用的时长。
[0100] 例如,可以调用接口函数Settings. System. SCREEN_BRIGHTNESS,被调用的接口函 数获取待测试应用所在终端的屏幕当前的亮度值。
[0101] 再例如,可以调用Networklnfo的isConnectedO接口函数,被调用的接口函数获 取待测试应用所在终端的网络开关状态。
[0102] 再例如,可以调用Networklnfo的getTypeO接口函数,被调用的接口函数获取待 测试应用所在终端的网络传输类型。
[0103] 再例如,可以调用getTcpBytesReceivedO接口函数,被调用的接口函数获取待 测试应用所在终端的网络接收流量,依据获取的两次流量的差值可以确定两次调用之间是 否产生了接收流量。可以调用getTcpBytesSentO接口函数,被调用的接口函数获取待测 试应用所在终端的网络发送流量,依据获取的两次流量的差值可以确定两次调用之间是否 产生了发送流量。
[0104] 再例如,可以调用BatteryStats. Uid. Sensor接口函数,被调用的接口函数获取 待测试应用所在终端的传感器开关状态。
[0105] 优选的,事件获取单元获得所述待测试应用对应的主进程的运行状态信息的方法 可以包括:调用运行时刻函数,向所述运行时刻函数输入待测试应用的标识,以使得所述运 行时刻函数依据输入的待测试应用的标识,运行过程状态指令,以获得所述待测试应用对 应的主进程的运行状态。
[0106] 例如,如果待测试应用所在终端使用的系统为安卓系统,可以调用运行时刻函数, 如runtime函数,向该runtime函数传入待测试应用的标识,这样,被调用的runtime函数 依据待测试应用的标识,运行过程状态指令,如进程状态(Process Status,PS)指令,获取 待测试应用对应的主进程的运行状态。其中,主进程的运行状态可以包括如下状态:休眠状 态、运行状态或者停止或被追踪状态等。
[0107] 优选的,事件获取单元获得待所述待测试应用的界面信息的方法可以包括:调用 运行时刻函数,以使得所述运行时刻函数运行日志获取指令,以获得所述待测试应用所在 终端的操作系统的日志信息;依据所述日志信息获得所述待测试应用渲染的界面以及渲染 时刻。
[0108] 例如,如果待测试应用所在终端使用的系统为安卓系统,可以调用运行时刻函数, 如runtime函数,向该runtime函数传入待测试应用的标识,这样,被调用的runtime函数 依据待测试应用的标识,运行日志获取指令,如LogCat指令,以获得所述待测试应用所在 终端的操作系统的日志信息,然后对日志信息中的界面管理(ActivityManager)文件进行 过滤,以获取其中待测试应用所渲染的界面以及对应的渲染时刻。
[0109] 需要说明的是,通过获取待测试应用的界面信息,可以获知某一时刻终端上发生 的界面切换,可以用于复现待测试应用上的操作路径,将界面信息与耗电量分布信息结合, 就可以获知哪些操作使得待测试应用所在终端中的硬件单元的耗电量激增。
[0110] S203,依据所述硬件单元的设备参数、所述待测试应用对应的主进程的运行状态 信息和所述待测试应用的界面信息中至少一个以及所述耗电量分布信息,获得所述待测试 应用的硬件单元使用状况分析结果。
[0111] 具体的,如图1所示,分析单元依据所述硬件单元的设备参数、所述待测试应用对 应的主进程的运行状态信息和所述待测试应用的界面信息中至少一个以及所述耗电量分 布信息,对待测试应用的硬件单元的使用状况进行分析,以获得所述待测试应用的硬件单 元使用状况分析结果。
[0112] 优选的,若所述硬件单元为传感器,获得的所述硬件单元的设备参数为传感器开 启,获得的所述耗电量分布信息为所述传感器的耗电量为〇,表示传感器没有耗电,但是传 感器却处于开启状态,从而可以确定所述待测试应用的使用状况分析结果为使用所述传感 器不合理。
[0113] 例如,表1为某待测试应用的耗电量分布信息;表2为某待测试应用的硬件单元的 设备参数。
[0114] 表 1
[0115]
【权利要求】
1. 一种应用的测试方法,其特征在于,所述方法包括: 获得待测试应用所在终端的耗电量分布信息,所述耗电量分布信息包括所述待测试应 用使用的所述终端中的至少一个硬件单元中每个所述硬件单元的耗电量; 获得所述待测试应用所在终端的硬件单元的设备参数、所述待测试应用对应的主进程 的运行状态信息和所述待测试应用的界面信息中至少一个; 依据所述硬件单元的设备参数、所述待测试应用对应的主进程的运行状态信息和所述 待测试应用的界面信息中至少一个以及所述耗电量分布信息,获得所述待测试应用的硬件 单元使用状况分析结果。
2. 根据权利要求1所述的方法,其特征在于,所述获得待测试应用所在终端的耗电量 分布信息,包括: 从功率分布文件中获得所述待测试应用所在终端中每个所述硬件单元的额定电流数 据; 获得所述待测试应用对应的主进程的标识和子进程的标识; 依据每个所述硬件单元的名称、所述主进程的标识和所述子进程的标识,调用电量计 时器提供的接口函数,以获得所述子进程或者主进程使用的硬件单元的时长; 依据所述待测试应用所在终端中每个所述硬件单元的额定电流数据和所述子进程或 者主进程使用的硬件单元的时长,获得所述待测试应用使用的所述至少一个硬件单元中每 个所述硬件单元的耗电量。
3. 根据权利要求1所述的方法,其特征在于, 所述获得待测试应用所在终端的硬件单元的设备参数,包括:依据硬件单元与接口函 数的对应关系,调用所述终端中硬件单元对应的接口函数,以获得所述硬件单元的设备参 数;所述硬件单元的设备参数包括以下信息中至少一个:所述待测试应用所在终端的屏幕 亮度、所述待测试应用所在终端的网络开关状态、所述待测试应用所在终端的网络传输状 态和所述待测试应用所在终端的传感器开关状态;或者,依据所述待测试应用的标识,获得 待测试应用所使用的唤醒锁,依据所述唤醒锁对应的电量计时器的数值,获得所述唤醒锁 被待测试应用所使用的时长;和/或, 所述获得所述待测试应用对应的主进程的运行状态信息,包括:调用运行时刻函数,以 使得所述运行时刻函数依据输入的待测试应用的标识,运行过程状态指令,以获得所述待 测试应用对应的主进程的运行状态;和/或, 所述获得待所述待测试应用的界面信息,包括:调用运行时刻函数,以使得所述运行时 刻函数运行日志获取指令,以获得所述待测试应用所在终端的操作系统的日志信息;依据 所述日志信息获得所述待测试应用渲染的界面以及渲染时刻。
4. 根据权利要求1至3中任一项所述的方法,其特征在于,若所述硬件单元为传感器, 所述依据所述硬件单元的设备参数以及所述耗电量分布信息,获得所述待测试应用的使用 状况分析结果,包括:若所述硬件单元的设备参数为传感器开启,且所述耗电量分布信息为 所述传感器的耗电量为〇,确定所述待测试应用的使用状况分析结果为使用所述传感器不 合理。
5. 根据权利要求1至3中任一项所述的方法,其特征在于,若所述硬件单元为网络单 元,所述依据所述待测试应用对应的主进程的运行状态信息以及所述耗电量分布信息,获 得所述待测试应用的硬件单元使用状况分析结果,包括:若所述待测试应用对应的主进程 的运行状态信息为非运行状态,且所述耗电量分布信息为网络单元的耗电量不为0,确定所 述待测试应用的使用状况分析结果为所述待测试应用对应的子进程使用的硬件单元的耗 电量不为0。
6. 根据权利要求1至3中任一项所述的方法,其特征在于,若所述硬件单元为中央处理 器CPU,所述依据所述待测试应用的界面信息以及所述耗电量分布信息,获得所述待测试应 用的硬件单元使用状况分析结果,包括:依据所述待测试应用的界面信息,获得唤醒锁的状 态变化信息;若所述状态变化信息为所述唤醒锁由使用状态变为非使用状态,且所述耗电 量分部信息为CPU的耗电量与耗电量峰值之间的差值小于预设的耗电量阈值,确定所述待 测试应用的使用状况分析结果为所述唤醒锁没有释放使用的CPU。
7. 根据权利要求1所述的方法,其特征在于,所述方法还包括: 依据预设的邮箱地址,将所述待测试应用所在终端的硬件单元的设备参数、所述待测 试应用对应的主进程的运行状态信息和所述待测试应用的界面信息中至少一个、所述待测 试应用所在终端的耗电量分布信息和所述待测试应用的硬件单元使用状况分析结果,发送 至所述邮箱地址对应的邮箱;和/或, 显示提示信息,所述提示信息用于提示从存储设备获得所述待测试应用所在终端的硬 件单元的设备参数、所述待测试应用对应的主进程的运行状态信息和所述待测试应用的界 面信息中至少一个、所述待测试应用所在终端的耗电量分布信息和所述待测试应用的硬件 单元使用状况分析结果;和/或, 显示提示窗口,所述提示窗口中显示所述待测试应用所在终端的耗电量分布信息;其 中,所述提示窗口为移动浮层;所述提示窗口显示所述待测试应用所在终端的耗电量分布 信息的方式包括显示耗电量分布数值和/或总耗电量随时间的变化曲线图。
8. -种应用的测试装置,其特征在于,所述装置包括: 耗电量获取单元,用于获得待测试应用所在终端的耗电量分布信息,所述耗电量分布 信息包括所述待测试应用使用的所述终端中的至少一个硬件单元中每个所述硬件单元的 耗电量; 事件获取单元,用于获得所述待测试应用所在终端的硬件单元的设备参数、所述待测 试应用对应的主进程的运行状态信息和所述待测试应用的界面信息中至少一个; 分析单元,用于依据所述硬件单元的设备参数、所述待测试应用对应的主进程的运行 状态信息和所述待测试应用的界面信息中至少一个以及所述耗电量分布信息,获得所述待 测试应用的硬件单元使用状况分析结果。
9. 根据权利要求8所述的装置,其特征在于,所述耗电量获取单元,具体用于: 从功率分布文件中获得所述待测试应用所在终端中每个所述硬件单元的额定电流数 据; 获得所述待测试应用对应的主进程的标识和子进程的标识; 依据每个所述硬件单元的名称、所述主进程的标识和所述子进程的标识,调用电量计 时器提供的接口函数,以获得所述子进程或者主进程使用的硬件单元的时长; 依据所述待测试应用所在终端中每个所述硬件单元的额定电流数据和所述子进程或 者主进程使用的硬件单元的时长,获得所述待测试应用使用的所述至少一个硬件单元中每 个所述硬件单元的耗电量。
10. 根据权利要求8所述的装置,其特征在于,所述事件获取单元,具体用于: 依据硬件单元与接口函数的对应关系,调用所述终端中硬件单元对应的接口函数,以 获得所述硬件单元的设备参数;所述硬件单元的设备参数包括以下信息中至少一个:所述 待测试应用所在终端的屏幕亮度、所述待测试应用所在终端的网络开关状态、所述待测试 应用所在终端的网络传输状态和所述待测试应用所在终端的传感器开关状态;或者,依据 所述待测试应用的标识,获得待测试应用所使用的唤醒锁,依据所述唤醒锁对应的电量计 时器的数值,获得所述唤醒锁被待测试应用所使用的时长;和/或, 调用运行时刻函数,以使得所述运行时刻函数依据输入的待测试应用的标识,运行过 程状态指令,以获得所述待测试应用对应的主进程的运行状态;和/或, 调用运行时刻函数,以使得所述运行时刻函数运行日志获取指令,以获得所述待测试 应用所在终端的操作系统的日志信息;依据所述日志信息获得所述待测试应用渲染的界面 以及渲染时刻。
11. 根据权利要求8至10中任一项所述的装置,其特征在于,若所述硬件单元为传感 器,所述分析单元,具体用于:若所述硬件单元的设备参数为传感器开启,且所述耗电量分 布信息为所述传感器的耗电量为〇,确定所述待测试应用的使用状况分析结果为使用所述 传感器不合理。
12. 根据权利要求8至10中任一项所述的装置,其特征在于,若所述硬件单元为网络单 元,所述分析单元,具体用于:若所述待测试应用对应的主进程的运行状态信息为非运行状 态,且所述耗电量分布信息为网络单元的耗电量不为0,确定所述待测试应用的使用状况分 析结果为所述待测试应用对应的子进程使用的硬件单元的耗电量不为〇。
13. 根据权利要求8至10中任一项所述的装置,其特征在于,若所述硬件单元为中央处 理器CPU,所述分析单元,具体用于:依据所述待测试应用的界面信息,获得唤醒锁的状态 变化信息;若所述状态变化信息为所述唤醒锁由使用状态变为非使用状态,且所述耗电量 分部信息为CPU的耗电量与耗电量峰值之间的差值小于预设的耗电量阈值,确定所述待测 试应用的使用状况分析结果为所述唤醒锁没有释放使用的CPU。
14. 根据权利要求8所述的装置,其特征在于,所述装置还包括: 输出单元,用于依据预设的邮箱地址,将所述待测试应用所在终端的硬件单元的设备 参数、所述待测试应用对应的主进程的运行状态信息和所述待测试应用的界面信息中至少 一个、所述待测试应用所在终端的耗电量分布信息和所述待测试应用的硬件单元使用状况 分析结果,发送至所述邮箱地址对应的邮箱;和/或, 显示单元,用于显示提示信息,所述提示信息用于提示从存储设备获得所述待测试应 用所在终端的硬件单元的设备参数、所述待测试应用对应的主进程的运行状态信息和所述 待测试应用的界面信息中至少一个、所述待测试应用所在终端的耗电量分布信息和所述待 测试应用的硬件单元使用状况分析结果;和/或, 所述显示单元,还用于显示提示窗口,所述提示窗口中显示所述待测试应用所在终端 的耗电量分布信息;其中,所述提示窗口为移动浮层;所述提示窗口显示所述待测试应用 所在终端的耗电量分布信息的方式包括显示耗电量分布数值和/或总耗电量随时间的变 化曲线图。
【文档编号】G06F11/36GK104063316SQ201410282845
【公开日】2014年9月24日 申请日期:2014年6月23日 优先权日:2014年6月23日
【发明者】张阳, 蒋维, 周保玉, 戴佳, 彭远杰, 刘慧众 申请人:百度在线网络技术(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1