CN109298995B - 一种性能测试方法、装置、电子设备以及存储介质 - Google Patents

一种性能测试方法、装置、电子设备以及存储介质 Download PDF

Info

Publication number
CN109298995B
CN109298995B CN201710608159.5A CN201710608159A CN109298995B CN 109298995 B CN109298995 B CN 109298995B CN 201710608159 A CN201710608159 A CN 201710608159A CN 109298995 B CN109298995 B CN 109298995B
Authority
CN
China
Prior art keywords
interface component
interface
performance data
performance
timestamp
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.)
Active
Application number
CN201710608159.5A
Other languages
English (en)
Other versions
CN109298995A (zh
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.)
Beijing Sogou Technology Development Co Ltd
Original Assignee
Beijing Sogou Technology Development Co Ltd
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 Beijing Sogou Technology Development Co Ltd filed Critical Beijing Sogou Technology Development Co Ltd
Priority to CN201710608159.5A priority Critical patent/CN109298995B/zh
Publication of CN109298995A publication Critical patent/CN109298995A/zh
Application granted granted Critical
Publication of CN109298995B publication Critical patent/CN109298995B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3065Monitoring arrangements determined by the means or processing involved in reporting the monitored data
    • G06F11/3072Monitoring arrangements determined by the means or processing involved in reporting the monitored data where the reporting involves data filtering, e.g. pattern matching, time or event triggered, adaptive or policy-based reporting
    • G06F11/3075Monitoring arrangements determined by the means or processing involved in reporting the monitored data where the reporting involves data filtering, e.g. pattern matching, time or event triggered, adaptive or policy-based reporting the data filtering being achieved in order to maintain consistency among the monitored data, e.g. ensuring that the monitored data belong to the same timeframe, to the same system or component
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3419Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3476Data logging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3692Test management for test results analysis

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明实施例提供了一种性能测试方法、装置、电子设备以及存储介质,以提高性能测试的准确性。所述的方法包括:监听目标进程对应各界面组件;记录所述各界面组件处于前台状态的运行时间信息;收集所述目标进程的性能数据并记录对应的采集时间;将所述性能数据的采集时间和各界面组件处于前台状态的运行时间信息进行匹配,确定各界面组件对应的性能数据;依据各界面组件对应的性能数据,分析所述目标进程中界面组件对应的性能。能够建立界面组件和性能数据的关联,基于界面分析目标进程的性能,有效的提高性能分析的准确性。

Description

一种性能测试方法、装置、电子设备以及存储介质
技术领域
本发明涉及输入法技术领域,特别是涉及一种性能测试方法、一种性能测试装置、一种电子设备,以及一种存储介质。
背景技术
随着计算机技术的发展,诸如手机、平板电脑等电子设备越来越普及,给人们的生活、学习、工作带来了极大的便利。用户可在电子设备中安装各种应用程序(Application,APP),如浏览器、播放器、即时通讯应用、输入法等,便于用户获取所需的各种信息。
为了给用户提供更好的使用,应用开发者等往往会通过性能测试来测试应用程序的性能。但是,目前的性能测试都是以时间为维度进行的,即仅记录性能数据和采集的时间点。
因此,采用上述这种方式在测试过程结束后,整个导出性能数据进行分析时,仅能够分析各时间点对应的数据。但是,对于数据异常难以准确分析异常的效果,以及对于流畅度等性能仅通过测试得到的数据难以准确分析。
发明内容
本发明实施例所要解决的技术问题是提供一种性能测试方法,以提高性能测试的准确性。
相应的,本发明实施例还提供了一种性能测试装置、一种电子设备及一种存储介质,用以保证上述方法的实现及应用。
为了解决上述问题,本发明实施例公开了一种性能测试方法,包括:监听目标进程对应各界面组件;记录所述各界面组件处于前台状态的运行时间信息;收集所述目标进程的性能数据并记录对应的采集时间;将所述性能数据的采集时间和各界面组件处于前台状态的运行时间信息进行匹配,确定各界面组件对应的性能数据;依据各界面组件对应的性能数据,分析所述目标进程中界面组件对应的性能。
可选的,所述监听目标进程对应各界面组件,包括:在预设接口进行注册,所述预设接口为界面组件生命周期的回调接口;通过所述预设接口监听目标进程对应各界面组件的生命周期事件。
可选的,记录所述各界面组件处于前台状态的运行时间信息,包括:依据生命周期事件判断对应界面组件处于前台状态,并记录对应界面组件的界面名称及对应的时间戳;采用所述界面名称和对应的时间戳,生成所述界面组件的运行时间信息。
可选的,所述依据生命周期事件判断对应界面组件处于前台状态,并记录对应界面组件的界面名称及对应的时间戳,包括:若所述生命周期事件为恢复事件,则判断对应界面组件开始进入前台状态,记录所述界面组件的界面名称及对应的第一时间戳;若所述生命周期事件为暂停事件,则判断对应界面组件退出前台状态,记录所述界面组件对应的第二时间戳。
可选的,将所述性能数据的采集时间和各界面组件处于前台状态的运行时间信息进行匹配,确定各界面组件对应的性能数据,包括:将所述性能数据的采集时间和各界面组件处于前台状态的运行时间信息进行比对;针对每个界面组件,分别获取所述采集时间不小于所述界面组件对应的第一时间戳,且所述采集时间不大于所述界面组件对应的第二时间戳的性能数据,作为所述界面组件对应的性能数据。
可选的,所述依据各界面组件对应的性能数据,分析所述目标进程中界面组件对应的性能,包括:对各界面组件对应的性能数据进行分析,确定所述界面组件对应各性能的性能分析结果。
可选的,还包括通过以下任一种方式确定异常的界面组件:提取异常的性能数据,依据所述异常的性能数据确定对应异常的界面组件;或,记录异常时间信息,依据所述异常时间信息和所述运行时间信息进行比较,确定对应异常的界面组件;或,基于各界面组件的性能分析结果,确定对应异常的界面组件。
本发明实施例还公开了一种性能测试装置,包括:监听模块,用于监听目标进程对应各界面组件;采集模块,用于记录所述各界面组件处于前台状态的运行时间信息;收集所述目标进程的性能数据并记录对应的采集时间;界面匹配模块,用于将所述性能数据的采集时间和各界面组件处于前台状态的运行时间信息进行匹配,确定各界面组件对应的性能数据;分析模块,用于依据各界面组件对应的性能数据,分析所述目标进程中界面组件对应的性能。
可选的,所述监听模块包括:接口注册子模块,用于在预设接口进行注册,所述预设接口为界面组件生命周期的回调接口;接口监听子模块,用于通过所述预设接口监听目标进程对应各界面组件的生命周期事件。
可选的,所述采集模块,包括:生命周期记录子模块,用于依据生命周期事件判断对应界面组件处于前台状态,并记录对应界面组件的界面名称及对应的时间戳;采用所述界面名称和对应的时间戳,生成所述界面组件的运行时间信息。
可选的,所述生命周期记录子模块,用于若所述生命周期事件为恢复事件,则判断对应界面组件开始进入前台状态,记录所述界面组件的界面名称及对应的第一时间戳;若所述生命周期事件为暂停事件,则判断对应界面组件退出前台状态,记录所述界面组件对应的第二时间戳。
可选的,所述界面匹配模块,用于将所述性能数据的采集时间和各界面组件处于前台状态的运行时间信息进行比对;针对每个界面组件,分别获取所述采集时间不小于所述界面组件对应的第一时间戳,且所述采集时间不大于所述界面组件对应的第二时间戳的性能数据,作为所述界面组件对应的性能数据。
可选的,所述分析模块,用于对各界面组件对应的性能数据进行分析,确定所述界面组件对应各性能的性能分析结果。
可选的,所述分析模块,用于提取异常的性能数据,依据所述异常的性能数据确定对应异常的界面组件;和/或,记录异常时间信息,依据所述异常时间信息和所述运行时间信息进行比较,确定对应异常的界面组件;和/或,基于各界面组件的性能分析结果,确定对应异常的界面组件。
本发明实施例还公开了一种电子设备,包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于进行以下操作的指令:监听目标进程对应各界面组件;记录所述各界面组件处于前台状态的运行时间信息;收集所述目标进程的性能数据并记录对应的采集时间;将所述性能数据的采集时间和各界面组件处于前台状态的运行时间信息进行匹配,确定各界面组件对应的性能数据;依据各界面组件对应的性能数据,分析所述目标进程中界面组件对应的性能。
可选的,所述监听目标进程对应各界面组件,包括:在预设接口进行注册,所述预设接口为界面组件生命周期的回调接口;通过所述预设接口监听目标进程对应各界面组件的生命周期事件。
可选的,记录所述各界面组件处于前台状态的运行时间信息,包括:依据生命周期事件判断对应界面组件处于前台状态,并记录对应界面组件的界面名称及对应的时间戳;采用所述界面名称和对应的时间戳,生成所述界面组件的运行时间信息。
可选的,所述依据生命周期事件判断对应界面组件处于前台状态,并记录对应界面组件的界面名称及对应的时间戳,包括:若所述生命周期事件为恢复事件,则判断对应界面组件开始进入前台状态,记录所述界面组件的界面名称及对应的第一时间戳;若所述生命周期事件为暂停事件,则判断对应界面组件退出前台状态,记录所述界面组件对应的第二时间戳。
可选的,将所述性能数据的采集时间和各界面组件处于前台状态的运行时间信息进行匹配,确定各界面组件对应的性能数据,包括:将所述性能数据的采集时间和各界面组件处于前台状态的运行时间信息进行比对;针对每个界面组件,分别获取所述采集时间不小于所述界面组件对应的第一时间戳,且所述采集时间不大于所述界面组件对应的第二时间戳的性能数据,作为所述界面组件对应的性能数据。
可选的,所述依据各界面组件对应的性能数据,分析所述目标进程中界面组件对应的性能,包括:对各界面组件对应的性能数据进行分析,确定所述界面组件对应各性能的性能分析结果。
可选的,还包含用于进行以下操作的指令:提取异常的性能数据,依据所述异常的性能数据确定对应异常的界面组件;和/或,记录异常时间信息,依据所述异常时间信息和所述运行时间信息进行比较,确定对应异常的界面组件;和/或,基于各界面组件的性能分析结果,确定对应异常的界面组件。
本发明实施例还公开了一种可读存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行如本发明实施例任一所述的性能测试方法。
本发明实施例包括以下优点:
本发明实施例可在目标应用程序启动的过程中,监听目标应用程序的目标进程对应各界面组件,从而在目标进程运行过程中记录各界面组件处于前台状态的运行时间信息,并收集所述目标进程的性能数据及采集时间,然后可将性能数据采集时间和运行时间信息进行匹配,确定各界面组件对应的性能数据,从而建立界面组件和性能数据的关联,再分析各界面组件对应的性能数据,得到目标进程的性能,能够基于界面分析目标进程的性能,有效的提高性能分析的准确性。
附图说明
图1是本发明的一种性能测试方法实施例的步骤流程图;
图2是本发明的另一种性能测试方法实施例的步骤流程图;
图3是本发明实施例中界面组件运行时间的判断流程图;
图4是本发明的一种性能测试装置实施例的结构框图;
图5是本发明的另一种性能测试装置实施例的结构框图;
图6是根据一示例性实施例示出的一种用于性能测试的电子设备的结构框图;
图7是本发明实施例中服务器的结构示意图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
为了给用户提供更好的使用,应用开发者等往往会通过性能测试来测试应用程序的性能。本发明实施例将性能测试与应用界面结合,能够测试出应用处于各界面下的性能,提高测试的准确性。
参照图1,示出了本发明的一种性能测试方法实施例的步骤流程图,具体可以包括如下步骤:
步骤102,监听目标进程对应各界面组件。
应用程序通常会提供界面来实现与用户的交互,应用程序中的界面通常是采用界面组件支持实现的,例如安卓(android)系统中的Activity。因此在目标应用程序启动的过程中,可以系统中标进程的界面组件进行监听,通过监听可确定目标进程中运行的界面组件以及各界面组件的运行状态等。其中,目标进程为目标应用程序的进程,该目标应用程序为需要进行性能测试的应用程序。
步骤104,记录所述各界面组件处于前台状态的运行时间信息。
步骤106,收集所述目标进程的性能数据并记录对应的采集时间。
通过监听可确定目标进程中运行的界面组件以及各界面组件的运行状态等,即在目标应用程序运行过程中,可基于监听到数据确定该目标界面的状态,当界面组件处于前台(front ground)状态后,可记录对应的运行时间信息,例如开始进入前台状态的起始运行时间、结束前台状态的停止运行时间等。所述前台状态指的是界面组件对应界面显示且可被用户操作的状态,即应用程序生命周期中的运行态(running)。
并且还可在目标应用程序运行过程中,收集所述目标进程的性能数据并记录对应的采集时间,例如内存、CPU、流畅度等性能数据及采集时间。
步骤108,将所述性能数据的采集时间和各界面组件处于前台状态的运行时间信息进行匹配,确定各界面组件对应的性能数据。
在获取到目标进程的性能数据,以及各界面组件处于前台状态的运行时间信息后,可将性能数据的采集时间和各界面组件的运行时间信息进行匹配,即将性能数据的采集时间、和各界面组件处于前台状态的运行时间信息进行匹配,确定出各界面组件处于前台状态下采集到的性能数据,即各界面组件对应的性能数据,从而建立界面组件和性能数据的关联,以便于确定出各界面运行时应用程序的性能。上述匹配过程可在数据收集后执行,也可在目标进程运行结束进行性能分析的过程中执行。
步骤110,依据各界面组件对应的性能数据,分析所述目标进程中界面组件对应的性能。
然后可对各界面组件对应的性能数据进行分析,确定出目标进程在运行各界面时的性能,例如界面正常显示且可被用户操作的情况下,内存占用情况、CPU占用情况,界面显示的流畅度等。并且,在分析性能出现异常后,也可获知对应异常的界面等数据。
综上,可在目标应用程序启动的过程中,监听目标应用程序的目标进程对应各界面组件,从而在目标进程运行过程中记录各界面组件处于前台状态的运行时间信息,并收集所述目标进程的性能数据及采集时间,然后可将性能数据采集时间和运行时间信息进行匹配,确定各界面组件对应的性能数据,从而建立界面组件和性能数据的关联,再分析各界面组件对应的性能数据,得到目标进程的性能,能够基于界面分析目标进程的性能,有效的提高性能分析的准确性。
其中,步骤102监听目标进程对应各界面组件可包括:在预设接口进行注册,所述预设接口为支持界面组件生命周期的接口;通过所述预设接口监听目标进程对应各界面组件的生命周期事件。即注册预设接口,通过监听该预设接口的生命周期回调函数来确定界面组件的生命周期事件。
参照图2,示出了本发明的另一种性能测试方法实施例的步骤流程图,具体可以包括如下步骤:
步骤202,在预设接口进行注册,所述预设接口为支持界面组件生命周期的接口。
步骤204,通过所述预设接口监听目标进程对应各界面组件的生命周期事件。
在本发明实施例中,可确定能够支持界面组件生命周期的回调接口为预设接口,该回调接口能够对界面组件的生命周期事件进行处理。因此可在系统中对预设接口进程注册,从而能够通过该预设接口监听目标进程对应各界面组件,获取各界面组件对应生命周期事件。
例如在android系统中,可采用软件开发工具包(Software Development Kit,SDK)实现对应用程序性能数据的采集,即应用程序可加载该SDK,从而在应用程序启动时SDK随其初始化。以界面组件为Activity为例,对应的预设接口为ActivityLifecycleCallbacks接口,则SDK可注册该ActivityLifecycleCallbacks接口,通过ActivityLifecycleCallbacks接口监听进程的activity的生命周期事件,即通过ActivityLifecycleCallbacks接口监听activity的生命周期回调函数,确定对应的生命周期事件。
上述步骤104中记录所述各界面组件的运行时间信息,包括如下步骤:206-210。
步骤206,依据生命周期事件判断对应界面组件是否处于前台状态。
若是,即界面组件处于前台状态,执行步骤208;若否,即界面组件不处于前台状态,返回步骤204继续监听。其中,依据生命周期事件可确定界面组件的生命周期状态,生命周期事件中含有前台状态的起始事件和结束事件,因此在接收到标志前台状态开始的起始事件后开始进入前台状态,在接收到标志前台状态结束的结束事件后结束前台状态,则基于这些生命周期时间可判断界面组件是否处于前台状态。例如,界面组件在切换到恢复事件后进入运行态,并在切换到暂停事件后退出运行态,则可将达到恢复事件和达到暂停事件均作为条件,从而便于记录运行态的起始时间和结束时间。
步骤208,记录对应界面组件的界面名称及对应的时间戳。
步骤210,采集所述界面名称和对应的时间戳,生成所述界面组件的运行时间信息。
通过调用预设接口可监听并获取界面组件的生命周期事件,然后基于接收到生命周期时间确定前台状态的开始节点和结束节点,并记录该开始节点的时间戳和结束节点的时间戳,并且记录处于前台状态的界面组件的名称。
其中,依据生命周期事件判断对应界面组件处于前台状态,并记录对应界面组件的界面名称及对应的时间戳,包括:若所述生命周期事件为恢复事件,则判断对应界面组件开始进入前台状态,记录所述界面组件的界面名称及对应的第一时间戳;若所述生命周期事件为暂停事件,则判断对应界面组件退出前台状态,记录对应的第二时间戳。通过预设接口可获取界面组件的生命周期回调函数,依据该回调函数确定生命周期事件为恢复事件,该界面进入运行态(running),即对应界面显示在终端中并且用户可操作该界面,记录对应的第一时间戳;生命周期事件为暂停事件后,界面退出运行态,即对应界面用户不可操作,此时界面可能显示也可能不显示,记录对应的第二时间戳。因此,第一时间戳和第二时间戳之间的时间段即为处于前台状态的运行时间,在该运行时间内采集的性能数据与该界面相关。
一种示例的界面组件运行时间的判断过程可如图3所示:
子步骤302,判断获取的生命周期事件是否为恢复事件。
若是,执行子步骤304;若否,执行子步骤306。
子步骤304,记录对应的界面名称,并记录切换到恢复事件的时间为第一时间戳。
子步骤306,判断获取的生命周期事件是否为暂停事件。
若是,执行子步骤308;若否,返回子步骤302继续判断后续获取的生命周期事件。
子步骤308,记录切换到暂停事件的时间为第二时间戳。
步骤212,收集所述目标进程对应各性能的性能数据和对应的采集时间。
在目标应用程序运行过程中,监听并获取生命周期事件的同时,还可收集所述目标进程对应各性能的性能数据和对应的采集时间,例如采集CPU占用率并记录采集时间,采集流畅度的参数值并记录采集时间等。性能数据为指定性能对应采集的性能值,如CPU占用率、内存值、流畅度参数等。
上述步骤108,将所述性能数据的采集时间和各界面组件处于前台状态的运行时间信息进行匹配,确定各界面组件对应的性能数据,包括:将各性能数据的采集时间和各界面组件的运行时间信息进行比对;若所述采集时间不小于所述第一时间戳,且所述采集时间不大于所述第二时间戳,将所述性能数据作为界面名称对应界面组件的性能数据。具体的,针对每个界面组件,分别获取所述采集时间不小于该界面组件对应的第一时间戳,且所述采集时间不大于该界面组件对应的第二时间戳的性能数据,作为该界面组件对应的性能数据。
其中,第一时间戳到第二时间戳之间的时间段为该界面组件处于前台状态的运行时间。因此需要确定标性能信息的采集时间是否在界面组件处于前台状态的运行时间内。具体可通过如下步骤214-218实现。
步骤214,判断性能数据的采集时间是否小于界面组件的第一时间戳。
可获取性能数据的采集时间,具体获取方法可依据需求确定,如按照时间先后顺序,又如对于某一类型的性能按照采集时间依次获取等。将该采集时间与界面组件的第一时间戳进行比较。若性能数据的采集时间小于界面组件的第一时间戳,则可返回步骤214,继续对下一采集时间进行判断;若性能数据的采集时间不小于界面组件的第一时间戳,执行步骤216。
步骤216,判断性能数据的采集时间是否大于界面组件的第二时间戳。
获取该界面组件对应的第二时间戳,在性能数据的采集时间不小于界面组件的第一时间戳后,判断性能数据的采集时间是否大于界面组件的第二时间戳。若是,即性能数据的采集时间大于界面组件的第二时间戳,返回步骤214,继续判断该采集是否在其他界面组件的运行时间内,或对下一采集时间进行判断。若否,即性能数据的采集时间不大于界面组件的第二时间戳,则性能数据的采集时间在该界面组件的运行时间内,执行步骤218。
步骤218,将所述性能数据作为界面名称对应界面组件的性能数据。
判断该性能数据是在某一界面组件运行时间内采集的,则可将该性能数据作为该界面组件的性能数据,如将该性能数据和对应界面名称绑定等,建立该性能数据和界面组件的关联关系,便于后续分析。
上述步骤110所述依据各界面组件对应的性能数据,分析所述目标进程的性能,包括如下步骤220。
步骤220,对各界面组件对应的性能数据进行分析,确定所述界面组件对应各性能的性能分析结果。
可在界面的维度进行性能分析,即可以各界面组件对应的性能数据进行分析,可基于各性能对应性能数据进行分析,得到对应性能的各种性能分析结果,如最大值、最小值、平均值、发展趋势等,相应也可得到生成趋势图、性能变化图等。
本发明一个可选实施例中,还包括对于异常界面组件的分析确定步骤:一种方式:提取异常的性能数据,依据所述异常的性能数据确定对应异常的界面组件;即提取发生异常时对应的性能数据,依据该异常的性能数据与各界面组件对应的性能数据匹配,确定各对应异常的界面组件。另一种方式:记录发生异常的异常时间,将该异常时间和界面组件处于前台状态的运行时间信息进行比较,确定对应异常的界面组件;即基于异常时刻匹配对应时刻运行的界面组件。也可基于各界面组件的性能分析结果,分析出现异常的界面组件。如该界面流畅度比较低,可能出现卡顿的问题,又如界面组件的性能分析结果为界面崩溃等。通过基于界面组件处于前台状态的运行时间信息的采集,可将时间维度和界面维度相匹配,从而得到相应时间、相应界面组件的性能。
步骤222,对所述目标进程的性能数据进行分析,确定时间维度对应各性能的性能分析结果。
也可在时间的维度进行性能分析,即对于采集到的目标进程的性能数据,可对该目标进程的性能数据进行分析,确定各种性能分析结果,如最大值、最小值、平均值、发展趋势等,相应也可得到生成趋势图、性能变化图等。
从而可基于预设接口采集到界面组件对应预设状态的时间戳,从而确定出界面组件的运行时间,对于采集到的性能数据,可依据时间建立界面组件和性能数据的对应关系,确定出该界面运行时的性能数据,从而基于界面的维度分析应用程序的性能。从而能够得到以下几点优势:
1、当整个测试过程结束,导出性能数据进行分析时,如果发现数据异常,可以确定对应异常的界面,便于复现异常,从而便于分析异常的原因。
2、对于某些性能指标,如流畅度、CPU使用情况等,可量化到具体的界面,从而能够分析出各界面运行时应用程序的性能。并且能够将各界面的性能和应用程序整体性能进行交叉比对,更加深入的分析应用程序的性能。例如,程序运行期间的平均流畅度为40,A界面流畅度30,B界面流畅度50等,从而能够交叉比对,以及分析界面中元素等对流畅度的影响。
3、在性能分析结束后,还可优化部分或全部性能。其中,在部分性能指标进行优化前,可基于界面确定优化的优先级。例如,将流畅度量化到每个界面后,从而可知B界面流畅度低于A界面,因此对于流畅度而言B界面的优先级要高于A界面,可优先量化界面B的性能。
本发明实施例中,以android系统为例,则界面组件为activity,该activity是android的四大组件之一,负责与用户进行交互。在一个android系统的应用程序中,一个activity通常就是一个单独的界面,其上可显示一些控件,也可以监听并处理用户的事件作出响应。
其中,activity的生命周期可基于状态确定,activity一般意义上有四种状态,运行态、暂停态、停止态、销毁态。其中,运行态为activity正在运行的状态,即该activity位于终端屏幕的最前方(front ground),也即activity的界面显示在屏幕中且用户可操作;暂停态为activity失去焦点,但是对用户仍可见,即处于暂停态的activity可能全部或部分显示在屏幕中,但不是屏幕的焦点,即用户不可操作对应界面;停止态为activity被其他activity完全遮挡,即该activity的界面在终端屏幕上不显示,但仍然存在该activity;销毁态即activity被关闭,结束了该activity。其中,上述不同状态的切换可通过activit的生命周期回调函数实现,即在每个不同的状态阶段,android系统对activity内相应的方法进行了回调,可包括如下回调函数:oncreate(建立函数)、onstart(开始函数)、onresume(恢复函数)、onpause(暂停函数)、onstop(停止函数)、onrestart(重新开始函数)、ondestory(销毁函数)。预设接口为ActivityLifecycleCallbacks接口,通过注册该接口,可以监听activity的生命周期回调函数。
本发明实施例通过SDK的方式实现android平台下应用程序的性能数据收集,并自动将性能数据量化到每个activity,从而使性能数据更加利于分析、性能问题更易复现。其中,通过SDK的方式进行性能数据的采集,将SDK集成到项目代码中,随着功能测试、应用运行等过程进行性能数据的收集。该SDK可实现ActivityLifecycleCallbacks接口并在程序中进行注册,从而可以在activity生命周期回调函数中记录onresume到onpause的时间段(即一个activity对应的界面对于用户可见并可操作的时间段)。同时该SDK可周期性的收集进程的性能数据,包括内存、CPU、流畅度等性能数据和对应的采集时间。通过将性能数据的采集时间与activity生命周期回调函数中记录的时间戳进行对比,将性能数据自动的对应相应的界面,从而后续可以从时间和activity两个维度进行性能数据的分析和统计。一种示例如下:
在android系统中可将SDK集成到项目代码中,随功能测试自动进行性能数据的收集,即目标应用程序可注册该SDK。
在系统中启动目标应用程序,SDK会随该目标应用程序的目标进程进行初始化。在初始化过程中可执行ActivityLifecycleCallbacks接口的实例化、性能采集器的实例化,以及性能采集间隔的设置等。其中,可注册ActivityLifecycleCallbacks接口的实例,即创建该接口的监听对象,以监听目标进程中activity的生命周期,获取对应生命周期回调函数,确定对应的生命周期函数。
在目标进程运行的过程中,可通过ActivityLifecycleCallbacks接口监听目标进程中activity的生命周期,并记录activity处于运行态的时间,同时还可采集该目标进程运行时的性能数据,采集的周期间隔可依据设置确定。
从而在目标进程运行的过程中,可判断ActivityLifecycleCallbacks接口监听到的回调函数是否为onresume函数、onpause函数。若回调函数为onresume则确定接收到恢复事件,开始进入该activity的运行态,记录对应接收onresume函数的时间为第一时间戳,并且记录对应activity的名称。若回调函数为onpause则确定接收到暂停事件,开始进入该activity的运行态,记录对应接收onpause函数的时间为第二时间戳,并且记录对应activity的名称。或者依据activity的名称查找对应的记录,在该记录中添加第二时间戳。
并且,在目标进程运行的过程中,可采用性能收集线程周期性的采集性能数据,例如内存、CPU、流畅度等性能数据,以及采集的时间戳等采集时间。
在采集到相应数据后,可将性能数据的采集时间与activity的第一时间戳、第二时间戳分别进行比对,确定采集时间在第一时间戳和第二时间戳之间的,即为该activity对应界面运行时采集的性能数据,即与该activity相关的性能数据。
然后可基于目标进程的性能数据和activity的性能数据进行目标应用程序的性能分析,包括:1)activity的维度,基于各activity的性能数据进行性能数据的分析和统计,确定该activity对应各性能的分析结果,包括自动生成趋势图、计算最大值、最小值、平均值等;2)时间的维度。基于目标进程的性能数据进行性能数据的分析和统计,确定各时间对应各项性能分析结果,包括自动生成趋势图、计算最大值、最小值、平均值等。
综上,可通过ActivityLifecycleCallbacks接口,自动将性能数据量化到测试过程中涉及的每个APP界面,从而实现安卓APP测试时异常的准确定位,即当测试数据存在异常时,可以确定该异常是对应于该测试APP的哪一个具体界面的。并且使得性能数据可以从时间维度和界面维度同时统计、分析,提高性能测试的准确性。
利用ActivityLifecycleCallbacks接口,获取测试过程中涉及的每个APP界面的生命周期,利用该生命周期,确定每个界面处于front ground(前台界面)状态对应的时间点。其中,界面处于front ground状态指的是该界面在显示终端处于直接显示状态,例如,以搜索APP为例,当用户打开该APP时,显示首页即搜索首页处于front ground状态;当用户输入搜索词触发搜索后,得到搜索结果页,则该搜索结果页处于front ground状态。又如,用户在即时通讯应用的交互界面点击输入框显示输入法应用的输入界面,则该输入界面为front ground状态,而该交互界面不是front ground状态。相应从Activity的生命周期角度,输入界面处于运行态,交互界面处于暂停态。
则获取界面处于front ground状态对应的时间点,即为从该界面被打开处于前台显示的时间(恢复事件对应第一时间戳)到该界面被关闭或跳转至另一界面的时间(暂停时间对应第二时间戳)。例如,假设用户在t1时刻打开搜索首页,则第一时间戳为t1;并在t2时刻触发搜索进入结果页,则第二时间戳为t2。
在应用运行过程中,同时采集并记录该APP测试得到的性能数据,及对应的采集时间,其中,APP的性能数据可以包括内存、CPU、流畅度等数据。
然后可对该测试APP的测试性能数据进行分析,activity的维度和时间维度的分析不分先后。例如先进行时间维度的分析,当存在异常数据后,可结合activity的维度的分析,即获取该异常数据对应的采集时间,并每个界面处于front ground状态对应的时间,确定该异常数据是哪个界面处于frond ground状态时产生的,由此可以将该异常定位到对应的界面。
本申请实施例中,也可更加精细的通过生命周期的回调函数记录activity的运行时间,例如记录oncreate函数对应的第三时间戳,则运行时间信息为从第三时间戳到第二时间戳。当然,从oncreate到onresume的时间通常比较短,因此运行时间也可直接从第一时间戳算起。
实际处理中,还可以通过其他方式获取activity的生命周期来分析activity的运行时间,本申请实施例对此不作限制。例如通过采集系统日志的方式获取activity的生命周期。即基于日志分析activity的运行时间,例如基于日志分析出onresume的第一时间戳、onpause的第二时间戳以及oncreate的第三时间戳等,从而分析出activity的运行时间。但是,系统日志中有大量的与生命周期无关的信息,而且系统日志中有很多的特殊字符,会为获取生命周期带来额外的成本。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
参照图4,示出了本发明的一种性能测试装置实施例的结构框图,具体可以包括如下模块:
监听模块402,用于监听目标进程对应各界面组件。
采集模块404,用于记录所述各界面组件处于前台状态的运行时间信息;收集所述目标进程的性能数据并记录对应的采集时间。
界面匹配模块406,用于将所述性能数据的采集时间和各界面组件处于前台状态的运行时间信息进行匹配,确定各界面组件对应的性能数据。
分析模块408,用于依据各界面组件对应的性能数据,分析所述目标进程中界面组件对应的性能。
综上,可在目标应用程序启动的过程中,监听目标应用程序的目标进程对应各界面组件,从而在目标进程运行过程中记录各界面组件的运行时间信息,并收集所述目标进程的性能数据,然后可将性能数据和各界面组件的运行时间信息进行匹配,确定各界面组件对应的性能数据,从而建立界面组件和性能数据的关联,再分析各界面组件对应的性能数据,得到目标进程的性能,能够基于界面分析目标进程的性能,有效的提高性能分析的准确性。
参照图5,示出了本发明的一种性能测试装置实施例的结构框图,具体可以包括如下模块:
监听模块402,用于监听目标进程对应各界面组件。
采集模块404,用于记录所述各界面组件处于前台状态的运行时间信息;收集所述目标进程的性能数据并记录对应的采集时间。
界面匹配模块406,用于将所述性能数据的采集时间和各界面组件处于前台状态的运行时间信息进行匹配,确定各界面组件对应的性能数据。
分析模块408,用于依据各界面组件对应的性能数据,分析所述目标进程中界面组件对应的性能;及对所述目标进程的性能数据进行分析,确定时间维度对应各性能的性能分析结果。
其中,监听模块402包括:
接口注册子模块4022,用于在预设接口进行注册,所述预设接口为界面组件生命周期的回调接口;
接口监听子模块4024,用于通过所述预设接口监听目标进程对应各界面组件的生命周期事件。
所述采集模块404,包括:生命周期记录子模块4042和性能采集子模块4044。
其中,生命周期记录子模块4042,用于依据生命周期事件判断对应界面组件处于前台状态,并记录对应界面组件的界面名称及对应的时间戳;采用所述界面名称和对应的时间戳,生成所述界面组件的运行时间信息。
生命周期记录子模块4042,用于若所述生命周期事件为恢复事件,则判断对应界面组件开始进入前台状态,记录所述界面组件的界面名称及对应的第一时间戳;若所述生命周期事件为暂停事件,则判断对应界面组件退出前台状态,记录对应的第二时间戳。
性能采集子模块4044,用于收集所述目标进程的性能数据并记录对应的采集时间。
所述界面匹配模块406,用于将各性能数据的采集时间和各界面组件的运行时间信息进行比对;若所述采集时间不小于所述第一时间戳,且所述采集时间不大于所述第二时间戳,将所述性能数据作为界面名称对应界面组件的性能数据。
所述分析模块,用于对各界面组件对应的性能数据进行分析,确定所述界面组件对应各性能的性能分析结果。
所述分析模块,还用于提取异常的性能数据,依据所述异常的性能数据确定对应异常的界面组件;和/或,记录异常时间信息,依据所述异常时间信息和所述运行时间信息进行比较,确定对应异常的界面组件;和/或,基于各界面组件的性能分析结果,确定对应异常的界面组件。
本发明实施例可通过SDK的方式实现android平台下应用程序的性能数据收集,并自动将性能数据量化到每个activity,从而使性能数据更加利于分析、性能问题更易复现。其中,通过SDK的方式进行性能数据的采集,将SDK集成到项目代码中,随着功能测试、应用运行等过程进行性能数据的收集。该SDK可实现ActivityLifecycleCallbacks接口并在程序中进行注册,从而可以在activity生命周期回调函数中记录onresume到onpause的时间段(即一个activity对应的界面对于用户可见并可操作的时间段)。同时该SDK可周期性的收集进程的性能数据,包括内存、CPU、流畅度等性能数据和对应的采集时间。通过将性能数据的采集时间与activity生命周期回调函数中记录的时间戳进行对比,将性能数据自动的对应相应的界面,从而后续可以从时间和activity两个维度进行性能数据的分析和统计。
可通过ActivityLifecycleCallbacks接口,自动将性能数据量化到测试过程中涉及的每个APP界面,从而实现安卓APP测试时异常的准确定位,即当测试数据存在异常时,可以确定该异常是对应于该测试APP的哪一个具体界面的。并且使得性能数据可以从时间维度和界面维度同时统计、分析,提高性能测试的准确性。
利用ActivityLifecycleCallbacks接口,获取测试过程中涉及的每个APP界面的生命周期,利用该生命周期,确定每个界面处于front ground(前台界面)状态对应的时间点。其中,界面处于front ground状态指的是该界面在显示终端处于直接显示状态,例如,以搜索APP为例,当用户打开该APP时,显示首页即搜索首页处于front ground状态;当用户输入搜索词触发搜索后,得到搜索结果页,则该搜索结果页处于front ground状态。又如,用户在即时通讯应用的交互界面点击输入框显示输入法应用的输入界面,则该输入界面为front ground状态,而该交互界面不是front ground状态。相应从Activity的生命周期角度,输入界面处于运行态,交互界面处于暂停态。
则获取界面处于front ground状态对应的时间点,即为从该界面被打开处于前台显示的时间(恢复事件对应第一时间戳)到该界面被关闭或跳转至另一界面的时间(暂停时间对应第二时间戳)。例如,假设用户在t1时刻打开搜索首页,则第一时间戳为t1;并在t2时刻触发搜索进入结果页,则第二时间戳为t2。
在应用运行过程中,同时采集并记录该APP测试得到的性能数据,及对应的采集时间,其中,APP的性能数据可以包括内存、CPU、流畅度等数据。
然后可对该测试APP的测试性能数据进行分析,activity的维度和时间维度的分析不分先后。例如先进行时间维度的分析,当存在异常数据后,可结合activity的维度的分析,即获取该异常数据对应的采集时间,并每个界面处于front ground状态对应的时间,确定该异常数据是哪个界面处于frond ground状态时产生的,由此可以将该异常定位到对应的界面。
本申请实施例中,也可更加精细的通过生命周期的回调函数记录activity的运行时间,例如记录oncreate函数对应的第三时间戳,则运行时间信息为从第三时间戳到第二时间戳。当然,从oncreate到onresume的时间通常比较短,因此运行时间也可直接从第一时间戳算起。
实际处理中,还可以通过其他方式获取activity的生命周期来分析activity的运行时间,本申请实施例对此不作限制。例如通过采集系统日志的方式获取activity的生命周期。即基于日志分析activity的运行时间,例如基于日志分析出onresume的第一时间戳、onpause的第二时间戳以及oncreate的第三时间戳等,从而分析出activity的运行时间。但是,系统日志中有大量的与生命周期无关的信息,而且系统日志中有很多的特殊字符,会为获取生命周期带来额外的成本。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
图6是根据一示例性实施例示出的一种用于展示性能测试的电子设备600的结构框图。例如,电子设备600可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等。
参照图6,电子设备600可以包括以下一个或多个组件:处理组件602,存储器604,电源组件606,多媒体组件608,音频组件610,输入/输出(I/O)的接口612,传感器组件614,以及通信组件616。
处理组件602通常控制电子设备600的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理元件602可以包括一个或多个处理器620来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件602可以包括一个或多个模块,便于处理组件602和其他组件之间的交互。例如,处理部件602可以包括多媒体模块,以方便多媒体组件608和处理组件602之间的交互。
存储器604被配置为存储各种类型的数据以支持在设备600的操作。这些数据的示例包括用于在电子设备600上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器604可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
电源组件606为电子设备600的各种组件提供电力。电源组件606可以包括电源管理系统,一个或多个电源,及其他与为电子设备600生成、管理和分配电力相关联的组件。
多媒体组件608包括在所述电子设备600和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件608包括一个前置摄像头和/或后置摄像头。当设备600处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。
音频组件610被配置为输出和/或输入音频信号。例如,音频组件610包括一个麦克风(MIC),当电子设备600处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器604或经由通信组件616发送。在一些实施例中,音频组件610还包括一个扬声器,用于输出音频信号。
I/O接口612为处理组件602和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
传感器组件614包括一个或多个传感器,用于为电子设备600提供各个方面的状态评估。例如,传感器组件614可以检测到设备600的打开/关闭状态,组件的相对定位,例如所述组件为电子设备600的显示器和小键盘,传感器组件614还可以检测电子设备600或电子设备600一个组件的位置改变,用户与电子设备600接触的存在或不存在,电子设备600方位或加速/减速和电子设备600的温度变化。传感器组件614可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件614还可以包括光传感器,如CMOS或CCD图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件614还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。
通信组件616被配置为便于电子设备600和其他设备之间有线或无线方式的通信。电子设备600可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。在一个示例性实施例中,通信部件616经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信部件616还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
在示例性实施例中,电子设备600可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器604,上述指令可由电子设备600的处理器620执行以完成上述方法。例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
一种非临时性计算机可读存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行一种性能测试方法,所述方法包括:监听目标进程对应各界面组件;记录所述各界面组件处于前台状态的运行时间信息;收集所述目标进程的性能数据并记录对应的采集时间;将所述性能数据的采集时间和各界面组件处于前台状态的运行时间信息进行匹配,确定各界面组件对应的性能数据;依据各界面组件对应的性能数据,分析所述目标进程中界面组件对应的性能。
可选的,所述监听目标进程对应各界面组件,包括:在预设接口进行注册,所述预设接口为界面组件生命周期的回调接口;通过所述预设接口监听目标进程对应各界面组件的生命周期事件。
可选的,记录所述各界面组件处于前台状态的运行时间信息,包括:依据生命周期事件判断对应界面组件处于前台状态,并记录对应界面组件的界面名称及对应的时间戳;采用所述界面名称和对应的时间戳,生成所述界面组件的运行时间信息。
可选的,所述依据生命周期事件判断对应界面组件处于前台状态,并记录对应界面组件的界面名称及对应的时间戳,包括:若所述生命周期事件为恢复事件,则判断对应界面组件开始进入前台状态,记录所述界面组件的界面名称及对应的第一时间戳;若所述生命周期事件为暂停事件,则判断对应界面组件退出前台状态,记录所述界面组件对应的第二时间戳。
可选的,将所述性能数据的采集时间和各界面组件处于前台状态的运行时间信息进行匹配,确定各界面组件对应的性能数据,包括:将所述性能数据的采集时间和各界面组件处于前台状态的运行时间信息进行比对;针对每个界面组件,分别获取所述采集时间不小于所述界面组件对应的第一时间戳,且所述采集时间不大于所述界面组件对应的第二时间戳的性能数据,作为所述界面组件对应的性能数据。
可选的,所述依据各界面组件对应的性能数据,分析所述目标进程中界面组件对应的性能,包括:对各界面组件对应的性能数据进行分析,确定所述界面组件对应各性能的性能分析结果。
可选的,还包括通过以下任一种方式确定异常的界面组件:提取异常的性能数据,依据所述异常的性能数据确定对应异常的界面组件;记录异常时间信息,依据所述异常时间信息和所述运行时间信息进行比较,确定对应异常的界面组件;基于各界面组件的性能分析结果,确定对应异常的界面组件。。
图7是本发明实施例中服务器的结构示意图。该服务器700可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(central processing units,CPU)722(例如,一个或一个以上处理器)和存储器732,一个或一个以上存储应用程序742或数据744的存储介质730(例如一个或一个以上海量存储设备)。其中,存储器732和存储介质730可以是短暂存储或持久存储。存储在存储介质730的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器722可以设置为与存储介质730通信,在服务器800上执行存储介质730中的一系列指令操作。
服务器700还可以包括一个或一个以上电源726,一个或一个以上有线或无线网络接口750,一个或一个以上输入输出接口758,一个或一个以上键盘756,和/或,一个或一个以上操作系统741,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本发明所提供的一种性能测试方法和装置、一种电子设备以及一种存储介质,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (19)

1.一种性能测试方法,其特征在于,包括:
监听目标进程对应各界面组件;
记录所述各界面组件处于前台状态的运行时间信息,所述前台状态指的是界面组件对应界面显示且可被用户操作的状态;
收集所述目标进程的性能数据并记录对应的采集时间;
将所述性能数据的采集时间和各界面组件处于前台状态的运行时间信息进行匹配,确定各界面组件对应的性能数据;
依据各界面组件对应的性能数据,分析所述目标进程中界面组件对应的性能;
将所述性能数据的采集时间和各界面组件处于前台状态的运行时间信息进行匹配,确定各界面组件对应的性能数据,包括:
将所述性能数据的采集时间和各界面组件处于前台状态的运行时间信息进行比对;
针对每个界面组件,分别获取所述采集时间不小于所述界面组件对应的第一时间戳,且所述采集时间不大于所述界面组件对应的第二时间戳的性能数据,作为所述界面组件对应的性能数据;
所述第一时间戳为所述界面组件开始进入前台状态对应的时间戳;所述第二时间戳为所述界面组件退出前台状态对应的时间戳。
2.根据权利要求1所述的方法,其特征在于,所述监听目标进程对应各界面组件,包括:
在预设接口进行注册,所述预设接口为界面组件生命周期的回调接口;
通过所述预设接口监听目标进程对应各界面组件的生命周期事件。
3.根据权利要求2所述的方法,其特征在于,记录所述各界面组件处于前台状态的运行时间信息,包括:
依据生命周期事件判断对应界面组件处于前台状态,并记录对应界面组件的界面名称及对应的时间戳;
采用所述界面名称和对应的时间戳,生成所述界面组件的运行时间信息。
4.根据权利要求3所述的方法,其特征在于,所述依据生命周期事件判断对应界面组件处于前台状态,并记录对应界面组件的界面名称及对应的时间戳,包括:
若所述生命周期事件为恢复事件,则判断对应界面组件开始进入前台状态,记录所述界面组件的界面名称及对应的第一时间戳;
若所述生命周期事件为暂停事件,则判断对应界面组件退出前台状态,记录所述界面组件对应的第二时间戳。
5.根据权利要求1所述的方法,其特征在于,所述依据各界面组件对应的性能数据,分析所述目标进程中界面组件对应的性能,包括:
对各界面组件对应的性能数据进行分析,确定所述界面组件对应各性能的性能分析结果。
6.根据权利要求1所述的方法,其特征在于,还包括通过以下任一种方式确定异常的界面组件:
提取异常的性能数据,依据所述异常的性能数据确定对应异常的界面组件;或,
记录异常时间信息,依据所述异常时间信息和所述运行时间信息进行比较,确定对应异常的界面组件;或,
基于各界面组件的性能分析结果,确定对应异常的界面组件。
7.一种性能测试装置,其特征在于,包括:
监听模块,用于监听目标进程对应各界面组件;
采集模块,用于记录所述各界面组件处于前台状态的运行时间信息;收集所述目标进程的性能数据并记录对应的采集时间,所述前台状态指的是界面组件对应界面显示且可被用户操作的状态;
界面匹配模块,用于将所述性能数据的采集时间和各界面组件处于前台状态的运行时间信息进行匹配,确定各界面组件对应的性能数据;
分析模块,用于依据各界面组件对应的性能数据,分析所述目标进程中界面组件对应的性能;
所述界面匹配模块,还用于将所述性能数据的采集时间和各界面组件处于前台状态的运行时间信息进行比对;针对每个界面组件,分别获取所述采集时间不小于所述界面组件对应的第一时间戳,且所述采集时间不大于所述界面组件对应的第二时间戳的性能数据,作为所述界面组件对应的性能数据;所述第一时间戳为所述界面组件开始进入前台状态对应的时间戳;所述第二时间戳为所述界面组件退出前台状态对应的时间戳。
8.根据权利要求7所述的装置,其特征在于,所述监听模块包括:
接口注册子模块,用于在预设接口进行注册,所述预设接口为界面组件生命周期的回调接口;
接口监听子模块,用于通过所述预设接口监听目标进程对应各界面组件的生命周期事件。
9.根据权利要求8所述的装置,其特征在于,所述采集模块,包括:
生命周期记录子模块,用于依据生命周期事件判断对应界面组件处于前台状态,并记录对应界面组件的界面名称及对应的时间戳;采用所述界面名称和对应的时间戳,生成所述界面组件的运行时间信息。
10.根据权利要求9所述的装置,其特征在于,
所述生命周期记录子模块,用于若所述生命周期事件为恢复事件,则判断对应界面组件开始进入前台状态,记录所述界面组件的界面名称及对应的第一时间戳;若所述生命周期事件为暂停事件,则判断对应界面组件退出前台状态,记录所述界面组件对应的第二时间戳。
11.根据权利要求7所述的装置,其特征在于,
所述分析模块,用于对各界面组件对应的性能数据进行分析,确定所述界面组件对应各性能的性能分析结果。
12.根据权利要求7所述的装置,其特征在于,
所述分析模块,用于提取异常的性能数据,依据所述异常的性能数据确定对应异常的界面组件;和/或,记录异常时间信息,依据所述异常时间信息和所述运行时间信息进行比较,确定对应异常的界面组件;和/或,基于各界面组件的性能分析结果,确定对应异常的界面组件。
13.一种电子设备,其特征在于,包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于进行以下操作的指令:
监听目标进程对应各界面组件;
记录所述各界面组件处于前台状态的运行时间信息,所述前台状态指的是界面组件对应界面显示且可被用户操作的状态;
收集所述目标进程的性能数据并记录对应的采集时间;
将所述性能数据的采集时间和各界面组件处于前台状态的运行时间信息进行匹配,确定各界面组件对应的性能数据;
依据各界面组件对应的性能数据,分析所述目标进程中界面组件对应的性能;
将所述性能数据的采集时间和各界面组件处于前台状态的运行时间信息进行匹配,确定各界面组件对应的性能数据,包括:
将所述性能数据的采集时间和各界面组件处于前台状态的运行时间信息进行比对;
针对每个界面组件,分别获取所述采集时间不小于所述界面组件对应的第一时间戳,且所述采集时间不大于所述界面组件对应的第二时间戳的性能数据,作为所述界面组件对应的性能数据;
所述第一时间戳为所述界面组件开始进入前台状态对应的时间戳;所述第二时间戳为所述界面组件退出前台状态对应的时间戳。
14.根据权利要求13所述的电子设备,其特征在于,所述监听目标进程对应各界面组件,包括:
在预设接口进行注册,所述预设接口为界面组件生命周期的回调接口;
通过所述预设接口监听目标进程对应各界面组件的生命周期事件。
15.根据权利要求14所述的电子设备,其特征在于,记录所述各界面组件处于前台状态的运行时间信息,包括:
依据生命周期事件判断对应界面组件处于前台状态,并记录对应界面组件的界面名称及对应的时间戳;
采用所述界面名称和对应的时间戳,生成所述界面组件的运行时间信息。
16.根据权利要求15所述的电子设备,其特征在于,所述依据生命周期事件判断对应界面组件处于前台状态,并记录对应界面组件的界面名称及对应的时间戳,包括:
若所述生命周期事件为恢复事件,则判断对应界面组件开始进入前台状态,记录所述界面组件的界面名称及对应的第一时间戳;
若所述生命周期事件为暂停事件,则判断对应界面组件退出前台状态,记录所述界面组件对应的第二时间戳。
17.根据权利要求13所述的电子设备,其特征在于,所述依据各界面组件对应的性能数据,分析所述目标进程中界面组件对应的性能,包括:
对各界面组件对应的性能数据进行分析,确定所述界面组件对应各性能的性能分析结果。
18.根据权利要求13所述的电子设备,其特征在于,还包含用于进行以下操作的指令:
提取异常的性能数据,依据所述异常的性能数据确定对应异常的界面组件;和/或,
记录异常时间信息,依据所述异常时间信息和所述运行时间信息进行比较,确定对应异常的界面组件;和/或,
基于各界面组件的性能分析结果,确定对应异常的界面组件。
19.一种可读存储介质,其特征在于,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行如方法权利要求1-6任一所述的性能测试方法。
CN201710608159.5A 2017-07-24 2017-07-24 一种性能测试方法、装置、电子设备以及存储介质 Active CN109298995B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710608159.5A CN109298995B (zh) 2017-07-24 2017-07-24 一种性能测试方法、装置、电子设备以及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710608159.5A CN109298995B (zh) 2017-07-24 2017-07-24 一种性能测试方法、装置、电子设备以及存储介质

Publications (2)

Publication Number Publication Date
CN109298995A CN109298995A (zh) 2019-02-01
CN109298995B true CN109298995B (zh) 2022-05-13

Family

ID=65167093

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710608159.5A Active CN109298995B (zh) 2017-07-24 2017-07-24 一种性能测试方法、装置、电子设备以及存储介质

Country Status (1)

Country Link
CN (1) CN109298995B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110083355B (zh) * 2019-04-26 2023-07-25 北京奇艺世纪科技有限公司 一种app页面的处理方法及装置
CN110221954A (zh) * 2019-05-29 2019-09-10 吉旗(成都)科技有限公司 移动终端应用程序页面性能监控方法及装置
CN110389879B (zh) * 2019-07-25 2023-10-31 广州方硅信息技术有限公司 获取性能数据的方法和装置
CN111858382A (zh) * 2020-08-03 2020-10-30 北京达佳互联信息技术有限公司 应用程序测试方法、装置、服务器、系统及存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006113111A2 (en) * 2005-04-15 2006-10-26 Microsoft Corporation Method and apparatus for performance analysis on a software program

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002099448A (ja) * 2000-09-21 2002-04-05 Ntt Data Corp 性能監視装置、及びその方法
JP2013105366A (ja) * 2011-11-15 2013-05-30 Hitachi Ltd プログラム解析システム及び方法
CN105204981A (zh) * 2014-05-28 2015-12-30 北京奇虎科技有限公司 应用性能测试方法和装置
CN105653456B (zh) * 2015-12-31 2018-09-11 网易(杭州)网络有限公司 应用程序性能测试方法、装置和系统
CN106502902B (zh) * 2016-10-25 2019-03-22 中国工商银行股份有限公司 web页面运行效率监测方法及装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006113111A2 (en) * 2005-04-15 2006-10-26 Microsoft Corporation Method and apparatus for performance analysis on a software program

Also Published As

Publication number Publication date
CN109298995A (zh) 2019-02-01

Similar Documents

Publication Publication Date Title
CN109298995B (zh) 一种性能测试方法、装置、电子设备以及存储介质
US20170300503A1 (en) Method and apparatus for managing video data, terminal, and server
EP3316136B1 (en) Method and device for evaluating system fluency, and ue
US9668117B2 (en) Method and device for analyzing social relationship
CN109359056B (zh) 一种应用程序测试方法及装置
EP3012796A1 (en) Method and device for acquiring user information
CN109284149B (zh) 启动应用程序的方法及装置
CN107193606B (zh) 应用分发方法及装置
US20170075868A1 (en) Information collection method and apparatus
CN104866409A (zh) 内存泄露监控方法和装置
CN111221733A (zh) 信息处理方法、装置、移动终端及存储介质
EP3236469A1 (en) Object monitoring method and device
CN111614990B (zh) 加载时长的获取方法、装置及电子设备
CN112241361A (zh) 测试用例生成方法及装置、问题场景自动复现方法及装置
CN104932970A (zh) 内存泄露监控方法和装置
CN112256563A (zh) 安卓应用稳定性测试方法、装置、电子设备及存储介质
CN112416751A (zh) 接口自动化测试的处理方法、装置及存储介质
CN110019936A (zh) 一种媒体文件播放过程中的注释方法和装置
CN108228433B (zh) 电子设备、移动应用访次停留时长统计方法及装置
CN114547073B (zh) 时序数据的聚合查询方法、装置及存储介质
CN106354595B (zh) 移动终端、硬件组件状态检测方法及装置
CN109065145B (zh) 心电数据处理方法、装置及存储介质
CN112817868A (zh) 信息处理方法、装置及介质
CN111782508A (zh) 自动测试方法、装置、电子设备和存储介质
CN111611470A (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
GR01 Patent grant
GR01 Patent grant