CN108710572A - Android***自动压力测试下的能耗信息收集方法 - Google Patents

Android***自动压力测试下的能耗信息收集方法 Download PDF

Info

Publication number
CN108710572A
CN108710572A CN201810464691.9A CN201810464691A CN108710572A CN 108710572 A CN108710572 A CN 108710572A CN 201810464691 A CN201810464691 A CN 201810464691A CN 108710572 A CN108710572 A CN 108710572A
Authority
CN
China
Prior art keywords
test
energy consumption
application software
data
wakelock
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.)
Pending
Application number
CN201810464691.9A
Other languages
English (en)
Inventor
王炜
唐季
朱佳俊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Yunnan University YNU
Original Assignee
Yunnan University YNU
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Yunnan University YNU filed Critical Yunnan University YNU
Priority to CN201810464691.9A priority Critical patent/CN108710572A/zh
Publication of CN108710572A publication Critical patent/CN108710572A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/366Software debugging using diagnostics
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3644Software debugging by instrumenting at runtime

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)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种Android***自动压力测试下的能耗信息收集方法,通过预先设置的测试循环次数和压力测试强度,对apk文件对应的应用软件进行单位循环次数内的压力测试,在测试后通过能耗收集模块输入能耗数据,再通过收集wakelock调用次数获取能耗信息,在所有子合集应用程序结束测试后,结束测试。本发明集成了批量自动化压力测试技术,能耗数据和wakelock数据统计及采集技术,自动化程度高;实现了在对安卓应用软件进行批量自动化压力测试的同时,较为准确地收集能耗及wakelock数据,并根据已有的应用软件能耗数据,获取该应用软件的能耗水平。

Description

Android***自动压力测试下的能耗信息收集方法
技术领域
本发明属于软件测试技术领域,特别是涉及一种Android***自动压力测试下的能耗信息收集方法
背景技术
软件能耗评估是进行软件能耗优化的前提。目前软件能耗评估的方法是建立在能耗测量与建模的基础上的。在能耗测量方面,通常用的方法有基于硬件或软件的直接测量方法,直测方法主要分为两种:使用外部测量仪器和基于能耗模型开发在线能耗***,外部测量仪器有多种,如功率表(power meter),将该表与外接电源和待测手机串联起来,待测手机或其硬件的实时功耗可以直接从仪表中读取。该方式对仪器精度要求较高,可以获得相对精确的能耗数据,对实际***动态能耗管理和软件能耗评估方面有直接的使用价值,但就智能手机使用者而言,使用功率表测量方式部署难度高,测量粒度粗,一般针对整个***,难以获得各个组件的能耗,且不利于虚拟化。基于软件的测量方法为实验者提供了诸多便利,该方法可以在移动的环境下提供应用软件的实时能耗,实时监测***组件、应用软件以及各种资源利用率的能耗,并为建立硬件组件或应用软件能耗模型提供基础,也易于终端用户操作。例如美国密歇根大学开发的能耗监测工具PowerTutor,运行在Android***上,可以监测***上的主要组件及应用软件能耗,PowerTutor实际上是通过软件内置的能耗模型来估算组件和应用软件的能耗。采用PowerTutor工具在后台运行,记录应用软件的硬件组件CPU,LCD,WIF,4G,GPS,AUDIO的使用情况,并以图表的方式进行总结和显示。基于软件的测量方法最大优点在于灵活性、可视化以及实时性,可以实时的反映出应用软件能耗,方便终端用户使用。在智能手机中,能耗监测软件可以随时提供详细的应用软件的CPU占有率以及其他能耗数据,测量粒度细,但在应用软件资源利用率很低时,能耗监测软件测量的数据与真实的数据会存在一定的误差,软件本身也存在不可忽略的能耗。在能耗建模方面,建立能耗模型是能耗评估方面最重要的步骤,这些能耗模型是由能耗测量工具对某一个***整体或***中的某些硬件或软件进行测量,然后对测量结果进行分析,发现研究对象的能耗影响因素,研究这些影响因素之间的关系,得出能耗模型的推导过程。研究者们提出过很多能耗模型,如根据***整体能耗与部分能耗较高的组件(如CPU利用率、内存占有率、GPU,硬件等)之间关系,建立一个具体的数学模型,实时估计***能耗变化。
通过以上现有技术可以看出在对应用软件能耗测试的过程中,存在通用性及自动化程度低,无法进行大规模批量测试,并且不能提供该应用软件的能耗水平的问题。
发明内容
为了解决上述现有的通用性及自动化程度低,无法进行大规模批量测试,且不能提供应用软件能耗水平的问题,本发明的目的在于提供一种Android***自动压力测试下的能耗信息收集方法,以实现对安卓应用软件进行批量自动化压力测试的同时,可以较为准确的收集能耗及wakelock数据,并根据已有的应用软件能耗数据,获取该应用软件的能耗水平。
本发明所采用的技术方案是,提供了一种Android***自动压力测试下的能耗信息收集方法,包括以下步骤:
1)测试开始后,获取待测apk文件列表,待测apk子集合列表,之后获取将待测apk文件子集的文件名并存入压力测试列表,根据压力测试列表顺序安装apk文件,发送命令调用并重置能耗收集模块使其处于准备状态;
2)根据预先设置的测试循环次数和压力测试强度,对apk文件对应的应用软件进行单位循环次数内的压力测试;
3)测试完成后主程序发送命令给能耗收集模块输出能耗数据;
4)收集wakelock调用次数:进行能耗评估的应用软件设为N个,则应用软件集合设为S={s1,s2,....,sn},其中,s1,s2,...,sn-1集合元素数量固定设为M,最后一集合Sn元素个数0<n≤M;将单个集合设为Si={a1,a2,....,am},其中,i为集合个数,且0<i≤N/M+f(N/M),其中,在测试过程中每测试完一个am后就输出它对应的电量数据,以及Si对应的bugreport中的Wakelock数据;所述wakelocks数据为申请wakelock服务的程序实例名和调用wakelock的次数;
5)在子集合测试完成后,卸载子集合中的应用软件,并获取下一个测试子集合;
6)当所有子集合应用程序结束测试后,结束测试。
进一步地,所述步骤1)中的能量收集模块为Powertutor模块,且采用发送广播命令的方式进行通信。
本发明的有益效果是:
1.集成了批量自动化压力测试技术,能耗数据和wakelock数据统计及采集技术,自动化程度高。
2.在对安卓应用软件进行批量自动化压力测试的同时,可以较为准确的收集能耗及wakelock数据,并根据已有的应用软件能耗数据,获取该应用软件的能耗水平。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是自动压力测试下的能耗信息收集方法的流程图;
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
一、压力测试
预设参数是在压力测试前设置的参数,包括测试循环次数和压力测试强度。
压力测试(stress test)是用于对给定***或软件稳定性的有意或强烈的测试形式,为了找到一个突破点常常涉及超出正常运行能力,以便观察测试结果。
二、压力测试的目的包括:
1.确定突破点或安全使用的限制;
2.确认数学模型在预测断点或安全使用限制方面足够准确;
3.确认满足预期的规格;
4.确定失败模式(***如何失败);
5.在标准使用范围之外测试零件或***的稳定运行。
而在能耗测试中对应用软件使用压力测试主要是在一个给定的“压力条件”,即预先设置好的测试次数和测试强度下,最大限度地调用应用软件的功能并收集应用软件能耗信息。这样便提高了应用软件测试的统一性和标准,避免了在人为测试中出现的随意性。
三、压力测试环境下的能耗收集
对于压力测试环境下的能耗收集工作主要分为两个部分:一是能耗信息测量与收集,二是wakelock数据收集。
能耗信息测量与收集主要通过采用工具Powertutor(能耗收集模块)完成。Battery-historian(能耗报告输出模块)由于Powertutor是开源工具,并且为了适应压力测试环境,也做了针对该软件的二次开发工作,将能耗信息日志实时输出、模块通信和查看所用wakelock服务等功能集成到了Powertutor中。
应用软件调用wakelock次数的数据收集工作,使用了上文介绍的Google的开源电池能耗分析工具Battery Historian(能耗报告输出模块)。该工具除了可以收集应用软件wakelock的调用次数外,还收集了应用软件在运行过程中的程序执行迹、内核执行记录以及硬件设备调用等信息,方便后续研究工作的展开。由于这些技术框架是运行在不同的***上,因此,硬件平台采用的是搭载Android OS的智能手机和搭载windows的PC,这样不仅以测试Android平台的应用软件,也方便Powertutor(能耗收集模块)在手机后台实时精准收集数据。
四、MonkeyEnergyTest能耗测试原型,即Android***自动压力测试下的能耗信息收集方法。
如图1所示,对于能耗收集模块与能耗报告输出模块的集成和协调工作是由MonkeyEnergyTest原型的主程序完成的。主程序整合了压力测试框架,对BatteryHistorian采用调用接口方式控制,而对Powertutor模块(能耗收集模块)采用发送广播命令的方式进行通信。
在测试过程中,主程序首先获取将待测apk文件集的文件名并存入测试列表,根据列表顺序安装apk文件。为了使测试粒度更细并且各应用在测试过程中互不影响,在单个应用测试开始之前发送命令重置耗收集模块的能耗模型,并使其处于准备状态。
根据预先设置的参数,即测试循环次数和压力测试强度,通过shell adb命令对apk文件对应应用进行单位循环次数内的压力测试,包括了点击事件,滑动事件以及Activity切换事件,充分调用应用潜在的耗能功能。
压力测试测试完成后主程序发送命令给能耗收集模块输出能耗数据,并调用下一个apk文件。待整个列表测试完成后,将包含wakelock调用信息、程序执行迹、内核执行记录以及硬件设备调用等信息的bugreport日志文件输出,并提取wakelock调用数据。前述Bugreport是测试完成后主程序生产的测试数据,包含了软件调用wakelock数据、调用的***服务、网络的服务、执行迹以、Crash信息和测试环境的数据信息。
最后主程序监测到待测列表遍历完成后,结束对应apk文件的进程,卸载已安装应用。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

Claims (2)

1.一种Android***自动压力测试下的能耗信息收集方法,其特征在于,包括以下步骤:
1)测试开始后,获取待测apk文件列表,待测apk子集合列表,之后获取将待测apk文件子集的文件名并存入压力测试列表,根据压力测试列表顺序安装apk文件,发送命令调用并重置能耗收集模块使其处于准备状态;
2)根据预先设置的测试循环次数和压力测试强度,对apk文件对应的应用软件进行单位循环次数内的压力测试;
3)测试完成后主程序发送命令给能耗收集模块输出能耗数据;
4)收集wakelock调用次数:进行能耗评估的应用软件设为N个,则应用软件集合设为S={s1,s2,....,sn},其中,s1,s2,...,sn-1集合元素数量固定设为M,最后一集合Sn元素个数0<n≤M;将单个集合设为Si={a1,a2,....,am},i为集合个数,且0<i≤N/M+f(N/M),其中,在测试过程中每测试完一个am后就输出它对应的电量数据,以及Si对应的bugreport中的Wakelock数据;所述wakelocks数据为申请wakelock服务的程序实例名和调用wakelock的次数;
5)在子集合测试完成后,卸载子集合中的应用软件,并获取下一个测试子集合;
6)当所有子集合应用程序结束测试后,结束测试。
2.根据权利要求1所述的一种Android***自动压力测试下的能耗信息收集方法,其特征在于,所述步骤1)中的能量收集模块为Powertutor模块,且采用发送广播命令的方式进行通信。
CN201810464691.9A 2018-05-16 2018-05-16 Android***自动压力测试下的能耗信息收集方法 Pending CN108710572A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810464691.9A CN108710572A (zh) 2018-05-16 2018-05-16 Android***自动压力测试下的能耗信息收集方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810464691.9A CN108710572A (zh) 2018-05-16 2018-05-16 Android***自动压力测试下的能耗信息收集方法

Publications (1)

Publication Number Publication Date
CN108710572A true CN108710572A (zh) 2018-10-26

Family

ID=63868963

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810464691.9A Pending CN108710572A (zh) 2018-05-16 2018-05-16 Android***自动压力测试下的能耗信息收集方法

Country Status (1)

Country Link
CN (1) CN108710572A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110418315A (zh) * 2019-07-24 2019-11-05 北京市天元网络技术股份有限公司 一种用于计算和管理物联网终端功耗的方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101980174A (zh) * 2010-11-24 2011-02-23 中国人民解放军国防科学技术大学 一种自动测试计算机应用程序区间能耗的方法
US20140183952A1 (en) * 2012-12-27 2014-07-03 Hon Hai Precision Industry Co., Ltd. Apparatus and method for measuring power consumption
CN105183137A (zh) * 2015-09-09 2015-12-23 厦门美图移动科技有限公司 一种移动终端及其唤醒锁控制方法和控制***
CN105338186A (zh) * 2015-11-11 2016-02-17 华南理工大学 基于情景感知的Android移动终端电源管理方法
CN107977318A (zh) * 2017-12-25 2018-05-01 暨南大学 一种Android应用程序的能耗和性能测试方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101980174A (zh) * 2010-11-24 2011-02-23 中国人民解放军国防科学技术大学 一种自动测试计算机应用程序区间能耗的方法
US20140183952A1 (en) * 2012-12-27 2014-07-03 Hon Hai Precision Industry Co., Ltd. Apparatus and method for measuring power consumption
CN105183137A (zh) * 2015-09-09 2015-12-23 厦门美图移动科技有限公司 一种移动终端及其唤醒锁控制方法和控制***
CN105338186A (zh) * 2015-11-11 2016-02-17 华南理工大学 基于情景感知的Android移动终端电源管理方法
CN107977318A (zh) * 2017-12-25 2018-05-01 暨南大学 一种Android应用程序的能耗和性能测试方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
ADSUHVIUSA: "基于wakelock机制的移动应用软件能耗优化研究", 《HTTPS://WWW.DOC88.COM/P-6911356399060.HTML?R=1》 *
杨红丽 等: "Android 应用能耗漏洞分析技术综述", 《计算机应用与软件》 *
苏静芳: "安卓智能手机功耗管理机制及评估模型研究", 《中国优秀硕士学位论文全文数据库信息科技辑》 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110418315A (zh) * 2019-07-24 2019-11-05 北京市天元网络技术股份有限公司 一种用于计算和管理物联网终端功耗的方法

Similar Documents

Publication Publication Date Title
Corral et al. A method for characterizing energy consumption in Android smartphones
CN109634867B (zh) 基于数据模拟***下的软件测试方法、装置及存储介质
CN101282526A (zh) 一种手机待机电流、待机时间及充电流程的测试设备
CN106844196B (zh) 一种支付终端嵌入式软件测试工作量统计***
CN113961413A (zh) 服务器功耗测试方法及装置
Kim et al. FEPMA: Fine-grained event-driven power meter for android smartphones based on device driver layer event monitoring
CN107977318B (zh) 一种Android应用程序的能耗和性能测试方法
CN109840209A (zh) 应用性能数据采集方法、终端、计算机设备及存储介质
CN110377136A (zh) 一种psu原始值日志记录方法及装置
CN104717670B (zh) 一种业务质量测试方法、装置及***
CN113406558A (zh) 基于线性回归的电表失准检测方法、装置及电子设备
CN108710572A (zh) Android***自动压力测试下的能耗信息收集方法
CN108595312A (zh) 一种模拟用户行为的性能自动化方法及装置
CN112423337B (zh) 网络覆盖诊断模型构建方法、网络覆盖诊断方法及装置
CN111428197B (zh) 数据处理方法、装置及设备
CN101101312A (zh) Ic卡测试***
CN104461832A (zh) 一种监控应用服务器资源的方法及装置
CN115248782B (zh) 一种自动化测试方法、装置及计算机设备
RU2532714C2 (ru) Способ получения данных при оценке ресурсов сети и устройство для осуществления способа
Kamiyama et al. A model-based energy profiler using online logging for Android applications
CN201037955Y (zh) 一种基于ttcan的燃料电池汽车整车通讯网络测试装置
CN102521134B (zh) 一种基于大型机的测试信息检测方法及装置
CN112560044A (zh) 一种项目bug跟踪统计方法、***及设备
CN113112127A (zh) 基于人工智能的计量管理方法及***
CN113284003A (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
RJ01 Rejection of invention patent application after publication

Application publication date: 20181026

RJ01 Rejection of invention patent application after publication