CN110275832A - 应用程序的启动耗时测试方法、系统、设备及介质 - Google Patents

应用程序的启动耗时测试方法、系统、设备及介质 Download PDF

Info

Publication number
CN110275832A
CN110275832A CN201910533251.9A CN201910533251A CN110275832A CN 110275832 A CN110275832 A CN 110275832A CN 201910533251 A CN201910533251 A CN 201910533251A CN 110275832 A CN110275832 A CN 110275832A
Authority
CN
China
Prior art keywords
installation kit
application program
test
sent
test application
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
CN201910533251.9A
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.)
Beijing ByteDance Network Technology Co Ltd
Original Assignee
Beijing ByteDance Network Technology 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 ByteDance Network Technology Co Ltd filed Critical Beijing ByteDance Network Technology Co Ltd
Priority to CN201910533251.9A priority Critical patent/CN110275832A/zh
Publication of CN110275832A publication Critical patent/CN110275832A/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/3604Software analysis for verifying properties of programs
    • G06F11/3612Software analysis for verifying properties of programs by runtime analysis

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本公开实施例提供了一种应用程序的启动耗时测试方法、系统、设备及介质,该方法包括:在获取到的安装包中注入动态库,以在安装包中的可执行代码处增加预设程序代码得到修改安装包,并对修改安装包重签名,得到待使用安装包,将待使用安装包发送至目标终端,并安装待使用安装包,得到测试应用程序,将启动命令发送至测试应用程序,以使测试应用程序执行程序启动的操作,并得到启动完成时间。本公开实施例的技术方案,解决了确定应用程序的启动耗时时,需要人工参与,存在计时不准确以及浪费人力的技术问题,实现了便捷、高效的对应用程序的启动耗时进行测试的技术效果。

Description

应用程序的启动耗时测试方法、系统、设备及介质
技术领域
本公开实施例涉及计算机技术领域,尤其涉及一种应用程序的启动耗时测试方法、系统、设备及介质。
背景技术
目前,为了便利用户,可以在终端上安装各种各样的应用程序。相应的,用户对安装在智能终端上的应用程序体验要求越来越高。其中,应用程序的启动时间直接影响着用户对应用程序的体验,因此提高应用程序的启动速度,以及缩短应用程序的启动时间成为改善用户体验的重要因素。
现有技术中,对应用程序的启动时间测试主要存在两种实施方式。第一种实施方式是,通过秒表进行人工计时,即用户同时触发应用程序以及秒表,当程序启动后,计时结束;另一种实施方式是:通过高速摄像机拍摄应用程序启动过程,根据拍摄的视频确定应用程序的启动时间。
但是,上述两种方式均是人工操作,会存在人为误差导致计时不准确且浪费人力的技术问题。
发明内容
本公开实施例提供一种应用程序的启动耗时测试方法、系统、设备及介质,以高效、便捷地对应用程序的启动耗时进行测试。
第一方面,本公开实施例还提供了一种应用程序的启动耗时测试方法,该方法包括:
在获取到的安装包安装包中注入动态库,以在所述安装包中的可执行代码处增加预设程序代码得到修改安装包,并对所述修改安装包重签名,得到待使用安装包;其中,所述安装包为与待测试应用程序相对应的安装包;
将所述待使用安装包发送至目标终端,并安装所述待使用安装包,得到测试应用程序;
将启动命令发送至所述测试应用程序,以使所述测试应用程序根据所述启动命令执行程序启动的操作,得到所述测试应用程序的启动完成时间;
其中,所述预设程序代码,用于执行获取所述启动完成时间、以及发送所述启动完成时间的操作。
第二方面,本公开实施例还提供了一种应用程序的启动耗时测试系统,该系统包括:
待使用安装包获取模块,用于在获取到的安装包中注入动态库,以在所述安装包中的可执行代码处增加预设程序代码得到修改安装包,并对所述修改安装包重签名,得到待使用安装包;其中,所述安装包为与待测试应用程序相对应的安装包;
测试应用程序安装模块,用于将所述待使用安装包发送至目标终端,并安装所述待使用安装包,得到测试应用程序;
启动完成时间确定模块,用于将启动命令发送至所述测试应用程序,以使所述测试应用程序根据所述启动命令执行程序启动的操作,得到所述测试应用程序的启动完成时间;
其中,所述预设程序代码,用于执行获取所述启动完成时间、以及发送所述启动完成时间的操作。
第三方面,本公开实施例还提供了一种电子设备,所述电子设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如本公开实施例任一所述的应用程序的启动耗时测试方法。
第四方面,本公开实施例还提供了一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行如本公开实施例任一所述的应用程序的启动耗时测试方法。
本公开实施例的技术方案,通过在获取到的安装包中注入动态库,以在安装包中的可执行代码处增加预设程序代码得到修改安装包,并对修改安装包重签名,得到待使用安装包,将待使用安装包发送至目标终端,并安装待使用安装包,得到测试应用程序,将启动命令发送至测试应用程序,以使测试应用程序根据启动命令执行程序启动的操作,得到测试应用程序的启动完成时间,解决了现有技术中确定应用程序的启动耗时时,需要人工参与,存在计时不准确以及浪费人力的技术问题,实现了便捷、高效的对应用程序的启动耗时进行测试,并且提高了测试准确性,以及降低劳动成本的技术效果。
附图说明
为了更加清楚地说明本公开示例性实施例的技术方案,下面对描述实施例中所需要用到的附图做一简单介绍。显然,所介绍的附图只是本公开所要描述的一部分实施例的附图,而不是全部的附图,对于本领域普通技术人员,在不付出创造性劳动的前提下,还可以根据这些附图得到其他的附图。
图1为本公开实施例所提供的一种应用程序的启动耗时测试方法的流程示意图;
图2为本公开实施例所提供的一种应用程序的启动耗时测试方法的另一流程示意图;
图3为本公开实施例所提供的一种应用程序的启动耗时测试方法的另一流程示意图;
图4为本公开实施例所提供的一种应用程序的启动耗时测试系统的结构示意图;
图5为本公开实施例所提供的一种电子设备结构示意图。
具体实施方式
下面结合附图和实施例对本公开作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本公开,而非对本公开的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本公开相关的部分而非全部结构。
图1为本公开实施例所提供的一种应用程序的启动耗时测试方法的流程示意图,本实施例的方法可适用于对应用程序的启动耗时进行自动化测试的情形,该方法可以由应用程序的启动耗时测试系统来执行,该系统可以通过软件和/或硬件的形式实现,并且可以配置于电子设备中,该电子设备典型是终端设备,可选的,是手机、平板或者PC端等。
如图1所述,本实施例的方法包括:
S110、在获取到的安装包中注入动态库,以在安装包中的可执行代码处增加预设程序代码得到修改安装包,并对修改安装包重签名,得到待使用安装包。
其中,获取安装包可以是:接收与待测试应用程序相对应的安装包下载地址,根据下载地址获取安装包。
需要说明的是,执行本实施例技术方案的可以是:确定应用程序启动耗时的应用程序,可以将确定启动耗时的应用程序作为iMonkey。相应的,本实施例的方法可以由应用程序iMonkey来执行。其中,可以将启动耗时的应用程序安装在计算机,或者其它终端上,可选的,PC端。
其中,待测试应用程序是被检测启动耗时的程序,可以是任何一个需要确定启动耗时的应用程序。根据下载地址获取安装包的方式用户可以根据实际需求进行设置,在此不做限定。
具体的,在用户输入与待测试应用程序相对应的下载地址后,iMonkey可以接收该下载地址,并根据该下载地址获取与下载地址相对应的安装包。
其中,注入动态库的本质是修改可执行命令的程序代码,可以是在安装包中的可执行代码处增加预设程序代码,可选的,修改Mach-O处的Load Command。预设程序代码可以是执行监听启动完成时间,以及向电脑端发送启动完成的操作。重签名,每个安装包都有与其相对应的签名,当安装包中的程序发生变化时,需要有新的签名与修改后的安装包相对应。目的在于:为了使修改程序代码后得到的修改安装包,可以安装到终端上。
具体的,iMonkey执行在安装包中注入动态库的操作,即在安装包的可执行代码处增加获取启动完成时间,以及发送启动完成时间的程序代码。将此时得到的安装包,作为修改安装包。在安装包中注入动态库操作完成之后,继续执行对修改安装包重签名操作,即对安装包中的每一个文件进行重签名,以确保安装包可以安装到终端上。将重签名后得到的安装包作为待使用安装包。
S120、将待使用安装包发送至目标终端,并安装待使用安装包,得到测试应用程序。
其中,将待使用安装包发送到的终端作为目标终端。目标终端可以是手机。将根据下载地址获取到安装包,经注入动态库、重签名后,安装到目标终端后得到的应用程序,作为测试应用程序。待测试应用程序与测试应用程序是同一个软件,只是测试应用程序可以中存在预设程序代码,可以监听测试应用程序的启动完成时间,并将监听到的启动完成时间发送至PC端。
具体的,在得到待使用安装包之后,执行发送并安装待使用安装包的命令。即,iMonkey执行将待使用安装包发送至目标终端,并将待使用安装包安装到目标终端的操作,得到测试安装包。
可选的,调用预设脚本,将所述待使用安装包发送至目标终端,并将所述待使用安装包安装到所述目标终端上,得到所述测试应用程序。
其中,预设脚本可以是预先编好的程序代码,或者函数。预设脚本可以在内置在iMonkey程序中。可以实现将待使用安装包发送,并安装到目标终端上的功能。
具体的,当iMonkey执行完成重签名指令后,开始执行的发送待使用安装包的指令,具体为:调用预预先设置的脚本,并根据预设脚本将安装包发送至目标终端,并将其安装到目标终端上,得到测试应用程序。
S130、将启动命令发送至测试应用程序,以使测试应用程序根据启动命令执行程序启动的操作,得到测试应用程序的启动完成时间。
其中,可以预先建立目标终端与PC端之间的通信协议,以便目标终端与PC端之间可以互相通信。启动命令可以理解为使测试应用程序开始运行的命令。
具体的,PC端上安装的iMonkey可以向测试应用程序发送启动命令。测试应用程序接收启动命令,执行启动应用程序的操作。此时注入动态库中的预设程序代码可以执行,监听测试应用程序启动完成的时间,并将启动完成时间发送至PC端,从而使用户得到测试应用程序的启动完成时间,即测试应用程序的启动耗时。
需要说明的是,为了使得到的启动完成时间比较精确,可以重复执行上述步骤至少两次,iMonkey对接收到的至少两个启动完成时间进行处理,可选的,求均值、求方差等,将处理后得到的启动完成时间,作为测试应用程序的启动耗时。
为了实现自动化测试的目标,确定应用程序耗时的程序iMonkey,需要具备自动启动和关闭测试应用程序的功能。为了具备该功能,iMonkey内可以内嵌一个运行函数。该运行函数,可以将驱动测试应用程序启动的运行安装包,发送至目标终端,并在目标终端上安装预设运行安装包,以及启动预设运行安装包,得到与运行安装包相对应的运行服务端。
其中,预设运行安装包为,驱动测试应用程序启动和关闭的安装包。当运行安装包安装到目标终端上时,iMonkey执行到某一行命令时,就可以实现驱动测试应用程序启动和退出。安装预设运行安装包的好处在于,iMonkey可以自动启动应用程序,从而得到启动完成时间。
具体的,当测试应用程序安装结束,iMonkey向测试应用程序发送启动指令之前,iMonkey先执行调用运行函数,通过该运行函数,将PC端内设置预设运行安装包发送至目标终端并安装,得到运行服务端。
可选的,在得到与预设运行安装包相对应的运行服务端之后,还包括:建立与预设运行安装包相对应的运行客户端。
可以理解为,在得到运行服务端后,还需要存在与其相对应的运行客户端,客户端可以向服务端发送请求信息。
本实施例中,iMonkey将启动命令发送至测试应用程序,以使测试应用程序根据启动命令执行程序启动的操作,得到测试应用程序的启动完成时间,可以是:通过运行客户端将启动命令发送至运行服务端,以使运行服务端根据启动命令,向测试应用程序发送至控制指令,以启动测试应用程序,并得到启动完成时间;其中,启动命令中包括与待测试应用程序相对应的标识。
可以理解为,iMonkey向运行客户端发送启动命令,运行客户端将启动命令发送至运行服务端,运行服务端接收启动命令,并生成与启动命令相对应的控制指令。运行服务端将控制指令发送至测试应用程序,测试应用程序根据该控制指令启动应用程序。在应用程序启动的过程中,注入动态库可以监听启动完成时间,并将启动完成时间反馈至PC端,从而得到了启动完成时间。
本公开实施例的技术方案,通过在获取到的安装包中注入动态库,以在安装包中的可执行代码处增加预设程序代码得到修改安装包,并对修改安装包重签名,得到待使用安装包,将待使用安装包发送至目标终端,并安装待使用安装包,得到测试应用程序,将启动命令发送至测试应用程序,以使测试应用程序根据启动命令执行程序启动的操作,得到测试应用程序的启动完成时间,解决了现有技术中确定应用程序的启动耗时时,需要人工参与,存在计时不准确以及浪费人力的技术问题,实现了便捷、高效的对应用程序的启动耗时进行测试,并且提高了测试准确性,以及降低劳动成本的技术效果。
在上述技术方案的基础上,在根据下载地址获取安装包之后,还包括:获取安装包中的配置文件,并在配置文件中确定启动完成时间的数据存储路径。
也就是说,在获取到与待测试应用程序相对应的安装包之后,可以在配置文件中,设置启动完成时间的数据存储路径,即将启动完成时间存储到PC端的哪一个位置处。
在上述技术方案的基础上,所述方法还包括:基于所述预设程序代码将所述启动完成时间,按照所述预设存储路径发送至目标位置。
具体的,将启动完成时间,按照预先设置的数据存储路径发送至PC端中,与预设存储路径相对应的目标位置处。
作为上述实施例的一优选实施例,图2为本公开实施例所提供的一种应用程序的启动耗时测试方法的另一流程示意图。
如图2所示,所述方法包括:
S201、开始。
需要说明的是,可以预先编写的程序代码,或者设置确定应用程序启动耗时的应用程序,来执行确定待测试应用程序的启动耗时,即启动完成时间。在本实施例中,以检测待测试应用程序的启动完成时间是应用程序为例来介绍。
其中,可以将应用程序称为iMonkey,可以安装在任何终端上,可选的,可以将应用程序安装在PC端。
若用户触发了iMonkey,则可以确定为iMonkey开始工作。也就是,iMonkey开始执行确定待测试应用程序的启动完成时间,即启动耗时的操作。
S202、下载安装包。
当iMonkey开始工作时,可以在预设位置处输入与待测试应用程序相对应的安装包下载地址。例如,在命令行输入处,输入与待测试应用程序相对应的安装包下载地址。
iMonkey根据接收到的安装包下载地址,得到与下载地址相对应安装包IPA。下载安装包,用户可以根据实际需求选择任意一种方式来实现,在此不作限定。
具体的,iMonkey接收预设位置处输入的安装包下载地址,并根据该下载地址得到安装包。
S203、注入动态库。
为了得到与待测试应用程序相对应的启动耗时,需要在待测试应用程序启动完成时,得到启动完成时间。其中,得到启动完成时间,可以通过在预设位置设置埋点,或者是注入动态库来确定。
其中,动态库又作为动态链接库,是一个包含可由多个程序同时使用的代码和数据的库,可以调用不属于可执行代码的函数。在本实施例中,注入动态库可以理解为,在安装包的可执行代码处增加预设程序代码,预设程序代码可以执行监听待测试应用程序的启动耗时数据,即启动完成时间。也就是说,注入动态库,可实现在待测试应用程序启动完成时,可以得到启动完成时间。
具体的,iMonkey在执行完成下载安装包之后,可以继续执行在安装包的预设位置处注入动态库,从而得到待测试应用程序启动完成所需要的时间,即启动完成时间。
需要说明的是注入的动态库还可以实现发送数据的功能,即将监听到的启动完成时间发送至预设位置。将安装包中注入动态库后,得到的安装包作为修改安装包。
S204、重签名。
由于修改安装包中的程序代码,与根据下载地址获取到的安装包内程序代码不同,因此需要对修改安装包进行重签名。
具体的,iMonkey使用命令行工具对修改安装包进行重新签名。其中,为了确保对修改安装包中的各个文件全部重新签名,重签名可以由内向外进行。将重新签名后得到的安装包,作为待使用安装包。
S205、安装待使用安装包。
根据下载地址获取到的安装包,经过动态库注入、重签名后得到了待使用安装包。将待使用安装包安装后,可以得到与待使用安装包相对应的测试应用程序。通过控制测应用程序的启动,就可以得到测试应用程序的启动完成时间。因此,需要安装待使用安装包。
安装更待使用安装包,具体可以是:在iMonkey执行完成重签名后,调用预设脚本,将待使用安装包发送至目标终端,可选的,移动终端上,并将待使用安装包安装到目标终端上,得到测试应用程序。
需要说明的是,可以预先建立目标终端与PC端之间的通讯,以便目标终端与PC端之间可以数据传输。
S206、启动、关闭应用程序。
需要说明的是,待使用安装包安装到目标终端上后,iMonkey需要具备控制待测试应用程序启动、以及退出的功能,只有iMonkey具备这样的功能才能实现自动化启动测试的目标。
为了实现这一目标,在iMonkey执行完成安装待使用安装包之后,执行调用运行函数的命令,将预设的运行安装包发送至目标终端,并在目标终端中安装运行安装包,以及启动该运行安装包,得到了与运行安装包,相对应的运行服务端。
在将启动待测试应用程序的运行程序,安装到目标终端的过程中,需要一个开发证书来签名该运行程序,因此需要在iMonkey的安装流程中提示用户手动设置一个证书来解决。当然,也可以设置一个自动解决的方案,可以是在将运行程序安装到目标终端上时,生成与目标终端相对应的开发证书来签名运行程序。
在将运行程序安装到目标终端上之后,iMonkey执行在电脑端,建立与运行程序相对应的客户端,并在该客户端中标记将要启动的测试应用程序,可选的,标记测试应用程序的ID。
其中,运行客户端与运行服务端之间可以通过HTTP发送请求信息。
S207、回传数据。
在iMonkey控制待测试应用程序启动完成之后,动态库就可以获取到启动完成时间,同时,动态库还可以将启动完成时间回传至电脑端。
为了使电脑端接收回传数据,在对安装包重签名之前,iMonkey可以调取修改安装包中的配置文件,并在配置文件中写入回传数据的传输路径,以及传输协议。在待测试应用程序启动完成后,动态库可以将监听到的启动完成时间,按照配置文件中写入的传输路径发送至电脑端。
S208、结束。
电脑端接收到回传数据后,iMonkey可以向待测试应用程序发送至退出指令,从而使应用程序完全退出。
本实施例确定应用程序的启动耗时流程可以是:获取在预设位置输入的与待测试应用程序相对应的安装包下载地址,并根据该下载地址获取安装包;在安装包中的可执行代码处注入动态库,以获取待测试应用程序的启动完成时间;对注入动态库的安装包重签名,得到待使用安装包;执行将待使用安装包发送并安装到目标终端的指令,得到待测试应用程序;执行向待测试应用程序发送启动的程序的命令,启动待测试应用程序得到启动完成时间,并执行将启动完成时间回传的操作,在电脑端上得到应用程序的启动耗时。
在本实施例中,为了精准的得到待测试应用程序的启动完成时间,可以预先设置待测试应用程序的启动次数,重复执行S201至S207,电脑端得到至少一组启动完成时间,可以对至少一组启动完成时间进行处理,得到精准的启动完成时间,并将此时得到的启动完成时间,作为测试应用程序的启动耗时。
参见图3,可以将应用程序的启动耗时测试方法理解为:将工具理解为测试应用程序的启动耗时应用程序,即iMonkey,将与待测试应用程序相对应的下载地址,以及运行次数输入至iMonkey,输出为待测试应用程序启动完成时间,即应用程序启动耗时。
本公开实施例的技术方案,通过在获取到的安装包中注入动态库,以在安装包中的可执行代码处增加预设程序代码得到修改安装包,并对修改安装包重签名,得到待使用安装包,将待使用安装包发送至目标终端,并安装待使用安装包,得到测试应用程序,将启动命令发送至测试应用程序,以使测试应用程序根据启动命令执行程序启动的操作,得到测试应用程序的启动完成时间,解决了现有技术中确定应用程序的启动耗时时,需要人工参与,存在计时不准确以及浪费人力的技术问题,实现了便捷、高效的对应用程序的启动耗时进行测试,并且提高了测试准确性,以及降低劳动成本的技术效果。
图4为本公开实施例提供的一种应用程序的启动耗时测试系统的结构示意图,该系统包括:待使用安装包获取模块410、测试应用程序安装模块420以及启动完成时间确定模块430。
其中,待使用安装包获取模块410,用于在获取到的安装包中注入动态库,以在所述安装包中的可执行代码处增加预设程序代码得到修改安装包,并对所述修改安装包重签名,得到待使用安装包;其中,所述安装包为与待测试应用程序相对应的安装包;测试应用程序安装模块420,用于将所述待使用安装包发送至目标终端,并安装所述待使用安装包,得到测试应用程序;启动完成时间确定模块430,用于将启动命令发送至所述测试应用程序,以使所述测试应用程序根据所述启动命令执行程序启动的操作,得到所述测试应用程序的启动完成时间;其中,所述预设程序代码,用于执行获取所述启动完成时间、以及发送所述启动完成时间的操作。
在上述技术方案的基础上,所述安装包获取模块,在用于根据所述下载地址获取所述安装包之后,还用于:获取所述安装包中的配置文件,并在所述配置文件中确定所述启动完成时间的数据存储路径。
在上述各技术方案的基础上,所述测试应用程序安装模块,还用于:调用预设脚本,将所述待使用安装包发送至目标终端,并将所述待使用安装包安装到所述目标终端上,得到所述测试应用程序。
在上述技术方案的基础上,所述系统还包括:运行函数调用单元,用于调用运行函数,将预设运行安装包发送至所述目标终端,并在所述目标终端上安装所述预设运行安装包,以及启动所述预设运行安装包,得到与所述预设运行安装包相对应的运行服务端。
在上述各技术方案的基础上,所述运行函数调用单元在得到与所述预设运行安装包相对应的运行服务端之后,还用于:建立与所述预设运行安装包相对应的运行客户端。
在上述各技术方案的基础上,所述启动完成时间确定模块,还用于:通过所述运行客户端将所述启动命令发送至所述运行服务端,以使所述运行服务端根据所述启动命令,向所述测试应用程序发送至控制指令,以启动所述测试应用程序,并得到所述启动完成时间;其中,所述启动命令中包括与所述待测试应用程序相对应的标识。
在上述各技术方案的基础上,所述系统还包括:启动完成时间发送单元,用于基于所述预设程序代码将所述启动完成时间,按照所述预设存储路径发送至目标位置。
本公开实施例的技术方案,通过在获取到的安装包中注入动态库,以在安装包中的可执行代码处增加预设程序代码得到修改安装包,并对修改安装包重签名,得到待使用安装包,将待使用安装包发送至目标终端,并安装待使用安装包,得到测试应用程序,将启动命令发送至测试应用程序,以使测试应用程序根据启动命令执行程序启动的操作,得到测试应用程序的启动完成时间,解决了现有技术中确定应用程序的启动耗时时,需要人工参与,存在计时不准确以及浪费人力的技术问题,实现了便捷、高效的对应用程序的启动耗时进行测试,并且提高了测试准确性,以及降低劳动成本的技术效果。
本公开实施例所提供的应用程序的启动耗时测试装置可执行本公开任意实施例所提供的应用程序的启动耗时测试方法,具备执行方法相应的功能模块和有益效果。
值得注意的是,上述系统所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本公开实施例的保护范围。
图5示出了适于用来实现本公开实施例实施方式的示例性电子设备500的框图。下面参考图5,其示出了适于用来实现本公开实施例的电子设备(例如终端设备或服务器)500的结构示意图。本公开实施例中的终端设备可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。图5示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图5所示,电子设备500可以包括处理装置(例如中央处理器、图形处理器等)501,其可以根据存储在只读存储器(ROM)502中的程序或者从存储装置508加载到随机访问存储器(RAM)503中的程序而执行各种适当的动作和处理。在RAM 503中,还存储有电子设备500操作所需的各种程序和数据。处理装置501、ROM 502以及RAM 503通过总线504彼此相连。输入/输出(I/O)接口505也连接至总线504。
通常,以下装置可以连接至I/O接口505:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置506;包括例如液晶显示器(LCD)、扬声器、振动器等的输出装置507;包括例如磁带、硬盘等的存储装置508;以及通信装置509。通信装置509可以允许电子设备500与其他设备进行无线或有线通信以交换数据。虽然图5示出了具有各种装置的电子设备500,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。
特别地,根据本公开公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置509从网络上被下载和安装,或者从存储装置508被安装,或者从ROM402被安装。在该计算机程序被处理装置501执行时,执行本公开公开实施例的方法中限定的上述功能。
需要说明的是,本公开公开上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备:
接收与待测试应用程序相对应的安装包下载地址,根据所述下载地址获取所述安装包;
在所述安装包中注入动态库,以在所述安装包中的可执行代码处增加预设程序代码得到修改安装包,并对所述修改安装包重签名,得到待使用安装包;
将所述待使用安装包发送至目标终端,并安装所述待使用安装包,得到测试应用程序;
将启动命令发送至所述测试应用程序,以使所述测试应用程序根据所述启动命令执行程序启动的操作,得到所述测试应用程序的启动完成时间;
其中,所述预设程序代码,用于执行获取所述启动完成时间、以及发送所述启动完成时间的操作。
可以以一种或多种程序设计语言或其组合来编写用于执行本公开公开的操作的计算机程序代码,上述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开公开实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,模块的名称在某种情况下并不构成对该单元本身的限定,例如,安装包获取模块还可以被描述为“安装包下载模块”;“待使用安装包获取模块”还可以描述为“安装包处理模块”。
以上描述仅为本公开公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开公开中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
注意,上述仅为本公开的较佳实施例及所运用技术原理。本领域技术人员会理解,本公开不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本公开的保护范围。因此,虽然通过以上实施例对本公开进行了较为详细的说明,但是本公开不仅仅限于以上实施例,在不脱离本公开构思的情况下,还可以包括更多其他等效实施例,而本公开的范围由所附的权利要求范围决定。

Claims (10)

1.一种应用程序的启动耗时测试方法,其特征在于,包括:
在获取到的安装包中注入动态库,以在所述安装包中的可执行代码处增加预设程序代码得到修改安装包,并对所述修改安装包重签名,得到待使用安装包;其中,所述安装包为与待测试应用程序相对应的安装包;
将所述待使用安装包发送至目标终端,并安装所述待使用安装包,得到测试应用程序;
将启动命令发送至所述测试应用程序,以使所述测试应用程序根据所述启动命令执行程序启动的操作,得到所述测试应用程序的启动完成时间;
其中,所述预设程序代码,用于执行获取所述启动完成时间、以及发送所述启动完成时间的操作。
2.根据权利要求1所述的方法,其特征在于,在所述在获取到的安装包中注入动态库之前,还包括:
获取所述安装包中的配置文件,并在所述配置文件中确定所述启动完成时间的数据存储路径。
3.根据权利要求1所述的方法,其特征在于,所述将所述待使用安装包发送至目标终端,并安装所述待使用安装包,得到测试应用程序,包括:
调用预设脚本,将所述待使用安装包发送至目标终端,并将所述待使用安装包安装到所述目标终端上,得到所述测试应用程序。
4.根据权利要求1所述的方法,其特征在于,在得到测试应用程序之后,还包括:
调用运行函数,将预设运行安装包发送至所述目标终端,并在所述目标终端上安装所述预设运行安装包,以及启动所述预设运行安装包,得到与所述预设运行安装包相对应的运行服务端。
5.根据权利要求4所述的方法,其特征在于,在所述得到与所述预设运行安装包相对应的运行服务端之后,还包括:
建立与所述预设运行安装包相对应的运行客户端。
6.根据权利要求5所述的方法,其特征在于,所述将启动命令发送至所述测试应用程序,以使所述测试应用程序根据所述启动命令执行程序启动的操作,得到所述测试应用程序的启动完成时间,包括:
通过所述运行客户端将所述启动命令发送至所述运行服务端,以使所述运行服务端根据所述启动命令,向所述测试应用程序发送至控制指令,以启动所述测试应用程序,并得到所述启动完成时间;
其中,所述启动命令中包括与所述待测试应用程序相对应的标识。
7.根据权利要求2所述的方法,其特征在于,还包括:
基于所述预设程序代码将所述启动完成时间,按照所述预设存储路径发送至目标位置。
8.一种应用程序的启动耗时测试系统,其特征在于,包括:
待使用安装包获取模块,用于在获取到的安装包中注入动态库,以在所述安装包中的可执行代码处增加预设程序代码得到修改安装包,并对所述修改安装包重签名,得到待使用安装包;其中,所述安装包为与待测试应用程序相对应的安装包;
测试应用程序安装模块,用于将所述待使用安装包发送至目标终端,并安装所述待使用安装包,得到测试应用程序;
启动完成时间确定模块,用于将启动命令发送至所述测试应用程序,以使所述测试应用程序根据所述启动命令执行程序启动的操作,得到所述测试应用程序的启动完成时间;
其中,所述预设程序代码,用于执行获取所述启动完成时间、以及发送所述启动完成时间的操作。
9.一种电子设备,其特征在于,所述电子设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-7中任一所述的应用程序的启动耗时测试方法。
10.一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行如权利要求1-7中任一所述的应用程序的启动耗时测试方法。
CN201910533251.9A 2019-06-19 2019-06-19 应用程序的启动耗时测试方法、系统、设备及介质 Pending CN110275832A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910533251.9A CN110275832A (zh) 2019-06-19 2019-06-19 应用程序的启动耗时测试方法、系统、设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910533251.9A CN110275832A (zh) 2019-06-19 2019-06-19 应用程序的启动耗时测试方法、系统、设备及介质

Publications (1)

Publication Number Publication Date
CN110275832A true CN110275832A (zh) 2019-09-24

Family

ID=67961184

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910533251.9A Pending CN110275832A (zh) 2019-06-19 2019-06-19 应用程序的启动耗时测试方法、系统、设备及介质

Country Status (1)

Country Link
CN (1) CN110275832A (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111459511A (zh) * 2020-03-31 2020-07-28 北京百度网讯科技有限公司 应用程序的下载方法、装置及电子设备
CN112231702A (zh) * 2020-10-14 2021-01-15 深圳市百富智能新技术有限公司 应用保护方法、装置、设备及介质
CN112667317A (zh) * 2020-12-28 2021-04-16 北京达佳互联信息技术有限公司 一种异常耗时检测方法、装置、电子设备及存储介质
CN113127374A (zh) * 2021-05-19 2021-07-16 支付宝(杭州)信息技术有限公司 应用于iOS设备的应用程序测试方法及装置
CN116665752A (zh) * 2023-07-25 2023-08-29 成都佰维存储科技有限公司 Ufs稳态性能测试方法、装置、可读存储介质及电子设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150339215A1 (en) * 2013-07-02 2015-11-26 Tencent Technology (Shenzhen) Company Limited Systems and Methods for Testing Terminal Applications
CN106126290A (zh) * 2016-06-27 2016-11-16 微梦创科网络科技(中国)有限公司 应用程序优化方法、装置及系统
CN109359020A (zh) * 2018-08-16 2019-02-19 中国平安人寿保险股份有限公司 启动时间测试方法及装置、计算机装置及存储介质
CN109697156A (zh) * 2018-11-19 2019-04-30 北京奇艺世纪科技有限公司 一种启动时间获取方法、装置、终端设备及存储介质
CN109766258A (zh) * 2018-11-30 2019-05-17 北京奇艺世纪科技有限公司 一种性能测试方法、装置及计算机可读存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150339215A1 (en) * 2013-07-02 2015-11-26 Tencent Technology (Shenzhen) Company Limited Systems and Methods for Testing Terminal Applications
CN106126290A (zh) * 2016-06-27 2016-11-16 微梦创科网络科技(中国)有限公司 应用程序优化方法、装置及系统
CN109359020A (zh) * 2018-08-16 2019-02-19 中国平安人寿保险股份有限公司 启动时间测试方法及装置、计算机装置及存储介质
CN109697156A (zh) * 2018-11-19 2019-04-30 北京奇艺世纪科技有限公司 一种启动时间获取方法、装置、终端设备及存储介质
CN109766258A (zh) * 2018-11-30 2019-05-17 北京奇艺世纪科技有限公司 一种性能测试方法、装置及计算机可读存储介质

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111459511A (zh) * 2020-03-31 2020-07-28 北京百度网讯科技有限公司 应用程序的下载方法、装置及电子设备
CN112231702A (zh) * 2020-10-14 2021-01-15 深圳市百富智能新技术有限公司 应用保护方法、装置、设备及介质
WO2022078366A1 (zh) * 2020-10-14 2022-04-21 深圳市百富智能新技术有限公司 应用保护方法、装置、设备及介质
CN112667317A (zh) * 2020-12-28 2021-04-16 北京达佳互联信息技术有限公司 一种异常耗时检测方法、装置、电子设备及存储介质
CN113127374A (zh) * 2021-05-19 2021-07-16 支付宝(杭州)信息技术有限公司 应用于iOS设备的应用程序测试方法及装置
CN116665752A (zh) * 2023-07-25 2023-08-29 成都佰维存储科技有限公司 Ufs稳态性能测试方法、装置、可读存储介质及电子设备
CN116665752B (zh) * 2023-07-25 2023-11-21 成都佰维存储科技有限公司 Ufs稳态性能测试方法、装置、可读存储介质及电子设备

Similar Documents

Publication Publication Date Title
CN110275832A (zh) 应用程序的启动耗时测试方法、系统、设备及介质
CN111475298B (zh) 任务处理方法、装置、设备及存储介质
CN108877770A (zh) 用于测试智能语音设备的方法、装置和系统
US20220239612A1 (en) Information interaction method, apparatus, device, storage medium and program product
CN110086889B (zh) 终端设备调试方法及设备
CN104317648B (zh) 一种监测广告的方法和装置
CN113553257B (zh) 测试方法、装置、存储介质及电子设备
CN109308241A (zh) 监听应用程序启动流程方法、装置、终端设备和存储介质
CN108962244A (zh) 用于发送信息的方法和装置
CN105260082A (zh) 一种测试数据展示方法及开发终端
CN109525855A (zh) 用于处理信息的方法和装置
CN110138644B (zh) 信息处理方法及装置
CN109819042A (zh) 用于提供软件开发工具包的方法和装置
CN110275736A (zh) 获取应用程序的运行数据方法、装置、设备及可读介质
CN116756049B (zh) 芯片的通用验证方法、装置、电子设备及存储介质
CN113377664A (zh) 模型测试方法及装置、电子设备和存储介质
CN109684116B (zh) 数据分享方法、装置、设备及介质
CN109840109B (zh) 用于生成软件开发工具包的方法和装置
CN111273967A (zh) 适用于Android系统的远程钩子设置方法、装置及电子设备
CN109947659A (zh) 用于测试应用的系统、方法和装置
CN114945188A (zh) 蓝牙设备测试方法、装置、电子设备及可读存储介质
CN114139731A (zh) 纵向联邦学习建模优化方法、设备、介质及程序产品
CN114564402A (zh) 任务流程的测试方法、装置、可读介质和电子设备
CN110046384A (zh) 模型实例化方法、装置、电子设备、和计算机可读存储介质
CN110086880A (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