CN108108303A - 一种应用程序卡顿测试方法、相关设备及计算机存储介质 - Google Patents
一种应用程序卡顿测试方法、相关设备及计算机存储介质 Download PDFInfo
- Publication number
- CN108108303A CN108108303A CN201711477047.7A CN201711477047A CN108108303A CN 108108303 A CN108108303 A CN 108108303A CN 201711477047 A CN201711477047 A CN 201711477047A CN 108108303 A CN108108303 A CN 108108303A
- Authority
- CN
- China
- Prior art keywords
- interim card
- reason
- card reason
- terminal
- caton phenomenon
- 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
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
-
- 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/3684—Test management for test design, e.g. generating new test cases
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)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本发明实施例公开了一种应用程序卡顿测试方法、相关设备及计算机存储介质,该方法包括:服务器接收终端发送的卡顿信息,卡顿信息包括导致目标应用程序出现卡顿现象的N个卡顿原因对应的程序代码以及N个卡顿原因分别导致终端出现卡顿现象的时长,N为正整数;服务器根据卡顿信息确定导致目标应用程序出现卡顿现象的M个卡顿原因,M个卡顿原因为服务器根据N个卡顿原因分别导致终端出现卡顿现象的时长和/或N个卡顿原因分别导致终端出现卡顿现象的次数确定的,M为小于或等于N的正整数。通过本申请,测试过程简单、便捷,测试效率高,且无需人工手动读取卡顿原因对应的程序代码。
Description
技术领域
本发明涉及网络技术领域,尤其涉及一种应用程序卡顿测试方法、相关设备及计算机存储介质。
背景技术
随着网络技术的高速发展,安装在智能终端,例如手机、平板电脑、可穿戴设备上的应用程序不管是在功能设计,还是在视觉设计上均呈现多样化的发展趋势,旨在满足用户的基本需求的同时,为用户提高更好的用户体验。如果开发者无法为用户提供体验更好的应用,该应用程序的使用用户的流失在所难免。例如,应用程序出现卡顿现象(Application Not Responding,ANR),简单来说,就是应用程序没有及时响应,表现在智能终端上为智能终端的显示页面发生延迟、出现丢帧现象。具体来说,应用程序发生卡顿现象是指应用程序在响应用户操作时的执行时间超过智能终端预设的阈值。这里所说智能终端预设的阈值是指智能终端预先设置好的处理单一事件的时间。在大多数情况下,片刻时间过后,应用程序便可自行恢复正常。如果应用程序在片刻时间后继续保持卡顿现象,这将会造成更高级别的警告,导致用户的操作不能成功执行。
现有技术中,开发者在一个智能终端上借助BlockCanary工具来测试应用程序,以发现应用程序发生卡顿现象的卡顿原因。具体来说,BlockCanary会在应用程序发生卡顿现象时记录与之对应的堆栈信息,该堆栈信息被输出到BlockCanary工具配置目录下的/data/anr/traces.txt文件中。这里所提及的堆栈信息是指在智能终端测试应用程序的卡顿原因的过程中,所记录的应用程序的程序代码。该堆栈信息可以表征各个程序代码的执行顺序,该执行顺序具体可以包括功能函数间的调用顺序。详情可以参考图1。如图1所示,记录的应用程序的程序代码可以表征出终端先运行第469行程序代码,再运行第499行程序代码,最后运行第362行的程序代码。开发者可以通过查看输出文件来确定应用程序的程序源码中存在的不足,继而对其进行修改,以解决BlockCanary测试过程中导致出现卡顿现象的卡顿原因。需要说明的是,在上述使用BlockCanary工具对应用程序测试的过程中,若BlockCanary工具检测到导致应用程序出现卡顿现象的一个卡顿原因时,智能终端显示弹窗,整个测试过程完毕。如果开发者期望获得导致应用程序出现卡顿现象的多个卡顿原因,则需要使用BlockCanary工具对应用程序测试多次,且每次获取具体的卡顿原因时,都需要人工手动读取卡顿原因对应的程序代码。整个过程繁琐、复杂。如何设计一种简单、便捷的用于测试应用程序的卡顿原因的方法是亟需解决的技术问题。
发明内容
本发明实施例提供一种应用程序卡顿测试方法、相关设备及计算机存储介质,可减少测试应用程序的卡顿原因的复杂度,测试过程简单、便捷,测试效率高,且无需人工手动读取卡顿原因对应的程序代码。
第一方面,本发明实施例提供了一种应用程序卡顿测试方法,应用于服务器侧。该方法包括:
服务器接收终端发送的卡顿信息,所述卡顿信息包括导致目标应用程序出现卡顿现象的N个卡顿原因对应的程序代码以及所述N个卡顿原因分别导致所述终端出现卡顿现象的时长,N为正整数;
所述服务器根据所述卡顿信息确定导致所述目标应用程序出现所述卡顿现象的M个卡顿原因,所述M个卡顿原因为所述服务器根据所述N个卡顿原因分别导致所述终端出现卡顿现象的时长和/或所述N个卡顿原因分别导致所述终端出现卡顿现象的次数确定的,M为小于或等于N的正整数。
通过本发明实施例,服务器接收终端发送的导致应用程序出现卡顿现象的N个卡顿原因后,确定N个卡顿原因中的M个卡顿原因为主要卡顿原因,测试过程简单、便捷,测试效率高,且无需人工手动读取卡顿原因对应的程序代码。上述服务器所确定的主要卡顿原因可以表征应用程序的程序代码中所存在的缺陷,可便于开发者针对上述应用程序的程序代码中所存在的缺陷进行改进,从而可避免应用程序的卡顿现象,提高应用程序的流畅度,进而提高用户的使用体验。
可选的,所述卡顿信息还包括所述程序代码对应的指示符,相同的程序代码对应的指示符相同,所述指示符的长度短于所述程序代码的长度。
通过本发明实施例,用指示符来表征多个卡顿原因对应的程序代码,其中,相同的程序代码对应的指示符相同。由于指示符的长度短于应用程序的程序代码,服务器可通过统计同一指示符的数量来确定同一卡顿原因导致终端出现卡顿现象的次数,相较于服务器统计每个卡顿原因对应的程序代码来说,简单、便捷,可提高服务器的统计效率。
可选的,所述服务器根据所述卡顿信息确定导致所述目标应用程序出现所述卡顿现象的M个卡顿原因,包括:
所述服务器将所述N个卡顿原因按照导致所述终端出现卡顿现象的时长由大到小进行排序;
所述服务器将排名前M位的卡顿原因确定为导致所述目标应用程序出现所述卡顿现象的M个卡顿原因;
或,所述服务器将所述N个卡顿原因按照导致所述终端出现卡顿现象的次数由大到小进行排序;
所述服务器将排名前M位的卡顿原因确定为导致所述目标应用程序出现所述卡顿现象的M个卡顿原因;
或,所述服务器将所述N个卡顿原因按照导致所述终端出现卡顿现象的时长和导致所述终端出现卡顿现象的次数由大到小进行排序;
所述服务器将排名前M位的卡顿原因确定为导致所述目标应用程序出现所述卡顿现象的M个卡顿原因。
通过本发明实施例,服务器结合N个卡顿原因各自导致终端出现卡顿现象的时长和/或N个卡顿原因各自导致终端出现卡顿现象的次数来确定N个卡顿原因中的M个卡顿原因为主要卡顿原因。
可选的,所述服务器将所述N个卡顿原因按照导致所述终端出现卡顿现象的时长和导致所述终端出现卡顿现象的次数由大到小进行排序,包括:
所述服务器按照以下公式依次确定所述N个卡顿原因中的每个卡顿原因的权重,所述公式为:
Xi=0.5*Ai+0.5*Bi
其中,Xi为所述N个卡顿原因中的第i个卡顿原因的权重,Ai为将所述N个卡顿原因分别导致所述终端出现卡顿现象的时长按照从大到小的顺序进行排序后所述第i个卡顿原因导致所述终端出现卡顿现象的时长所占的排名,Bi为将所述N个卡顿原因分别导致所述终端出现卡顿现象的次数按照从大到小的顺序进行排序后所述第i个卡顿原因导致所述终端出现卡顿现象的次数所占的排名,其中,i为大于等于1且小于等于N的正整数;
所述服务器将所述N个卡顿原因按照权重由小到大进行排序,权重越小,表征卡顿原因的严重级别越高;
所述服务器将排名前M位的卡顿原因确定为导致所述目标应用程序出现所述卡顿现象的M个卡顿原因,包括:
所述服务器将所述N个卡顿原因按照权重由小到大进行排序后,将排名前M位的卡顿原因确定为导致所述目标应用程序出现所述卡顿现象的M个卡顿原因,所述M个卡顿原因为所述N个卡顿原因中严重级别最高的M个卡顿原因。
通过本发明实施例,服务器结合N个卡顿原因各自对应的权重来确定N个卡顿原因中的M个卡顿原因为主要卡顿原因。
可选的,所述服务器根据所述卡顿信息确定导致所述目标应用程序出现所述卡顿现象的M个卡顿原因之后,还包括:
所述服务器显示导致所述目标应用程序出现卡顿现象的所述M个卡顿原因各自对应的程序代码。
通过本发明实施例,服务器根据策略确定N个卡顿原因中的M个卡顿原因为主要卡顿原因后,显示主要卡顿原因各自对应的程序代码,可便于开发者获知应用程序的主要卡顿原因,并对应用程序的程序代码中所存在的不足进行改进,可避免应用程序的卡顿现象,提高应用程序的流畅度,进而提高用户的使用体验。
可选的,所述服务器根据所述卡顿信息确定导致所述目标应用程序出现所述卡顿现象的M个卡顿原因之后,还包括:
所述服务器将导致所述目标应用程序出现卡顿现象的所述M个卡顿原因各自对应的程序代码发送至预设邮箱地址。
可选的,预设邮箱地址为开发者的邮箱。
通过本发明实施例,服务器根据策略确定N个卡顿原因中的M个卡顿原因为主要卡顿原因后,将主要卡顿原因各自对应的程序代码发送给开发者的邮箱,可便于开发者获知应用程序的主要卡顿原因,并对应用程序的程序代码中所存在的不足进行改进,可避免应用程序的卡顿现象,提高应用程序的流畅度,进而提高用户的使用体验。
第二方面,本发明实施例提供了一种应用程序卡顿测试方法,应用于终端侧。包括:
终端向服务器发送卡顿信息,所述卡顿信息包括导致目标应用程序出现卡顿现象的N个卡顿原因对应的程序代码以及所述N个卡顿原因分别导致所述终端出现卡顿现象的时长,N为正整数,所述卡顿信息用于所述服务器确定导致所述目标应用程序出现所述卡顿现象的M个卡顿原因,所述M个卡顿原因为所述服务器根据所述N个卡顿原因分别导致所述终端出现卡顿现象的时长和/或所述N个卡顿原因分别导致所述终端出现卡顿现象的次数确定的。
通过本发明实施例,终端在测试导致应用程序出现卡顿现象的卡顿原因时,一次可获得应用程序出现卡顿现象的N个卡顿原因。终端在测试得到上述N个卡顿原因后,将N个卡顿原因上报给服务器,进而服务器可以确定N个卡顿原因中的M个卡顿原因为主要卡顿原因,可减少测试应用程序的卡顿原因的复杂度,测试过程简单、便捷,测试效率高。
可选的,所述卡顿信息还包括所述程序代码对应的指示符,相同的程序代码对应的指示符相同,所述指示符的长度短于所述程序代码的长度。
通过本发明实施例,用指示符表征多个卡顿原因对应的程序代码,其中,相同的程序代码对应的指示符相同。由于指示符的长度短于程序代码,服务器可通过统计同一指示符出现的次数来确定导致目标应用程序出现卡顿现象的同一卡顿原因出现的次数,相较于服务器统计每个卡顿原因对应的程序代码来说,简单、便捷,可提高服务器的统计效率。
可选的,所述N个卡顿原因对应的程序代码为所述终端利用自动化测试工具对所述目标应用程序的安装包进行自动化测试得到的。
可选的,自动化测试工具包括monkey测试工具和自动遍历测试工具。
通过本发明实施例,终端利用自动化测试工具对应用程序的安装包进行自动化测试,以获得应用程序出现卡顿现象的多个卡顿原因,可减少测试应用程序的卡顿原因的复杂度,测试过程简单、便捷,测试效率高。
第三方面,本发明实施例提供了一种服务器,该服务器具有实现上述第一方面中服务器行为的功能。功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包括一个或多个与上述功能相对应的模块。
在一种可能的实现方式中,该服务器的结构中包括处理器和存储器,存储器用于存储支持该服务器执行上述方法的程序,处理器被配置为用于执行存储器中存储的程序。该服务器还可以包括通信接口,用于该服务器与其他设备或通信网络通信。
第四方面,本发明实施例提供了一种终端,该终端具有实现上述第二方面中终端行为的功能。功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包括一个或多个与上述功能相对应的模块。
在一种可能的实现方式中,该终端的结构中包括处理器和存储器,存储器用于存储支持该终端执行上述方法的程序,处理器被配置为用于执行存储器中存储的程序。该终端还可以包括通信接口,用于该终端与其他设备或通信网络通信。
第五方面,本发明实施例提供了一种服务器,包括:
接收单元,用于接收终端发送的卡顿信息,所述卡顿信息包括导致目标应用程序出现卡顿现象的N个卡顿原因对应的程序代码以及所述N个卡顿原因分别导致所述终端出现卡顿现象的时长,N为正整数;
第一确定单元,用于根据所述卡顿信息确定导致所述目标应用程序出现所述卡顿现象的M个卡顿原因,所述M个卡顿原因为所述第一确定单元根据所述N个卡顿原因分别导致所述终端出现卡顿现象的时长和/或所述N个卡顿原因分别导致所述终端出现卡顿现象的次数确定的,M为小于或等于N的正整数。
可选的,所述卡顿信息还包括所述N个卡顿原因对应的指示符,所述指示符的长度短于所述程序代码的长度。
可选的,所述第一确定单元包括第一排序单元和第二确定单元;
所述第一排序单元,用于将所述N个卡顿原因按照导致所述终端出现卡顿现象的时长由大到小进行排序;
所述第二确定单元,用于将排名前M位的卡顿原因确定为导致所述目标应用程序出现所述卡顿现象的M个卡顿原因;
或,所述第一排序单元,用于将所述N个卡顿原因按照导致所述终端出现卡顿现象的次数由大到小进行排序;
所述第二确定单元,用于将排名前M位的卡顿原因确定为导致所述目标应用程序出现所述卡顿现象的M个卡顿原因;
或,所述第一排序单元,用于将所述N个卡顿原因按照导致所述终端出现卡顿现象的时长和导致所述终端出现卡顿现象的次数由大到小进行排序;
所述第二确定单元,用于将排名前M位的卡顿原因确定为导致所述目标应用程序出现所述卡顿现象的M个卡顿原因。
可选的,所述第一排序单元包括处理单元和第二排序单元;
所述处理单元,用于按照以下公式依次确定所述N个卡顿原因中的每个卡顿原因的权重,所述公式为:
Xi=0.5*Ai+0.5*Bi
其中,Xi为所述N个卡顿原因中的第i个卡顿原因的权重,Ai为将所述N个卡顿原因分别导致所述终端出现卡顿现象的时长按照从大到小的顺序进行排序后所述第i个卡顿原因导致所述终端出现卡顿现象的时长所占的排名,Bi为将所述N个卡顿原因分别导致所述终端出现卡顿现象的次数按照从大到小的顺序进行排序后所述第i个卡顿原因导致所述终端出现卡顿现象的次数所占的排名,其中,i为大于等于1且小于等于N的正整数;
所述第二排序单元,用于将所述N个卡顿原因按照权重由小到大进行排序,权重越小,表征卡顿原因的严重级别越高;
所述第二确定单元,用于将排名前M位的卡顿原因确定为导致所述目标应用程序出现所述卡顿现象的M个卡顿原因,具体为:
将所述N个卡顿原因按照权重由小到大进行排序后,将排名前M位的卡顿原因确定为导致所述目标应用程序出现所述卡顿现象的M个卡顿原因,所述M个卡顿原因为所述N个卡顿原因中严重级别最高的M个卡顿原因。
可选的,所述服务器还包括显示单元;
所述显示单元,用于在第一确定单元根据所述卡顿信息确定导致所述目标应用程序出现所述卡顿现象的M个卡顿原因之后,显示导致所述目标应用程序出现卡顿现象的所述M个卡顿原因。
可选的,所述服务器还包括发送单元;
所述发送单元,用于在第一确定单元根据所述卡顿信息确定导致所述目标应用程序出现所述卡顿现象的M个卡顿原因之后,将导致所述目标应用程序出现卡顿现象的所述M个卡顿原因各自对应的程序代码发送至预设邮箱地址。
第六方面,本发明实施例提供了一种终端,包括:
发送单元,用于向服务器发送卡顿信息,所述卡顿信息包括导致目标应用程序出现卡顿现象的N个卡顿原因对应的程序代码以及所述N个卡顿原因分别导致所述终端出现卡顿现象的时长,N为正整数,所述卡顿信息用于所述服务器确定导致所述目标应用程序出现所述卡顿现象的M个卡顿原因,所述M个卡顿原因为所述服务器根据所述N个卡顿原因分别导致所述终端出现卡顿现象的时长和/或所述N个卡顿原因分别导致所述终端出现卡顿现象的次数确定的。
可选的,所述卡顿信息还包括所述程序代码对应的指示符,相同的程序代码对应的指示符相同,所述指示符的长度短于所述程序代码的长度。
可选的,所述N个卡顿原因对应的程序代码为所述终端利用自动化测试工具对所述目标应用程序的安装包进行自动化测试得到的。
第七方面,本发明实施例提供了一种计算机存储介质,用于储存为上述服务器所用的计算机软件指令,其包含用于执行上述第一方面为服务器所设计的程序。
第八方面,本发明实施例提供了一种计算机存储介质,用于储存为上述终端所用的计算机软件指令,其包含用于执行上述第二方面为终端所设计的程序。
第九方面,本发明实施例提供了一种计算机程序,所述计算机程序包括上述服务器所用的程序指令,所述程序指令当被服务器的处理器执行时使所述处理器执行上述第一方面为服务器所设计的程序。
第十方面,本发明实施例提供了一种计算机程序,所述计算机程序包括上述终端所用的程序指令,所述程序指令当被终端的处理器执行时使所述处理器执行上述第一方面为终端所设计的程序。
通过实施本发明实施例,终端在测试导致应用程序出现卡顿现象的卡顿原因时,一次可获得应用程序出现卡顿现象的N个卡顿原因,可减少测试应用程序的卡顿原因的复杂度,测试过程简单、便捷,测试效率高。终端在测试得到应用程序出现卡顿现象的N个原因后,将N个卡顿原因的卡顿信息发送给服务器,无需人工手动读取卡顿原因对应的程序代码。服务器根据策略确定N个卡顿原因中的M个卡顿原因为主要卡顿原因。上述服务器所确定的主要卡顿原因可以表征应用程序的程序代码中所存在的缺陷,可便于开发者针对上述应用程序的程序代码中所存在的缺陷进行改进,从而可避免应用程序的卡顿现象,提高应用程序的流畅度,进而提高用户的使用体验。
附图说明
为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍。
图1是本发明实施例提供的一种卡顿原因对应的程序代码的示意图;
图2是本发明实施例提供的测试应用程序卡顿的测试***的架构示意图;
图3是本发明实施例提供的一种计算机设备的结构示意图;
图4是本发明实施例提供的一种应用程序卡顿测试方法的流程示意图;
图4A是本发明实施例提供的一种卡顿原因对应的程序代码的示意图;
图4B是本发明实施例提供的一种卡顿原因对应的程序代码的示意图;
图4C是本发明实施例提供的一种卡顿原因对应的程序代码的示意图;
图4D是本发明实施例提供的一种卡顿原因对应的程序代码的示意图;
图4E是本发明实施例提供的一种卡顿原因对应的程序代码的示意图;
图5是本发明实施例提供的另一种应用程序卡顿测试方法的流程示意图;
图6是本发明实施例提供的另一种应用程序卡顿测试方法的流程示意图;
图7是本发明实施例提供的一种服务器的结构示意图;
图8是本发明实施例提供的一种终端的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行描述。
首先,介绍本发明的发明构思。
现有技术中,开发者在终端上借助BlockCanary工具测试应用程序的卡顿原因时,一次测试只能得到一个卡顿原因。本申请中,开发者在一个终端上借助BlockCanary工具来测试应用程序的过程中,采用了自动化测试工具(例如,monkey测试工具和自动遍历测试工具)以发现导致应用程序发生卡顿现象的多个卡顿原因,即一次测试能够得到导致应用程序出现卡顿现象的多个卡顿原因。然后服务器根据策略对检测到的导致终端出现卡顿现象的多个卡顿原因进行统计分析,以确定多个卡顿原因中的主要卡顿原因。最后在应用程序测试平台上显示上述主要卡顿原因,并将上述主要卡顿原因发送给开发者,以便开发者对应用程序的程序代码进行修改,尽可能的避免应用程序的卡顿现象。在上述实现过程中,测试过程简单、便捷,测试效率高。
本申请所描述的应用程序卡顿测试方法适用于但不限于:安卓***。
本申请中,上述应用程序可以是任意一款应用程序。本申请以上述应用程序为微信应用程序为例进行说明。
在一种可能的实现方式中,终端通过网络向服务器发送卡顿信息,该卡顿信息包括导致应用程序出现卡顿现象的每个卡顿原因所对应的标识以及每个卡顿原因分别导致终端出现卡顿现象的时长。图2为本发明实施例提供的一种测试应用程序卡顿的测试***200的架构示意图,包括:服务器201、终端202以及网络203。服务器接收终端发送的卡顿信息后,确定导致应用程序出现卡顿现象的多个卡顿原因中的主要卡顿原因。
需要说明的是,上述***中,终端202的数量包括但不限于一个,也可以多个,本发明实施例不作具体限定。具体的,终端可以包括移动手机、平板电脑、个人数字助理(Personal Digital Assistant,PDA)、移动互联网设备(Mobile Internet Device,MID)、智能穿戴设备(如智能手表、智能手环)等各种用户可以使用的终端设备,本发明实施例不作限定。
在另一种可能的实现方式中,终端202通过有线接口向服务器201发送卡顿信息。服务器根据终端发送的卡顿信息确定导致应用程序出现卡顿现象的多个卡顿原因中的主要卡顿原因。该有线接口包括例如局域接入网(Local Access Network,LAN)接口、USB接口、蓝牙接口等。
如图3所示,图2中的服务器201或者终端202可以是以图3中的计算机设备(或***)的方式来实现。
图3所示为本发明实施例提供的计算机设备示意图。计算机设备300包括至少一个处理器301,通信总线302,存储器303以及至少一个通信接口304。
处理器301可以是一个通用中央处理器(Central Processing Unit,CPU),微处理器,特定应用集成电路(Application-Specific Integrated Circuit,ASIC),或一个或多个用于控制本发明方案程序执行的集成电路。
通信总线302可包括一通路,在上述组件之间传送信息。所述通信接口304,使用任何收发器一类的装置,用于与其他设备或通信网络通信,如以太网,无线接入网(RadioAccess Technology,RAN),无线局域网(Wireless Local Area Networks,WLAN)等。
存储器303可以是只读存储器(Read-Only Memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(Random Access Memory,RAM)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(ElectricallyErasable Programmable Read-Only Memory,EEPROM)、只读光盘(Compact Disc Read-Only Memory,CD-ROM)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器可以是独立存在,通过总线与处理器相连接。存储器也可以和处理器集成在一起。
其中,所述存储器303用于存储执行本发明方案的程序代码,并由处理器301来控制执行。所述处理器301用于执行所述存储器303中存储的程序代码。
在具体实现中,作为一种实施例,处理器301可以包括一个或多个CPU,例如图3中的CPU0和CPU1。
在具体实现中,作为一种实施例,计算机设备300可以包括多个处理器,例如图3中的处理器301和处理器308。这些处理器中的每一个可以是一个单核(single-CPU)处理器,也可以是一个多核(multi-CPU)处理器。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(例如计算机程序指令)的处理核。
在具体实现中,作为一种实施例,计算机设备300还可以包括输出设备305和输入设备306。输出设备305和处理器301通信,可以以多种方式来显示信息。例如,输出设备305可以是液晶显示器(Liquid Crystal Display,LCD),发光二级管(Light Emitting Diode,LED)显示设备,阴极射线管(Cathode Ray Tube,CRT)显示设备,或投影仪(projector)等。输入设备306和处理器301通信,可以以多种方式接受用户的输入。例如,输入设备306可以是鼠标、键盘、触摸屏设备或传感设备等。
上述的计算机设备300可以是一个通用计算机设备或者是一个专用计算机设备。在具体实现中,计算机设备300可以是台式机、便携式电脑、网络服务器、掌上电脑(Personal Digital Assistant,PDA)、移动手机、平板电脑、无线终端设备、通信设备、嵌入式设备或有图3中类似结构的设备。本发明实施例不限定计算机设备300的类型。
如图2中的服务器201可以为图3所示的设备,服务器201的存储器中存储了一个或多个软件模块(如交互模块和处理模块)。如图2中的终端202也可以为图3所示的设备,终端的存储器中存储了一个或多个软件模块(如交互模块和处理模块)。服务器或者终端可以通过处理器以及存储器中的程序代码来实现软件模块,实现应用程序卡顿的测试。
基于上述发明构思,参见图4,来介绍本发明实施例提供的一种应用程序卡顿测试方法。如图4所示,该方法包括但不限于如下步骤S301-S302:
S301、终端向服务器发送卡顿信息,卡顿信息包括导致目标应用程序出现卡顿现象的N个卡顿原因对应的程序代码以及N个卡顿原因分别导致终端出现卡顿现象的时长,N为正整数。
在一种可能的实现方式中,上述目标应用程序包括多个版本型号。以微信应用程序为例,包括微信应用程序V1版本、微信应用程序V2版等。需要说明的是,这里所涉及的目标应用程序是指一款应用程序的一个版本型号,例如微信应用程序V2版。
在第一种实现方式中,卡顿信息包括N个卡顿原因对应的程序代码以及N个卡顿原因分别导致终端出现卡顿现象的时长。例如,卡顿原因1对应的程序代码可以参见图4A,卡顿原因1导致终端出现卡顿现象的时长为664ms,卡顿原因2对应的程序代码可以参见图4B,卡顿原因2终端出现卡顿现象的时长为829ms。比较上述卡顿原因1对应的程序代码和卡顿原因2对应的程序代码可知,卡顿原因对应的程序代码是不同的。具体的,上述卡顿信息的表现形式可以例如表1所示。
表1
卡顿原因 | 程序代码 | 卡顿时长 |
卡顿原因1 | 参见图4A所示 | 664ms |
卡顿原因2 | 参见图4B所示 | 829ms |
可选的,所述卡顿信息还包括所述程序代码对应的指示符,相同的程序代码对应的指示符相同,所述指示符的长度短于所述程序代码的长度。
在第二种实现方式中,卡顿信息包括N个卡顿原因对应的程序代码、N个卡顿原因对应的指示符以及N个卡顿原因分别导致终端出现卡顿现象的时长。这里,卡顿原因对应的指示符也即是指该卡顿原因对应的程序代码所对应的指示符。例如,将导致卡顿原因1的程序代码的指示符设置为000。具体来说,用不同的指示符来表征不同的卡顿原因所对应的应用程序的程序代码,指示符与导致终端出现卡顿现象的卡顿原因的程序代码一一对应,即一个指示符只能指示一个导致终端出现卡顿现象的卡顿原因的程序代码。例如,导致终端出现卡顿现象的卡顿原因包括卡顿原因1,卡顿原因2,卡顿原因3,卡顿原因4,卡顿原因5这5个卡顿原因。在一种可能的实现方式中,采用指示符来表征上述5个卡顿原因分别对应的程序代码。具体的,上述卡顿信息的表现形式可以例如表2所示。
表2
卡顿原因 | 指示符 | 程序代码 | 卡顿时长 |
卡顿原因1 | 000 | 参见图4A所示 | 664ms |
卡顿原因2 | 001 | 参见图4B所示 | 829ms |
卡顿原因3 | 010 | 参见图4C所示 | 1194ms |
卡顿原因4 | 011 | 参见图4D所示 | 539ms |
卡顿原因5 | 100 | 参见图4E所示 | 711ms |
需要说明的是,由于指示符的长度要短于卡顿原因所对应的程序代码,在服务器统计对同一卡顿原因导致终端出现卡顿现象的次数时,简单、便捷。例如,导致终端出现卡顿现象的卡顿原因包括卡顿原因1,卡顿原因2这2个卡顿原因。服务器接收终端发送的卡顿信息的表现形式如表3所示:
表3
需要说明的是,表3中所示的卡顿原因及三位指示符均只是一种示例,本发明实施例不作具体限定。
在一种可能的实现方式中,服务器在统计同一卡顿原因导致终端出现卡顿现象的次数时,只需统计指示符的次数即可。例如,服务器从上述表3中获知,表征卡顿原因1的指示符000出现了两次,即卡顿原因1导致终端出现了两次卡顿现象。又例如,服务器从上述表3中获知,表征卡顿原因2的指示符001出现四次,即卡顿原因2导致终端出现了四次卡顿现象,相较于终端通过统计同一卡顿原因对应的程序代码来说,采用指示符的方式来统计同一卡顿原因导致终端出现卡顿现象的次数更简单、便捷。可选的,所述N个卡顿原因对应的程序代码为所述终端利用自动化测试工具对所述目标应用程序的安装包进行自动化测试得到的。
在一种可能的实现方式中,在测试应用程序的卡顿原因时,为了避免因为其它应用程序导致被测应用程序发生卡顿现象,应该保证终端的***环境是干净的。例如,若终端利用自动化测试工具对微信应用程序V3版本进行测试时,应保证在该终端上除了自身***所带的应用程序外,只安装了微信应用程序V3版本。
可选的,这里所涉及的自动化测试工具包括monkey测试工具和appcrawler自动遍历测试工具。monkey测试是指模拟用户的按键输入、触摸屏输入、手势输入等,测试智能终端多长时间会出现异常。需要说明的是,在执行monkey测试时,若遇到事故(Crash)或ANR,则monkey测试终止。monkey测试的测试结果可以通过monkey_log.txt查看。如果测试结果正常,monkey_log.txt文件的最后一行中会显示语句:monkey finished。
在一种可能的实现方式中,为了避免monkey测试工具测试智能终端的通知栏,使用simiasque来屏蔽通知栏。由于monkey测试工具无法测试到应用程序的所有界面,终端利用appcrawler自动遍历测试工具来实现对应用程序的所有界面的测试。
S302、服务器根据卡顿信息确定导致目标应用程序出现卡顿现象的M个卡顿原因,该M个卡顿原因为服务器根据N个卡顿原因分别导致终端出现卡顿现象的时长和/或所述N个卡顿原因分别导致终端出现卡顿现象的次数确定的。
可选的,所述服务器根据所述卡顿信息确定导致所述目标应用程序出现所述卡顿现象的M个卡顿原因,包括:
所述服务器将所述N个卡顿原因按照导致所述终端出现卡顿现象的时长由大到小进行排序;
所述服务器将排名前M位的卡顿原因确定为导致所述目标应用程序出现所述卡顿现象的M个卡顿原因;
或,
所述服务器将所述N个卡顿原因按照导致所述终端出现卡顿现象的次数由大到小进行排序;
所述服务器将排名前M位的卡顿原因确定为导致所述目标应用程序出现所述卡顿现象的M个卡顿原因;
或,
所述服务器将所述N个卡顿原因按照导致所述终端出现卡顿现象的时长和导致所述终端出现卡顿现象的次数由大到小进行排序;
所述服务器将排名前M位的卡顿原因确定为导致所述目标应用程序出现所述卡顿现象的M个卡顿原因。
在一种可能的实现方式中,例如,服务器接收终端发送的卡顿信息的表现形式例如表4所示。
表4
卡顿原因 | 程序代码 | 卡顿时长 |
卡顿原因1 | 参见图4A所示 | 664ms |
卡顿原因2 | 参见图4B所示 | 829ms |
卡顿原因1 | 参见图4A所示 | 564ms |
卡顿原因2 | 参见图4B所示 | 1027ms |
卡顿原因2 | 参见图4B所示 | 929ms |
卡顿原因2 | 参见图4B所示 | 620ms |
卡顿原因3 | 参见图4C所示 | 1194ms |
卡顿原因4 | 参见图4D所示 | 539ms |
卡顿原因5 | 参见图4E所示 | 711ms |
卡顿原因3 | 参见图4C所示 | 1494ms |
卡顿原因4 | 参见图4D所示 | 520ms |
卡顿原因3 | 参见图4C所示 | 998ms |
卡顿原因4 | 参见图4D所示 | 619ms |
服务器在接收了上述卡顿信息之后,服务器首先对同一卡顿原因导致终端出现卡顿现象的时长进行处理。例如,服务器对同一卡顿原因导致终端出现卡顿现象的多个时长取平均值。此时,服务器接收终端发送的卡顿信息之后,对上述卡顿信息处理后的表现形式例如表5所示。
表5
在一种可能的实现方式中,服务器先对多个卡顿原因按照导致终端出现卡顿现象的时长由大到小进行排序,将排名靠前的卡顿原因确定为主要卡顿原因。例如,如表5所示,导致目标应用程序出现卡顿现象的卡顿原因包括5个,分别为卡顿原因1,卡顿原因2,卡顿原因3,卡顿原因4,卡顿原因5。服务器首先对上述5个卡顿原因按照导致终端出现卡顿现象的时长由大到小进行排序,排序后的结果为卡顿原因3,卡顿原因2,卡顿原因5,卡顿原因1,卡顿原因4。服务器确定其中的卡顿原因3和卡顿原因2为主要卡顿原因。
在一种可能的实现方式中,服务器先对多个卡顿原因按照导致所述终端出现卡顿现象的次数由大到小进行排序,将排名靠前的卡顿原因确定为主要卡顿原因。例如,如表5所示,导致目标应用程序出现卡顿现象的卡顿原因包括5个,分别为卡顿原因1,卡顿原因2,卡顿原因3,卡顿原因4,卡顿原因5。服务器通过统计表5可知,卡顿原因1导致终端出现卡顿现象的次数为2次,卡顿原因2导致终端出现卡顿现象的次数为4次,卡顿原因3导致终端出现卡顿现象的次数为3次,卡顿原因4导致终端出现卡顿现象的次数为3次,卡顿原因5导致终端出现卡顿现象的次数为1次。服务器首先对上述5个卡顿原因按照出现卡顿现象的次数由大到小进行排序,排序后的结果为卡顿原因2,卡顿原因3,卡顿原因4,卡顿原因1,卡顿原因5。服务器确定其中的卡顿原因2、卡顿原因3、卡顿原因4为主要卡顿原因。
在另一种可能的实现方式中,终端可以同时对多个卡顿原因按照导致所述终端出现卡顿现象的时长和导致所述终端出现卡顿现象的次数由大到小进行排序,然后将排名靠前的卡顿原因确定为主要卡顿原因,其实现过程可以参考上述描述,此处不多加赘述。
通过本发明实施例,服务器结合N个卡顿原因各自导致终端出现卡顿现象的时长和/或N个卡顿原因各自导致终端出现卡顿现象的次数来确定N个卡顿原因中的M个卡顿原因为主要卡顿原因。
可选的,所述服务器将所述N个卡顿原因按照导致所述终端出现卡顿现象的时长和导致所述终端出现卡顿现象的次数由大到小进行排序,包括:
所述服务器按照以下公式依次确定所述N个卡顿原因中的每个卡顿原因的权重,所述公式为:
Xi=0.5*Ai+0.5*Bi
其中,Xi为所述N个卡顿原因中的第i个卡顿原因的权重,Ai为将所述N个卡顿原因各自持续卡顿时间按照从大到小的顺序进行排序后所述第i个卡顿原因的持续卡顿时间所占的排名,Bi为将所述N个卡顿原因各自出现卡顿现象的次数按照从大到小的顺序进行排序后所述第i个卡顿原因出现卡顿现象的次数所占的排名,其中,i为大于等于1且小于等于N的正整数;
所述服务器将所述N个卡顿原因按照权重由小到大进行排序,权重越小,表征卡顿原因的严重级别越高;
所述服务器将排名前M位的卡顿原因确定为导致所述目标应用程序出现所述卡顿现象的M个卡顿原因,包括:
所述服务器将所述N个卡顿原因按照权重由小到大进行排序后,将排名前M位的卡顿原因确定为导致所述目标应用程序出现所述卡顿现象的M个卡顿原因,所述M个卡顿原因为所述N个卡顿原因中严重级别最高的M个卡顿原因。
需要说明的是,权重越小,表明卡顿原因的严重性越高。例如,如表5所示,导致目标应用程序出现卡顿现象的卡顿原因包括5个,分别为卡顿原因1,卡顿原因2,卡顿原因3,卡顿原因4,卡顿原因5。首先,服务器对上述5个卡顿原因按照导致终端出现卡顿现象的最长时间由大到小进行排序,排序后的结果为卡顿原因3(第一),卡顿原因2(第二),卡顿原因5(第三),卡顿原因1(第四),卡顿原因4(第五)。其次,服务器对上述5个卡顿原因按照出现卡顿现象的次数由大到小进行排序,排序后的结果为卡顿原因2(第一),卡顿原因3(第二),卡顿原因4(第三),卡顿原因1(第四),卡顿原因5(第五)。然后,服务器根据公式计算上述5个卡顿原因的权重,其中,卡顿原因1的权重为4,卡顿原因2的权重为1.5,卡顿原因3的权重为1.5,卡顿原因4的权重为4,卡顿原因5的权重为4。最后,服务器对上述5个卡顿原因按照权重由小到大进行排序,排序后的结果为卡顿原因2,卡顿原因3,卡顿原因1,卡顿原因4,卡顿原因5,服务器确定其中的卡顿原因2和卡顿原因3为主要卡顿原因。
通过本发明实施例,服务器结合N个卡顿原因各自对应的权重来确定N个卡顿原因中的M个卡顿原因为主要卡顿原因。
需要说明的是,上述公式只是作为一种示例来介绍各个卡顿原因各自对应的权重,在实际应用中,上述公式还可以有其他表现形式。例如,上述公式中Ai的权重因子0.5还可以是其他值,例如0.1、0.2、0.3等等。上述公式中Bi的权重因子0.5还可以是其他值,例如0.1、0.2、0.3等等,但需要说明的是Ai和Bi的权重因子相加等于1。
可选的,服务器在执行上述步骤S302之后,还可以执行步骤S303,具体的,参见图5,是本发明实施例提供的另一种应用程序卡顿测试方法的流程示意图,,以下对步骤S303进行详细描述。
S303、上述服务器显示导致目标应用程序出现卡顿现象的M个卡顿原因各自对应的程序代码。
服务器包括应用程序卡顿测试平台。这里所提及的应用程序卡顿测试平台是基于Node.js的express框架搭建的平台。该应用程序卡顿测试平台可以显示导致目标应用程序出现卡顿现象的主要卡顿原因各自对应的程序代码。例如,主要卡顿原因包括1个。详情请参见4A。
通过本发明实施例,服务器根据策略确定N个卡顿原因中的M个卡顿原因为主要卡顿原因后,显示主要卡顿原因各自对应的程序代码,可便于开发者获知应用程序的主要卡顿原因,并对应用程序的程序代码中所存在的不足进行改进,可避免应用程序的卡顿现象,提高应用程序的流畅度,进而提高用户的使用体验。
可选的,服务器在执行上述步骤S302之后,还可以执行步骤S304,具体的,参见图6,是本发明实施例提供的另一种应用程序卡顿测试方法的流程示意图,以下对步骤S304进行详细描述。
S304、上述服务器将导致目标应用程序出现卡顿现象的M个卡顿原因各自对应的程序代码发送至预设邮箱地址。
可选的,预设邮箱地址为开发者的邮箱。
在一种可能的实现方式中,这里所提及的预设邮箱地址是预先设置好的,例如,该邮箱地址可以为[email protected]。具体的,该邮箱地址可以包括多个开发者共同使用的一个邮箱地址,也可以包括某一个具体的开发者使用的邮箱地址,例如,张三,本发明实施例不作具体限定。
服务器根据策略确定了多个卡顿原因中的主要卡顿原因后(例如,5个主要卡顿原因),将主要卡顿原因各自对应的程序代码发送给预先设置好的邮箱地址。开发者可以对每个卡顿原因各自对应的程序代码进行修改,以避免再次出现同一卡顿原因。
通过本发明实施例,服务器根据策略确定多个卡顿原因中的主要卡顿原因后,将主要卡顿原因发送给开发者的邮箱,可便于开发者获知应用程序的主要卡顿原因,并对应用程序的程序代码中所存在的不足进行改进,可避免应用程序的卡顿现象,提高应用程序的流畅度,进而提高用户的使用体验。
本发明实施例还描述了与上述图4、图5、图6所述方法实施例属于同一发明构思下的一种服务器的结构示意图。如图7所示,该服务器700用于执行图4、图5、图6上述方法实施例中服务器的功能,包括:接收单元701、第一确定单元702。
其中,接收单元701,用于接收终端发送的卡顿信息,所述卡顿信息包括导致目标应用程序出现卡顿现象的N个卡顿原因对应的程序代码以及所述N个卡顿原因分别导致所述终端出现卡顿现象的时长,N为正整数;
第一确定单元702,用于根据所述卡顿信息确定导致所述目标应用程序出现所述卡顿现象的M个卡顿原因,所述M个卡顿原因为所述第一确定单元702根据所述N个卡顿原因分别导致所述终端出现卡顿现象的时长和/或所述N个卡顿原因分别导致所述终端出现卡顿现象的次数确定的,M为小于或等于N的正整数。
可选的,所述卡顿信息还包括所述程序代码对应的指示符,相同的程序代码对应的指示符相同,所述指示符的长度短于所述程序代码的长度。
可选的,第一确定单元702包括第一排序单元和第二确定单元;
其中,所述第一排序单元,用于将所述N个卡顿原因按照导致所述终端出现卡顿现象的时长由大到小进行排序;
所述第二确定单元,用于将排名前M位的卡顿原因确定为导致所述目标应用程序出现所述卡顿现象的M个卡顿原因;
或,所述第一排序单元,用于将所述N个卡顿原因按照导致所述终端出现卡顿现象的次数由大到小进行排序;
所述第二确定单元,用于将排名前M位的卡顿原因确定为导致所述目标应用程序出现所述卡顿现象的M个卡顿原因;
或,所述第一排序单元,用于将所述N个卡顿原因按照导致所述终端出现卡顿现象的时长和导致所述终端出现卡顿现象的次数由大到小进行排序;
所述第二确定单元,用于将排名前M位的卡顿原因确定为导致所述目标应用程序出现所述卡顿现象的M个卡顿原因。
可选的,第一排序单元包括处理单元、第二排序单元;
所述处理单元,用于按照以下公式依次确定所述N个卡顿原因中的每个卡顿原因的权重,所述公式为:
Xi=0.5*Ai+0.5*Bi
其中,Xi为所述N个卡顿原因中的第i个卡顿原因的权重,Ai为将所述N个卡顿原因分别导致所述终端出现卡顿现象的时长按照从大到小的顺序进行排序后所述第i个卡顿原因导致所述终端出现卡顿现象的时长所占的排名,Bi为将所述N个卡顿原因分别导致所述终端出现卡顿现象的次数按照从大到小的顺序进行排序后所述第i个卡顿原因导致所述终端出现卡顿现象的次数所占的排名,其中,i为大于等于1且小于等于N的正整数;
所述第二排序单元,用于将所述N个卡顿原因按照权重由小到大进行排序,权重越小,表征卡顿原因的严重级别越高;
所述第二确定单元,用于将排名前M位的卡顿原因确定为导致所述目标应用程序出现所述卡顿现象的M个卡顿原因,具体为:
将所述N个卡顿原因按照权重由小到大进行排序后,将排名前M位的卡顿原因确定为导致所述目标应用程序出现所述卡顿现象的M个卡顿原因,所述M个卡顿原因为所述N个卡顿原因中严重级别最高的M个卡顿原因。
可选的,所述服务器还包括显示单元;
显示单元,用于在第一确定单元702根据所述卡顿信息确定导致所述目标应用程序出现所述卡顿现象的M个卡顿原因之后,显示导致所述目标应用程序出现卡顿现象的所述M个卡顿原因。
可选的,所述服务器还包括发送单元;
发送单元,用于在第一确定单元702根据所述卡顿信息确定导致所述目标应用程序出现所述卡顿现象的M个卡顿原因之后,将导致所述目标应用程序出现卡顿现象的所述M个卡顿原因各自对应的程序代码发送至预设邮箱地址。
可以理解的是,本实施例的服务器700的各功能单元的功能可根据上述图4、图5、图6所示方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。
本发明实施例还描述了与上述图4所述方法实施例属于同一发明构思下的一种终端的结构示意图。如图8所示,该终端800用于执行图4上述方法实施例中终端的功能,包括:发送单元801。
其中,发送单元801,用于向服务器发送卡顿信息,所述卡顿信息包括导致目标应用程序出现卡顿现象的N个卡顿原因对应的程序代码以及所述N个卡顿原因分别导致所述终端出现卡顿现象的时长,N为正整数,所述卡顿信息用于所述服务器确定导致所述目标应用程序出现所述卡顿现象的M个卡顿原因,所述M个卡顿原因为所述服务器根据所述N个卡顿原因分别导致所述终端出现卡顿现象的时长和/或所述N个卡顿原因分别导致所述终端出现卡顿现象的次数确定的。
可选的,所述卡顿信息还包括所述程序代码对应的指示符,相同的程序代码对应的指示符相同,所述指示符的长度短于所述程序代码的长度。
可选的,所述N个卡顿原因对应的程序代码为利用自动化测试工具对所述目标应用程序的安装包进行自动化测试得到的。
可以理解的是,本实施例的终端800的各功能单元的功能可根据上述图4、图5、图6所示方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。本发明实施例还提供了一种计算机存储介质,用于储存为上述图7所示的服务器所用的计算机软件指令,其包含用于执行上述方法实施例所设计的程序。通过执行存储的程序,可以实现应用程序卡顿的测试。
本发明实施例还提供了另一种计算机存储介质,用于储存为上述图8所述的终端所用的计算机软件指令,其包含用于执行上述方法实施例所设计的程序。通过执行存储的程序,可以实现应用程序卡顿的测试。
本领域内的技术人员应明白,本发明的实施例可提供为方法、***、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (10)
1.一种应用程序卡顿测试方法,其特征在于,包括:
服务器接收终端发送的卡顿信息,所述卡顿信息包括导致目标应用程序出现卡顿现象的N个卡顿原因对应的程序代码以及所述N个卡顿原因分别导致所述终端出现卡顿现象的时长,N为正整数;
所述服务器根据所述卡顿信息确定导致所述目标应用程序出现所述卡顿现象的M个卡顿原因,所述M个卡顿原因为所述服务器根据所述N个卡顿原因分别导致所述终端出现卡顿现象的时长和/或所述N个卡顿原因分别导致所述终端出现卡顿现象的次数确定的,M为小于或等于N的正整数。
2.根据权利要求1所述的方法,其特征在于,所述卡顿信息还包括所述程序代码对应的指示符,相同的程序代码对应的指示符相同,所述指示符的长度短于所述程序代码的长度。
3.根据权利要求1所述的方法,其特征在于,所述服务器根据所述卡顿信息确定导致所述目标应用程序出现所述卡顿现象的M个卡顿原因,包括:
所述服务器将所述N个卡顿原因按照导致所述终端出现卡顿现象的时长由大到小进行排序;
所述服务器将排名前M位的卡顿原因确定为导致所述目标应用程序出现所述卡顿现象的M个卡顿原因;
或,所述服务器将所述N个卡顿原因按照导致所述终端出现卡顿现象的次数由大到小进行排序;
所述服务器将排名前M位的卡顿原因确定为导致所述目标应用程序出现所述卡顿现象的M个卡顿原因;
或,所述服务器将所述N个卡顿原因按照导致所述终端出现卡顿现象的时长和导致所述终端出现卡顿现象的次数由大到小进行排序;
所述服务器将排名前M位的卡顿原因确定为导致所述目标应用程序出现所述卡顿现象的M个卡顿原因。
4.根据权利要求3所述的方法,其特征在于,所述服务器将所述N个卡顿原因按照导致所述终端出现卡顿现象的时长和导致所述终端出现卡顿现象的次数由大到小进行排序,包括:
所述服务器按照以下公式依次确定所述N个卡顿原因中的每个卡顿原因的权重,所述公式为:
Xi=0.5*Ai+0.5*Bi
其中,Xi为所述N个卡顿原因中的第i个卡顿原因的权重,Ai为将所述N个卡顿原因分别导致所述终端出现卡顿现象的时长按照从大到小的顺序进行排序后所述第i个卡顿原因导致所述终端出现卡顿现象的时长所占的排名,Bi为将所述N个卡顿原因分别导致所述终端出现卡顿现象的次数按照从大到小的顺序进行排序后所述第i个卡顿原因导致所述终端出现卡顿现象的次数所占的排名,其中,i为大于等于1且小于等于N的正整数;
所述服务器将所述N个卡顿原因按照权重由小到大进行排序,权重越小,表征卡顿原因的严重级别越高;
所述服务器将排名前M位的卡顿原因确定为导致所述目标应用程序出现所述卡顿现象的M个卡顿原因,包括:
所述服务器将所述N个卡顿原因按照权重由小到大进行排序后,将排名前M位的卡顿原因确定为导致所述目标应用程序出现所述卡顿现象的M个卡顿原因,所述M个卡顿原因为所述N个卡顿原因中严重级别最高的M个卡顿原因。
5.根据权利要求1至4任一项所述的方法,其特征在于,所述服务器根据所述卡顿信息确定导致所述目标应用程序出现所述卡顿现象的M个卡顿原因之后,还包括:
所述服务器显示导致所述目标应用程序出现卡顿现象的所述M个卡顿原因各自对应的程序代码。
6.根据权利要求1至4任一项所述的方法,其特征在于,所述服务器根据所述卡顿信息确定导致所述目标应用程序出现所述卡顿现象的M个卡顿原因之后,还包括:
所述服务器将导致所述目标应用程序出现卡顿现象的所述M个卡顿原因各自对应的程序代码发送至预设邮箱地址。
7.一种应用程序卡顿测试方法,其特征在于,包括:
终端向服务器发送卡顿信息,所述卡顿信息包括导致目标应用程序出现卡顿现象的N个卡顿原因对应的程序代码以及所述N个卡顿原因分别导致所述终端出现卡顿现象的时长,N为正整数,所述卡顿信息用于所述服务器确定导致所述目标应用程序出现所述卡顿现象的M个卡顿原因,所述M个卡顿原因为所述服务器根据所述N个卡顿原因分别导致所述终端出现卡顿现象的时长和/或所述N个卡顿原因分别导致所述终端出现卡顿现象的次数确定的。
8.根据权利要求7所述的方法,其特征在于,所述卡顿信息还包括所述程序代码对应的指示符,相同的程序代码对应的指示符相同,所述指示符的长度短于所述程序代码的长度。
9.根据权利要求7所述的方法,其特征在于,所述N个卡顿原因对应的程序代码为所述终端利用自动化测试工具对所述目标应用程序的安装包进行自动化测试得到的。
10.一种服务器,其特征在于,包括:
接收单元,用于接收终端发送的卡顿信息,所述卡顿信息包括导致目标应用程序出现卡顿现象的N个卡顿原因对应的程序代码以及所述N个卡顿原因分别导致所述终端出现卡顿现象的时长,N为正整数;
第一确定单元,用于根据所述卡顿信息确定导致所述目标应用程序出现所述卡顿现象的M个卡顿原因,所述M个卡顿原因为所述第一确定单元根据所述N个卡顿原因分别导致所述终端出现卡顿现象的时长和/或所述N个卡顿原因分别导致所述终端出现卡顿现象的次数确定的,M为小于或等于N的正整数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711477047.7A CN108108303A (zh) | 2017-12-29 | 2017-12-29 | 一种应用程序卡顿测试方法、相关设备及计算机存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711477047.7A CN108108303A (zh) | 2017-12-29 | 2017-12-29 | 一种应用程序卡顿测试方法、相关设备及计算机存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108108303A true CN108108303A (zh) | 2018-06-01 |
Family
ID=62214740
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711477047.7A Pending CN108108303A (zh) | 2017-12-29 | 2017-12-29 | 一种应用程序卡顿测试方法、相关设备及计算机存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108108303A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108900520A (zh) * | 2018-07-11 | 2018-11-27 | 广州虎牙信息科技有限公司 | 直播卡顿因素确定方法、装置、服务器及存储介质 |
CN109840189A (zh) * | 2018-12-15 | 2019-06-04 | 中国平安人寿保险股份有限公司 | 卡顿信息收集方法、装置、计算机装置、及可读存储介质 |
CN110868622A (zh) * | 2019-10-30 | 2020-03-06 | 北京奇艺世纪科技有限公司 | 一种卡顿分析方法、装置、电子设备及存储介质 |
CN111045926A (zh) * | 2019-11-05 | 2020-04-21 | 北京字节跳动网络技术有限公司 | 一种应用程序卡顿的检测方法、装置、介质和电子设备 |
CN112423096A (zh) * | 2020-11-03 | 2021-02-26 | 上海哔哩哔哩科技有限公司 | 播放优化方法及*** |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150347282A1 (en) * | 2014-05-30 | 2015-12-03 | Apple Inc. | Performance testing for blocks of code |
CN105589783A (zh) * | 2014-11-18 | 2016-05-18 | 广州市动景计算机科技有限公司 | 应用程序卡顿问题数据获取方法及装置 |
CN106681913A (zh) * | 2016-12-08 | 2017-05-17 | 武汉斗鱼网络科技有限公司 | 一种应用卡顿定位***及方法 |
CN107247667A (zh) * | 2017-06-02 | 2017-10-13 | 上海金大师网络科技有限公司 | 自动化dump分析***及方法 |
-
2017
- 2017-12-29 CN CN201711477047.7A patent/CN108108303A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150347282A1 (en) * | 2014-05-30 | 2015-12-03 | Apple Inc. | Performance testing for blocks of code |
CN105589783A (zh) * | 2014-11-18 | 2016-05-18 | 广州市动景计算机科技有限公司 | 应用程序卡顿问题数据获取方法及装置 |
CN106681913A (zh) * | 2016-12-08 | 2017-05-17 | 武汉斗鱼网络科技有限公司 | 一种应用卡顿定位***及方法 |
CN107247667A (zh) * | 2017-06-02 | 2017-10-13 | 上海金大师网络科技有限公司 | 自动化dump分析***及方法 |
Non-Patent Citations (1)
Title |
---|
MARKZHAI: ""BlockCanary-轻松找出Android App界面卡顿元凶"", 《HTTPS://WWW.JIANSHU.COM/P/CD7FC77405AC》 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108900520A (zh) * | 2018-07-11 | 2018-11-27 | 广州虎牙信息科技有限公司 | 直播卡顿因素确定方法、装置、服务器及存储介质 |
CN108900520B (zh) * | 2018-07-11 | 2021-04-20 | 广州虎牙信息科技有限公司 | 直播卡顿因素确定方法、装置、服务器及存储介质 |
CN109840189A (zh) * | 2018-12-15 | 2019-06-04 | 中国平安人寿保险股份有限公司 | 卡顿信息收集方法、装置、计算机装置、及可读存储介质 |
CN110868622A (zh) * | 2019-10-30 | 2020-03-06 | 北京奇艺世纪科技有限公司 | 一种卡顿分析方法、装置、电子设备及存储介质 |
CN110868622B (zh) * | 2019-10-30 | 2022-03-04 | 北京奇艺世纪科技有限公司 | 一种卡顿分析方法、装置、电子设备及存储介质 |
CN111045926A (zh) * | 2019-11-05 | 2020-04-21 | 北京字节跳动网络技术有限公司 | 一种应用程序卡顿的检测方法、装置、介质和电子设备 |
CN111045926B (zh) * | 2019-11-05 | 2023-04-14 | 北京字节跳动网络技术有限公司 | 一种应用程序卡顿的检测方法、装置、介质和电子设备 |
CN112423096A (zh) * | 2020-11-03 | 2021-02-26 | 上海哔哩哔哩科技有限公司 | 播放优化方法及*** |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108108303A (zh) | 一种应用程序卡顿测试方法、相关设备及计算机存储介质 | |
EP3447642B1 (en) | System and method for predicting application performance for large data size on big data cluster | |
US7415444B2 (en) | Determining compliance rates for probabilistic requests | |
US8660833B2 (en) | Method, computer program product and apparatus for providing an interactive network simulator | |
CN110990269A (zh) | 一种接口测试的方法、装置及*** | |
CN110221953A (zh) | 测试结果分析方法、装置、服务器及存储介质 | |
CN107038120A (zh) | 一种软件测试方法和设备 | |
CN109471787B (zh) | 软件质量评价方法及装置、存储介质、电子设备 | |
CN111127223B (zh) | 保险产品测试方法、装置和存储介质 | |
CN110032750A (zh) | 一种模型构建、数据生命周期预测方法、装置及设备 | |
CN111402000B (zh) | 一种业务页面的生成方法、装置、***及计算机*** | |
CN109697166B (zh) | 一种测试数据准备方法及相关装置 | |
CN109672706A (zh) | 一种信息推荐方法、装置、服务器及存储介质 | |
CN110322375A (zh) | 在线面试考核方法、装置、介质及电子设备 | |
CN108614697A (zh) | 后台Dex编译管控的方法及装置 | |
CN110866492B (zh) | 一种基线分支的识别方法、装置及计算机*** | |
CN110209572A (zh) | 用户界面测试方法、用户界面测试***及终端 | |
CN110083506A (zh) | 集群资源量优化的方法及装置 | |
CN110297754A (zh) | 一种测试信息反馈方法及*** | |
CN115292178A (zh) | 测试数据搜索方法、装置、存储介质以及终端 | |
CN114116488A (zh) | 测试覆盖率信息获取方法、装置、设备及存储介质 | |
CN114302207A (zh) | 一种弹幕显示方法、装置、***、设备及存储介质 | |
CN112596725A (zh) | 编程作品的评分方法、评分装置、终端设备及存储介质 | |
CN106020839B (zh) | 一种测试数据的显示方法、开发终端及图形用户界面 | |
CN111427874A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180601 |
|
RJ01 | Rejection of invention patent application after publication |