CN109522208A - 页面流畅度测试方法及装置、计算机装置及存储介质 - Google Patents

页面流畅度测试方法及装置、计算机装置及存储介质 Download PDF

Info

Publication number
CN109522208A
CN109522208A CN201811151289.1A CN201811151289A CN109522208A CN 109522208 A CN109522208 A CN 109522208A CN 201811151289 A CN201811151289 A CN 201811151289A CN 109522208 A CN109522208 A CN 109522208A
Authority
CN
China
Prior art keywords
time
frame
test scene
test
page
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.)
Granted
Application number
CN201811151289.1A
Other languages
English (en)
Other versions
CN109522208B (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.)
Ping An Life Insurance Company of China Ltd
Original Assignee
Ping An Life Insurance Company of China 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 Life Insurance Company of China Ltd filed Critical Ping An Life Insurance Company of China Ltd
Priority to CN201811151289.1A priority Critical patent/CN109522208B/zh
Publication of CN109522208A publication Critical patent/CN109522208A/zh
Application granted granted Critical
Publication of CN109522208B publication Critical patent/CN109522208B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/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

一种页面流畅度测试方法,包括:驱动测试场景以加载待测试页面的页面数据并显示待测试页面;获取该测试场景中每帧图像的绘制时间;统计绘制时间大于该图像帧标准绘制时间的帧的总数,并将该总数存至变量;计算该测试场景中绘制的总帧数;根据该变量值与该总帧数计算该测试场景掉帧率;根据每个大于该图像帧标准绘制时间的图像帧绘制时间计算每次掉帧额外绘制时间;计算该测试场景中额外绘制时间总数;根据该测试场景中绘制的总帧数及额外绘制时间总数计算该测试场景下的每秒传输帧数;及生成页面流畅度测试报告。本发明还提供一种页面流畅度测试装置、计算机装置及可读存储介质。本发明能够提高页面流畅度测试效率及准确度。

Description

页面流畅度测试方法及装置、计算机装置及存储介质
技术领域
本发明涉及软件测试技术领域,具体涉及一种页面流畅度测试方法及装置、计算机装置和计算机可读存储介质。
背景技术
随着移动通信技术的快速发展,各种移动终端(例如智能手机、平板电脑)及应用程序(APP)层出不穷,人们对使用过程中的体验也有了越来越高的要求。而在使用移动终端及应用程序的过程中,页面的流畅度是影响用户体验的重要因素之一,因此页面流畅度成为衡量移动终端系统或应用程序质量的重要指标。而在解决移动终端或应用程序的流畅性之前,必须先对页面流畅性进行测试。
目前,页面流畅度的测试可以通过测试人员人工测试,主观的观察网页是否流畅。但人工测试没有精确的衡量标准,主观上存在误差,不能快速且精准的测试流畅度。还有一种页面流畅度的衡量方法是通过数据线将移动终端连接至个人电脑,在移动终端上打开被测页面后,在个人电脑上使用指定工具远程调试页面,在时间线(TimeLine)中获取反应页面流畅度的参数。这种测试方式需要远程调试页面,对页面本身性能有一定影响,导致流畅度测试不准确,且需要人工介入,降低了页面流畅度测试的效率。
有基于此,需要提出一种更加智能、准确且高效率的页面流畅度测试方案。
发明内容
鉴于以上内容,有必要提出一种页面流畅度测试方法及装置、计算机装置和计算机可读存储介质,其可以智能且高效的测试页面流畅度。
本申请的第一方面提供一种页面流畅度测试方法,所述方法包括:
驱动测试场景以加载待测试页面的页面数据并显示待测试页面,其中所述页面数据包括多个图像帧;
执行所述测试场景的同时,获取所述测试场景中每帧图像的绘制时间Ti;
将所述获取到的每帧图像的绘制时间Ti与一图像帧标准绘制时间T1进行比较,统计绘制时间大于所述图像帧标准绘制时间T1的帧的总数,并将绘制时间大于所述图像帧标准绘制时间T的帧的总数存储至变量jank,其中所述变量jank中存储的值为所述测试场景中发生掉帧的次数;
计算所述测试场景中绘制的总帧数Count;
根据所述变量值jank与所述测试场景绘制的总帧数Count计算所述测试场景的掉帧率;
获取每个大于所述图像帧标准绘制时间T的图像绘制时间Ti,并根据每个大于所述图像帧标准绘制时间T的图像绘制时间Ti计算每次掉帧额外绘制时间vysnc_overtime;
根据所述每次掉帧额外绘制时间vysnc_overtime计算所述测试场景中额外绘制时间总数overtime_SUM,其中,所述测试场景中额外绘制时间总数overtime_SUM等于每次掉帧额外绘制时间vysnc_overtime相加得到的总和;
根据所述测试场景中绘制的总帧数Count以及所述测试场景中额外绘制时间总数overtime_SUM计算所述测试场景下的每秒传输帧数FPS;以及
根据所述掉帧率和所述测试场景每秒传输帧数生成页面流畅度测试报告。
本申请的第二方面提供一种页面流畅度测试装置,所述装置包括:
测试场景驱动单元,用于驱动测试场景以加载待测试页面的页面数据并显示待测试页面,其中所述页面数据包括多个图像帧;
计算单元,用于在所述测试场景驱动单元执行所述测试场景的同时,获取所述测试场景中每帧图像的绘制时间Ti;将所述获取到的每帧图像的绘制时间Ti与一图像帧标准绘制时间T1进行比较,计算绘制时间大于所述图像帧标准绘制时间T1的帧的总数,并将绘制时间大于所述图像帧标准绘制时间T的帧的总数存储至变量jank,其中所述变量jank中存储的值为所述测试场景中发生掉帧的次数;计算所述测试场景中绘制的总帧数Count;根据所述变量值jank与所述测试场景绘制的总帧数Count计算所述测试场景的掉帧率;获取每个大于所述图像帧标准绘制时间T的图像绘制时间Ti,并根据每个大于所述图像帧标准绘制时间T的图像绘制时间Ti计算每次掉帧额外绘制时间vysnc_overtime;根据所述每次掉帧额外绘制时间vysnc_overtime计算所述测试场景中额外绘制时间总数overtime_SUM,其中,所述测试场景中额外绘制时间总数overtime_SUM等于每次掉帧额外绘制时间vysnc_overtime相加得到的总和;根据所述测试场景中绘制的总帧数Count以及所述测试场景中额外绘制时间总数overtime_SUM计算所述测试场景下的每秒传输帧数:FPS=Count*60/(Count+overtime_SUM)。
本申请的第三方面提供一种计算机装置,所述计算机装置包括处理器,所述处理器用于执行存储器中存储的计算机程序时实现如前所述应用程序启动时间测试方法。
本申请的第四方面提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如前所述应用程序启动时间测试方法。
本发明.自动执行测试场景及自动抓取测试数据,提高了测试效率,节约人力成本。另外,通过计算掉帧率和FPS衡量页面流畅度,可以提高页面流畅度测试的准确度。
附图说明
图1是本发明一实施例中页面流畅度测试方法的流程图。
图2为本发明一实施例中页面流畅度测试装置的结构示意图。
图3为本发明一实施例中计算机装置示意图。
具体实施方式
为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施例对本发明进行详细描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。
优选地,本发明的页面流畅度测试方法应用在一个或者多个计算机装置中。所述计算机装置是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路(Application Specific IntegratedCircuit,ASIC)、可编程门阵列(Field-Programmable Gate Array,FPGA)、数字处理器(Digital Signal Processor,DSP)、嵌入式设备等。
所述计算机装置可以是桌上型计算机、笔记本电脑、平板电脑及云端服务器等计算设备。所述计算机装置可以与用户通过键盘、鼠标、遥控器、触摸板或声控设备等方式进行人机交互。
实施例一
图1是本发明页面流畅度测试方法较佳实施例的流程图。根据不同的需求,所述流程图中步骤的顺序可以改变,某些步骤可以省略。
参阅图1所示,所述页面流畅度测试方法具体包括以下步骤。
步骤S11、驱动测试场景以加载待测试页面的页面数据并显示待测试页面,其中所述页面数据包括多个图像帧。
所述图像帧为页面数据中的图像帧数据,在需要显示被测试页面时,通过对所述图像帧数据进行绘制,展示绘制的页面图像。
举例而言,所述测试场景可以是进入待测试应用程序一页面后,在所述应用程序的页面中进行向左的滑动操作或向右的滑动操作,使得页面进行向左移动或向右移动的动态显示。
在本实施方式中,所述测试场景由自动化测试框架Appium进行驱动并加载待测试页面的页面数据。其中自动化测试框架Appium是一个跨平台的移动端的自动化框架,可用于测试原生应用、移动网页应用和混合型应用。原生应用指的是能直接运行于当前操作系统的应用程序。移动网页应用指需要在浏览器中运行的网页应用。混合应用则是两者的结合,通常是一个原生应用内嵌了浏览器。
可选地,所述测试场景还可以通过UIAutomator、Robotium等其他自动化测试框架进行驱动来加载待测试页面的页面数据。
在本发明另一实施方式中,所述测试场景的执行还可以是通过接收计算机设备下发的脚本执行指令,通过执行预设的脚本来实现。
在本发明其他实施方式中,所述测试场景的执行还可以是通过如下方式实现:响应用户输入的操作指令开启浏览器,通过浏览器加载所述待测试页面,以实现测试场景的执行。
所述待测试页面类型的可以为多种,例如可以是HTML(HyperText MarkupLanguage,超文本标记语言)页面、H5(HTML5)页面等。
步骤S12、执行所述测试场景的同时获取所述测试场景中每帧图像的绘制时间Ti。
比如,页面数据中包括图像帧1、图像帧2…图像帧i…图像帧n,当依次绘制所述图像帧1至图像帧n时,分别获取每帧图像的绘制时间T1,T2…Ti…Tn。
在本发明一实施方式中,获取所述测试场景中每帧图像的绘制时间Ti的方法为:在执行所述测试场景的同时,通过开启异步线程adb shell dumpsys gfxinfo"PACKAGE_NAME"获取所述测试场景执行过程中的帧数据,并根据所述帧数据计算所述每帧图像的绘制时间,其中每帧图像绘制时间Ti=绘制时间+处理时间+执行时间。其中,dumpsys是一个Android系统自带的工具,用于将系统服务状态的信息dump出来。对dumpsys传递gfxinfo参数可以输出当前电子设备中的某个应用动画帧的状态。所述命令中的"PACKAGE_NAME"是待测试应用程序的包名,例如,待测试页面是应用程序“微信”中的页面时,所述应用程序的包名可以是微信的包名。
优选地,所述异步线程adb shell dumpsys gfxinfo"PACKAGE_NAME"每隔预定时间获取一次帧数据,例如每2秒获取一次帧数据。
在本发明另一实施方式中,获取每帧图像的绘制时间Ti的方法包括:
1)为每个待绘制的图像帧注册一个回调函数;
2)在开始对当前图像帧进行绘制时,调用当前图像帧对应的回调函数;
3)通过所述回调函数记录当前图像帧的起始绘制时间,比如,通过所述回调函数记录一个时间戳,所述时间戳即为当前图像帧的起始绘制时间;
4)根据当前图像帧的起始绘制时间与前一图像帧的起始绘制时间计算前一帧图像的绘制时间,即,当前图像帧与上一图像帧的起始绘制时间之差即为上一图像帧的绘制时间。
步骤S13、将所述获取到的每帧图像的绘制时间Ti与一图像帧标准绘制时间T1进行比较,统计绘制时间大于所述图像帧标准绘制时间T1的帧的总数,并将绘制时间大于所述图像帧标准绘制时间T的帧的总数存储至变量jank,其中所述变量jank中存储的值为所述测试场景中发生掉帧的次数。
现在的应用程序一般每秒钟绘制60帧就能够看到流畅的画面,每秒绘制60帧对应每帧的绘制时间为:1000ms/60=16.67ms,也就是说应用程序中对页面绘制的要求是平均每帧的绘制时间为16.67ms,超过了这个时间页面就可能造成不流畅的现象。因此,在本实施方式中,所述每帧图像标准绘制时间T1为16.67ms。如果某一帧的图像绘制时间为20ms,超过了所述图像帧标准绘制时间16.67ms,那么绘制所述帧图像的时间占用了下一帧图像的绘制时间,则下一帧会发生掉帧的情况。因此,通过记录绘制时间大于图像帧标准绘制时间T的帧的总数可以获得掉帧发生的次数,即,变量jank中存储的数值为所述测试场景中发生掉帧的次数。可以理解的是,所述图像帧的标准绘制时间也可以根据实际需求进行设定,并不限定为16.67ms.
在本实施方式中,所述步骤S13具体包括:
1).将当前帧的绘制时间Ti与所述图像帧的标准绘制时间T1进行比较,判断当前帧的绘制时间Ti是否大于所述图像帧的标准绘制时间T1;
b.若是,则将所述变量jank的值加1,其中,变量jank的初始值为0;
c.若否,则变量jank的值不变;
d.判断是否存在下一图像帧,若是,则继续执行步骤a-c,若否,结束计算并存储所述变量jank的值。
例如,所述获取到的每帧图像的绘制时间Ti中,绘制时间大于所述图像帧标准绘制时间T1(16.67ms)的帧总共有10个,那么所述变量jank的值为10。
步骤S14、计算所述测试场景中绘制的总帧数Count。
在本实施方式中,所述测试场景中绘制的总帧数等于异步线程adb shelldumpsys gfxinfo"PACKAGE_NAME"在整个场景执行过程中每次获取的帧数的总和。例如,整个场景的时长共10秒钟,异步线程每2秒获取一次当前页面的帧数据,所述帧数据中包括2秒内所述测试场景中绘制的帧数,整个场景中一共获取5次帧数据,那么所述测试场景中绘制的总帧数等于所述5次获取的帧数的总和。
步骤S15、根据所述变量值jank与所述测试场景绘制的总帧数Count计算所述测试场景的掉帧率。
具体地,所述测试场景掉帧率等于场景中发生掉帧的次数jank与场景中绘制的总帧数Count的比值,即,所述测试场景的掉帧率的计算公式为:掉帧率=jank/Count。
步骤S16、获取每个大于所述图像帧标准绘制时间T的图像绘制时间Ti,并根据每个大于所述图像帧标准绘制时间T的图像绘制时间Ti计算每次掉帧额外绘制时间vysnc_overtime。
具体地,掉帧额外绘制时间vysnc_overtime等于所述大于所述图像帧标准绘制时间T的图像绘制时间Ti与图像帧标准绘制时间T的比值再取整数,即,计算掉帧额外绘制时间vysnc_overtime的公式为:vysnc_overtime=[Ti/T]。本实施方式中,图像帧标准绘制时间T=16.67ms。
步骤S17、根据所述每次掉帧额外绘制时间vysnc_overtime计算所述测试场景中额外绘制时间总数overtime_SUM,其中,所述测试场景中额外绘制时间总数overtime_SUM等于每次掉帧额外绘制时间vysnc_overtime相加得到的总和。
步骤S18、根据所述测试场景中绘制的总帧数Count以及所述测试场景中额外绘制时间总数overtime_SUM计算所述测试场景下的每秒传输帧数(Frames Per Second,FPS)。
具体地,计算所述测试场景下帧率FPS的公式为:
FPS=Count*60/(Count+overtime_SUM)。
其中,FPS是指画面每秒钟传输的帧数,每秒钟帧数越多,画面所显示的动作就越流畅,反之,每秒钟帧数越少,画面所显示的动作就越不流畅。
优选地,所述页面流畅度测试方法还可以包括如下步骤:
1)在启动所述测试场景之前,设定所述页面流畅度测试执行的预设次数;
2)在每次计算完成所述测试场景下的FPS后,记录每次计算得出的FPS并将测试执行次数加1;
3)判断当前测试执行次数是否达到所述预设次数;
4)若是,则确认所述页面流畅度测试完成,并执行步骤S19;
5)若否,则继续执行步骤S11-S18。
步骤S19、根据所述掉帧率和所述测试场景每秒传输帧数FPS生成页面流畅度测试报告。
本实施方式中,所述测试报告中包括掉帧率和所述测试场景每秒传输帧数PFS。其中,掉帧率越高代表页面流畅度越低,反之,掉帧率越低代表页面流畅度越高。所述测试场景中每秒传输帧数越高代表页面流畅度越高,反之,所述测试场景中每秒传输帧数越低代表流畅度越低。
优选地,当所述页面流畅度测试执行完预设次数(例如n次)后,可以得到一组掉帧率,即掉帧率1、掉帧率2……掉帧率n,和一组FPS,即FPS1,FPS2……FPSn。所述页面流畅度测试报告中包括该组FPS和该组掉帧率,通过FPS组和掉帧率组来衡量所述页面的流畅度,例如通过掉帧率平均值以及FPS平均值来衡量页面流畅度,以进一步提高页面流畅度测试的准确度。
可以理解的是,所述页面流畅度测试报告中还可以包括待测试页面名称及版本、开始测试时间与测试完成时间、每帧图像的绘制时间等其他与测试相关的参数。
优选地,所述页面流畅度测试报告的显示方式为在用户界面中将所述计算出的掉帧率与所述测试场景中每秒传输帧数进行显示,例如,在计算出所述掉帧率和每秒传输帧数后,在测试装置的用户界面中弹出测试结果报告页面,在所述测试结果报告页面中包括所述计算得出的掉帧率和每秒传输帧数FPS,用户可以通过所述掉帧率和FPS衡量页面流畅度。
可选择地,所述页面流畅度测试报告还可以是以word、Excel、PDF、txt.等格式的文件,用户可以将所述测试报告进行导出、打印、和/或通过邮件、短信方式将测试报告发送至预设人员邮箱、手机号等。
实施例二
图2为本发明页面流畅度测试装置较佳实施例的结构图。
参阅图2所示,所述页面流畅度测试装置10可以包括:测试场景驱动单元201、计算单元202、测试报告生成单元203。
所述测试场景驱动单元201用于驱动测试场景以加载待测试页面的页面数据并显示待测试页面,其中所述页面数据包括多个图像帧。
所述图像帧为页面数据中的图像帧数据,在需要显示被测试页面时,通过对所述图像帧数据进行绘制,展示绘制的页面图像。
举例而言,所述测试场景可以是进入待测试应用程序一页面后,在所述应用程序的页面中进行向左的滑动操作或向右的滑动操作,使得页面进行向左移动或向右移动的动态显示。
在本实施方式中,所述测试场景由自动化测试框架Appium进行驱动并加载待测试页面的页面数据。其中自动化测试框架Appium是一个跨平台的移动端的自动化框架,可用于测试原生应用、移动网页应用和混合型应用。原生应用指的是能直接运行于当前操作系统的应用程序。移动网页应用指需要在浏览器中运行的网页应用。混合应用则是两者的结合,通常是一个原生应用内嵌了浏览器。
可选地,所述测试场景还可以通过UIAutomator、Robotium等其他自动化测试框架进行驱动来加载待测试页面的页面数据。
在本发明另一实施方式中,所述测试场景的执行还可以是通过接收计算机设备下发的脚本执行指令,通过执行预设的脚本来实现。
在本发明其他实施方式中,所述测试场景的执行还可以是通过如下方式实现:响应用户输入的操作指令开启浏览器,通过浏览器加载所述待测试页面,以实现测试场景的执行。
所述待测试页面类型的可以为多种,例如可以是HTML(HyperText MarkupLanguage,超文本标记语言)页面、H5(HTML5)页面等。
所述计算单元202用于在所述测试场景驱动单元201执行所述测试场景的同时,获取所述测试场景中每帧图像的绘制时间Ti。
比如,页面数据中包括图像帧1、图像帧2…图像帧i…图像帧n,当依次绘制所述图像帧1至图像帧n时,分别获取每帧图像的绘制时间T1,T2…Ti…Tn。
在本发明一实施方式中,所述计算单元202获取所述测试场景中每帧图像的绘制时间Ti的方法为:在执行所述测试场景的同时,通过开启异步线程adb shell dumpsysgfxinfo"PACKAGE_NAME"获取所述测试场景执行过程中的帧数据,并根据所述帧数据计算所述每帧图像的绘制时间,其中每帧图像绘制时间Ti=绘制时间+处理时间+执行时间。其中,dumpsys是一个Android系统自带的工具,用于将系统服务状态的信息dump出来。对dumpsys传递gfxinfo参数可以输出当前电子设备中的某个应用动画帧的状态。所述命令中的"PACKAGE_NAME"是待测试应用程序的包名,例如,待测试页面是应用程序“微信”中的页面时,所述应用程序的包名可以是微信的包名。
优选地,所述异步线程adb shell dumpsys gfxinfo"PACKAGE_NAME"每隔预定时间获取一次帧数据,例如每2秒获取一次帧数据。
在本发明另一实施方式中,所述计算单元202获取每帧图像的绘制时间Ti的方法包括:
1)为每个待绘制的图像帧注册一个回调函数;
2)在开始对当前图像帧进行绘制时,调用当前图像帧对应的回调函数;
3)通过所述回调函数记录当前图像帧的起始绘制时间,比如,通过所述回调函数记录一个时间戳,所述时间戳即为当前图像帧的起始绘制时间;
4)根据当前图像帧的起始绘制时间与前一图像帧的起始绘制时间计算前一帧图像的绘制时间,即,当前图像帧与上一图像帧的起始绘制时间之差即为上一图像帧的绘制时间。
所述计算单元202还用于将所述获取到的每帧图像的绘制时间Ti与一图像帧标准绘制时间T1进行比较,计算绘制时间大于所述图像帧标准绘制时间T1的帧的总数,并将绘制时间大于所述图像帧标准绘制时间T的帧的总数存储至变量jank,其中所述变量jank中存储的值为所述测试场景中发生掉帧的次数。
在本实施方式中,所述每帧图像标准绘制时间T1为16.67ms。
所述计算单元202还用于计算所述测试场景中绘制的总帧数Count。
在本实施方式中,所述测试场景中绘制的总帧数等于异步线程adb shelldumpsys gfxinfo"PACKAGE_NAME"在整个场景执行过程中每次获取的帧数的总和。例如,整个场景的时长共10秒钟,异步线程每2秒获取一次当前页面的帧数据,所述帧数据中包括2秒内所述测试场景中绘制的帧数,整个场景中一共获取5次帧数据,那么所述测试场景中绘制的总帧数等于所述5次获取的帧数的总和。
所述计算单元202还用于根据所述变量值jank与所述测试场景绘制的总帧数Count计算所述测试场景的掉帧率。
具体地,所述测试场景掉帧率等于场景中发生掉帧的次数jank与场景中绘制的总帧数Count的比值,即,所述测试场景的掉帧率的计算公式为:掉帧率=jank/Count。
所述计算单元202还用于获取每个大于所述图像帧标准绘制时间T的图像绘制时间Ti,并根据每个大于所述图像帧标准绘制时间T的图像绘制时间Ti计算每次掉帧额外绘制时间vysnc_overtime。
具体地,掉帧额外绘制时间vysnc_overtime等于所述大于所述图像帧标准绘制时间T的图像绘制时间Ti与图像帧标准绘制时间T的比值再取整数,即,计算掉帧额外绘制时间vysnc_overtime的公式为:vysnc_overtime=[Ti/16.67]。
所述计算单元202还用于根据所述每次掉帧额外绘制时间vysnc_overtime计算所述测试场景中额外绘制时间总数overtime_SUM,其中,所述测试场景中额外绘制时间总数overtime_SUM等于每次掉帧额外绘制时间vysnc_overtime相加得到的总和。
所述计算单元202还用于根据所述测试场景中绘制的总帧数Count以及所述测试场景中额外绘制时间总数overtime_SUM计算所述测试场景下的FPS(Frames Per Second,每秒传输帧数)。
具体地,计算所述测试场景下帧率FPS的公式为:
FPS=Count*60/(Count+overtime_SUM)。
其中,FPS是指画面每秒钟传输的帧数,每秒钟帧数越多,画面所显示的动作就越流畅,反之,每秒钟帧数越少,画面所显示的动作就越不流畅。
所述测试报告生成单元203用于根据所述计算单元202计算出的掉帧率和所述测试场景每秒传输帧数FPS生成页面流畅度测试报告。
可以理解的是,所述页面流畅度测试报告中还可以包括待测试页面名称及版本、开始测试时间与测试完成时间、每帧图像的绘制时间等其他与测试相关的参数。
本发明一实施方式中,所述计算单元202还用于计算多组掉帧率及多组FPS,并根据所述多组掉帧率计算掉帧率平均值以及根据多组FPS计算FPS平均值。所述测试报告生成单元203根据所述掉帧率平均值及所述FPS平均值生成所述测试报告。
所述测试报告生成单元203还用于将所述页面流畅度测试报告显示给用户。一实施方式中,所述测试报告生成单元203将所述测试报告显示在用户界面中。所述页面流畅度测试报告还能够以word、Excel、PDF、txt.等格式的文件进行导出、打印、和/或通过邮件、短信方式将测试报告发送至预设人员邮箱、手机号等。
图3为本发明计算机装置较佳实施例的示意图。
所述计算机装置1包括存储器20、处理器30以及存储在所述存储器20中并可在所述处理器30上运行的计算机程序40,例如应用程序启动时间测试程序。所述处理器30执行所述计算机程序40时实现上述应用程序启动时间测试方法实施例中的步骤,例如图1所示的步骤S11~S15。或者,所述处理器30执行所述计算机程序40时实现上述测试装置实施例中各模块/单元的功能,例如图2中的单元201~203。
示例性的,所述计算机程序40可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器20中,并由所述处理器30执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,所述指令段用于描述所述计算机程序40在所述计算机装置1中的执行过程。例如,所述计算机程序40可以被分割成图2中的测试场景驱动单元201、计算单元202、测试报告生成单元203。各单元具体功能参见实施例二。
所述计算机装置1可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。本领域技术人员可以理解,所述示意图仅仅是计算机装置1的示例,并不构成对计算机装置1的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述计算机装置1还可以包括输入输出设备、网络接入设备、总线等。
所称处理器30可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者所述处理器30也可以是任何常规的处理器等,所述处理器30是所述计算机装置1的控制中心,利用各种接口和线路连接整个计算机装置1的各个部分。
所述存储器20可用于存储所述计算机程序40和/或模块/单元,所述处理器30通过运行或执行存储在所述存储器20内的计算机程序和/或模块/单元,以及调用存储在存储器20内的数据,实现所述计算机装置1的各种功能。所述存储器20可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据计算机装置1的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器20可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
所述计算机装置1集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,所述计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
在本发明所提供的几个实施例中,应该理解到,所揭露的计算机装置和方法,可以通过其它的方式实现。例如,以上所描述的计算机装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
另外,在本发明各个实施例中的各功能单元可以集成在相同处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在相同单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。计算机装置权利要求中陈述的多个单元或计算机装置也可以由同一个单元或计算机装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
最后应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神和范围。

Claims (10)

1.一种页面流畅度测试方法,其特征在于,所述方法包括:
驱动测试场景以加载待测试页面的页面数据并显示待测试页面,其中所述页面数据包括多个图像帧;
执行所述测试场景的同时,获取所述测试场景中每帧图像的绘制时间Ti;
将所述获取到的每帧图像的绘制时间Ti与一图像帧标准绘制时间T1进行比较,统计绘制时间大于所述图像帧标准绘制时间T1的帧的总数,并将绘制时间大于所述图像帧标准绘制时间T的帧的总数存储至变量jank,其中所述变量jank中存储的值为所述测试场景中发生掉帧的次数;
计算所述测试场景中绘制的总帧数Count;
根据所述变量值jank与所述测试场景绘制的总帧数Count计算所述测试场景的掉帧率;
获取每个大于所述图像帧标准绘制时间T的图像绘制时间Ti,并根据每个大于所述图像帧标准绘制时间T的图像绘制时间Ti计算每次掉帧额外绘制时间vysnc_overtime;
根据所述每次掉帧额外绘制时间vysnc_overtime计算所述测试场景中额外绘制时间总数overtime_SUM,其中,所述测试场景中额外绘制时间总数overtime_SUM等于每次掉帧额外绘制时间vysnc_overtime相加得到的总和;
根据所述测试场景中绘制的总帧数Count以及所述测试场景中额外绘制时间总数overtime_SUM计算所述测试场景下的每秒传输帧数FPS;以及
根据所述掉帧率和所述测试场景每秒传输帧数生成页面流畅度测试报告。
2.如权利要求1所述的页面流畅度测试方法,其特征在于,获取所述测试场景中每帧图像的绘制时间Ti的方法为:在执行所述测试场景的同时,通过开启异步线程adb shelldumpsys gfxinfo"PACKAGE_NAME"获取所述测试场景执行过程中的帧数据,并根据所述帧数据计算所述每帧图像的绘制时间,其中每帧图像绘制时间Ti=绘制时间+处理时间+执行时间。
3.如权利要求1所述的页面流畅度测试方法,其特征在于,获取每帧图像的绘制时间Ti的方法包括:
为每个待绘制的图像帧注册一个回调函数;
在开始对当前图像帧进行绘制时,调用当前图像帧对应的回调函数;
通过所述回调函数记录当前图像帧的起始绘制时间,比如,通过所述回调函数记录一个时间戳,所述时间戳即为当前图像帧的起始绘制时间;
根据当前图像帧的起始绘制时间与前一图像帧的起始绘制时间计算前一帧图像的绘制时间,即,当前图像帧与上一图像帧的起始绘制时间之差即为上一图像帧的绘制时间。
4.如权利要求1所述的页面流畅度测试方法,其特征在于,所述测试场景的掉帧率的计算公式为:掉帧率=jank/Count。
5.如权利要求1所述的页面流畅度测试方法,其特征在于,图像绘制时间Ti计算掉帧额外绘制时间vysnc_overtime的公式为:vysnc_overtime=[Ti/T]。
6.如权利要求1所述的页面流畅度测试方法,其特征在于,计算所述测试场景下帧率FPS的公式为:
FPS=Count*60/(Count+overtime_SUM)。
7.如权利要求1所述的页面流畅度测试方法,其特征在于,所述方法还包括:
在启动所述测试场景之前,设定所述页面流畅度测试执行的预设次数;
在每次计算完成所述测试场景下的FPS后,记录每次计算得出的FPS并将测试执行次数加1;
判断当前测试执行次数是否达到所述预设次数,当达到所述预设次数时,则根据计算出的一组FPS和一组掉帧率生成所述页面流畅度测试报告。
8.一种页面流畅度测试装置,其特征在于,所述装置包括:
测试场景驱动单元,用于驱动测试场景以加载待测试页面的页面数据并显示待测试页面,其中所述页面数据包括多个图像帧;
计算单元,用于在所述测试场景驱动单元执行所述测试场景的同时,获取所述测试场景中每帧图像的绘制时间Ti;将所述获取到的每帧图像的绘制时间Ti与一图像帧标准绘制时间T1进行比较,计算绘制时间大于所述图像帧标准绘制时间T1的帧的总数,并将绘制时间大于所述图像帧标准绘制时间T的帧的总数存储至变量jank,其中所述变量jank中存储的值为所述测试场景中发生掉帧的次数;计算所述测试场景中绘制的总帧数Count;根据所述变量值jank与所述测试场景绘制的总帧数Count计算所述测试场景的掉帧率;获取每个大于所述图像帧标准绘制时间T的图像绘制时间Ti,并根据每个大于所述图像帧标准绘制时间T的图像绘制时间Ti计算每次掉帧额外绘制时间vysnc_overtime;根据所述每次掉帧额外绘制时间vysnc_overtime计算所述测试场景中额外绘制时间总数overtime_SUM,其中,所述测试场景中额外绘制时间总数overtime_SUM等于每次掉帧额外绘制时间vysnc_overtime相加得到的总和;根据所述测试场景中绘制的总帧数Count以及所述测试场景中额外绘制时间总数overtime_SUM计算所述测试场景下的每秒传输帧数:FPS=Count*60/(Count+overtime_SUM)。
9.一种计算机装置,其特征在于:所述计算机装置包括处理器,所述处理器用于执行存储器中存储的计算机程序时实现如权利要求1-7中任一项所述页面流畅度测试方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于:所述计算机程序被处理器执行时实现如权利要求1-7中任一项所述页面流畅度测试方法。
CN201811151289.1A 2018-09-29 2018-09-29 页面流畅度测试方法及装置、计算机装置及存储介质 Active CN109522208B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811151289.1A CN109522208B (zh) 2018-09-29 2018-09-29 页面流畅度测试方法及装置、计算机装置及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811151289.1A CN109522208B (zh) 2018-09-29 2018-09-29 页面流畅度测试方法及装置、计算机装置及存储介质

Publications (2)

Publication Number Publication Date
CN109522208A true CN109522208A (zh) 2019-03-26
CN109522208B CN109522208B (zh) 2022-09-02

Family

ID=65771547

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811151289.1A Active CN109522208B (zh) 2018-09-29 2018-09-29 页面流畅度测试方法及装置、计算机装置及存储介质

Country Status (1)

Country Link
CN (1) CN109522208B (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110806909A (zh) * 2019-11-01 2020-02-18 北京金山安全软件有限公司 一种应用程序页面掉帧信息确定方法、装置及电子设备
CN111338934A (zh) * 2020-02-13 2020-06-26 北京字节跳动网络技术有限公司 页面刷新测试的方法、装置、计算机设备和存储介质
CN111880602A (zh) * 2020-08-03 2020-11-03 北京小米移动软件有限公司 掉帧检测方法和装置
CN111984544A (zh) * 2020-09-08 2020-11-24 网易(杭州)网络有限公司 设备性能测试方法、装置、电子设备及存储介质
CN113079368A (zh) * 2021-03-26 2021-07-06 深圳创维-Rgb电子有限公司 视频流畅度检测方法、装置、终端设备以及存储介质
CN113791962A (zh) * 2021-09-22 2021-12-14 北京字节跳动网络技术有限公司 一种画面帧率确定方法及装置
CN114064513A (zh) * 2022-01-12 2022-02-18 北京新氧科技有限公司 页面流畅性能检测方法、装置、设备及系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007166530A (ja) * 2005-12-16 2007-06-28 Nec Personal Products Co Ltd フレーム周波数変換方法、フレーム周波数変換装置及びフレーム周波数変換プログラム
US20130106880A1 (en) * 2011-10-26 2013-05-02 Roy E. Williams Automatically testing compatibility between a graphics card and a graphics program
CN106357896A (zh) * 2016-08-31 2017-01-25 广东欧珀移动通信有限公司 一种掉帧信息的输出方法、装置及移动终端
CN106802935A (zh) * 2016-12-29 2017-06-06 腾讯科技(深圳)有限公司 一种页面流畅度的测试方法和装置
CN108073485A (zh) * 2017-12-22 2018-05-25 珠海市君天电子科技有限公司 终端屏幕流畅度测试方法、装置及设备

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007166530A (ja) * 2005-12-16 2007-06-28 Nec Personal Products Co Ltd フレーム周波数変換方法、フレーム周波数変換装置及びフレーム周波数変換プログラム
US20130106880A1 (en) * 2011-10-26 2013-05-02 Roy E. Williams Automatically testing compatibility between a graphics card and a graphics program
CN106357896A (zh) * 2016-08-31 2017-01-25 广东欧珀移动通信有限公司 一种掉帧信息的输出方法、装置及移动终端
CN106802935A (zh) * 2016-12-29 2017-06-06 腾讯科技(深圳)有限公司 一种页面流畅度的测试方法和装置
CN108073485A (zh) * 2017-12-22 2018-05-25 珠海市君天电子科技有限公司 终端屏幕流畅度测试方法、装置及设备

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
赵子渊: "面向Android手机的自动化性能测试工具的设计与实现", 《中国优秀博硕士学位论文全文数据库(硕士)信息科技辑》 *

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110806909A (zh) * 2019-11-01 2020-02-18 北京金山安全软件有限公司 一种应用程序页面掉帧信息确定方法、装置及电子设备
CN111338934A (zh) * 2020-02-13 2020-06-26 北京字节跳动网络技术有限公司 页面刷新测试的方法、装置、计算机设备和存储介质
CN111880602A (zh) * 2020-08-03 2020-11-03 北京小米移动软件有限公司 掉帧检测方法和装置
CN111880602B (zh) * 2020-08-03 2022-03-01 北京小米移动软件有限公司 掉帧检测方法和装置
CN111984544A (zh) * 2020-09-08 2020-11-24 网易(杭州)网络有限公司 设备性能测试方法、装置、电子设备及存储介质
CN111984544B (zh) * 2020-09-08 2024-03-22 网易(杭州)网络有限公司 设备性能测试方法、装置、电子设备及存储介质
CN113079368A (zh) * 2021-03-26 2021-07-06 深圳创维-Rgb电子有限公司 视频流畅度检测方法、装置、终端设备以及存储介质
CN113791962A (zh) * 2021-09-22 2021-12-14 北京字节跳动网络技术有限公司 一种画面帧率确定方法及装置
CN114064513A (zh) * 2022-01-12 2022-02-18 北京新氧科技有限公司 页面流畅性能检测方法、装置、设备及系统

Also Published As

Publication number Publication date
CN109522208B (zh) 2022-09-02

Similar Documents

Publication Publication Date Title
CN109522208A (zh) 页面流畅度测试方法及装置、计算机装置及存储介质
CN108388515A (zh) 测试数据生成方法、装置、设备以及计算机可读存储介质
CN111190596A (zh) 联调方法、装置、计算机设备及可读存储介质
CN109684188B (zh) 测试方法和装置
CN109815448B (zh) 幻灯片生成方法及装置
CN110765596B (zh) 审核过程仿真模型建模方法、装置及电子设备
CN110619096B (zh) 用于同步数据的方法和装置
CN108255707A (zh) 测试用例的开发角色创建方法、装置、设备及存储介质
CN109344066A (zh) 一种浏览器页面的测试方法、系统及终端
CN109545333A (zh) Dicom影像显示、处理的方法及装置
CN107038120A (zh) 一种软件测试方法和设备
CN109271160A (zh) 活动规则组建方法、装置和计算机系统、介质
CN108763080A (zh) 测试数据上传方法、装置、计算机设备及存储介质
CN113254139B (zh) 线上教育课程信息显示方法、装置、终端及存储介质
CN111090591B (zh) 测试方法及装置、电子设备和计算机可读存储介质
CN110362470A (zh) 测试数据收集方法、装置、电子设备及存储介质
CN109766089A (zh) 基于动图的代码生成方法、装置、电子设备及存储介质
CN110689285A (zh) 测试方法、装置、电子设备及计算机可读存储介质
CN111192643A (zh) 病历数据处理方法及相关设备
CN112445949A (zh) 一种组态式可视化展示方法、装置及系统
CN108182116A (zh) 一种标书分析方法、装置、设备及存储介质
CN109656803A (zh) 信息推送方法、装置和电子设备
CN110046384B (zh) 模型实例化方法、装置、电子设备、和计算机可读存储介质
CN111159003B (zh) 一种批处理测试方法及装置
CN114281807A (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