CN114003457A - 数据获取方法和装置、存储介质及电子设备 - Google Patents
数据获取方法和装置、存储介质及电子设备 Download PDFInfo
- Publication number
- CN114003457A CN114003457A CN202111276242.XA CN202111276242A CN114003457A CN 114003457 A CN114003457 A CN 114003457A CN 202111276242 A CN202111276242 A CN 202111276242A CN 114003457 A CN114003457 A CN 114003457A
- Authority
- CN
- China
- Prior art keywords
- data
- data acquisition
- sampling
- target
- hardware
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/26—Functional testing
- G06F11/263—Generation of test inputs, e.g. test vectors, patterns or sequences ; with adaptation of the tested hardware for testability with external testers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/26—Functional testing
- G06F11/273—Tester hardware, i.e. output processing circuits
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种数据获取方法和装置、存储介质及电子设备。其中,该方法包括:接收数据获取请求,其中,数据获取请求用于请求获取目标设备在运行目标业务的过程中产生的硬件性能数据;根据数据获取请求调用数据采集进程,其中,数据采集进程中运行有自动化控制脚本,自动化控制脚本中包含目标业务配置的自动化采样控制信息;获取数据采集进程输出的结果数据。本发明解决了现有技术无法实现硬件性能数据自动化采集而导致的数据获取效率低的技术问题。
Description
技术领域
本发明涉及计算机领域,具体而言,涉及一种数据获取方法和装置、存储介质及电子设备。
背景技术
为了确保各类应用(Application,简称APP)在硬件设备中的正常的运行,很多应用开发商常常会对应用客户端进行性能测试中。现有技术提供的性能测试方式往往需要额外的(简称USB)来连接设备,才能允许开发人员以USB为媒介来获取所要分析的硬件性能数据,从而达到修复性能问题的目的。
然而,在基于上述方式进行性能测试时,目前所采用的性能数据采集工具通常都是不开源的,因而使得性能测试过程的维护和接入成本就变得很高。也就是说,相关技术提供的数据获取方法存在无法使得硬件性能数据实现自动化采集,从而导致数据获取效率较低的问题。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种数据获取方法和装置、存储介质及电子设备,以至少解决现有技术无法实现硬件性能数据自动化采集而导致的数据获取效率低的技术问题。
根据本发明实施例的一个方面,提供了一种数据获取方法,包括:接收数据获取请求,其中,数据获取请求用于请求获取目标设备在运行目标业务的过程中产生的硬件性能数据;根据数据获取请求调用数据采集进程,其中,数据采集进程中运行有自动化控制脚本,自动化控制脚本中包含目标业务配置的自动化采样控制信息;获取数据采集进程输出的结果数据。
根据本发明实施例的另一方面,还提供了一种数据获取装置,包括:接收单元,用于接收数据获取请求,其中,数据获取请求用于请求获取目标设备在运行目标业务的过程中产生的硬件性能数据;调用单元,用于根据数据获取请求调用数据采集进程,其中,数据采集进程中运行有自动化控制脚本,自动化控制脚本中包含目标业务配置的自动化采样控制信息;获取单元,用于获取数据采集进程输出的结果数据。
根据本发明实施例的又一方面,还提供了一种计算机可读的存储介质,该计算机可读的存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述数据获取方法。
根据本申请实施例的又一个方面,提供一种计算机程序产品,该计算机程序产品包括计算机程序/指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机程序/指令,处理器执行该计算机程序/指令,使得该计算机设备执行如以上数据获取方法。
根据本发明实施例的又一方面,还提供了一种电子设备,包括存储器和处理器,上述存储器中存储有计算机程序,上述处理器被设置为通过上述计算机程序执行上述的数据获取方法。
在本发明实施例中,通过接收数据获取请求,然后根据数据获取请求调用运行有自动化控制脚本的数据采集进程,并根据自动化控制脚本中包含的自动化采样控制信息实现自动化数据采集,最终获取采集进程的输出的结果数据,从而实现了硬件数据的自动化采集的技术效果,进而解决了现有技术中数据获取效率低的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的一种可选的数据获取方法的应用环境的示意图;
图2是根据本发明实施例的一种可选的数据获取方法的流程图;
图3是根据本发明实施例的一种可选的数据获取方法的示意图;
图4是根据本发明实施例的另一种可选的数据获取方法的示意图;
图5是根据本发明实施例的另一种可选的数据获取方法的流程图;
图6是根据本发明实施例的一种可选的数据获取装置的结构示意图;
图7是根据本发明实施例的一种可选的电子设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
根据本发明实施例的一个方面,提供了一种数据采集方法,可选地,作为一种可选的实施方式,上述数据采集方法可以但不限于应用于如图1所示的硬件环境中的数据获取系统,其中,该数据获取系统可以但不限于终端设备102及终端设备112。终端设备102可以是一种移动终端(以手机为例),作为硬件性能测试的对象,终端设备112可以为一种电脑终端,用于编写开发用于数据采集的程序以及基于数据采集结果进行硬件性能分析。上述终端设备102中包括人机交互屏幕104,处理器106以及存储器108。其中,人机交互屏幕104用于采集测试过程中的人机交互操作,并显示测试响应界面,处理器106用于运行测试程序以及执行数据采集操作,存储器108用于存储相关测试数据以及执行数据采集过程中的中间数据和结果数据。上述终端设备112中可以包括数据库114以及处理引擎116。其中,数据库114用于提供开发数据采集可执行程序的基础源码,处理引擎116用于基于结果数据进行硬件性能分析,具体地,可以基于终端设备102输出的结果数据提取出耗时高的数据帧,并基于该数据帧进行硬件性能分析。
具体过程如以下步骤:如步骤S102,通过终端设备112开发数据采集可执行程序,具体地,可以是通过Android NDK(Native Development Kit)工具集基于HWCPIPE(HardWare Count Pipe)的源码开发出用于数据采集的可执行文件及自动化脚本。然后如步骤S104-S108,接收数据获取请求,然后根据数据获取请求调用数据采集进程,并获取数据采集进程输出的结果数据。可以理解的是,上述数据获取请求为对终端102进行硬件性能测试过程中所产生的数据获取请求。同时,上述数据采集进程即在终端中运行用于数据采集的可执行文件及自动化脚本所产生的进程,以获取测试过程中的硬件数据。然后如步骤S110,输出结果数据。具体而言,终端设备102可以通过ADB(Android Debug Bridge)端口向终端设备112输出CSV(Comma Separated Value)文件格式的结果数据。最后如步骤S112,在终端设备112上执行基于结果数据进行硬件性能分析的步骤。
作为另一种可选的实施方式,在终端设备102具备较强大的计算处理能力时,上述步骤S102及S112也可以由终端设备102来完成。这里为示例,本实施例中对此不作任何限定。
需要说明的是,上述Android NDK(Native Development Kit)是一种安卓开发工具包,可让用户使用C和C++等语言以原生代码实现安卓应用的各个部分,具有运行效率高,代码安全性高以及支持跨平台等优点。
上述HWCPIPE(Hard Ware Count Pipe)是由Arm公司开源发布的硬件检测工具,提供读取CPU和GPU硬件计数器的管线接口。
上述CSV(Comma Separated Value)文件格式是指以纯文本形式存储表格数据(数字和文本)。纯文本意味着该文件是一个字符序列,不含必须像二进制数字那样被解读的数据。CSV文件由任意数目的记录组成,记录间以某种换行符分隔,每条记录由字段组成,字段间的分隔符是其它字符或字符串,最常见的是逗号或制表符。
可选地,在本实施例中,上述终端设备可以是用于运行目标业务的终端设备,可以包括但不限于以下至少之一:手机(如Android手机、iOS手机等)、笔记本电脑、平板电脑、掌上电脑、MID(Mobile Internet Devices,移动互联网设备)、PAD、台式电脑、智能电视等。目标客户端可以是视频客户端、即时通信客户端、浏览器客户端、教育客户端等支持提供射击游戏任务的客户端。上述网络可以包括但不限于:有线网络,无线网络,其中,该有线网络包括:局域网、城域网和广域网,该无线网络包括:蓝牙、WIFI及其他实现无线通信的网络。上述服务器可以是单一服务器,也可以是由多个服务器组成的服务器集群,或者是云服务器。上述仅是一种示例,本实施例中对此不作任何限定。
通过本申请提供的上述实施例,通过在进行硬件测试的移动终端上运行通过Android NDK(Native Development Kit)工具集并基于HWCPIPE(Hard Ware Count Pipe)的源码开发出用于数据采集的可执行文件及自动化脚本,接着基于接收数据获取请求,然后根据数据获取请求调用运行有自动化控制脚本的数据采集进程,并根据自动化控制脚本中包含的自动化采样控制信息实现自动化数据采集,最终获取采集进程的输出的结果数据,从而实现了硬件数据的自动化采集的技术效果,进而解决了现有技术中数据获取效率低的技术问题。
可选地,作为一种可选的实施方式,如图2所示,上述数据采集方法包括:
S202,接收数据获取请求,其中,数据获取请求用于请求获取目标设备在运行目标业务的过程中产生的硬件性能数据;
S204,根据数据获取请求调用数据采集进程,其中,数据采集进程中运行有自动化控制脚本,自动化控制脚本中包含目标业务配置的自动化采样控制信息;
S206,获取数据采集进程输出的结果数据。
可以理解的是,上述目标设备可以包括但不限于以下至少之一:手机(如Android手机、iOS手机等)、笔记本电脑、平板电脑、掌上电脑、MID(Mobile Internet Devices,移动互联网设备)、PAD、台式电脑、智能电视等。同时,上述目标业务可以是各种应用软件,包括但不限于以下至少之一:系统软件如各类操作系统,具体如Windows、Linux、Unix、Android、IOS等,还可以是操作系统的补丁程序即硬件驱动程序;应用软件如工具软件、游戏软件、管理软件等。
以下对硬件性能数据进行进一步解释。可以理解的是,上述硬件性能数据为上述目标设备在运行目标业务过程中,其中包括的各种硬件设备所产生的状态参数、运行参数等各种数据,用以评估上述目标设备在运行上述目标业务的功能的完整性,性能的释放程度和运行的可靠性。
可选地,上述根据数据获取请求调用数据采集进程可以是在上述目标业务运行过程中进行数据采集进程的调用,换句话说,可以在上述目标业务运行的同时调用数据采集进程,以获取在运行目标业务过程中的实时硬件数据。
基于上述在目标业务运行过程中对数据采集进程的调用,获取数据采集进程输出的结果,可以理解为,通过上述数据采集进程获取了上述目标设备在运行目标业务的过程中的各种硬件数据集合。可以理解的是,上述目标进程可以在输出结果数据的过程中根据测试需要将上述硬件数据集合转化为合适的数据文件格式,如json、csv、stdf等文件格式,用以方便后续对上述已经数据集合的分析。
通过本申请提供的实施例,通过接收数据获取请求,然后根据数据获取请求调用运行有自动化控制脚本的数据采集进程,并根据自动化控制脚本中包含的自动化采样控制信息实现自动化数据采集,最终获取采集进程的输出的结果数据,从而实现了硬件数据的自动化采集的技术效果,进而解决了现有技术中数据获取效率低的技术问题。
作为一种可选的方案,上述根据数据获取请求调用数据采集进程包括:
S1,读取自动化采样控制信息,其中,自动化采样控制信息中包括自定义采样频率、自定义采样数据类型;
S2,在目标业务的运行过程中产生的硬件性能数据中,对属于自定义采样数据类型的硬件性能数据按照自定义采样频率进行采集。
可以理解的是,在上述实施例中,上述数据采集进程中定义了自动化采样控制信息,其中,自动化采样控制信息中包括了自定义采样频率、自定义采样数据类型。其中,自定义采样频率指示了上述数据采集进程对硬件数据进行采集的频率,比如,可以根据实际需要定义上述进程在运行过程中每1ms采集一次硬件数据,也可以根据实际需要定义上述进程在运行过程中每0.01ms采集一次硬件数据,在此不做任何限定。同时,上述自定义采样数据类型可以包括Instructions、Shadercycles等与CPU(Central Processing Unit)和GPU(Graphics Processing Unit)相关的性能指标。
通过本申请提供的实施例,通过在数据采集进程中自定义采样频率和自定义采样数据类型以通过数据采集程序更加精确地获取所需的硬件数据,从而实现提高数据采集效率的技术效果。
作为一种可选的方案,上述在目标业务的运行过程中产生的硬件性能数据中,对属于自定义采样数据类型的硬件性能数据按照自定义采样频率进行采集包括:
S1,获取从目标设备中各个硬件部件各自对应的管线接口收集到的候选性能数据,其中,候选性能数据中包括在目标业务的运行过程中每一个硬件部件各自产生的性能数据集;
S2,从候选性能数据中确定出属于自定义采样数据类型的至少一个目标性能数据集;
S3,对目标性能数据集按照自定义采样频率进行采集。
接下来结合图3对以上方案进行具体说明。如图3所示,在目标设备305内,存在多个硬件部件,如图示出有硬件部件301、硬件部件302、硬件部件303、硬件部件304。对应于上述硬件部件301至304,分别通过管线接口301-1、管线接口301-2、管线接口301-3及管线接口301-4获取对应于各个硬件部件的产生的性能数据集。比如说,如图3所示出的内容,通过管线接口301-1获取从硬件部件301产生的第一性能数据集301-2,通过管线接口302-1获取从硬件部件302产生的第二性能数据集302-2等。可以理解的是,上述来自于不同硬件部件的数据集即为上述方法中上述的候选性能数据,并在获取从目标设备中各个硬件部件各自对应的管线接口收集到的候选性能数据之后,存储至数据采集进程空间307中,并从采集到的候选性能数据中确定出目标性能数据集306。
可以理解的是,针对目标设备305中的不同硬件部件,可以产生不同数量以及不同类型的性能数据集。换句话说,不同的硬件部件可以产生的硬件性能数据类型可以不同,此外,不同的可以产生硬件性能数据量大小也可以不同。
可以理解的是,在获取了上述候选性能数据后,根据自定义采样数据类型从上述候选性能数据中确定出至少一个目标性能数据集。比如在自定义采样数据类型为Instructions及Shadercycles类型的情况下,从上述候选性能数据中确定出数据类型为Instructions及Shadercycles的数据集合,作为目标性能数据集合。
进一步地,在确定出目标性能数据集后,对目标性能数据集中的数据按照自定义采样率进行数据采集。具体而言,在自定义采样率为1ms/次的情况下,每间隔1ms采集一次目标性能数据集中产生的数据。
通过本申请提供的实施例,通过在数据采集进程中自定义采样频率和自定义采样数据类型以通过数据采集程序更加精确地获取所需的硬件数据,从而实现提高数据采集效率的技术效果。
通过本申请提供的实施例,通过在数据采集进程中自定义采样频率和自定义采样数据类型,以通过数据采集程序更加精确地获取所需的硬件数据,从而实现提高数据采集效率的技术效果。
作为一种可选的方案,上述对目标性能数据集按照自定义采样频率进行采集包括:
S1,在达到与目标性能数据集匹配的采样开启条件的情况下,开始按照自定义采样频率进行采集;
S2,在达到与目标性能数据集匹配的采样关闭条件的情况下,结束对目标性能数据集的采集。
可以理解的是,在上述数据采集进程的运行过程中,可以通过采样开启条件和采样关闭条件控制上述数据采集进程的运行,从而实现在达到与目标性能数据集匹配的采样开启条件的情况下,开始按照自定义采样频率进行采集,在达到与目标性能数据集匹配的采样关闭条件的情况下,结束对目标性能数据集的采集。换句话说,上述数据采集进行的运行可以根据数据采集的需要随时执行开启和结束逻辑。
通过本申请提供的实施例,通过设定采样开启条件和采样关闭条件,实现随时获取需要的硬件数据信息的技术效果。
作为一种可选的方案,上述在自动化采样控制信息中包括采样结果文件文件类型和输出路径的情况下,获取数据采集进程输出的结果数据包括:将与上述结果文件类型匹配的结果数据存储至采样结果文件的输出路径中。
可以理解的是,在上述自动化采样控制信息中还可以包括采样结果文件的文件类型,以及采样结果文件的输出路径。也就是说,可以根据控制自动化采样控制信息参数信息,确定输出的结果文件的文件类型和输出路径。可选地,上述结果文件的文件类型可以是CSV文件。
通过本申请提供的实施例,通过在上述自动化采样控制信息中定义采样结果文件的文件类型,以及采样结果文件的输出路径,可以使得结果文件与结果文件分析进程相匹配,从而实现提升结果文件分析的效率的技术效果。
作为一种可选的方案,上述在接收性能测试请求之前,还包括:
S1,修改目标设备中各个硬件部件各自对应的管线接口的数据收集控制策略,其中,数据收集控制策略中携带有自定义的自动化采样控制信息;
S2,基于数据收集控制策略生成自动化控制脚本。
通过本申请提供的实施例,在采用上述数据采集进程进行硬件性能数据进行采集之前,需要对目标设备中各个硬件部件各自对应的管线接口的数据收集控制策略进行修改,以适应于数据采集程序。同时,还可以基于数据收集控制策略生成自动化控制脚本,从而实现硬件数据自动化控制采集,进而实现随时获取需要的硬件数据信息的技术效果。
作为一种可选的方案,上述基于数据收集控制策略生成自动化控制脚本包括:
S1,对与数据收集控制策略对应的接口源码进行编译,得到可执行文件;
S2,基于可执行文件编写生成自动化控制脚本。
可以理解的是,作为一种可选的方式,上述数据收集控制策略可以是Hwcpipe(HardWareCountPipe)所定义的收集控制策略,因而,上述对与数据收集控制策略对应的接口源码进行修改以后,再利用cmake进行编译,从而得到可执行文件。对上述与数据收集控制策略对应的接口源码进行修改的方法可以具体为修改Hwcpipe源码,以满足自定义采样频率、自定义采样数据以及自定义采样结果的需求。
对上述Hwcpipe进行修改并利用cmake进行编译后得到可执行程序HardenPerf。可以理解的是,上述可执行程序HardenPerf即可用于采集硬件性能数据。在得到上述可执行程序HardenPerf之后,基于上述可执行程序HardenPerf编写HardenPerf自动化控制脚本,其中还可以包括自动化条件准备、开启采集以及关闭采集等参数条件。
可以理解的是,上述cmake是一种编译工具,许开发者编写一种平台无关的CMakeList.txt文件来定制整个编译流程,然后再根据目标用户的平台进一步生成所需的本地化Makefile和工程文件,如Unix的Makefile或Windows的Visual Studio工程。
通过本申请提供的实施例,通过对硬件计数器管线接口Hwcpipe的源码进行修改以及二次封装,并根据封装得到的可执行文件编写自动化控制脚本文件,从而实现根据需求随时采集需要的硬件性能数据以及随时停止数据采集进程,进而实现了获取硬件性能数据并减少维护和接入成本的技术效果。
以下结合图4、图5对本申请的一个具体实施例进行说明。
如图5所示的流程图所示,首先,执行步骤S502,修改数据收集控制策略;
具体地,如图4所示,可以使用NDK工具包进行开发工作,对Hwcpipe源码进行修改,使其可以满足自定义采样数据的需求。在对Hwcpipe源码进行修改以后,使用cmake编译产生可执行文件HardenPerf,可以理解的是,在可执行文件HardenPerf的执行过程中,可以通过修改后的数据收集控制策略调用Hwcpipe,使其满足硬件性能数据采集的自定义采样频率、自定义采样数据类型以及自定义采样结果文件的需求。
然后如步骤S504,基于数据收集控制策略生成自动化控制脚本;
具体地,上述自动化控制脚本为基于HardenPerf编写的Python自动化脚本文件,用于在pc上执行,以实现控制目标设备(如手机)执行相关运行逻辑,如准备性能执行条件、控制HardenPerf开启数据采集逻辑、控制HardenPerf关闭数据采集逻辑等。如图4所示,在PC端运行有用于对手机游戏进行自动化测试的框架Gautomator,在通过上述自动化测试框架Gautomator进行自动化测试的过程中,可以调用基于HardenPerf编写的Python自动化脚本文件,以实现对运行有手机游戏的硬件设备的硬件性能进行自动采集。更具体而言,在此处的运行有手机游戏的硬件设备可以是任意适用于arm架构maliGPU驱动abi大于10以上版本的手机硬件。
然后如步骤S506,运行目标任务;
如图4所示,通过ADB端口连接PC端设备以及手机A,并在手机A上运行目标任务,具体而言,上述目标任务可以为任意unity或者ue4游戏任务。
可以理解的是,上述ADB(Android Debug Bridge)端口是一种功能多样的命令行工具,可用于设备间进行通信。ADB命令可用于执行各种设备操作(例如安装和调试应用),并提供对Unix shell(可用来在设备上运行各种命令)的访问权限。它是一种客户端-服务器程序,包括客户端、守护程序(adbd)与服务器三个组件。
然后如步骤S508,判断是否运行数据采集进程,在判断为是的情况下,执行步骤S510,在判断为否的情况下,返回执行步骤S506;
如图4所示,在运行有手游自动测试框架Gautomator的PC端设备上以ADB forward指令控制通过ADB端口向手机A上推送可执行文件HardenPerf,并根据在PC端的通过ADB端口推送的控制指令判断是否运行数据采集进程。
可以理解的是,此处执行判断是否运行数据采集进程的逻辑可以通过上述在PC端运行的基于HardenPerf编写的Python自动化脚本文件实现。
如步骤S510,在判断运行数据采集进程的情况下,读取自动化采样控制信息;
具体而言,此处的自动化采样控制信息可以包括自定义采样频率、自定义采样数据类型、自定义采样结果文件类型以及自定义采样结果文件的输出路径。
可以理解的是,上述自定义采样频率用于确定硬件数据采样周期,上述自定义采样数据类型用于确定需要获取的硬件性能数据类型,上述自定义采样结果文件类型用于确定上述数据采集进程的输出文件类型,上述输出路径用于确定获取上述输出文件后的存储路径。
如图4所示,根据由PC端推送的控制指令判断运行数据采集进程的情况下,在手机A上运行HardenPerf程序,并通过Perf_harden()指令参数控制HardenPerf程序的启停。
然后执行步骤S512,判断是否属于自定义采样数据类型,在判断获取的数据为自定义采样数据类型的情况下,执行步骤S514,在判断获取的数据不是自定义采样数据类型的情况下,返回执行步骤S512;
如步骤S514,确定目标性能数据集;
可以理解的是,在采集数据过程中,首先获取从上述目标设备中各个硬件部件各自对应的管线接口收集到的候选性能数据,并从上述候选性能数据中确定出属于上述自定义采样数据类型的至少一个目标性能数据集。例如,在自定义采样数据类型确定为instruction,hadercycles的情况下,仅获取instruction,hadercycles类型的硬件性能数据,上述instruction,hadercycles类型的硬件性能数据的数据集合即为目标性能数据集。
然后执行步骤S516,根据自定义采样频率进行数据采集;
可以理解的是,在确定出目标性能数据集后,对目标性能数据集中的数据按照自定义采样率进行数据采集。具体而言,在自定义采样率为1ms/次的情况下,每间隔1ms采集一次目标性能数据集中产生的数据。
然后执行步骤S518,判断是否结束数据采集进程,在判断结束数据采集进程的情况下,执行步骤S520,在判断未结束数据采集进程的情况下,返回执行步骤S516;
可以理解的是,此处执行判断是否结束数据采集进程的逻辑可以通过上述基于HardenPerf编写的Python自动化脚本文件实现。如图4所示,在PC端运行基于HardenPerf编写的Python自动化脚本文件,并通过ADB端口向手机A推送控制指令,以控制在手机端运行的HardenPerf程序的启停。
在判断结束数据采集进程的情况下,执行步骤S520,获取结果数据;
可以理解的是,此处可以根据上述自定义采样结果文件类型以及自定义采样结果文件的输出路径确定结果数据,可选地,上述结果文件的文件类型可以是CSV格式的数据文件。
如图4所示,通过在手机A中运行的HardenPerf程序采集得到CSV格式的硬件性能数据文件,并通过ADB端口回传给终端中运行的Gautomator自动测试框架,以进行后续测试任务。
通过本申请提供的上述实施例,通过在进行硬件测试的移动终端上运行通过Android NDK(Native Development Kit)工具集并基于HWCPIPE(Hard Ware Count Pipe)的源码开发出用于数据采集的可执行文件及自动化脚本,接着基于接收数据获取请求,然后根据数据获取请求调用运行有自动化控制脚本的数据采集进程,并根据自动化控制脚本中包含的自动化采样控制信息实现自动化数据采集,最终获取采集进程的输出的结果数据,从而实现了硬件数据的自动化采集的技术效果,进而解决了现有技术中数据获取效率低的技术问题。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
根据本发明实施例的另一个方面,还提供了一种用于实施上述数据获取方法的数据获取装置。如图6所示,该装置包括:
接收单元602,用于接收数据获取请求,其中,数据获取请求用于请求获取目标设备在运行目标业务的过程中产生的硬件性能数据;
调用单元604,用于根据数据获取请求调用数据采集进程,其中,数据采集进程中运行有自动化控制脚本,自动化控制脚本中包含目标业务配置的自动化采样控制信息;
获取单元606,用于获取数据采集进程输出的结果数据。
可选地,在本实施例中,上述各个单元模块所要实现的实施例,可以参考上述各个方法实施例,这里不再赘述。
根据本发明实施例的又一个方面,还提供了一种用于实施上述数据获取方法的电子设备,该电子设备可以是图7所示的终端设备或服务器。本实施例以该电子设备为终端设备为例来说明。如图7所示,该电子设备包括存储器702和处理器704,该存储器702中存储有计算机程序,该处理器704被设置为通过计算机程序执行上述任一项方法实施例中的步骤。
可选地,在本实施例中,上述电子设备可以位于计算机网络的多个网络设备中的至少一个网络设备。
可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
S1,接收数据获取请求,其中,数据获取请求用于请求获取目标设备在运行目标业务的过程中产生的硬件性能数据;
S2,根据数据获取请求调用数据采集进程,其中,数据采集进程中运行有自动化控制脚本,自动化控制脚本中包含目标业务配置的自动化采样控制信息;
S3,获取数据采集进程输出的结果数据。
可选地,本领域普通技术人员可以理解,图7所示的结构仅为示意,电子装置电子设备也可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌上电脑以及移动互联网设备(Mobile Internet Devices,MID)、PAD等终端设备。图7其并不对上述电子装置电子设备的结构造成限定。例如,电子装置电子设备还可包括比图7中所示更多或者更少的组件(如网络接口等),或者具有与图7所示不同的配置。
其中,存储器702可用于存储软件程序以及模块,如本发明实施例中的数据获取方法和装置对应的程序指令/模块,处理器704通过运行存储在存储器702内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的数据获取方法。存储器702可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器702可进一步包括相对于处理器704远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。其中,存储器702具体可以但不限于用于存储硬件性能数据中的各个部分、数据获取信息等信息。作为一种示例,如图7所示,上述存储器702中可以但不限于包括上述数据获取装置中的接收单元602、调用单元604、获取单元606。此外,还可以包括但不限于上述数据获取装置中的其他模块单元,本示例中不再赘述。
可选地,上述的传输装置706用于经由一个网络接收或者发送数据。上述的网络具体实例可包括有线网络及无线网络。在一个实例中,传输装置706包括一个网络适配器(Network Interface Controller,NIC),其可通过网线与其他网络设备与路由器相连从而可与互联网或局域网进行通讯。在一个实例中,传输装置706为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
此外,上述电子设备还包括:显示器708,用于显示界面中的硬件性能数据获取进程;和连接总线710,用于连接上述电子设备中的各个模块部件。
在其他实施例中,上述终端设备或者服务器可以是一个分布式系统中的一个节点,其中,该分布式系统可以为区块链系统,该区块链系统可以是由该多个节点通过网络通信的形式连接形成的分布式系统。其中,节点之间可以组成点对点(P2P,Peer To Peer)网络,任意形式的计算设备,比如服务器、终端等电子设备都可以通过加入该点对点网络而成为该区块链系统中的一个节点。
根据本申请的一个方面,提供了一种计算机程序产品,该计算机程序产品包括计算机程序/指令,该计算机程序/指令包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分从网络上被下载和安装,和/或从可拆卸介质被安装。在该计算机程序被中央处理器执行时,执行本申请实施例提供的各种功能。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
根据本申请的一个方面,提供了一种计算机可读存储介质,计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述数据获取方方法。
可选地,在本实施例中,上述计算机可读存储介质可以被设置为存储用于执行以下步骤的计算机程序:
S1,接收数据获取请求,其中,数据获取请求用于请求获取目标设备在运行目标业务的过程中产生的硬件性能数据;
S2,根据数据获取请求调用数据采集进程,其中,数据采集进程中运行有自动化控制脚本,自动化控制脚本中包含目标业务配置的自动化采样控制信息;
S3,获取数据采集进程输出的结果数据。
可选地,在本实施例中,本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(Random Access Memory,RAM)、磁盘或光盘等。
上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例上述方法的全部或部分步骤。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如上述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
以上上述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (11)
1.一种数据获取方法,其特征在于,包括:
接收数据获取请求,其中,所述数据获取请求用于请求获取目标设备在运行目标业务的过程中产生的硬件性能数据;
根据所述数据获取请求调用数据采集进程,其中,所述数据采集进程中运行有自动化控制脚本,所述自动化控制脚本中包含所述目标业务配置的自动化采样控制信息;
获取所述数据采集进程输出的结果数据。
2.根据权利要求1所述的方法,其特征在于,所述根据所述数据获取请求调用数据采集进程包括:
读取所述自动化采样控制信息,其中,所述自动化采样控制信息中包括自定义采样频率、自定义采样数据类型;
在所述目标业务的运行过程中产生的硬件性能数据中,对属于所述自定义采样数据类型的硬件性能数据按照所述自定义采样频率进行采集。
3.根据权利要求2所述的方法,其特征在于,所述在所述目标业务的运行过程中产生的硬件性能数据中,对属于所述自定义采样数据类型的硬件性能数据按照所述自定义采样频率进行采集包括:
获取从所述目标设备中各个硬件部件各自对应的管线接口收集到的候选性能数据,其中,所述候选性能数据中包括在所述目标业务的运行过程中每一个硬件部件各自产生的性能数据集;
从所述候选性能数据中确定出属于所述自定义采样数据类型的至少一个目标性能数据集;
对所述目标性能数据集按照所述自定义采样频率进行采集。
4.根据权利要求3所述的方法,其特征在于,所述对所述目标性能数据集按照所述自定义采样频率进行采集包括:
在达到与所述目标性能数据集匹配的采样开启条件的情况下,开始按照所述自定义采样频率进行采集;
在达到与所述目标性能数据集匹配的采样关闭条件的情况下,结束对所述目标性能数据集的采集。
5.根据权利要求1所述的方法,其特征在于,在所述自动化采样控制信息中包括采样结果文件的文件类型和输出路径的情况下,获取所述数据采集进程输出的结果数据包括:
将所述结果数据存储至所述采样结果文件的输出路径中。
6.根据权利要求1所述的方法,其特征在于,在所述接收性能测试请求之前,还包括:
修改所述目标设备中各个硬件部件各自对应的管线接口的数据收集控制策略,其中,所述数据收集控制策略中携带有自定义的所述自动化采样控制信息;
基于所述数据收集控制策略生成所述自动化控制脚本。
7.根据权利要求6所述的方法,其特征在于,基于所述数据收集控制策略生成所述自动化控制脚本包括:
对与所述数据收集控制策略对应的接口源码进行编译,得到可执行文件;
基于所述可执行文件编写生成所述自动化控制脚本。
8.一种数据获取装置,其特征在于,包括:
接收单元,用于接收数据获取请求,其中,所述数据获取请求用于请求获取目标设备在运行目标业务的过程中产生的硬件性能数据;
调用单元,用于根据所述数据获取请求调用数据采集进程,其中,所述数据采集进程中运行有自动化控制脚本,所述自动化控制脚本中包含所述目标业务配置的自动化采样控制信息;
获取单元,用于获取所述数据采集进程输出的结果数据。
9.一种计算机可读的存储介质,其特征在于,所述计算机可读的存储介质包括存储的程序,其中,所述程序运行时执行所述权利要求1至7任一项中所述的方法。
10.一种计算机程序产品,包括计算机程序/指令,其特征在于,该计算机程序/指令被处理器执行时实现权利要求1至7任一项所述方法的步骤。
11.一种电子设备,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为通过所述计算机程序执行所述权利要求1至7任一项中所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111276242.XA CN114003457A (zh) | 2021-10-29 | 2021-10-29 | 数据获取方法和装置、存储介质及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111276242.XA CN114003457A (zh) | 2021-10-29 | 2021-10-29 | 数据获取方法和装置、存储介质及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114003457A true CN114003457A (zh) | 2022-02-01 |
Family
ID=79925573
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111276242.XA Pending CN114003457A (zh) | 2021-10-29 | 2021-10-29 | 数据获取方法和装置、存储介质及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114003457A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114844763A (zh) * | 2022-04-19 | 2022-08-02 | 北京快乐茄信息技术有限公司 | 数据处理方法及装置、电子设备及存储介质 |
-
2021
- 2021-10-29 CN CN202111276242.XA patent/CN114003457A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114844763A (zh) * | 2022-04-19 | 2022-08-02 | 北京快乐茄信息技术有限公司 | 数据处理方法及装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109302522B (zh) | 测试方法、装置以及计算机系统和介质 | |
CN104838405B (zh) | 用于应用程序的测试框架的方法和系统 | |
CN107302476B (zh) | 一种测试异步交互系统的自动化测试方法与系统 | |
CN102591696A (zh) | 一种手机软件行为数据提取方法及系统 | |
CN105164644A (zh) | 钩子框架 | |
CN111209193B (zh) | 程序的调试方法及装置 | |
CN110750458A (zh) | 大数据平台测试方法、装置、可读存储介质及电子设备 | |
CN111258680B (zh) | 资源加载方法和装置、存储介质及电子装置 | |
CN112306837A (zh) | 一种云压力测试方法及平台、设备及可读存储介质 | |
CN112052037A (zh) | 一种应用软件开发方法、装置、设备及介质 | |
CN110109684B (zh) | 区块链节点管理代理服务安装方法、电子装置及存储介质 | |
CN107368407B (zh) | 信息处理方法和装置 | |
CN114003457A (zh) | 数据获取方法和装置、存储介质及电子设备 | |
CN112306857A (zh) | 用于测试应用的方法和装置 | |
CN110955434A (zh) | 软件开发包处理方法、装置、计算机设备和存储介质 | |
CN115705190A (zh) | 依赖程度的确定方法及装置 | |
CN112559124A (zh) | 一种模型管理系统以及目标操作指令的处理方法和装置 | |
CN112788112A (zh) | 设备健康管理微服务自动发布方法、装置和平台 | |
CN112463519A (zh) | 基于Flutter的页面使用行为数据无埋点统计方法、设备及存储介质 | |
CN112162908A (zh) | 基于字节码注入技术的程序调用链路监控实现方法及装置 | |
CN111352668A (zh) | 基于插件的设备测试方法及装置、基于插件的测试系统 | |
CN115509913A (zh) | 软件自动化测试方法、装置、机器可读介质及设备 | |
CN114357057A (zh) | 日志分析方法、装置、电子设备及计算机可读存储介质 | |
CN115016775A (zh) | 接口模拟方法及装置、存储介质及电子设备 | |
CN114238130A (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 |