CN111061647A - 一种软件性能自动化测试方法、装置及电子设备 - Google Patents
一种软件性能自动化测试方法、装置及电子设备 Download PDFInfo
- Publication number
- CN111061647A CN111061647A CN201911369408.5A CN201911369408A CN111061647A CN 111061647 A CN111061647 A CN 111061647A CN 201911369408 A CN201911369408 A CN 201911369408A CN 111061647 A CN111061647 A CN 111061647A
- Authority
- CN
- China
- Prior art keywords
- performance
- preset
- analysis result
- dimension
- application software
- 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/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
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
本发明提供了一种软件性能自动化测试方法、装置及电子设备,获取用于分析应用软件性能的不同预设性能维度,对于每一所述预设性能维度,在所述应用软件自动化测试过程中,获取采集的所述应用软件在所述预设性能维度下的性能数据,并依据所述性能数据确定性能分析结果,以可视化图表的形式输出所述性能分析结果。通过本发明实施例,可以对APP的性能进行分析,以便对APP进行改进,使其用户体验更好,用户黏度更高。
Description
技术领域
本发明涉及自动化测试领域,更具体的说,涉及一种软件性能自动化测试方法、装置及电子设备。
背景技术
应用软件APP的性能好坏直接决定了用户的使用体验,如果可以对APP性能进行分析,提前确定出APP存在的性能问题,则可以尽早对APP进行性能修复和提升,进而能够进一步提升用户体验,提高用户对APP的依赖性。
发明内容
有鉴于此,本发明提供一种软件性能自动化测试方法、装置及电子设备,以解决亟需一种可以对APP性能进行分析的方法的问题。
为解决上述技术问题,本发明采用了如下技术方案:
一种软件性能自动化测试方法,包括:
获取用于分析应用软件性能的不同预设性能维度;
对于每一所述预设性能维度,在所述应用软件自动化测试过程中,获取采集的所述应用软件在所述预设性能维度下的性能数据,并依据所述性能数据确定性能分析结果;
以可视化图表的形式输出所述性能分析结果。
可选地,所述预设性能维度包括慢函数检测维度;
相应的,获取采集的所述应用软件在所述预设性能维度下的性能数据,并依据所述性能数据确定性能分析结果,包括:
获取通过在所述应用软件的运行程序中每一子程序前后插桩的方式采集的执行每一所述子程序对应的耗时时间;
筛选出对应的耗时时间大于第一预设时间阈值的子程序,并作为目标子程序;
将所述目标子程序确定为所述性能分析结果。
可选地,以可视化图表的形式输出所述性能分析结果,包括:
将所述目标子程序以图表格式输出;所述图表格式中设置有一预设控件;所述预设控件用于将所述目标子程序配置给预设人员进行维护。
可选地,所述预设性能维度包括主线程文件IO检测维度;
相应的,获取采集的所述应用软件在所述预设性能维度下的性能数据,并依据所述性能数据确定性能分析结果,包括:
获取所述主线程文件IO接口检测的文件读写时所需的耗时值;
筛选出耗时值大于第二预设时间阈值的文件,并作为目标文件;
将所述目标文件确定为所述性能分析结果。
可选地,所述预设性能维度包括内存泄露检测维度;
相应的,获取采集的所述应用软件在所述预设性能维度下的性能数据,并依据所述性能数据确定性能分析结果,包括:
若检测到所述应用软件存在内存泄露,获取通过运行所述应用软件的预设测试用例得到的内存快照文件;
对所述内存快照文件进行脚本分析,得到内存泄露对象;
将所述内存泄漏对象确定为所述性能分析结果。
可选地,所述预设性能维度包括预设关键场景耗时检测维度;
相应的,获取采集的所述应用软件在所述预设性能维度下的性能数据,并依据所述性能数据确定性能分析结果,包括:
获取所述预设关键场景的场景流程对应的流程执行时间;所述预设关键场景包括多个所述场景流程;
若所述场景流程对应的流程执行时间之和大于第三预设时间阈值,将所述场景流程对应的流程执行时间以及所述场景流程对应的流程执行时间之和作为所述性能分析结果。
可选地,所述预设性能维度包括掉帧率检测维度;
相应的,获取采集的所述应用软件在所述预设性能维度下的性能数据,并依据所述性能数据确定性能分析结果,包括:
获取数据传输过程中相邻两个数据帧之间的传输时间间隔;
统计传输时间间隔落于每一预设时间间隔区间的数量;
将传输时间间隔落于每一预设时间间隔区间的数量作为所述性能分析结果。
可选地,所述预设性能维度包括耗电检测维度;
相应的,获取采集的所述应用软件在所述预设性能维度下的性能数据,并依据所述性能数据确定性能分析结果,包括:
获取所述应用软件调用所述应用软件所在的终端***的端口的次数;
依据所述次数确定出所述应用程序的耗电数据;
将所述耗电数据确定为所述性能分析结果。
可选地,以可视化图表的形式输出所述性能分析结果,包括:
获取所述性能分析结果的展示规则;
依据所述展示规则展示所述性能分析结果。
一种软件性能自动化测试装置,包括:
维度获取模块,用于获取用于分析应用软件性能的不同预设性能维度;
数据处理模块,用于对于每一所述预设性能维度,在所述应用软件自动化测试过程中,获取采集的所述应用软件在所述预设性能维度下的性能数据,并依据所述性能数据确定性能分析结果;
结果展示模块,用于以可视化图表的形式输出所述性能分析结果。
一种电子设备,包括:存储器和处理器;
其中,所述存储器用于存储程序;
处理器调用程序并用于:
获取用于分析应用软件性能的不同预设性能维度;
对于每一所述预设性能维度,在所述应用软件自动化测试过程中,获取采集的所述应用软件在所述预设性能维度下的性能数据,并依据所述性能数据确定性能分析结果;
以可视化图表的形式输出所述性能分析结果。
相较于现有技术,本发明具有以下有益效果:
本发明提供了一种软件性能自动化测试方法、装置及电子设备,获取用于分析应用软件性能的不同预设性能维度,对于每一所述预设性能维度,在所述应用软件自动化测试过程中,获取采集的所述应用软件在所述预设性能维度下的性能数据,并依据所述性能数据确定性能分析结果,以可视化图表的形式输出所述性能分析结果。通过本发明实施例,可以对APP的性能进行分析,以便对APP进行改进,使其用户体验更好,用户黏度更高。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例提供的一种软件性能自动化测试方法的方法流程图;
图2为本发明实施例提供的一种性能分析结果的界面展示图;
图3为本发明实施例提供的另一种性能分析结果的界面展示图;
图4为本发明实施例提供的再一种性能分析结果的界面展示图;
图5为本发明实施例提供的另一种软件性能自动化测试方法的方法流程图;
图6为本发明实施例提供的一种掉帧数的区间设置的场景示意图;
图7为本发明实施例提供的一种CPTS***的结构示意图;
图8为本发明实施例提供的一种软件性能自动化测试装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了实现对APP性能进行分析,发明人发现可以采用下述三种方式进行性能反馈,一种是线上用户的反馈,第二种是APP测试过程中测试人员的反馈,第三种是线上监控平台设定的关键性能指标的反馈,但是这三种方式存在缺陷,如三种方式均来自于线上用户的监控,在性能存在问题时该问题已经对用户造成了影响。二是性能出现了问题,如存在耗时问题,但是具体哪一技术或流程存在该问题无法知道,即需要精准定位到该问题。为此,发明人做了进一步的研究,提出了本发明实施例中的软件性能自动化测试方法,参照图1,可以包括:
S11、获取用于分析应用软件性能的不同预设性能维度。
发明人发现,可以从耗时、内存泄露、掉帧率和耗电等方面对应用软件的性能进行分析,耗时角度可以分为的预设性能维度为:慢函数检测维度、主线程文件IO检测维度和预设关键场景耗时检测维度;内存泄露涉及的预设性能维度为:内存泄露检测维度,掉帧率涉及的预设性能维度为:掉帧率检测维度,耗电涉及的预设性能维度为:耗电检测维度。
S12、对于每一所述预设性能维度,在所述应用软件自动化测试过程中,获取采集的所述应用软件在所述预设性能维度下的性能数据,并依据所述性能数据确定性能分析结果。
对于涉及耗时的预设性能维度,可以为其设置了相对应的预设性能要求,举例来说,可以设置耗时对应的预设时间阈值,将采集的耗时值与预设时间阈值作比较,得到性能分析结果。
对于涉及内存泄露、掉帧率和耗电的预设性能维度,对所述性能数据进行聚合分析,得到其对应的性能分析结果。
S13、以可视化图表的形式输出所述性能分析结果。
在实际应用中,可以获取所述性能分析结果的展示规则,依据所述展示规则展示所述性能分析结果。
其中,展示规则可以是以什么方式进行展示,如图表、表格、柱状图、饼状图等方式进行展示,参照图2-图4,图2-图4是可视化图表的展示界面,可以以图表、表格、柱状图、饼状图等方式进行展示。
本发明实施例中,获取用于分析应用软件性能的不同预设性能维度,对于每一所述预设性能维度,在所述应用软件自动化测试过程中,获取采集的所述应用软件在所述预设性能维度下的性能数据,并依据所述性能数据确定性能分析结果,以可视化图表的形式输出所述性能分析结果。通过本发明实施例,可以对APP的性能进行分析,以便对APP进行改进,使其用户体验更好,用户黏度更高。另外,本发明实施例可以在应用软件自动化测试过程中执行,也就是说,可以在应用软件自动化测试过程中确定出应用软件可能存在的性能问题,不需要等待应用软件上线后,在依据用户反馈才能得到应用软件的性能问题,相比于以往通过用户反馈的方式,可以提早知道应用软件的性能问题。
上述简单介绍了获取性能数据以及依据所述性能数据确定性能分析结果的过程,现结合每一预设性能维度进行详细介绍。
1、所述预设性能维度包括慢函数检测维度;
相应的,参照图5,步骤S12可以包括:
S21、获取通过在所述应用软件的运行程序中每一子程序前后插桩的方式采集的执行每一所述子程序对应的耗时时间。
S22、筛选出对应的耗时时间大于第一预设时间阈值的子程序,并作为目标子程序;
S23、将所述目标子程序确定为所述性能分析结果。
其中,可以在APP上设置有数据采集模块,本实施例中,数据采集模块可以包括慢函数检测模块,慢函数检测模块在APP编译期间对每个方法(即运行程序中的每一子程序,如代码运行期间执行的函数)进行插桩,在方法调用前后植入代码,获取该方法运行时所需的耗时时间,在运行时指定方法耗时阈值,即第一预设时间阈值,在运行时计算出耗时大于第一预设时间阈值的调用栈,即为目标子程序,将该目标子程序作为最终的性能分析结果。
参照图2,图2为性能分析结果的一个表格展示界面,表头包括问题类型(即为慢函数)、问题摘要(即存在耗时问题的子程序)、最近时间(耗时发生的最近时间)、发生次数、影响机型(会影响机型的种类)、状态(是指检出问题的处理状态:分为已处理/未处理/无法解决三种)、ACTION。
其中,ACTION可以认为是预设控件,该用于将所述目标子程序配置给预设人员进行维护。具体的,可以打通了内部漏洞Bug***,对于检测出的问题过滤后(如在确定出目标子程序后,还可以在目标子程序中进一步通过“发生次数”、“影响机型”两个因素进行二次筛选)直接上报至Bug***,并自动提交到jira***(项目与事务跟踪工具),分配给相应模块的工程师,形成采集-分析-反馈-解决这样的工作协同闭环,全部流程做到了自动化一站式解决。
2、所述预设性能维度包括主线程文件IO检测维度。
相应的,步骤S12可以包括:
获取所述主线程文件IO接口检测的文件读写时所需的耗时值,筛选出耗时值大于第二预设时间阈值的文件,并作为目标文件,将所述目标文件确定为所述性能分析结果。
具体的,上述的数据采集模块还可以包括文件IO检测模块,文件IO检测模块通过运行时以原生代码钩子技术native hook的方式,拦截***文件i/o的接口,实现对文件IO的监控。具体的监控过程为:
因为IO接口是较为耗时的操作,文件IO主要监控调用读写文件的***调用,在本实施例中,通过IO接口对文件进行读写时获取到读写该文件所需的耗时值,然后将该耗时值与第二预设时间阈值进行比较,筛选出超出第二预设时间阈值的文件,并将其作为目标文件和性能分析结果。本实施例中,将IO接口传输大文件会导致耗时较多,所以对IO接口的检测可以得到耗时较大的原因。
3、所述预设性能维度包括内存泄露检测维度。
相应的,步骤S12可以包括:
若检测到所述应用软件存在内存泄露,获取通过运行所述应用软件的预设测试用例得到的内存快照文件,对所述内存快照文件进行脚本分析,得到内存泄露对象,将所述内存泄漏对象确定为所述性能分析结果。
在实际应用中,上述的数据采集模块还可以包括内存泄露检测模块,内存泄露检测模块可以运行预设测试用例,预设测试用例会定时采集APP运行时的内存快照文件,在预设测试用例执行完成后会将内存快照文件上传至服务端,服务器后端通过脚本分析的方式提炼出内存泄漏对象。
其中,预设测试用例会覆盖APP使用的主要场景,如预设测试用例可以是:
发现页:快速向下滑动20屏,快速向上滑动20屏,重复执行2次;
相册页:快速向下滑动20屏,快速向上滑动20屏;
搜索结果页:快速向下滑动20屏,快速向上滑动20屏;
视频详情页:快速向下滑动10屏,快速向上滑动3屏,重复执行5次;
图片详情页:快速向下滑动5屏,快速向上滑动3屏,重复执行5次。
脚本分析是对hprof格式的文件(内存快照文件)进行分析,提炼出活动页面对象activity泄漏的链路对象,通过引用链回溯的方式,定位导致内存泄漏的具体代码。
4、所述预设性能维度包括预设关键场景耗时检测维度。
相应的,步骤S12可以包括:
1)获取所述预设关键场景的场景流程对应的流程执行时间。
所述预设关键场景包括多个所述场景流程。
2)若所述场景流程对应的流程执行时间之和大于第三预设时间阈值,将所述场景流程对应的流程执行时间以及所述场景流程对应的流程执行时间之和作为所述性能分析结果。
在实际应用中,上述的数据采集模块还可以包括关键链路耗时检测模块,关键链路耗时检测模块通常的设计方式是在线上环境进行统计分析,本***同时支持自动化测试环境和线上环境的统计分析,以方便提前发现关键链路性能耗时问题。预设关键场景是技术人员预先设定的,如打开视频详情页,预设关键场景可以包括多个场景流程,以打开视频详情页为例,可以包括多个点击或滑动操作,滑动找到具体需要打开的视频、点击该视频的视频详情页按钮,点击该按钮,依次获取执行每一场景流程所需的流程执行时间,将流程执行时间之和作为该预设关键场景对应的场景执行时间,若该场景执行时间较长,大于第三预设时间阈值,则将每一场景流程对应的流程执行时间以及场景执行时间作为所述性能分析结果。具体参照图4,以右上角的相机启动耗时为例,分为相机初始化和UI初始化两个步骤,将相机初始化和UI初始化的耗时以及总耗时作为最终的性能分析结果,并进行柱形图展示。
5、所述预设性能维度包括掉帧率检测维度。
相应的,步骤S12可以包括:
获取数据传输过程中相邻两个数据帧之间的传输时间间隔,统计传输时间间隔落于每一预设时间间隔区间的数量,将传输时间间隔落于每一预设时间间隔区间的数量作为所述性能分析结果。
在实际应用中,上述的数据采集模块还可以包括掉帧率检测模块,掉帧率检测模块通常执行帧率监控是基于平均帧率计算的,但平均帧率低用户不一定会感觉卡顿,用户对平均帧率30~50无明显的感知,但会感知连续的丢帧,因此我们参考Android vital定义一套掉帧率的监控规则,具体参照图6,通过计算两帧之前的时间间隔以统计掉帧率分布情况。本实施例中预先设定了五个预设时间间隔区间,0-3秒为best区间,3-9秒为normal区间,9-24秒为middle区间,24-42秒为high区间,42以上为forzen区间。
可以在数据传输过程中对掉帧率进行检测,采集相邻两个数据帧之间的传输时间间隔,然后统计采集的多个传输时间间隔分别落在best区间、normal区间、middle区间、high区间和forzen区间上的数量,将落在每区间的数量以图3中的饼形图的格式进行展示。其中,不同的best区间、normal区间、middle区间、high区间和forzen区间上的数量采用比例的形式展示。可以制作上述每一预设测试用例对应的饼形图,如发现页的饼形图,相册页的饼状图。
6、所述预设性能维度包括耗电检测维度。
相应的,步骤S12可以包括:
获取所述应用软件调用所述应用程序所在的终端***的端口的次数,依据所述次数确定出所述应用软件的耗电数据,将所述耗电数据确定为所述性能分析结果。
在实际应用中,通过分析该应用软件调用该应用软件所在的终端***的端口的次数来侧面反映应用软件的耗电量,调用次数越多,则耗电量越大,调用次数越少,则耗电量越小。
本实施例通过慢函数检测维度、主线程文件IO检测维度、内存泄露检测维度、预设关键场景耗时检测维度、掉帧率检测维度和耗电检测维度六个方面进行应用软件的性能分析,进而能够从不同角度进行性能分析,且能够使技术人员定位到更详细的性能问题。
为了实现上述的技术方案,本发明实施例提供了一种自动化性能检测***(CPTS),具体参照图7,CPTS Android SDK为上述的数据采集模块,该数据采集模块配置在客户端,用于采集上述数据,数据采集模块具体包括哪一模块已在上述进行了详细描述,请参照上述相应实施例。
上述的数据采集模块通过CPTS-API接口可以采集不同业务场景下的数据,一般采集的是预设关键场景的数据,采集的数据通过CPTS-通信模块将上述数据以日志的形式上传到数据分析后台,数据分析后台执行上述的数据处理过程,得到性能分析结果,将性能分析结果在前端展示平台进行展示。其中,数据分析后台可以是服务器,前端展示平台可以是服务器的显示界面。数据分析后台负责日志的分析处理,聚合展示等功能,通过大数据分析,提炼出有效问题的模式,同时打通了Bug反馈***,每天定时将检测出的性能问题自动提单。前端展示平台主要负责将后端聚合处理后的数据用用户可理解的方式展示出来,包括慢函数报表,内存泄漏报表,文件io问题报表,掉帧率报表,关键链路耗时分布报表等。
另外,需要说明的是,CPTS***除了支持线上灰度环境监控外,同时支持自动化测试环境的监控,可以在应用上线前提前发现问题,缩短解决问题的周期。
针对Android平台,我们在CPTS***中我们设计了六大模块对应用进行整体的监控,包括慢函数检测模块,帧率检测模块,关键场景耗时检测模块,内存泄漏检测模块,文件IO检测模块以及耗电检测模块,同时结合自动化case,旨在通过自动化脚本结合stablebuild的方式每日定时的对app各个业务模块,关键链路场景进行***性的测试,自动化case运行结束后会生成关于卡顿栈帧,页面帧率分布,运行内存分布等性能相关的分析报告,同时我们打通的jira***,通过日志聚合分析算法,对cpts上报的卡顿日志进行过滤,甄选出有效的bug,并自动提交到jira***,分配给相应模块的工程师,形成采集-分析-反馈-解决这样的工作协同闭环,全部流程做到了自动化一站式解决,
本实施例设计的CPTS***全面覆盖用户常用操作90%的case,通过自动化测试框架以及多样本的手机设备,每天定时运行采集性能日志,通过自动化测试框架将日志上报给服务端。
可选地,在上述软件性能自动化测试方法的实施例的基础上,本发明的另一实施例提供了一种软件性能自动化测试装置,参照图8,可以包括:
维度获取模块11,用于获取用于分析应用软件性能的不同预设性能维度;
数据处理模块12,用于对于每一所述预设性能维度,在所述应用软件自动化测试过程中,获取采集的所述应用软件在所述预设性能维度下的性能数据,并依据所述性能数据确定性能分析结果;
结果展示模块13,用于以可视化图表的形式输出所述性能分析结果。
进一步,所述预设性能维度包括慢函数检测维度;
相应的,所述数据处理模块包括:
时间获取子模块,用于获取通过在所述应用软件的运行程序中每一子程序前后插桩的方式采集的执行每一所述子程序对应的耗时时间;
筛选子模块,用于筛选出对应的耗时时间大于第一预设时间阈值的子程序,并作为目标子程序;
第一结果确定子模块,用于将所述目标子程序确定为所述性能分析结果。
进一步,结果展示模块用于以可视化图表的形式输出所述性能分析结果时,具体用于:
将所述目标子程序以图表格式输出;所述图表格式中设置有一预设控件;所述预设控件用于将所述目标子程序配置给预设人员进行维护。
进一步,所述预设性能维度包括主线程文件IO检测维度;
相应的,所述数据处理模块包括:
耗时值获取子模块,用于获取所述主线程文件IO接口检测的文件读写时所需的耗时值;
文件筛选子模块,用于筛选出耗时值大于第二预设时间阈值的文件,并作为目标文件;
第二结果确定子模块,用于将所述目标文件确定为所述性能分析结果。
进一步,所述预设性能维度包括内存泄露检测维度;
相应的,所述数据处理模块包括:
文件获取子模块,用于若检测到所述应用软件存在内存泄露,获取通过运行所述应用软件的预设测试用例得到的内存快照文件;
分析子模块,用于对所述内存快照文件进行脚本分析,得到内存泄露对象;
第三结果确定子模块,用于将所述内存泄漏对象确定为所述性能分析结果。
进一步,所述预设性能维度包括预设关键场景耗时检测维度;
相应的,所述数据处理模块包括:
时间获取子模块,用于获取所述预设关键场景的场景流程对应的流程执行时间;所述预设关键场景包括多个所述场景流程;
第四结果确定子模块,用于若所述场景流程对应的流程执行时间之和大于第三预设时间阈值,将所述场景流程对应的流程执行时间以及所述场景流程对应的流程执行时间之和作为所述性能分析结果。
进一步,所述预设性能维度包括掉帧率检测维度;
相应的,所述数据处理模块包括:
间隔获取子模块,用于获取数据传输过程中相邻两个数据帧之间的传输时间间隔;
数量统计子模块,用于统计传输时间间隔落于每一预设时间间隔区间的数量;
第五结果确定子模块,用于将传输时间间隔落于每一预设时间间隔区间的数量作为所述性能分析结果。
进一步,所述预设性能维度包括耗电检测维度;
相应的,所述数据处理模块包括:
次数获取子模块,用于获取所述应用软件调用所述应用软件所在的终端***的端口的次数;
数据确定子模块,用于依据所述次数确定出所述应用程序的耗电数据;
第六结果确定子模块,用于将所述耗电数据确定为所述性能分析结果。
进一步,结果展示模块用于以可视化图表的形式输出所述性能分析结果时,具体用于:
获取所述性能分析结果的展示规则,依据所述展示规则展示所述性能分析结果。
本发明实施例中,获取用于分析应用软件性能的不同预设性能维度,对于每一所述预设性能维度,在所述应用软件自动化测试过程中,获取采集的所述应用软件在所述预设性能维度下的性能数据,并依据所述性能数据确定性能分析结果,以可视化图表的形式输出所述性能分析结果。通过本发明实施例,可以对APP的性能进行分析,以便对APP进行改进,使其用户体验更好,用户黏度更高。另外,本发明实施例可以在应用软件自动化测试过程中执行,也就是说,可以在应用软件自动化测试过程中确定出应用软件可能存在的性能问题,不需要等待应用软件上线后,在依据用户反馈才能得到应用软件的性能问题,相比于以往通过用户反馈的方式,可以提早知道应用软件的性能问题。
需要说明的是,本实施例中的各个模块和子模块的工作过程,请参照上述实施例中的相应说明,在此不再赘述。
可选地,在上述软件性能自动化测试方法及装置的实施例的基础上,本发明的另一实施例提供了一种电子设备,包括:存储器和处理器;
其中,所述存储器用于存储程序;
处理器调用程序并用于:
获取用于分析应用软件性能的不同预设性能维度;
对于每一所述预设性能维度,在所述应用软件自动化测试过程中,获取采集的所述应用软件在所述预设性能维度下的性能数据,并依据所述性能数据确定性能分析结果;
以可视化图表的形式输出所述性能分析结果。
本发明实施例中,获取用于分析应用软件性能的不同预设性能维度,对于每一所述预设性能维度,在所述应用软件自动化测试过程中,获取采集的所述应用软件在所述预设性能维度下的性能数据,并依据所述性能数据确定性能分析结果,以可视化图表的形式输出所述性能分析结果。通过本发明实施例,可以对APP的性能进行分析,以便对APP进行改进,使其用户体验更好,用户黏度更高。另外,本发明实施例可以在应用软件自动化测试过程中执行,也就是说,可以在应用软件自动化测试过程中确定出应用软件可能存在的性能问题,不需要等待应用软件上线后,在依据用户反馈才能得到应用软件的性能问题,相比于以往通过用户反馈的方式,可以提早知道应用软件的性能问题。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (11)
1.一种软件性能自动化测试方法,其特征在于,包括:
获取用于分析应用软件性能的不同预设性能维度;
对于每一所述预设性能维度,在所述应用软件自动化测试过程中,获取采集的所述应用软件在所述预设性能维度下的性能数据,并依据所述性能数据确定性能分析结果;
以可视化图表的形式输出所述性能分析结果。
2.根据权利要求1所述的软件性能自动化测试方法,其特征在于,所述预设性能维度包括慢函数检测维度;
相应的,获取采集的所述应用软件在所述预设性能维度下的性能数据,并依据所述性能数据确定性能分析结果,包括:
获取通过在所述应用软件的运行程序中每一子程序前后插桩的方式采集的执行每一所述子程序对应的耗时时间;
筛选出对应的耗时时间大于第一预设时间阈值的子程序,并作为目标子程序;
将所述目标子程序确定为所述性能分析结果。
3.根据权利要求2所述的软件性能自动化测试方法,其特征在于,以可视化图表的形式输出所述性能分析结果,包括:
将所述目标子程序以图表格式输出;所述图表格式中设置有一预设控件;所述预设控件用于将所述目标子程序配置给预设人员进行维护。
4.根据权利要求1所述的软件性能自动化测试方法,其特征在于,所述预设性能维度包括主线程文件IO检测维度;
相应的,获取采集的所述应用软件在所述预设性能维度下的性能数据,并依据所述性能数据确定性能分析结果,包括:
获取所述主线程文件IO接口检测的文件读写时所需的耗时值;
筛选出耗时值大于第二预设时间阈值的文件,并作为目标文件;
将所述目标文件确定为所述性能分析结果。
5.根据权利要求1所述的软件性能自动化测试方法,其特征在于,所述预设性能维度包括内存泄露检测维度;
相应的,获取采集的所述应用软件在所述预设性能维度下的性能数据,并依据所述性能数据确定性能分析结果,包括:
若检测到所述应用软件存在内存泄露,获取通过运行所述应用软件的预设测试用例得到的内存快照文件;
对所述内存快照文件进行脚本分析,得到内存泄露对象;
将所述内存泄漏对象确定为所述性能分析结果。
6.根据权利要求1所述的软件性能自动化测试方法,其特征在于,所述预设性能维度包括预设关键场景耗时检测维度;
相应的,获取采集的所述应用软件在所述预设性能维度下的性能数据,并依据所述性能数据确定性能分析结果,包括:
获取所述预设关键场景的场景流程对应的流程执行时间;所述预设关键场景包括多个所述场景流程;
若所述场景流程对应的流程执行时间之和大于第三预设时间阈值,将所述场景流程对应的流程执行时间以及所述场景流程对应的流程执行时间之和作为所述性能分析结果。
7.根据权利要求1所述的软件性能自动化测试方法,其特征在于,所述预设性能维度包括掉帧率检测维度;
相应的,获取采集的所述应用软件在所述预设性能维度下的性能数据,并依据所述性能数据确定性能分析结果,包括:
获取数据传输过程中相邻两个数据帧之间的传输时间间隔;
统计传输时间间隔落于每一预设时间间隔区间的数量;
将传输时间间隔落于每一预设时间间隔区间的数量作为所述性能分析结果。
8.根据权利要求1所述的软件性能自动化测试方法,其特征在于,所述预设性能维度包括耗电检测维度;
相应的,获取采集的所述应用软件在所述预设性能维度下的性能数据,并依据所述性能数据确定性能分析结果,包括:
获取所述应用软件调用所述应用软件所在的终端***的端口的次数;
依据所述次数确定出所述应用程序的耗电数据;
将所述耗电数据确定为所述性能分析结果。
9.根据权利要求1所述的软件性能自动化测试方法,其特征在于,以可视化图表的形式输出所述性能分析结果,包括:
获取所述性能分析结果的展示规则;
依据所述展示规则展示所述性能分析结果。
10.一种软件性能自动化测试装置,其特征在于,包括:
维度获取模块,用于获取用于分析应用软件性能的不同预设性能维度;
数据处理模块,用于对于每一所述预设性能维度,在所述应用软件自动化测试过程中,获取采集的所述应用软件在所述预设性能维度下的性能数据,并依据所述性能数据确定性能分析结果;
结果展示模块,用于以可视化图表的形式输出所述性能分析结果。
11.一种电子设备,其特征在于,包括:存储器和处理器;
其中,所述存储器用于存储程序;
处理器调用程序并用于:
获取用于分析应用软件性能的不同预设性能维度;
对于每一所述预设性能维度,在所述应用软件自动化测试过程中,获取采集的所述应用软件在所述预设性能维度下的性能数据,并依据所述性能数据确定性能分析结果;
以可视化图表的形式输出所述性能分析结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911369408.5A CN111061647A (zh) | 2019-12-26 | 2019-12-26 | 一种软件性能自动化测试方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911369408.5A CN111061647A (zh) | 2019-12-26 | 2019-12-26 | 一种软件性能自动化测试方法、装置及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111061647A true CN111061647A (zh) | 2020-04-24 |
Family
ID=70302942
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911369408.5A Pending CN111061647A (zh) | 2019-12-26 | 2019-12-26 | 一种软件性能自动化测试方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111061647A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112306870A (zh) * | 2020-10-28 | 2021-02-02 | 广州博冠信息科技有限公司 | 一种基于直播app的数据处理方法和装置 |
CN112604299A (zh) * | 2020-12-29 | 2021-04-06 | 珠海金山网络游戏科技有限公司 | 性能检测方法及装置 |
CN112925716A (zh) * | 2021-03-19 | 2021-06-08 | 广东好太太智能家居有限公司 | 一种可视化图像的测试方法、设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001154889A (ja) * | 1999-11-25 | 2001-06-08 | Nec Corp | プログラム性能グラフ表示装置およびプログラム性能のグラフ表示方法 |
CN104699598A (zh) * | 2013-12-09 | 2015-06-10 | 腾讯科技(深圳)有限公司 | 自动化测试方法、装置、设备及*** |
CN105426278A (zh) * | 2015-11-20 | 2016-03-23 | 北京畅游天下网络技术有限公司 | 一种客户端设备性能测试方法及*** |
CN109739762A (zh) * | 2018-12-29 | 2019-05-10 | 微梦创科网络科技(中国)有限公司 | 一种应用程序的性能测试方法与装置 |
CN110188045A (zh) * | 2019-05-31 | 2019-08-30 | 武汉市灯塔互动文化传播有限公司 | 一种基于iOS***自动化统计APP性能指标的方法和装置 |
CN110362483A (zh) * | 2019-06-19 | 2019-10-22 | 平安普惠企业管理有限公司 | 性能数据采集方法、装置、设备及存储介质 |
-
2019
- 2019-12-26 CN CN201911369408.5A patent/CN111061647A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001154889A (ja) * | 1999-11-25 | 2001-06-08 | Nec Corp | プログラム性能グラフ表示装置およびプログラム性能のグラフ表示方法 |
CN104699598A (zh) * | 2013-12-09 | 2015-06-10 | 腾讯科技(深圳)有限公司 | 自动化测试方法、装置、设备及*** |
CN105426278A (zh) * | 2015-11-20 | 2016-03-23 | 北京畅游天下网络技术有限公司 | 一种客户端设备性能测试方法及*** |
CN109739762A (zh) * | 2018-12-29 | 2019-05-10 | 微梦创科网络科技(中国)有限公司 | 一种应用程序的性能测试方法与装置 |
CN110188045A (zh) * | 2019-05-31 | 2019-08-30 | 武汉市灯塔互动文化传播有限公司 | 一种基于iOS***自动化统计APP性能指标的方法和装置 |
CN110362483A (zh) * | 2019-06-19 | 2019-10-22 | 平安普惠企业管理有限公司 | 性能数据采集方法、装置、设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
张贤坤等: "《软件工程技术及应用》", 东北林业大学出版社, pages: 244 - 245 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112306870A (zh) * | 2020-10-28 | 2021-02-02 | 广州博冠信息科技有限公司 | 一种基于直播app的数据处理方法和装置 |
CN112604299A (zh) * | 2020-12-29 | 2021-04-06 | 珠海金山网络游戏科技有限公司 | 性能检测方法及装置 |
CN112604299B (zh) * | 2020-12-29 | 2023-08-29 | 珠海金山数字网络科技有限公司 | 性能检测方法及装置 |
CN112925716A (zh) * | 2021-03-19 | 2021-06-08 | 广东好太太智能家居有限公司 | 一种可视化图像的测试方法、设备及存储介质 |
CN112925716B (zh) * | 2021-03-19 | 2024-01-23 | 广东好太太智能家居有限公司 | 一种可视化图像的测试方法、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111061647A (zh) | 一种软件性能自动化测试方法、装置及电子设备 | |
CN109408102B (zh) | 一种版本比对方法和装置、家电设备、网络设备 | |
CN105721187A (zh) | 一种业务故障诊断方法及装置 | |
CN108170606A (zh) | ***软件升级类应用的测试***及方法 | |
CN110275878B (zh) | 业务数据检测方法、装置、计算机设备及存储介质 | |
CN105405221A (zh) | 一种自动化测试的方法及装置 | |
CN112148606B (zh) | 埋点测试方法、装置、设备及计算机可读介质 | |
CN106095660B (zh) | 应用的质量监控方法及装置 | |
EP4287559A1 (en) | Threat detection network | |
CN111090593A (zh) | 确定崩溃归属的方法、装置、电子设备及存储介质 | |
CN109284221B (zh) | 一种预警***及方法 | |
CN116909904A (zh) | 一种基于大流量高并发条件下的软件功能自动化测试方法 | |
CN113342627B (zh) | 一种终端的应用服务监控方法及监控*** | |
CN103336739A (zh) | 软件测试方法及平台 | |
CN105405220A (zh) | 一种自动化测试的方法及装置 | |
CN115309661A (zh) | 一种应用测试方法、装置、电子设备及可读存储介质 | |
CN113419932B (zh) | 一种设备性能分析方法和装置 | |
CN107102938B (zh) | 测试脚本的更新方法及装置 | |
CN114218078A (zh) | 一种ui页面测试方法、装置、设备及可读存储介质 | |
CN109688025B (zh) | 一种基于数字kvm的测试监控方法、装置、终端及存储介质 | |
CN114173194B (zh) | 页面流畅度的检测方法、装置、服务器和存储介质 | |
JP7276489B2 (ja) | 分析装置、制御方法、及びプログラム | |
EP4250280A1 (en) | Display device, number-of-fish counting system provided therewith, and display control program | |
CN108304319B (zh) | 一种移动终端数据归类的方法 | |
CN116841876A (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 |