CN110377504A - 应用程序流畅度的测试方法、装置、设备及存储介质 - Google Patents

应用程序流畅度的测试方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN110377504A
CN110377504A CN201910536839.XA CN201910536839A CN110377504A CN 110377504 A CN110377504 A CN 110377504A CN 201910536839 A CN201910536839 A CN 201910536839A CN 110377504 A CN110377504 A CN 110377504A
Authority
CN
China
Prior art keywords
test
app
tested
frame
application program
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
Application number
CN201910536839.XA
Other languages
English (en)
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.)
Ping An Puhui Enterprise Management Co Ltd
Original Assignee
Ping An Puhui Enterprise Management 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 Ping An Puhui Enterprise Management Co Ltd filed Critical Ping An Puhui Enterprise Management Co Ltd
Priority to CN201910536839.XA priority Critical patent/CN110377504A/zh
Publication of CN110377504A publication Critical patent/CN110377504A/zh
Pending legal-status Critical Current

Links

Classifications

    • 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/3684Test management for test design, e.g. generating new test cases
    • 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

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的反射机制修改控制类,控制类用于控制生成的掉帧日志的数量;基于预置的测试框架和修改后的控制类执行测试用例,得到测试结果,测试用例用于对目标代码进行测试;从测试结果中提取掉帧日志,并统计掉帧日志的总数量;根据掉帧日志的总数量确定待测试APP的流畅度。

Description

应用程序流畅度的测试方法、装置、设备及存储介质
技术领域
本发明涉及测试流程改进领域,尤其涉及一种应用程序流畅度的测试方法、装置、设备及存储介质。
背景技术
随着移动通信领域的快速发展,智能手机得到了普及,人们也越来越关注智能手机应用的质量问题。其中,智能手机的流畅性是影响用户体验最大的问题之一,因此各应用厂商或者手机厂商对手机的流畅性要求越来越高。而在解决应用的流畅性前,必须先能够测试其流畅性,性能测试对应用程序(application,APP)的质量保证具有重要作用。
APP的性能测试包括客户端的性能测试、APP在网络上的性能测试以及服务器端的性能测试。性能测试主要在APP运行过程中测试各种指标,例如中央处理(centralprocessing unit,CPU)的占用率等。
目前APP流畅度主要靠手工测试,手工测试耗时较多,而且需要投入较多的人力支持,手工测试准确度存在一定的偏差。
发明内容
本发明提供了一种应用程序流畅度的测试方法、装置、设备及存储介质,用于提高应用程序的流畅度测试效率,降低测试成本,并提高流畅度测试的准确性。
本发明实施例的第一方面提供一种应用程序流畅度的测试方法,包括:获取待测试应用程序APP的目标代码;通过所述待测试APP的反射机制修改控制类,所述控制类用于控制生成的掉帧日志的数量;基于预置的测试框架和修改后的控制类执行测试用例,得到测试结果,所述测试用例用于对所述目标代码进行测试;从所述测试结果中提取掉帧日志,并统计所述掉帧日志的总数量;根据所述掉帧日志的总数量确定所述待测试APP的流畅度。
可选的,在本发明实施例第一方面的第一种实现方式中,所述通过所述待测试APP的反射机制修改控制类,所述控制类用于控制生成的掉帧日志的数量包括:通过所述待测试App中的Java反射机制确定控制类的类属性;确定所述类属性中的掉帧提醒门槛值;将所述掉帧提醒门槛值的默认值修改为1。
可选的,在本发明实施例第一方面的第二种实现方式中,在所述通过所述待测试APP的反射机制修改控制类之后,在所述基于预置的测试框架执行测试用例,得到测试结果之前,所述方法还包括:生成同步控制脚本,所述同步控制脚本用于同步控制测试用例的执行与掉帧日志的输出。
可选的,在本发明实施例第一方面的第三种实现方式中,在所述获取待测试应用程序APP的目标代码之前,所述方法还包括:生成统一控制脚本,所述统一控制脚本用于控制所述待测试APP的安装、所述同步控制脚本的执行及掉帧日志解析报告的输出。
可选的,在本发明实施例第一方面的第四种实现方式中,所述基于预置的测试框架和修改后的控制类执行测试用例,得到测试结果,所述测试用例用于对所述目标代码进行测试包括:调用预置的jenkins测试框架;在所述预置的jenkins测试框架中配置jenkins任务,所述jenkins任务为执行所述统一控制脚本;安装待测试APP;将测试用例输入到所述待测试APP;通过所述同步控制脚本控制所述待测试APP执行测试用例;通过所述同步控制脚本和所述修改后的控制类控制所述待测试APP输出掉帧日志;对所述掉帧日志进行整理,得到测试结果。
可选的,在本发明实施例第一方面的第五种实现方式中,所述根据所述掉帧日志的总数量确定所述待测试APP的流畅度包括:解析出在所述待测试APP执行测试用例的过程中,每一秒的掉帧数;以60减去掉帧数得到帧数差值,并将所述帧数差值作为所述待测试APP的测试流畅度值;根据预先设置的匹配关系,将所述掉帧日志的总数量和预置的流畅度进行匹配,得到所述待测试APP的流畅度,所述预置的流畅度包括非常流畅、一般流畅、卡顿和非常卡顿。
可选的,在本发明实施例第一方面的第六种实现方式中,所述方法还包括:将测试用例的测试数据上传至服务器,所述测试用例的测试数据包括测试用例和与所述待测试APP的流畅度值,所述待测试APP的流畅度值与所述测试用例对应,以使得所述服务器记录并保存所述测试用例的测试数据。
本发明实施例的第二方面提供了一种应用程序流畅度的测试装置,包括:获取单元,用于获取待测试应用程序APP的目标代码;修改单元,用于通过所述待测试APP的反射机制修改控制类,所述控制类用于控制生成的掉帧日志的数量;执行单元,用于基于预置的测试框架和修改后的控制类执行测试用例,得到测试结果,所述测试用例用于对所述目标代码进行测试;统计单元,用于从所述测试结果中提取掉帧日志,并统计所述掉帧日志的总数量;确定单元,用于根据所述掉帧日志的总数量确定所述待测试APP的流畅度。
可选的,在本发明实施例第二方面的第一种实现方式中,修改单元具体用于:通过所述待测试App中的Java反射机制确定控制类的类属性;确定所述类属性中的掉帧提醒门槛值;将所述掉帧提醒门槛值的默认值修改为1。
可选的,在本发明实施例第二方面的第二种实现方式中,应用程序流畅度的测试装置还包括:第一生成单元,用于生成同步控制脚本,所述同步控制脚本用于同步控制测试用例的执行与掉帧日志的输出。
可选的,在本发明实施例第二方面的第三种实现方式中,应用程序流畅度的测试装置还包括:第二生成单元,用于生成统一控制脚本,所述统一控制脚本用于控制所述待测试APP的安装、所述同步控制脚本的执行及掉帧日志解析报告的输出。
可选的,在本发明实施例第二方面的第四种实现方式中,执行单元具体用于:调用预置的jenkins测试框架;在所述预置的jenkins测试框架中配置jenkins任务,所述jenkins任务为执行所述统一控制脚本;安装待测试APP;将测试用例输入到所述待测试APP;通过所述同步控制脚本控制所述待测试APP执行测试用例;通过所述同步控制脚本和所述修改后的控制类控制所述待测试APP输出掉帧日志;对所述掉帧日志进行整理,得到测试结果。
可选的,在本发明实施例第二方面的第五种实现方式中,确定单元具体用于:解析出在所述待测试APP执行测试用例的过程中,每一秒的掉帧数;以60减去掉帧数得到帧数差值,并将所述帧数差值作为所述待测试APP的测试流畅度值;根据预先设置的匹配关系,将所述掉帧日志的总数量和预置的流畅度进行匹配,得到所述待测试APP的流畅度,所述预置的流畅度包括非常流畅、一般流畅、卡顿和非常卡顿。
可选的,在本发明实施例第二方面的第六种实现方式中,应用程序流畅度的测试装置还包括:上传单元,用于将测试用例的测试数据上传至服务器,所述测试用例的测试数据包括测试用例和与所述待测试APP的流畅度值,所述待测试APP的流畅度值与所述测试用例对应,以使得所述服务器记录并保存所述测试用例的测试数据。
本发明实施例的第三方面提供了一种应用程序流畅度的测试设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任一实施方式所述的应用程序流畅度的测试方法。
本发明实施例的第四方面提供了一种计算机可读存储介质,包括指令,当所述指令在计算机上运行时,使得计算机执行上述任一实施方式所述的应用程序流畅度的测试方法的步骤。
本发明实施例提供的技术方案中,获取待测试应用程序APP的目标代码;通过待测试APP的反射机制修改控制类,控制类用于控制生成的掉帧日志的数量;基于预置的测试框架和修改后的控制类执行测试用例,得到测试结果,测试用例用于对目标代码进行测试;从测试结果中提取掉帧日志,并统计掉帧日志的总数量;根据掉帧日志的总数量确定待测试APP的流畅度。本发明实施例,提高了应用程序的流畅度测试效率,降低了测试成本,并提高了流畅度测试的准确性。
附图说明
图1为本发明实施例中应用程序流畅度的测试方法的一个实施例示意图;
图2为本发明实施例中应用程序流畅度的测试方法的另一个实施例示意图;
图3为本发明实施例中应用程序流畅度的测试装置的一个实施例示意图;
图4为本发明实施例中应用程序流畅度的测试装置的另一个实施例示意图;
图5为本发明实施例中应用程序流畅度的测试设备的一个实施例示意图。
具体实施方式
本发明提供了一种应用程序流畅度的测试方法、装置、设备及存储介质,用于提高应用程序的流畅度测试效率,降低测试成本,并提高流畅度测试的准确性。
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例进行描述。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”或“具有”及其任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、***、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
请参阅图1,本发明实施例提供的应用程序流畅度的测试方法的流程图,具体包括:
101、获取待测试应用程序APP的目标代码。
应用程序流畅度的测试装置获取待测试APP的目标代码,待测试APP的目标代码包括各种函数代码和各种类代码,本发明实施例中的目标代码是指APP中的全部代码,不做具体细分,都需要进行测试。
可以理解的是,本发明的执行主体为应用程序流畅度的测试装置,还可以是终端或者服务器,具体此处不做限定。本发明以应用程序流畅度的测试装置为执行主体为例进行说明。
102、通过待测试APP的反射机制修改控制类,控制类用于控制生成的掉帧日志的数量。
应用程序流畅度的测试装置通过待测试APP的反射机制修改控制类,其中,控制类用于控制生成的掉帧日志的数量。具体的,应用程序流畅度的测试装置首先根据待测试APP的反射机制对控制类的变量进行修改;然后根据修改后的控制类对待测试APP进行控制。
例如,应用程序流畅度的测试装置根据待测试APP的反射机制对待测试App的目标代码中的掉帧提醒门槛值进行修改,具体为,应用程序流畅度的测试装置将AndroidChoreographer类的变量SKIPPED_FRAME_WARNING_LIMIT的掉帧提醒门槛值设置为1,使得待测试APP在执行测试脚本的过程中,只要出现掉帧数大于或等于1的现象,就会输出对应的掉帧日志。
应用程序流畅度的测试装置通过待测试APP中的Java反射机制修改待测试App的代码。其中,Java反射机制是在运行状态中,对于任意一个实体类,都能够获取这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性,这种动态获取信息以及动态调用对象方法的功能称为Java语言的反射机制。
103、基于预置的测试框架和修改后的控制类执行测试用例,得到测试结果,测试用例用于对目标代码进行测试。
应用程序流畅度的测试装置基于预置的测试框架和修改后的控制类执行测试用例,得到测试结果,测试用例用于对目标代码进行测试。具体的,应用程序流畅度的测试装置调用预先设置好的jenkins测试框架,通过该jenkins测试框架去执行预先设置的测试用例,该测试用例用于对目标代码进行测试。其中,测试框架为预先设置的,而测试用例可以是预先设置好的,也可以是当前生成的,具体此处不做限定。
例如,基于jenkins搭建自动化的测试框架,执行测试用例,使得该测试用例自动化测试待测试APP的目标代码。其中,jenkins是一款流行的开源持续集成(ContinuousIntegration)工具,广泛用于项目开发,具有自动化构建、测试和部署等功能。
104、从测试结果中提取掉帧日志,并统计掉帧日志的总数量。
应用程序流畅度的测试装置从测试结果中提取掉帧日志,并统计掉帧日志的总数量。具体的,应用程序流畅度的测试装置对获取到的测试结果进行解析,其中,测试结果中包括有测试用例的测试数据和掉帧日志,将其中的掉帧日志单独提取出来并进行统计,得到掉帧日志的总数量。
105、根据掉帧日志的总数量确定待测试APP的流畅度。
应用程序流畅度的测试装置根据掉帧日志的总数量确定待测试APP的流畅度。具体的,应用程序流畅度的测试装置可以根据预先设置的匹配关系,将掉帧日志的总数量和流畅度进行匹配,其中,匹配关系可以是工作人员事先进行设置的,例如,掉帧日志的总数量为0-10时,对应的帧数差值为50-60,匹配的流畅度为非常流畅;掉帧日志的总数量为10-20时,对应的帧数差值为40-50,匹配的流畅度为基本流畅;掉帧日志的总数量为20-40时,对应的帧数差值为20-40,匹配的流畅度为正常;掉帧日志的总数量在40-50时,对应的帧数差值为10-20,匹配的流畅度为卡顿;掉帧日志的总数量为50-60时,对应的帧数差值为0-10,匹配的流畅度为非常卡顿。
需要说明的是,掉帧日志的总数量和流畅度的匹配关系可以根据实际情况进行设置,例如,当掉帧日志的总数量为1-5时,对应的流畅度为一般流畅,还可以为对应其他流畅度,具体此处不做限定。
本发明实施例,获取待测试应用程序APP的目标代码;通过待测试APP的反射机制修改控制类,控制类用于控制生成的掉帧日志的数量;基于预置的测试框架和修改后的控制类执行测试用例,得到测试结果,测试用例用于对目标代码进行测试;从测试结果中提取掉帧日志,并统计掉帧日志的总数量;根据掉帧日志的总数量确定待测试APP的流畅度,提高了应用程序的流畅度测试效率,降低了测试成本,并提高了流畅度测试的准确性。
请参阅图2,本发明实施例提供的应用程序流畅度的测试方法的另一个流程图,具体包括:
201、生成统一控制脚本,统一控制脚本用于控制待测试APP的安装、同步控制脚本的执行及掉帧日志解析报告的输出。
应用程序流畅度的测试装置生成统一控制脚本,该统一控制脚本用于控制待测试APP的安装、同步控制脚本的执行及掉帧日志解析报告的输出。其中,统一控制脚本通过控制同步控制脚本间接控制测试用例的执行和掉帧日志的输出。
202、获取待测试应用程序APP的目标代码。
应用程序流畅度的测试装置获取待测试APP的目标代码,待测试APP的目标代码包括各种函数代码和各种类代码,本发明实施例中的目标代码是指APP中的全部代码,不做具体细分,都需要进行测试。
可以理解的是,本发明的执行主体为应用程序流畅度的测试装置,还可以是终端或者服务器,具体此处不做限定。本发明以应用程序流畅度的测试装置为执行主体为例进行说明。
203、通过待测试APP的反射机制修改控制类,控制类用于控制生成的掉帧日志的数量。
应用程序流畅度的测试装置通过待测试APP的反射机制修改控制类,其中,控制类用于控制生成的掉帧日志的数量。具体的,应用程序流畅度的测试装置首先根据待测试APP的反射机制对控制类的变量进行修改;然后根据修改后的控制类对待测试APP进行控制。例如,通过待测试App中的Java反射机制确定控制类的类属性;确定类属性中的掉帧提醒门槛值;将掉帧提醒门槛值的默认值修改为1。具体的,应用程序流畅度的测试装置确定AndroidChoreographer类的类属性SKIPPED_FRAME_WARNING_LIMIT;类属性SKIPPED_FRAME_WARNING_LIMIT的掉帧提醒门槛值默认值为30,将该默认值修改为1,使得待测试APP在执行测试脚本的过程中,当出现掉帧数大于或等于1的现象时,输出对应的掉帧日志。
应用程序流畅度的测试装置通过待测试APP中的Java反射机制修改待测试App的代码。其中,Java反射机制是在运行状态中,对于任意一个实体类,都能够获取这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性,这种动态获取信息以及动态调用对象方法的功能称为Java语言的反射机制。
204、生成同步控制脚本,同步控制脚本用于同步控制测试用例的执行与掉帧日志的输出。
应用程序流畅度的测试装置生成同步控制脚本,该同步控制脚本用于同步控制测试用例的执行与掉帧日志的输出。
在本实例中,由于执行测试用例和输出掉帧日志是两个不同的项目,两者是彼此独立进行的,因此应用程序流畅度的测试装置需要生成一个控制脚本来同步控制执行测试用例和输出掉帧日志,使得待测试APP在执行测试用例时,一旦出现掉帧数大于等于默认值的现象就同步输出对应的掉帧日志。
205、基于预置的测试框架和修改后的控制类执行测试用例,得到测试结果,测试用例用于对目标代码进行测试。
应用程序流畅度的测试装置基于预置的测试框架和修改后的控制类执行测试用例,得到测试结果,测试用例用于对目标代码进行测试。具体的,测试用例的执行过程如下:调用预置的jenkins测试框架;在预置的jenkins测试框架中配置jenkins任务,jenkins任务为执行统一控制脚本;安装待测试APP;将测试用例输入到待测试APP;通过同步控制脚本控制待测试APP执行测试用例;通过同步控制脚本和修改后的控制类控制待测试APP输出掉帧日志;对掉帧日志进行整理,得到测试结果。其中,测试框架为预先设置的,而测试用例可以是预先设置好的,也可以是当前生成的,具体此处不做限定。
在本实施例中,首先配置jenkins任务,安装完成待测试APP,其次将测试用例拉取至执行机,通过同步控制脚本来控制待测试APP执行测试用例及控制Android***输出掉帧日志。
206、从测试结果中提取掉帧日志,并统计掉帧日志的总数量。
应用程序流畅度的测试装置从测试结果中提取掉帧日志,并统计掉帧日志的总数量。具体的,应用程序流畅度的测试装置对获取到的测试结果进行解析,其中,测试结果中包括有测试用例的测试数据和掉帧日志,将其中的掉帧日志单独提取出来并进行统计,得到掉帧日志的总数量。
207、根据掉帧日志的总数量确定待测试APP的流畅度。
应用程序流畅度的测试装置根据掉帧日志的总数量确定待测试APP的流畅度。具体的,解析出在待测试APP执行测试用例的过程中,每一秒的掉帧数;以60减去掉帧数得到帧数差值,并将帧数差值作为待测试APP的测试流畅度值;根据预先设置的匹配关系,将掉帧日志的总数量和预置的流畅度进行匹配,得到待测试APP的流畅度,预置的流畅度包括非常流畅、一般流畅、卡顿和非常卡顿。其中,匹配关系可以是工作人员事先进行设置的,例如,掉帧日志的总数量为0-10时,对应的帧数差值为50-60,匹配的流畅度为非常流畅;掉帧日志的总数量为10-20时,对应的帧数差值为40-50,匹配的流畅度为基本流畅;掉帧日志的总数量为20-40时,对应的帧数差值为20-40,匹配的流畅度为正常;掉帧日志的总数量在40-50时,对应的帧数差值为10-20,匹配的流畅度为卡顿;掉帧日志的总数量为50-60时,对应的帧数差值为0-10,匹配的流畅度为非常卡顿。
需要说明的是,应用程序流畅度的测试装置还可以整理掉帧日志并形成掉帧日志解析报告,并将掉帧日志解析报告上传至服务器,其中,所述掉帧日志解析报告的内容包括掉帧日志和掉帧分析结果。
可以理解的是,应用程序流畅度的测试装置还可以将执行测试用例的测试数据上传至代码管理服务器进行管理,以记录和保存执行测试用例的测试数据,测试用例的测试数据包括测试用例和与待测试APP的流畅度值,待测试APP的流畅度值与测试用例对应,以使得服务器记录并保存测试用例的测试数据,当流畅度值低于20时,服务器确定待测试APP测试卡顿。其中,服务器可以是GIT或者SVN,GIT是一个开源的分布式版本控制***,可以有效、高速的处理从很小到非常大的项目版本管理,GIT是Linus Torvalds为了帮助管理Linux内核开发而开发的一个开放源码的版本控制软件。SVN是Subversion的简称,是一个开放源代码的版本控制***,相较于RCS和CVS,它采用了分支管理***,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion,即SVN是用于多个人共同开发同一个项目,共用资源的目的。
本发明实施例,生成统一控制脚本,统一控制脚本用于控制待测试APP的安装、同步控制脚本的执行及掉帧日志解析报告的输出;获取待测试应用程序APP的目标代码;通过待测试APP的反射机制修改控制类,控制类用于控制生成的掉帧日志的数量;生成同步控制脚本,该同步控制脚本用于同步控制测试用例的执行与掉帧日志的输出;基于预置的测试框架和修改后的控制类执行测试用例,得到测试结果,测试用例用于对目标代码进行测试;从测试结果中提取掉帧日志,并统计掉帧日志的总数量;根据掉帧日志的总数量确定待测试APP的流畅度,提高了应用程序的流畅度测试效率,降低了测试成本,并提高了流畅度测试的准确性。
上面对本发明实施例中应用程序流畅度的测试方法进行了描述,下面对本发明实施例中应用程序流畅度的测试装置进行描述,请参阅图3,本发明实施例中应用程序流畅度的测试装置的一个实施例包括:
获取单元301,用于获取待测试应用程序APP的目标代码;
修改单元302,用于通过所述待测试APP的反射机制修改控制类,所述控制类用于控制生成的掉帧日志的数量;
执行单元303,用于基于预置的测试框架和修改后的控制类执行测试用例,得到测试结果,所述测试用例用于对所述目标代码进行测试;
统计单元304,用于从所述测试结果中提取掉帧日志,并统计所述掉帧日志的总数量;
确定单元305,用于根据所述掉帧日志的总数量确定所述待测试APP的流畅度。
本发明实施例,获取待测试应用程序APP的目标代码;通过待测试APP的反射机制修改控制类,控制类用于控制生成的掉帧日志的数量;基于预置的测试框架和修改后的控制类执行测试用例,得到测试结果,测试用例用于对目标代码进行测试;从测试结果中提取掉帧日志,并统计掉帧日志的总数量;根据掉帧日志的总数量确定待测试APP的流畅度,提高了应用程序的流畅度测试效率,降低了测试成本,并提高了流畅度测试的准确性。
请参阅图4,本发明实施例中应用程序流畅度的测试装置的另一个实施例包括:
获取单元301,用于获取待测试应用程序APP的目标代码;
修改单元302,用于通过所述待测试APP的反射机制修改控制类,所述控制类用于控制生成的掉帧日志的数量;
执行单元303,用于基于预置的测试框架和修改后的控制类执行测试用例,得到测试结果,所述测试用例用于对所述目标代码进行测试;
统计单元304,用于从所述测试结果中提取掉帧日志,并统计所述掉帧日志的总数量;
确定单元305,用于根据所述掉帧日志的总数量确定所述待测试APP的流畅度。
可选的,修改单元302具体用于:
通过所述待测试App中的Java反射机制确定控制类的类属性;确定所述类属性中的掉帧提醒门槛值;将所述掉帧提醒门槛值的默认值修改为1。
可选的,应用程序流畅度的测试装置还包括:
第一生成单元306,用于生成同步控制脚本,所述同步控制脚本用于同步控制测试用例的执行与掉帧日志的输出。
可选的,应用程序流畅度的测试装置还包括:
第二生成单元307,用于生成统一控制脚本,所述统一控制脚本用于控制所述待测试APP的安装、所述同步控制脚本的执行及掉帧日志解析报告的输出。
可选的,执行单元303具体用于:
调用预置的jenkins测试框架;在所述预置的jenkins测试框架中配置jenkins任务,所述jenkins任务为执行所述统一控制脚本;安装待测试APP;将测试用例输入到所述待测试APP;通过所述同步控制脚本控制所述待测试APP执行测试用例;通过所述同步控制脚本和所述修改后的控制类控制所述待测试APP输出掉帧日志;对所述掉帧日志进行整理,得到测试结果。
可选的,确定单元305具体用于:
解析出在所述待测试APP执行测试用例的过程中,每一秒的掉帧数;以60减去掉帧数得到帧数差值,并将所述帧数差值作为所述待测试APP的测试流畅度值;根据预先设置的匹配关系,将所述掉帧日志的总数量和预置的流畅度进行匹配,得到所述待测试APP的流畅度,所述预置的流畅度包括非常流畅、一般流畅、卡顿和非常卡顿。
可选的,应用程序流畅度的测试装置还包括:
上传单元308,用于将测试用例的测试数据上传至服务器,所述测试用例的测试数据包括测试用例和与所述待测试APP的流畅度值,所述待测试APP的流畅度值与所述测试用例对应,以使得所述服务器记录并保存所述测试用例的测试数据。
本发明实施例,生成统一控制脚本,统一控制脚本用于控制待测试APP的安装、同步控制脚本的执行及掉帧日志解析报告的输出;获取待测试应用程序APP的目标代码;通过待测试APP的反射机制修改控制类,控制类用于控制生成的掉帧日志的数量;生成同步控制脚本,该同步控制脚本用于同步控制测试用例的执行与掉帧日志的输出;基于预置的测试框架和修改后的控制类执行测试用例,得到测试结果,测试用例用于对目标代码进行测试;从测试结果中提取掉帧日志,并统计掉帧日志的总数量;根据掉帧日志的总数量确定待测试APP的流畅度,提高了应用程序的流畅度测试效率,降低了测试成本,并提高了流畅度测试的准确性。
上面图3至图4从模块化功能实体的角度对本发明实施例中的应用程序流畅度的测试装置进行详细描述,下面从硬件处理的角度对本发明实施例中应用程序流畅度的测试设备进行详细描述。
图5是本发明实施例提供的一种应用程序流畅度的测试设备的结构示意图,该应用程序流畅度的测试设备500可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central processing units,CPU)501(例如,一个或一个以上处理器)和存储器509,一个或一个以上存储应用程序507或数据506的存储介质508(例如一个或一个以上海量存储设备)。其中,存储器509和存储介质508可以是短暂存储或持久存储。存储在存储介质508的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对应用程序流畅度的测试设备中的一系列指令操作。更进一步地,处理器501可以设置为与存储介质508通信,在应用程序流畅度的测试设备500上执行存储介质508中的一系列指令操作。
应用程序流畅度的测试设备500还可以包括一个或一个以上电源502,一个或一个以上有线或无线网络接口503,一个或一个以上输入输出接口504,和/或,一个或一个以上操作***505,例如Windows Serve,Mac OS X,Unix,Linux,FreeBSD等等。本领域技术人员可以理解,图5中示出的应用程序流畅度的测试设备结构并不构成对应用程序流畅度的测试设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。处理器501可以执行上述实施例中获取单元301、修改单元302、执行单元303、统计单元304、确定单元305、第一生成单元306、第二生成单元307和关联单元310的功能。输入输出接口504可以执行上述实施例中上传单元308的功能。
下面结合图5对应用程序流畅度的测试设备的各个构成部件进行具体的介绍:
处理器501是应用程序流畅度的测试设备的控制中心,可以按照设置的应用程序流畅度的测试方法进行处理。处理器501利用各种接口和线路连接整个应用程序流畅度的测试设备的各个部分,通过运行或执行存储在存储器509内的软件程序和/或模块,以及调用存储在存储器509内的数据,执行应用程序流畅度的测试设备的各种功能和处理数据,从而实现测试APP流畅度的目的。存储介质508和存储器509都是存储数据的载体,本发明实施例中,存储介质508可以是指储存容量较小,但速度快的内存储器,而存储器509可以是储存容量大,但储存速度慢的外存储器。
存储器509可用于存储软件程序以及模块,处理器501通过运行存储在存储器509的软件程序以及模块,从而执行应用程序流畅度的测试设备500的各种功能应用以及数据处理。存储器509可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需的应用程序(比如通过所述待测试APP的反射机制修改控制类,所述控制类用于控制生成的掉帧日志的数量)等;存储数据区可存储根据应用程序流畅度的测试设备的使用所创建的数据(比如统一控制脚本等)等。此外,存储器509可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。在本发明实施例中提供的应用程序流畅度的测试方法程序和接收到的数据流存储在存储器中,当需要使用时,处理器501从存储器509中调用。
在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、双绞线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,光盘)、或者半导体介质(例如固态硬盘(solid state disk,SSD))等。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的***,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本发明所提供的几个实施例中,应该理解到,所揭露的***,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (10)

1.一种应用程序流畅度的测试方法,其特征在于,包括:
获取待测试应用程序APP的目标代码;
通过所述待测试APP的反射机制修改控制类,所述控制类用于控制生成的掉帧日志的数量;
基于预置的测试框架和修改后的控制类执行测试用例,得到测试结果,所述测试用例用于对所述目标代码进行测试;
从所述测试结果中提取掉帧日志,并统计所述掉帧日志的总数量;
根据所述掉帧日志的总数量确定所述待测试APP的流畅度。
2.根据权利要求1所述的应用程序流畅度的测试方法,其特征在于,所述通过所述待测试APP的反射机制修改控制类,所述控制类用于控制生成的掉帧日志的数量包括:
通过所述待测试App中的Java反射机制确定控制类的类属性;
确定所述类属性中的掉帧提醒门槛值;
将所述掉帧提醒门槛值的默认值修改为1。
3.根据权利要求1所述的应用程序流畅度的测试方法,其特征在于,在所述通过所述待测试APP的反射机制修改控制类之后,在所述基于预置的测试框架执行测试用例,得到测试结果之前,所述方法还包括:
生成同步控制脚本,所述同步控制脚本用于同步控制测试用例的执行与掉帧日志的输出。
4.根据权利要求3所述的应用程序流畅度的测试方法,其特征在于,在所述获取待测试应用程序APP的目标代码之前,所述方法还包括:
生成统一控制脚本,所述统一控制脚本用于控制所述待测试APP的安装、所述同步控制脚本的执行及掉帧日志解析报告的输出。
5.根据权利要求4所述的应用程序流畅度的测试方法,其特征在于,所述基于预置的测试框架和修改后的控制类执行测试用例,得到测试结果,所述测试用例用于对所述目标代码进行测试包括:
调用预置的jenkins测试框架;
在所述预置的jenkins测试框架中配置jenkins任务,所述jenkins任务为执行所述统一控制脚本;
安装待测试APP;
将测试用例输入到所述待测试APP;
通过所述同步控制脚本控制所述待测试APP执行测试用例;
通过所述同步控制脚本和所述修改后的控制类控制所述待测试APP输出掉帧日志;
对所述掉帧日志进行整理,得到测试结果。
6.根据权利要求1-5中任一所述的应用程序流畅度的测试方法,其特征在于,所述根据所述掉帧日志的总数量确定所述待测试APP的流畅度包括:
解析出在所述待测试APP执行测试用例的过程中,每一秒的掉帧数;
以60减去掉帧数得到帧数差值,并将所述帧数差值作为所述待测试APP的测试流畅度值;
根据预先设置的匹配关系,将所述掉帧日志的总数量和预置的流畅度进行匹配,得到所述待测试APP的流畅度,所述预置的流畅度包括非常流畅、一般流畅、卡顿和非常卡顿。
7.根据权利要求6所述的应用程序流畅度的测试方法,其特征在于,所述方法还包括:
将测试用例的测试数据上传至服务器,所述测试用例的测试数据包括测试用例和与所述待测试APP的流畅度值,所述待测试APP的流畅度值与所述测试用例对应,以使得所述服务器记录并保存所述测试用例的测试数据。
8.一种应用程序流畅度的测试装置,其特征在于,包括:
获取单元,用于获取待测试应用程序APP的目标代码;
修改单元,用于通过所述待测试APP的反射机制修改控制类,所述控制类用于控制生成的掉帧日志的数量;
执行单元,用于基于预置的测试框架和修改后的控制类执行测试用例,得到测试结果,所述测试用例用于对所述目标代码进行测试;
统计单元,用于从所述测试结果中提取掉帧日志,并统计所述掉帧日志的总数量;
确定单元,用于根据所述掉帧日志的总数量确定所述待测试APP的流畅度。
9.一种应用程序流畅度的测试设备,其特征在于,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如权利要求1-7中任意一项所述的应用程序流畅度的测试方法。
10.一种计算机可读存储介质,其特征在于,包括指令,当所述指令在计算机上运行时,使得计算机执行如权利要求1-7中任意一项所述的应用程序流畅度的测试方法。
CN201910536839.XA 2019-06-20 2019-06-20 应用程序流畅度的测试方法、装置、设备及存储介质 Pending CN110377504A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910536839.XA CN110377504A (zh) 2019-06-20 2019-06-20 应用程序流畅度的测试方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910536839.XA CN110377504A (zh) 2019-06-20 2019-06-20 应用程序流畅度的测试方法、装置、设备及存储介质

Publications (1)

Publication Number Publication Date
CN110377504A true CN110377504A (zh) 2019-10-25

Family

ID=68250478

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910536839.XA Pending CN110377504A (zh) 2019-06-20 2019-06-20 应用程序流畅度的测试方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN110377504A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113993157A (zh) * 2021-10-27 2022-01-28 深圳市芯中芯科技有限公司 基于蓝牙透传的蜂窝物联网网络参数在线检测***及方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070162894A1 (en) * 2006-01-11 2007-07-12 Archivas, Inc. Method of and system for dynamic automated test case generation and execution
CN105446878A (zh) * 2015-11-09 2016-03-30 上海爱数信息技术股份有限公司 一种持续的程序自动化测试方法
CN108628735A (zh) * 2017-03-22 2018-10-09 腾讯科技(深圳)有限公司 应用的自动化测试方法和***
CN109766258A (zh) * 2018-11-30 2019-05-17 北京奇艺世纪科技有限公司 一种性能测试方法、装置及计算机可读存储介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070162894A1 (en) * 2006-01-11 2007-07-12 Archivas, Inc. Method of and system for dynamic automated test case generation and execution
CN105446878A (zh) * 2015-11-09 2016-03-30 上海爱数信息技术股份有限公司 一种持续的程序自动化测试方法
CN108628735A (zh) * 2017-03-22 2018-10-09 腾讯科技(深圳)有限公司 应用的自动化测试方法和***
CN109766258A (zh) * 2018-11-30 2019-05-17 北京奇艺世纪科技有限公司 一种性能测试方法、装置及计算机可读存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
陈帅: "【Android场景化性能测试】UI流畅度篇", pages 1 - 10, Retrieved from the Internet <URL:https://cloud.tencent.com/developer/article/1006242> *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113993157A (zh) * 2021-10-27 2022-01-28 深圳市芯中芯科技有限公司 基于蓝牙透传的蜂窝物联网网络参数在线检测***及方法

Similar Documents

Publication Publication Date Title
CN107688530A (zh) 软件测试方法及装置
CN107832226A (zh) 基于性能测试的报告生成方法、装置、设备和计算机介质
CN108459964B (zh) 测试用例选择方法、装置、设备以及计算机可读存储介质
CN105302706B (zh) 应用程序测试方法和装置
CN110941467A (zh) 数据处理方法、装置及***
US10503341B2 (en) Usability analysis for user interface based systems
CN109857630A (zh) 代码检测方法、***及设备
CN109327355A (zh) 云存储***性能评测方法、装置及计算机可读存储介质
CN111782317A (zh) 页面的测试方法和装置、存储介质和电子装置
US10536339B2 (en) Systems and methods for system configuration for communication network devices
CN103246606A (zh) Esb平台的性能方法和***
CN114564374A (zh) 算子性能评估方法、装置、电子设备及存储介质
CN115698941A (zh) 组件的高效打包
CN110413503A (zh) 一种应用程序性能监控方法、装置、设备及存储介质
CN110377504A (zh) 应用程序流畅度的测试方法、装置、设备及存储介质
CN109522179B (zh) 服务器运行状态的监控方法、装置、处理器及服务器
CN105045717B (zh) 测试环境部署方法、装置和***
CN109582560A (zh) 测试文件编辑方法、装置、设备及计算机可读存储介质
CN113452556A (zh) 产品技能的配置方法、装置、存储介质及电子装置
CN108875536A (zh) 行人分析方法、装置、***和存储介质
CN107678965A (zh) 自动集成测试方法及***、服务终端、存储器
CN106302011A (zh) 基于多端的测试方法及终端
CN114327709A (zh) 一种控制页面生成方法、装置、智能设备及存储介质
CN112231186B (zh) 一种性能数据的处理方法、装置、电子设备及介质
CN103269341A (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