首页> 中国专利> 一种应用程序运行时性能事件的收集方法及相关装置

一种应用程序运行时性能事件的收集方法及相关装置

摘要

本申请公开了一种应用程序运行时性能事件的收集方法,所述方法包括:在服务端内写入自动化脚本;利用自动化脚本调用应用程序配置脚本,并根据应用程序配置脚本下载待测应用程序;利用自动化脚本调用动作执行脚本,并根据动作执行脚本对待测应用程序执行相应的动作;利用自动化脚本调用系统追踪脚本及日志获取脚本,以获得待测应用程序进行相应的动作过程中的第一进程标识;利用自动化脚本调用动作执行脚本,以使得服务端采集第一进程标识的性能事件。通过上述方法,可以同时指定多个特定的应用程序进行安装,安装后可以自动运行指定的应用程序,并且可以单独定时执行相应的动作,提高了应用程序运行时收集性能事件的效率以及准确率。

著录项

  • 公开/公告号CN112559090A

    专利类型发明专利

  • 公开/公告日2021-03-26

    原文格式PDF

  • 申请/专利权人 中国科学院深圳先进技术研究院;

    申请/专利号CN202011437005.2

  • 申请日2020-12-07

  • 分类号G06F9/448(20180101);G06F8/61(20180101);

  • 代理机构44280 深圳市威世博知识产权代理事务所(普通合伙);

  • 代理人黎坚怡

  • 地址 518055 广东省深圳市南山区深圳大学城学苑大道1068号

  • 入库时间 2023-06-19 10:24:22

说明书

技术领域

本申请涉及计算机技术领域,特别是涉及一种应用程序运行时性能事件的收集方法及相关装置。

背景技术

随着计算机技术的发展,移动终端比如手机、平板等快速走进千家万户,应用程序的更新换代也越来越快,用户对应用程序的要求也随之增高,应用程序的系统流畅性、低内存消耗、低卡顿、快速启动等性能指标已经成为高质量产品重要的一环。因此,对应用程序运行时性能事件的收集对研究和分析手机处理器的微体系结构十分重要。

现有技术中,通过安卓调试桥将应用程序安装到终端的过程中,需要通过数据线连接或者无线连接,将测试指令或者脚本发送到终端,但是无法同时指定多个特定的应用程序进行安装,并且安装后无法自动运行指定的应用程序,而且,移动终端测试的用户动作具有多样性且很难单独定时执行某一个动作,从而导致收集性能事件的效率和准确率无法得到提高。

发明内容

本申请主要解决的技术问题是提供一种应用程序运行时性能事件的收集方法及相关装置,以提高应用程序运行时收集性能事件的效率以及准确率。

为解决上述技术问题,本申请采用的一个方案是:提供一种应用程序运行时性能事件的收集方法,包括:在服务端内写入自动化脚本;利用所述自动化脚本调用应用程序配置脚本,并根据所述应用程序配置脚本下载待测应用程序;利用所述自动化脚本调用动作执行脚本,并根据所述动作执行脚本对所述待测应用程序执行相应的动作;利用所述自动化脚本调用系统追踪脚本及日志获取脚本,以获得所述待测应用程序进行相应的动作过程中的第一进程标识;利用所述自动化脚本调用所述动作执行脚本,以使得所述服务端采集所述第一进程标识的性能事件。

其中,所述利用所述自动化脚本调用应用程序配置脚本,并根据所述应用程序配置脚本下载待测应用程序的步骤包括:根据所述应用程序配置脚本获取所述待测应用程序的安装包的文件名;设定浏览器的下载配置文件,初始化带有所述下载配置文件的浏览器实例;从所述下载配置文件获取所述安装包的下载地址,以安装所述待测应用程序。

其中,所述利用所述自动化脚本调用动作执行脚本,根据所述动作执行脚本对所述待测应用程序执行相应的动作的步骤之前,包括:判断所述服务端的指定传输端口是否被占用;若是,则释放所述指定传输端口;通过子进程模块创建所述指定传输端口的第二进程标识,并在所述指定传输端口创建套接字,以进行通信数据传输。

其中,所述利用所述自动化脚本调用系统追踪脚本以及日志获取脚本,以获得所述待测应用程序进行相应的动作过程中的第一进程标识的步骤包括:利用所述自动化脚本调用所述系统追踪脚本及日志获取脚本获得所述待测应用程序进行相应的动作过程中的运行数据,以获得日志文件;根据所述日志文件获得所述待测应用程序进行相应的动作过程中所述服务端的中央处理单元消耗高于阈值的所述第一进程标识。

其中,所述利用所述自动化脚本调用所述动作执行脚本,以使得所述服务端采集所述第一进程标识的性能事件的步骤之前,包括:将所述相应的动作的登录参数写入配置文件,读取所述配置文件并发送至所述相应的动作运行的节点。

其中,所述利用所述自动化脚本调用所述动作执行脚本,以使得所述服务端采集所述第一进程标识的性能事件的步骤包括:利用所述自动化脚本调用所述动作执行脚本,在所述动作执行脚本的会话控制界面设定配置信息,所述配置信息包括:平台名称、平台版本、设备名称、自动化名称以及所述待测应用程序的安装包;所述服务端利用所述动作执行脚本采集所述第一进程标识的性能事件。

其中,所述动作包括冷启动、滑动、切换、亮屏以及熄屏中的至少一种;和/或,所述日志文件包括中央处理单元调度、磁盘活动性以及应用线程。

为解决上述技术问题,本申请采用的另一个方案是:提供一种应用程序运行时性能事件的收集装置,包括:应用准备模块,用于在服务端内写入自动化脚本;利用所述自动化脚本调用应用程序配置脚本,并根据所述应用程序配置脚本下载待测应用程序;交互动作选择模块,利用所述自动化脚本调用动作执行脚本,并根据所述动作执行脚本对所述待测应用程序执行相应的动作;进程选择模块,利用所述自动化脚本调用系统追踪脚本以及日志获取脚本,以获得所述待测应用程序进行相应的动作过程中的第一进程标识;数据采集模块,利用所述自动化脚本调用所述动作执行脚本,以使得所述服务端采集所述第一进程标识的性能事件。

为解决上述技术问题,本申请采用的又一个方案是:提供一种计算机装置,所述计算机装置包括相互耦接的存储器和处理器;所述存储器用于存储计算机程序;所述处理器用于执行所述计算机程序以实现上述任一实施例所述的收集方法。

为解决上述技术问题,本申请采用的又一个方案是:一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序用于实现上述任一实施例所述的收集方法。

区别于现有技术的情况,本申请的有益效果是:本申请中在服务端内写入自动化脚本,利用自动化脚本调用应用程序配置脚本,并根据应用程序配置脚本下载待测应用程序,利用自动化脚本调用动作执行脚本,并根据动作执行脚本对待测应用程序执行相应的动作,利用自动化脚本调用日志获取脚本,以获得待测应用程序进行相应的动作过程中的第一进程标识,利用自动化脚本调用动作执行脚本,以使得服务端采集第一进程标识的性能事件。通过上述方法,可以同时指定多个特定的应用程序进行安装,安装后可以自动运行指定的应用程序,并且可以单独定时执行相应的动作,提高了应用程序运行时收集性能事件的效率以及准确率。

附图说明

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

图1是本申请应用程序运行时性能事件的收集方法一实施方式的流程示意图;

图2是图1中步骤S2一实施方式的流程示意图;

图3是图1中步骤S3之前的步骤一实施方式的流程示意图;

图4是图1中步骤S4一实施方式的流程示意图;

图5是图1中步骤S5一实施方式的流程示意图;

图6是本申请应用程序运行时性能事件的收集装置一实施方式的框架示意图;

图7是本申请计算机装置一实施方式的结构示意图;

图8是本申请计算机可读存储介质一实施方式的框架示意图。

具体实施方式

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

请参阅图1,图1是本申请应用程序运行时性能事件的收集方法一实施方式的流程示意图。上述步骤包括:

S1:在服务端内写入自动化脚本Auto.sh。

具体地,在本实施例中,上述自动化脚本Auto.sh可以调用本方案中其他脚本,例如,其他脚本可以为应用程序配置脚本APKConfig.py、动作执行脚本Appium.py、系统追踪脚本Systrace.py、日志获取脚本trace.html等。在进行测试之前需要在服务端和移动终端中安装安卓调试桥ADB,它是安卓提供的一个通用的调试工具,借助这个工具可以很好的调试开发应用程序。服务端和移动终端之间建立通信连接,通过安卓调试桥ADB可以将安卓的安装包安装到服务端上,使得服务端获得相应的应用程序,以收集该应用程序运行不同的动作时系统进程的性能事件。具体地,服务端和移动终端之间可以通过数据线连接。当然,在其他实施例中,也可以通过其他方式连接,在此不作限定。

在本实施例中,移动终端可以是手机等,本申请对此不作限定。操作系统可以包括Windows、Linux等,在此不作限定。服务端可以包括物理机、虚拟机等,本申请对此不作限定。上述自动化脚本Auto.sh及其他脚本可通过shell脚本编写,以定制自动化收集性能事件的配置参数,当然,在其他实施例中,上述自动化脚本Auto.sh及其他脚本也可以通过python脚本编写,在此不作限定。

S2:利用自动化脚本Auto.sh调用应用程序配置脚本APKConfig.py,并根据应用程序配置脚本APKConfig.py下载待测应用程序。

在本实施例中,待测应用程序可以是Web应用程序,例如通过浏览器打开的抢票助手、充值易等。当然,待测应用程序也可以是原生应用程序,例如,酷狗音乐、美图秀秀等。当然,在其他实施例中,待测应用程序也可以是混合应用程序,例如,天猫、携程、58同城等,本申请对此不做限定。

具体而言,利用上述步骤S1中的自动化脚本Auto.sh调用应用程序配置脚本APKConfig.py,以实现根据应用程序配置脚本APKConfig.py下载待测应用程序的步骤。具体地,请参阅图2,图2是图1中步骤S2一实施方式的流程示意图。上述步骤S2具体包括:

S101:根据应用程序配置脚本APKConfig.py获取待测应用程序的安装包的文件名。

具体地,在本实施例中,根据应用程序配置脚本APKConfig.py扫描安装包文件夹中,以获取出待测应用程序的安装包的文件名,上述安装包文件夹中为最新的应用程序安装包。通过这种方式,可以自动化获取待测应用程序的安装包的文件名,以进行后续步骤。

S102:设定浏览器的下载配置文件,初始化带有下载配置文件的浏览器实例。

具体而言,上述下载配置文件包括浏览器下载待测应用程序的安装包时所需的配置参数,例如,安装包的名称等。上述浏览器可以是谷歌浏览器,也可以是其他浏览器,例如,百度、火狐、搜狗等,本申请对此不作限定。通过初始化带有下载配置文件的浏览器实例,可以根据上述配置参数下载对应的待测应用程序的安装包。

S103:从下载配置文件获取安装包的下载地址,以安装待测应用程序。

具体而言,在本实施例中,从步骤S102中的下载配置文件获取安装包的下载地址后,用户可以自己在服务端进行操作以安装待测应用程序,当然,在其他实施例中,也可以通过自动化脚本Auto.sh调用应用程序配置脚本APKConfig.py以安装待测应用程序,在此不作限定。通过这种方式,可以快速且准确地安装待测应用程序。

S3:利用自动化脚本Auto.sh调用动作执行脚本Appium.py,并根据动作执行脚本Appium.py对待测应用程序执行相应的动作。

具体地,利用自动化脚本Auto.sh调用动作执行脚本Appium.py,上述动作执行脚本Appium.py可以包括Start.sh脚本,以负责待测应用程序执行相应的动作。具体而言,上述动作可以为冷启动、滑动、切换、亮屏以及熄屏中的一种,当然,在其他实施例中个,上述动作也可以是冷启动、滑动、切换、亮屏以及熄屏中的两种或两种以上,本申请对此不作限定。利用步骤S1中的自动化脚本Auto.sh调用动作执行脚本Appium.py,根据动作执行脚本Appium.py对待测应用程序连续不间断地执行相应的动作。

在本实施例中,上述动作执行脚本Appium.py负责调用Appium工具。为了可以在服务端自动启动Appium工具,以使得待测应用程序执行相应的动作,请参阅图3,图3是图1中步骤S3之前的步骤一实施方式的流程示意图。在步骤S3之前的步骤具体包括:

S201:判断服务端的指定传输端口是否被占用。

S202:若是,则释放指定传输端口。

若检测到服务端的指定传输端口被占用,则释放指定传输端口并实施步骤S203;若上述指定传输端口未被占用,则直接实施步骤S203。

S203:通过子进程模块创建指定传输端口的第二进程标识,并在指定传输端口创建套接字,以进行通信数据传输。

通过这种方式,可以在服务端自动启动Appium工具,使得待测应用程序执行相应的动作。

S4:利用自动化脚本Auto.sh调用系统追踪脚本Systrace.py及日志获取脚本trace.html,以获得待测应用程序进行相应的动作过程中的第一进程标识。

具体地,在本实施例中,请参阅图4,图4是图1中步骤S4一实施方式的流程示意图。步骤S4具体包括:

S301:利用自动化脚本Auto.sh调用系统追踪脚本Systrace.py以及日志获取脚本trace.html获得待测应用程序进行相应的动作过程中的运行数据,以获得日志文件。

利用自动化脚本Auto.sh调用系统追踪脚本Systrace.py,启动Systrace工具,其过程为使用Dalvik Debug Monitor Service(DDMS)启动Trace,以追踪待测应用程序进行相应的动作过程中操作系统内核中系统进程的运行数据,再利用自动化脚本Auto.sh调用日志获取脚本trace.html,根据日志获取脚本trace.html将上述运行数据收集起来,以获得日志文件。其中,在本实施例中,上述日志文件可以包括中央处理单元CPU调度、磁盘活动性以及应用线程。当然,在其他实施例中,上述日志文件也可以包括其他系统进程的信息,在此不作限定。通过上述设计方案,可以自动获取指定时间内操作系统内核中系统进程的所有情况,并生成日志文件,便于用户实时查看操作系统内核中系统进程的所有情况。

S302:根据日志文件获得待测应用程序进行相应的动作过程中服务端的中央处理单元CPU消耗高于阈值的第一进程标识。

具体而言,设置Systrace命令行参数,根据日志文件中系统进程的所有情况以获得待测应用程序进行相应的动作过程中服务端的中央处理单元CPU消耗高于阈值的第一进程标识。当然,在其他实施例中,也可以根据日志文件中系统进程的情况获得待测应用程序进行相应的动作过程中其他情况的第一进程标识,只需更改Systrace命令行参数即可,本申请对此不作限定。

通过上述方式,可以自动化获取待测应用程序进行相应的动作过程中服务端的中央处理单元CPU消耗高于阈值的第一进程标识。

S5:利用自动化脚本Auto.sh调用动作执行脚本Appium.py,以使得服务端采集第一进程标识的性能事件。

具体地,请参阅图5,图5是图1中步骤S5一实施方式的流程示意图。步骤S5具体包括:

S401:利用自动化脚本Auto.sh调用动作执行脚本Appium.py,在动作执行脚本Appium.py的会话控制界面设定配置信息。

利用自动化脚本Auto.sh调用动作执行脚本Appium.py,上述动作执行脚本Appium.py提供应用程序接口,待测应用程序通过调用应用程序接口而使其进行相应的动作,并在动作执行脚本Appium.py的会话控制界面设定配置信息,以筛选出待测应用程序进行相应的动作时需要测试的性能事件,其中,上述配置信息包括:平台名称、平台版本、设备名称、自动化名称以及待测应用程序的安装包。

S402:服务端利用动作执行脚本Appium.py采集第一进程标识的性能事件。

具体而言,在本实施例中,在动态配置部分,在待测应用程序进行相应的动作时,将性能事件收集工具应用到动作执行脚本Appium.py中,性能事件收集工具可以是Simpleperf工具等。其中,Simpleperf工具包括client端和host端,client端运行在移动终端的系统上,负责收集性能事件,host端则运行在服务端上,负责对收集的性能事件进行分析和可视化。服务端利用上述动作执行脚本Appium.py采集第一进程标识的性能事件,并将其以event.txt文件的形式输出,从而为用户提供参考。最后利用Systrace工具在服务端清除缓存,以保证之后操作的流畅性。

为了保证相应的动作运行的节点配置参数的一致性,在步骤S5之前,还包括:将相应的动作的登录参数写入配置文件,读取配置文件并发送至相应的动作运行的节点。

具体地,上述登陆参数包括控件ID、登陆密码等。在静态配置部分,将控件ID、登陆密码等登陆参数写入配置文件,读取配置文件并发送至相应的动作运行的节点,以保证相应的动作运行的节点配置参数的一致性,运行待测应用程序并执行不同的动作时,可以使得待测应用程序能够自动登陆,以达到自动化收集性能事件的目的。

通过这种方式,用户只需要运行相应的脚本,设定对应的参数就可以自动化选择需要收集的性能事件,可以适应不同移动终端的处理器的自动化识别,也可以适应同种移动终端的处理器运行不同应用程序的不同动作的自动化选择,不仅提高了性能事件收集的效率,还提高了性能事件收集的准确性。

请参阅图6,图6是本申请应用程序运行时性能事件的收集装置一实施方式的结构示意图。上述装置包括应用准备模块10、交互动作选择模块12、进程选择模块14以及数据采集模块16。其中,应用准备模块10,用于在服务端内写入自动化脚本Auto.sh,利用上述自动化脚本Auto.sh调用应用程序配置脚本APKConfig.py,并根据应用程序配置脚本APKConfig.py下载待测应用程序。交互动作选择模块12,利用自动化脚本Auto.sh调用动作执行脚本Appium.py,并根据动作执行脚本Appium.py对待测应用程序执行相应的动作。进程选择模块14,利用自动化脚本Auto.sh调用系统追踪脚本Systrace.py以及日志获取脚本trace.html,以获得待测应用程序进行相应的动作过程中的第一进程标识。数据采集模块16,利用自动化脚本Auto.sh调用动作执行脚本Appium.py,以使得服务端采集第一进程标识的性能事件。

请参阅图7,图7是本申请计算机装置一实施方式的结构示意图。上述装置包括相互耦接的存储器200和处理器202;存储器200用于存储计算机程序;处理器202用于执行计算机程序以实现上述任一实施例中所提及的收集方法。

具体而言,处理器202还可以称为CPU(Central Processing Unit,中央处理单元)。处理器202可能是一种集成电路芯片,具有信号的处理能力。处理器202还可以是通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(ApplicationSpecific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable GateArray,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。另外,处理器202可以由多个集成电路芯片共同实现。

请参阅图8,图8是本申请计算机可读存储介质一实施方式的框架示意图。上述装置计算机可读存储介质30存储有计算机程序300,计算机程序300用于实现上述任一实施例中所提及的收集方法。其中,该程序指令300可以以软件产品的形式存储在上述存储装置中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施方式所述方法的全部或部分步骤。而前述的存储装置包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质,或者是计算机、服务器、手机、平板等终端设备。

总而言之,区别于现有技术的情况,本申请通过一系列自动化方法,可以同时指定多个特定的应用程序进行安装,安装后可以自动运行指定的应用程序,并且可以单独定时执行相应的动作,从而提高了应用程序运行时收集性能事件的效率以及准确率。

以上所述仅为本申请的实施方式,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号