一种应用性能实时监控方法及装置与流程

文档序号:11154772阅读:278来源:国知局
一种应用性能实时监控方法及装置与制造工艺

本发明涉及移动端自动化测试领域,尤其涉及一种应用性能实时监控方法及装置。



背景技术:

airMonitor(一个iOS(苹果公司的移动操作系统)上实时监控APP(Application,应用程序)性能信息的应用)是现有技术方案中比较流行的一种,可以运行指定的iPhone应用,实时监控应用运行时的各项性能数据,如cpu(Central Processing Unit,中央处理器)占用率、物理内存(rss)、虚拟内存(vss)、电量消耗(bat)和网络消耗(net)、通过WebSocket(能实现浏览器与服务器全双工通信的协议)在手机上构建一个服务器,在Web(网页)端打开手机的IP(网络之间互连的协议)地址,即可查看以曲线图显示的以上5项性能的实时数据。

首先在iPhone手机上开启airMonitor,airMonitor会显示手机上所有已安装的应用,选择一个应用后并点击确定后,将打开所选择的应用并开始监控,此时在电脑上的浏览器中输入手机的IP地址,即可与airMonitor建立连接,airMonitor通过WebSocket向浏览器传送性能数据。

现有技术的缺点:(1)非自动化:使用airMonitor监控应用性能时,需要人工手动去操作应用产生特定场景,然后获取实时性能数据,在监控结束后,也需要手动去保存已获取的数据,因此airMonitor只适合短时间的场景。若操作繁琐且耗时较长,则需要投入较多的人力和时间。(2)非直观数据:如前面提到的,airMonitor能够读取应用运行时的5项性能数据,但数据是以曲线图显示,明显不够直观。



技术实现要素:

本发明实施例提供一种应用性能实时监控方法及装置,以同时进行自动化的功能测试与性能测试,直接地体现每一项性能数据的最大值、最小值以及平均值。

一方面,本发明实施例提供了一种应用性能实时监控方法,所述方法包括:

监测某一移动应用;

当监测到所述移动应用执行测试用例时,根据对应的预设测试用例程序代码模拟用户的操作,同时实时收集所述移动应用进程的性能数据;

对收集到的性能数据进行处理转换,计算每一项性能数据的最大值、最小值以及平均值,实时保存到所述移动应用的本地数据库。

另一方面,本发明实施例提供了一种应用性能实时监控装置,所述装置包括:

监测单元,用于监测某一移动应用;

测试单元,用于当监测到所述移动应用执行测试用例时,根据对应的预设测试用例程序代码模拟用户的操作,同时实时收集所述移动应用进程的性能数据;

处理单元,用于对收集到的性能数据进行处理转换,计算每一项性能数据的最大值、最小值以及平均值,实时保存到所述移动应用的本地数据库。

上述技术方案具有如下有益效果:全自动化模拟手动点击屏幕,无需人工操作,因而达到了提高监控效率,能够达到自动化的功能与性能测试,并且由于对获取到的性能数据进行处理转换,可以更直观地观察应用的性能效果。

附图说明

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

图1为本发明实施例一种应用性能实时监控方法流程图;

图2为本发明实施例一种应用性能实时监控装置结构示意图;

图3为本发明应用实例的流程示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

如图1所示,为本发明实施例一种应用性能实时监控方法流程图,所述方法包括:

101、监测某一移动应用;

102、当监测到所述移动应用执行测试用例时,根据对应的预设测试用例程序代码模拟用户的操作,同时实时收集所述移动应用进程的性能数据;

103、对收集到的性能数据进行处理转换,计算每一项性能数据的最大值、最小值以及平均值,实时保存到所述移动应用的本地数据库。

优选地,所述实时收集所述移动应用进程的性能数据,包括:按照预设频率实时收集所述移动应用进程的性能数据。

优选地,所述移动应用执行的测试用例包括:发送文本场景测试、发送图片场景测试、发送语音场景测试和发送位置场景测试;根据对应的预设测试用例程序代码模拟用户的操作包括:点击、长按、滑动。

优选地,实时收集到的所述移动应用进程的性能数据包括:中央处理器CPU占用率、CPU占用时间、虚拟内存VSS占用量、物理内存RSS占用量、网络消耗和电量消耗。

优选地,所述方法还包括:在监测某一移动应用之前,通过自动化测试框架Appium启动苹果开发环境Xcode自带的用户界面驱动工具Instruments,或者通过自动化测试框架UIAutomation启动苹果开发环境Xcode自带的用户界面驱动工具Instruments。当启动用户界面驱动工具Instruments后,开始执行本发明实施例上述应用性能实时监控方法,具体的,利用苹果开发环境Xcode自带的用户界面驱动工具Instruments监测移动应用。

对应于上述方法实施例,如图2所示,为本发明实施例一种应用性能实时监控装置结构示意图,所述装置包括:

监测单元21,用于监测某一移动应用;

测试单元22,用于当监测到所述移动应用执行测试用例时,根据对应的预设测试用例程序代码模拟用户的操作,同时实时收集所述移动应用进程的性能数据;

处理单元23,用于对收集到的性能数据进行处理转换,计算每一项性能数据的最大值、最小值以及平均值,实时保存到所述移动应用的本地数据库。

优选地,所述测试单元22,具体用于按照预设频率实时收集所述移动应用进程的性能数据。

优选地,所述移动应用执行的测试用例包括:发送文本场景测试、发送图片场景测试、发送语音场景测试和发送位置场景测试;所述测试单元22根据对应的预设测试用例程序代码模拟用户的操作包括:点击、长按、滑动。

优选地,所述测试单元22实时收集到的所述移动应用进程的性能数据包括:中央处理器CPU占用率、CPU占用时间、虚拟内存VSS占用量、物理内存RSS占用量、网络消耗和电量消耗。

优选地,所述装置还包括:自动化测试框架单元20,用于在监测某一移动应用之前,通过自动化测试框架Appium启动苹果开发环境Xcode自带的用户界面驱动工具Instruments,或者通过自动化测试框架UIAutomation启动苹果开发环境Xcode自带的用户界面驱动工具Instruments。

上述技术方案具有如下有益效果:全自动化模拟手动点击屏幕,无需人工操作,因而达到了提高监控效率,能够达到自动化的功能与性能测试,并且由于对获取到的性能数据进行处理转换,可以更直观地观察应用的性能效果。

以下通过IOS(苹果公司的移动操作系统)应用实例对本发明实施例上述技术方案进行详细说明:

随着移动互联网的发展以及互联化+概念的深入,手机APP市场成为了炙手可热的移动领域,从而引发了手机APP应用软件的开发热潮。APP应用开发后需要经过各种测试,如功能测试和性能测试,才能发布上线,而传统的人工手动测试正在逐渐被自动化所取代。

本发明应用实例是一种自动化的,对应用性能进行实时监控的方法,在自动化框架Appium(一种移动端自动化测试框架)的基础上,集成监控应用的接口,与手机端的监控应用建立socket(套接字)连接,控制监控应用中性能数据的传输、保存甚至上传到指定的服务器,达到自动化测试的同时也完成了性能测试的工作。

所以,本发明应用实例需要解决的技术问题包括:

(1)自动化。无需人工手动操作被监控的应用,依赖预先编写好测试用例,在用例执行期间实时获取性能数据,完成时能够保存数据。

(2)数据完整性。对于每一项性能数据,计算其最大最小值、平均值等,更直观地体现应用的性能。

(5)高效性。可以同时进行自动化的功能测试与性能测试,提高工作效率。

本发明应用实例设计四个部分:集成开发环境(IDE)、自动化测试框架、自动化程序代码和监测单元。

(1)集成开发环境(IDE):Eclipse(一种集成开发环境)是一个开放源代码的、基于Java的可扩展开发平台。它将自动化测试框架、自动化程序代码和监测单元集成到一起。

(2)自动化测试框架:Appium能够对iOS平台的应用进行黑盒自动化测试,它提供了模拟各种手势操作(点击、长按、滑动等)、查找和断言机制的API(Application Programming Interface,应用程序编程接口),能够对各种控件进行操作。

(3)自动化程序代码:自动化程序代码是控制应用自动操作的逻辑部分,它是一个Android测试单元。通过Appium提供的Java客户端(JavaClient),可以获取和操作控件,模拟人工手动测试。

(4)监测单元:监测单元是一个小型的iOS应用,可以用命令监控指定进程的各项性能数据,其中包含了HttpServer(HTTP服务器)和WebSocket(网络套接字),HttpServer将手机构造成服务器,WebSocket与浏览器建立长连接。

本发明应用实例的Eclipse包含自动化测试用例程序代码,通过自动化测试框架Appium启动Instruments(苹果开发环境Xcode自带的用户界面驱动工具),测试用例程序代码向Appium发送消息,Instruments对手机进行模拟用户操作;测试用例程序代码向监测单元发送请求,监测单元接收请求后开始或结束收集性能数据。

如图3所示,为本发明应用实例的流程示意图,具体包括:

301、启动监测单元;

302、执行iOS测试用例;

303、测试用例程序代码向监测单元发送开始请求;

304、判断是否请求成功:若请求成功,转306;若请求失败,转305;

305、停止测试并抛出异常,结束。

306、若请求成功,测试用例开始运行;测试用例执行过程中,APP将根据已编写好的测试用例程序代码做出模拟用户的操作;

307、测试单元使用ps命令,以每秒的频率开始实时收集对应App进程的性能数据,包括应用运行的CPU占用率、CPU占用时间、虚拟内存VSS占用量、物理内存RSS占用量、网络消耗和电量消耗等;处理单元对已收集到的数据进行处理转换,计算出每一项性能数据的最大值、最小值以及平均值,保存到手机本地数据库;否则停止测试并抛出异常。

308、判断测试用例是否执行结束:若是,则转309;否则,继续运行;

309、向监测单元发送结束请求;

310、监测单元通知测试单元停止收集性能数据;

311、执行下一个测试用例。

本发明应用实例可以用于以下场景,某微博客户端具有私信聊天功能,其中包括发送文本、图片、语音和位置,可以分别对这四种场景进行性能测试。首先编写进入聊天页面以及发送消息的测试用例,测试用例可以设置频率(如5秒)、循环(10次)发送文本或其他种类的消息,在测试用例程序前后分别添加向监测单元发送开始和结束的请求,当用例执行完后,可以看到这个场景中微博客户端所消耗的性能数据。

上述技术方案具有如下有益效果:(1)由于采用了Appium,全自动化模拟手动点击屏幕,无需人工操作,因而达到了提高监控效率的有益效果。(2)由于采用了Appium与监测单元的结合,能够达到自动化的功能与性能测试。(3)由于对获取到的性能数据进行处理转换,可以更直观地观察应用的性能效果。

应该明白,公开的过程中的步骤的特定顺序或层次是示例性方法的实例。基于设计偏好,应该理解,过程中的步骤的特定顺序或层次可以在不脱离本公开的保护范围的情况下得到重新安排。所附的方法权利要求以示例性的顺序给出了各种步骤的要素,并且不是要限于所述的特定顺序或层次。

在上述的详细描述中,各种特征一起组合在单个的实施方案中,以简化本公开。不应该将这种公开方法解释为反映了这样的意图,即,所要求保护的主题的实施方案需要比清楚地在每个权利要求中所陈述的特征更多的特征。相反,如所附的权利要求书所反映的那样,本发明处于比所公开的单个实施方案的全部特征少的状态。因此,所附的权利要求书特此清楚地被并入详细描述中,其中每项权利要求独自作为本发明单独的优选实施方案。

为使本领域内的任何技术人员能够实现或者使用本发明,上面对所公开实施例进行了描述。对于本领域技术人员来说;这些实施例的各种修改方式都是显而易见的,并且本文定义的一般原理也可以在不脱离本公开的精神和保护范围的基础上适用于其它实施例。因此,本公开并不限于本文给出的实施例,而是与本申请公开的原理和新颖性特征的最广范围相一致。

上文的描述包括一个或多个实施例的举例。当然,为了描述上述实施例而描述部件或方法的所有可能的结合是不可能的,但是本领域普通技术人员应该认识到,各个实施例可以做进一步的组合和排列。因此,本文中描述的实施例旨在涵盖落入所附权利要求书的保护范围内的所有这样的改变、修改和变型。此外,就说明书或权利要求书中使用的术语“包含”,该词的涵盖方式类似于术语“包括”,就如同“包括,”在权利要求中用作衔接词所解释的那样。此外,使用在权利要求书的说明书中的任何一个术语“或者”是要表示“非排它性的或者”。

本领域技术人员还可以了解到本发明实施例列出的各种说明性逻辑块(illustrative logical block),单元,和步骤可以通过电子硬件、电脑软件,或两者的结合进行实现。为清楚展示硬件和软件的可替换性(interchangeability),上述的各种说明性部件(illustrative components),单元和步骤已经通用地描述了它们的功能。这样的功能是通过硬件还是软件来实现取决于特定的应用和整个系统的设计要求。本领域技术人员可以对于每种特定的应用,可以使用各种方法实现所述的功能,但这种实现不应被理解为超出本发明实施例保护的范围。

本发明实施例中所描述的各种说明性的逻辑块,或单元都可以通过通用处理器,数字信号处理器,专用集成电路(ASIC),现场可编程门阵列或其它可编程逻辑装置,离散门或晶体管逻辑,离散硬件部件,或上述任何组合的设计来实现或操作所描述的功能。通用处理器可以为微处理器,可选地,该通用处理器也可以为任何传统的处理器、控制器、微控制器或状态机。处理器也可以通过计算装置的组合来实现,例如数字信号处理器和微处理器,多个微处理器,一个或多个微处理器联合一个数字信号处理器核,或任何其它类似的配置来实现。

本发明实施例中所描述的方法或算法的步骤可以直接嵌入硬件、处理器执行的软件模块、或者这两者的结合。软件模块可以存储于RAM存储器、闪存、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可移动磁盘、CD-ROM或本领域中其它任意形式的存储媒介中。示例性地,存储媒介可以与处理器连接,以使得处理器可以从存储媒介中读取信息,并可以向存储媒介存写信息。可选地,存储媒介还可以集成到处理器中。处理器和存储媒介可以设置于ASIC中,ASIC可以设置于用户终端中。可选地,处理器和存储媒介也可以设置于用户终端中的不同的部件中。

在一个或多个示例性的设计中,本发明实施例所描述的上述功能可以在硬件、软件、固件或这三者的任意组合来实现。如果在软件中实现,这些功能可以存储与电脑可读的媒介上,或以一个或多个指令或代码形式传输于电脑可读的媒介上。电脑可读媒介包括电脑存储媒介和便于使得让电脑程序从一个地方转移到其它地方的通信媒介。存储媒介可以是任何通用或特殊电脑可以接入访问的可用媒体。例如,这样的电脑可读媒体可以包括但不限于RAM、ROM、EEPROM、CD-ROM或其它光盘存储、磁盘存储或其它磁性存储装置,或其它任何可以用于承载或存储以指令或数据结构和其它可被通用或特殊电脑、或通用或特殊处理器读取形式的程序代码的媒介。此外,任何连接都可以被适当地定义为电脑可读媒介,例如,如果软件是从一个网站站点、服务器或其它远程资源通过一个同轴电缆、光纤电缆、双绞线、数字用户线(DSL)或以例如红外、无线和微波等无线方式传输的也被包含在所定义的电脑可读媒介中。所述的碟片(disk)和磁盘(disc)包括压缩磁盘、镭射盘、光盘、DVD、软盘和蓝光光盘,磁盘通常以磁性复制数据,而碟片通常以激光进行光学复制数据。上述的组合也可以包含在电脑可读媒介中。

以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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