CN102591770B - 一种目标应用启动时间检测方法和装置 - Google Patents

一种目标应用启动时间检测方法和装置 Download PDF

Info

Publication number
CN102591770B
CN102591770B CN201110445257.4A CN201110445257A CN102591770B CN 102591770 B CN102591770 B CN 102591770B CN 201110445257 A CN201110445257 A CN 201110445257A CN 102591770 B CN102591770 B CN 102591770B
Authority
CN
China
Prior art keywords
intended application
time
starts
startup
detection module
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.)
Active
Application number
CN201110445257.4A
Other languages
English (en)
Other versions
CN102591770A (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.)
Beijing Qizhi Business Consulting Co ltd
Beijing Qihoo Technology Co Ltd
360 Digital Security Technology Group Co Ltd
Original Assignee
Beijing Qihoo Technology Co Ltd
Qizhi Software Beijing 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 Qihoo Technology Co Ltd, Qizhi Software Beijing Co Ltd filed Critical Beijing Qihoo Technology Co Ltd
Priority to CN201110445257.4A priority Critical patent/CN102591770B/zh
Publication of CN102591770A publication Critical patent/CN102591770A/zh
Application granted granted Critical
Publication of CN102591770B publication Critical patent/CN102591770B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本申请提供了一种目标应用启动时间检测方法和装置,涉及测试技术领域。本申请的方法包括:在开机加电后,根据预置在注册表中的检测模块启动位置启动检测模块,其中注册表中所述检测模块所在启动位置优先于目标应用所在启动位置;监控目标应用是否启动;当一目标应用启动,则获取该目标应用当前时间点;计算从系统开机加电开始到所述目标应用当前启动时间点的时间段,作为该目标应用启动时间,并根据检测数据存储路径存入记录文件;将所监控的一个或者多个目标应用启动时间进行分析处理或展示。通过本申请,首先可以获得每一个启动的目标应用的启动时间,然后可以客观比较各启动的目标应用的CPU占用时间的长短。

Description

一种目标应用启动时间检测方法和装置
技术领域
本申请涉及测试技术领域,特别是涉及一种目标应用启动时间检测方法和装置。
背景技术
对于一款软件,从研发到投入市场往往需要经过多个环节的测试,例如软件的稳定程度等。
而随着计算机的发展,客户对于计算机的性能要求也在不断提高,例如客户对于计算机启动时间的要求。因此测试人员经常要评估该软件的启动时间,该软件是否影响到原系统配置的启动时间。对于评估某个应用软件的启动时间,即从开机加电开始计时,到该软件进程或界面开始展现或开始加载的时间差,以此判断该软件的进行或界面是否被延迟。比如,某个系统安装了某种对系统资源耗用大的软件或者安装了影响开机速度的硬件,开机后,部分或全部第三方软件启动时间被延长,由此,需要检测出部分和全部第三方软件的进程或界面的启动时间,以此评估这种对系统资源耗用大的软件或响开机速度的硬件所带来的系统启动延迟。
与本申请最接近的启动时间检测技术有两种:一种是检测装置登录时间和桌面显示时间,但登陆时间和桌面显示时间不是代表系统启动时间,对于用户来说,某款软件启动了才是系统真正启动了,并且这种情况下桌面的显示时间的终点检测是不准确的,一般检测的桌面显示时间都在桌面显示进程执行了一段时间后才会确定其时间终点,但这个终点时间不客观合理;另外一种是只检测软件自己的正常启动执行时间,但种方法只是根据检测软件自身的情况去判定其他软件是否影响到启动速度,并无法客观得到其他应用软件启动时间的真实情况。
现有技术中对从开机加电开始计时,到该软件进程或界面开始展现或开始加载的时间差,以此判断该软件的进行或界面是否被延迟的方法一般如下:如果测试1款软件进程或界面的启动时间,通过掐秒表,眼睛观测某个界面的启动,如QQ的登录界面。
对于该种方法,对于只有进程的软件来说,其没有显示界面,是无法获得其启动时间的,并且由于人为主观因素,其存在很大误差;如果需要测试多款软件进程或界面的启动时间,靠目测的误差则更大,并且基本上无法同时检测多个软件进程或界面的启动时间。
发明内容
本申请所要解决的技术问题是提供一种目标应用启动时间检测方法和装置,可以精确的检测目标应用的启动时间。
为了解决上述问题,本申请公开了一种目标应用启动时间检测的方法,包括:
步骤110,在开机加电后,根据预置在注册表中的检测模块启动位置,启动检测模块;其中,注册表中所述检测模块所在启动位置优先于目标应用所在启动位置;
步骤120,监控目标应用是否启动;
步骤130,当一目标应用启动,则获取该目标应用当前时间点;计算从系统开机加电开始到所述目标应用当前启动时间点的时间段,作为该目标应用启动时间,并根据检测数据存储路径存入记录文件;
步骤140,将所监控的一个或者多个目标应用启动时间进行分析处理或展示。
优选的,在步骤140之前还包括:
若当前系统重启次数小于预置重启次数,则根据重启路径调用重启执行程序进行系统重启;
若当前系统重启次数等于预置重启次数,则根据记录文件中的记录计算各目标应用的平均启动时间。
优选的,计算从系统开机加电开始到所述目标应用当前启动时间点的时间段的方法包括:
根据获得的目标应用的当前启动时间点,调用系统API函数gettickcount计算从系统开机加电开始到所述目标应用当前启动时间点的时间段。
优选的,通过如下方式监控目标应用是否启动:
获取监控名单中各目标应用的进程名称或者界面句柄,轮询监控系统进程是否启动了监控名单中各目标应用的进程名称或者界面句柄。
优选的,目标应用的界面句柄的获取方法包括:
通过调用FindWindow函数轮询监控并获取系统进程中属于监控名单的界面句柄,和/或者通过调用spy++函数轮询监控并获取系统进程中属于监控名单的界面句柄。
优选的,在步骤110之前还包括:
将预置的检测模块启动路径写入系统配置相应位置的启动注册表,并重启系统。
优选的,在步骤140之后还包括:
将写入系统启动注册表中的检测模块启动路径进行删除。
相应的,本申请还公开了一种不同系统环境目标启动项启动时间比较方法,其特征在于:
在开机加电后,根据预置在注册表中的检测模块启动位置,启动检测模块;其中,注册表中所述检测模块所在启动位置优先于目标应用所在启动位置;
当检测到一目标应用启动,则获取该目标应用当前时间点;并计算从系统开机加电开始到所述目标应用当前启动时间点的时间段,作为该目标应用第一启动时间;
安装待测试软件或硬件;
重启系统,当检测模块检测到所述目标应用启动,则获取该目标应用当前时间点;并计算从系统开机加电开始到所述目标应用当前启动时间点的时间段,作为该目标应用第二启动时间;
比较第一启动时间和第二启动时间,以确定所述待测试软件或硬件是否延缓了系该目标应用的启动时间。
相应的,本申请还公开了一种目标应用动时间检测装置,其特征在于,包括:
检测模块,所述检测模块包括:
启动子模块,用于在开机加电后,根据预置在注册表中的检测模块启动位置,启动检测模块;其中,注册表中所述检测模块所在启动位置优先于目标应用所在启动位置;
目标应用监控子模块,用于监控目标应用是否启动;
运算子模块,用于当一目标应用启动,则获取该目标应用当前时间点;计算从系统开机加电开始到所述目标应用当前启动时间点的时间段,并根据检测数据存储路径存入记录文件;
处理子模块,用于将所监控的一个或者多个目标应用启动时间进行分析处理或展示。
优选的,还包括:
重启判断模块,用于若当前系统重启次数小于预置重启次数,则根据重启路径调用重启执行程序进行系统重启;
平均启动时间计算模块,用于若当前系统重启次数等于预置重启次数,则根据记录文件中的记录计算各目标应用的平均启动时间。
优选的,在运算子模块中计算从系统开机加电开始到所述目标应用当前启动时间点的时间段时包括:
根据获得的目标应用的当前启动时间点,调用系统API函数gettickcount计算从系统开机加电开始到所述目标应用当前启动时间点的时间段。
优选的,在目标应用监控子模块中通过监控目标应用是否启动时包括:
获取监控名单中各目标应用的进程名称或者界面句柄,轮询监控系统进程是否启动了监控名单中各目标应用的进程名称或者界面句柄。
优选的,获取目标应用的界面句柄时包括:
通过调用FindWindow函数轮询监控并获取系统进程中属于监控名单的界面句柄,和/或者通过调用spy++函数轮询监控并获取系统进程中属于监控名单的界面句柄。
优选的,在启动子模块之前还包括:
路径写入子模块,用于将预置的检测模块启动路径写入系统配置相应位置的启动注册表,并重启系统。
优选的,在处理子模块之后还包括:
路径删除子模块,用于将写入系统启动注册表中的检测模块启动路径进行删除。
与现有技术相比,本申请包括以下优点:
本申请通过预置的检测模块启动路径优先于目标应用在系统启动时进行启动,然后对于每一个启动的目标应用进行监控,计算每一个启动的目标应用从开机加电时间到该应用当前启动时间点的时间段。通过本申请,首先可以获得每一个启动的目标应用的启动时间,然后可以客观比较各启动的目标应用的CPU占用时间的长短。其次,通过对比某款软件或者硬件安装前后系统相同的各目标应用的启动时间,可以客观准确的判断该款软件是否导影响到系统的启动时间。
附图说明
图1是本申请一种目标应用启动时间检测的方法的流程示意图;
图2是本申请优选的一种目标应用启动时间检测的方法的流程示意图;
图3是本申请一种目标应用启动时间检测装置的结构示意图;
图4是本申请优选的一种目标应用启动时间检测装置的结构示意图。
具体实施方式
为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。
参照图1,示出了本申请一种目标应用启动时间检测的方法的流程示意图,包括:
步骤110,在开机加电后,根据预置在注册表中的检测模块启动位置,启动检测模块;其中,注册表中所述检测模块所在启动位置优先于目标应用所在启动位置。
在实际中,检测时对于目标应用,要将其设置为开启启动,比如QQ,MSN等,在安装完成后选择开机启动。
在检测目标应用的开机启动时间时,需要检测模块优先于目标应用的启动时间,保证能够检测到目标应用,在这里目标应用指的是安装与计算机系统中的第三方软件。在实际中各中应用的软件比如QQ,阿里旺旺,MSN等第三方软件随着开机启动的时间点都在系统登录后启动,即计算机将计算机系统本身需要的各种服务启动后,才运行安装在计算机系统中的随着开机启动软件。因此要检测这类软件的启动时间,需要保证检测模块的开机启动时间点比QQ,阿里旺旺,MSN等软件优先启动,那么一般可使检测模块和系统登录时同时启动即可,当然检测模块的启动也可比系统登录的时间更早。
步骤120,监控目标应用是否启动。
检测模块启动后,即可监控目标应用是否启动。本申请中一般是通过检测目标应用的进程名称或者界面的句柄检测目标应用是否启动。比如QQ.exe,AlilmM.exe,Outlook.exe等。
优选的,通过如下方式监控目标应用是否启动:
获取监控名单中各目标应用的进程名称或者界面句柄,轮询监控系统进程是否启动了监控名单中各目标应用的进程名称或者界面句柄。
在实际中可通过多种方式获取目标应用的进程名称,比如对于QQ.exe,可通过如下函数获取:
WhileProcessExists(“QQ.exe”)orWinExists(“QQ2011”)
$endtimetmp=TimerDiff($starttime1)
Sleep(1)
Endwhile
(其中,ProcessExists(“QQ.exe”)是判断当前进程QQ.exe是否存在,WinExists(“QQ2011”)是判断当前QQ2011窗口是否存在,如果存在,则获取时间段,如果没有,等待1毫秒,继续判断)
对于界面的句柄,也可通过多种方法获取,优选的目标应用的界面的句柄的获取方法包括:
通过调用FindWindow函数轮询监控并获取系统进程中属于监控名单的界面句柄,和/或者通过调用spy++函数轮询监控并获取系统进程中属于监控名单的界面句柄。
句柄是一个标识符,是拿来标识对象或者项目的,是windows用来标志应用程序中建立的或是使用的唯一整数,windows使用了大量的句柄来标志很多对象,应用程序一般是通过调用一个windows函数来获得一个句柄,之后其他的windows函数就可以使用该句柄,以引用相应的对象。
通过FindWindow函数可返回与指定字符串匹配的界面句柄。而Spy++(SPYXX.EXE)是一个基于Win32的实用工具,它提供系统的进程、线程、窗口和窗口消息的图形视图。使用Spy++可以执行下列操作:显示系统对象(包括进程、线程和窗口)之间关系的图形树;搜索指定的窗口、线程、进程或消息;查看选定的窗口、线程、进程或消息的属性;直接从视图中选择窗口、线程、进程或消息等,因此Spy++也可以用来获取界面的句柄。
比如,如进程qq.exe,qq的登录弹窗标题为qq2011(即界面句柄),则监控为:
[rebootexewin]
exe1=taskmgr.exe
exe2=spoolsv.exe
exe3=qq.exe
exe4=qq2011
并依次循环等待,开始启动实时监控获取进程名称或界面句柄,每监控到一个新的进程或界面,则转入步骤130。
步骤130,当一目标应用启动,则获取该目标应用当前时间点;计算从系统开机加电开始到所述目标应用当前启动时间点的时间段,并根据检测数据存储路径存入记录文件。
当步骤120监控到进行程名称或界面句柄,比如前述qq.exe或qq2011,计算从开始加电到该时刻的时间段,作为该被监控的进程或界面的启动耗时,并进行记录。在实际中,可通过Windows的API函数gettickcount算出所述目标应用到当前启动时间点的时间段,GetTickCount返回(retrieve)从操作系统启动到现在所经过的毫秒数,它的返回值是DWORD。
以C++版为代码GetTickCount原型比如:
CStrings;
DWORDk=::GetTickCount();//获取毫秒级数目
intse=k/1000;//se为秒
cout<<se<<endl;
库文件:kernl32.dll
C/C++头文件:winbase.h
在实际中,在获取所述目标应用当前启动时间点的时间段后,将其进行记录时,通过检测数据存储路径存入记录文件Log.ini中。知道监控完所有进程或者界面。
比如对于前述,得到计算结果为:
[timeexewin]
exe1=taskmgr.exe,1203ms
exe2=spoolsv.exe,11003ms
exe3=qq.exe,1303ms
exe4=qq2011,1503ms
步骤140,将所监控的一个或者多个目标应用启动时间进行分析处理或展示。
在实际中,可将所监控的一个或者多个目标应用启动时间进行分析处理或展示。比如分析当前是否比该系统环境下各机器的平均启动时间慢;又比如分析哪个启动项导致系统启动延迟严重,那么即可将该目标应用的启动项禁止启动。又比如,还可直接将Log.ini中的记录整理展示给用户端,比如以Excel表格按启动时间长短的顺序的形式展示给用户端,或者以图形显示各个开机目标软件启动项的CPU占用时间比例的形式展示给用户端。
另外,在不知140之前还包括:若当前系统重启次数小于预置重启次数,则根据重启路径调用重启执行程序进行系统重启。
即如果当前的启动次数n小于预置的启动次数N,则本申请根据重启路径调用重启执行程序进行系统重启,直至当前的启动次数n等于预置的启动次数N。
若当前系统重启次数等于预置重启次数,则根据记录文件中的记录计算各目标应用的平均启动时间。
比如重启了3次,则可得到各目标应用的3个启动时间,将各目标应用的3个启动时间进行平均计算得到的平均值作为目标应用的启动时间。
参照图2,其示出了,本申请优选的一种目标应用启动时间检测的方法的流程示意图,包括:
步骤200,配置目标应用启动检测过程中所需的参数;所述参数包括配置检测模块启动路径,检测数据存储路径存,系统自动重启次数,各目标应用;其中,所述检测模块启动路径对应的启动时间点优先于目标应用的启动时间点。
在实际中,还可配置每次自动重启等待的时间。
在实际中,配置的参数则可通过存储路径存入配置记录文件比如set.ini文件中。
其中检测模块启动路径也可在系统建立时设置完毕,然后将其路径存入配置记录文件比如set.ini中。
在本步骤中,还可配置待检测的目标应用,将目标应用的进程名称或者界面句柄写入配置文件中,比如QQ.exe,qq2011等。
步骤210,将预置的检测模块启动路径写入系统配置相应位置的启动注册表,并重启系统。
比如,可写入系统登录时启动的启动位置,如:
【HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Winlogon】
″Userinit″=″C:\\Windows\\system32\\userinit.exe,″,c:\B.exe
本步骤中,还会判断注册表是否已经写入,如果写入则不在写。比如
[reg]
Exe=0
表示注册表没有写入,则需要将配置文件中存储的检测模块启动路径写入注册表相应位置,如果:
[reg]
Exe=1
则表示检测模块启动路径已经写入注册表,此时即可重启系统。
步骤220,在开机加电后,根据预置在注册表中的检测模块启动位置,启动检测模块;其中,注册表中所述检测模块所在启动位置优先于目标应用所在启动位置;
在实际中,检测时对于目标应用,要将其设置为开启启动,比如QQ,MSN等,在安装完成后选择开机启动。
在检测目标应用的开机启动时间时,需要检测模块优先于目标应用的启动时间,保证能够检测到目标应用,在这里目标应用指的是安装与计算机系统中的第三方软件。在实际中各中应用的软件比如QQ,阿里旺旺,MSN等第三方软件随着开机启动的时间点都在系统登录后启动,即计算机将计算机系统本身需要的各种服务启动后,才运行安装在计算机系统中的随着开机启动软件。因此要检测这类软件的启动时间,需要保证检测模块的开机启动时间点比QQ,阿里旺旺,MSN等软件优先启动,那么一般可使检测模块和系统登录时同时启动即可,当然检测模块的启动也可比系统登录的时间更早。而在实际中,系统启动是根据注册表的优先级启动的,只需要保证检测模块的启动路径在注册表中的启动位置比目标应用的启动路径在注册表中的启动位置优先即可。
步骤230,监控目标应用是否启动。
检测模块启动后,即可监控目标应用是否启动。本申请中一般是通过检测目标应用的进程名称或者界面的句柄检测目标应用是否启动。比如QQ.exe,AlilmM.exe,Outlook.exe等。
优选的,通过如下方式监控目标应用是否启动:
获取监控名单中各目标应用的进程名称或者界面句柄,轮询监控系统进程是否启动了监控名单中各目标应用的进程名称或者界面句柄。
在实际中可通过多种方式获取目标应用的进程名称,比如对于QQ.exe,可通过如下函数获取:
WhileProcessExists(“QQ.exe”)orWinExists(“QQ2011”)
$endtimetmp=TimerDiff($starttime1)
Sleep(1)
Endwhile
(其中,ProcessExists(“QQ.exe”)是判断当前进程QQ.exe是否存在,WinExists(“QQ2011”)是判断当前QQ2011窗口是否存在,如果存在,则获取时间段,如果没有,等待1毫秒,继续判断)
对于界面的句柄,也可通过多种方法获取,优选的目标应用的界面的句柄的获取方法包括:
通过调用FindWindow函数轮询监控并获取系统进程中属于监控名单的界面句柄,和/或者通过调用spy++函数轮询监控并获取系统进程中属于监控名单的界面句柄。
句柄是一个标识符,是拿来标识对象或者项目的,是windows用来标志应用程序中建立的或是使用的唯一整数,windows使用了大量的句柄来标志很多对象,应用程序一般是通过调用一个windows函数来获得一个句柄,之后其他的windows函数就可以使用该句柄,以引用相应的对象。
通过FindWindow函数可返回与指定字符串匹配的界面句柄。而Spy++(SPYXX.EXE)是一个基于Win32的实用工具,它提供系统的进程、线程、窗口和窗口消息的图形视图。使用Spy++可以执行下列操作:显示系统对象(包括进程、线程和窗口)之间关系的图形树;搜索指定的窗口、线程、进程或消息;查看选定的窗口、线程、进程或消息的属性;直接从视图中选择窗口、线程、进程或消息等,因此Spy++也可以用来获取界面的句柄。
比如,如进程qq.exe,qq的登录弹窗标题为qq2011(即界面句柄),则监控为:
[rebootexewin]
exe1=taskmgr.exe
exe2=spoolsv.exe
exe3=qq.exe
exe4=qq2011
并依次循环等待,开始启动实时监控获取进程名称或界面句柄,每监控到一个新的进程或界面,则转入步骤240。
步骤240,当目标应用启动,则计算从系统开机加电开始到所述目标应用当前启动时间点的时间段,并根据检测数据存储路径存入记录文件。
当步骤230监控到进行程名称或界面句柄,比如前述qq.exe或qq2011,计算从开始加电到该时刻的时间段,作为该被监控的进程或界面的启动耗时,并进行记录。在实际中,可通过Windows的API函数gettickcount算出所述目标应用到当前启动时间点的时间段,GetTickCount返回(retrieve)从操作系统启动到现在所经过的毫秒数,它的返回值一般是DWORD。
以C++版为代码GetTickCount原型比如:
CStrings;
DWORDk=::GetTickCount();//获取毫秒级数目
intse=k/1000;//se为秒
cout<<se<<endl;
库文件:kernl32.dll
C/C++头文件:winbase.h
在实际中,在获取所述目标应用当前启动时间点的时间段后,将其进行记录时,通过检测数据存储路径存入记录文件Log.ini中。知道监控完所有进程或者界面。
比如对于前述,得到计算结果为:
[timeexewin]
exe1=taskmgr.exe,1203ms
exe2=spoolsv.exe,11003ms
exe3=qq.exe,1303ms
exe4=qq2011,1503ms
另外,在步骤后还包括:
步骤250,记录当前的重启次数,若当前重启次数小于预置重启次数则通过重启调用路径调用重启执行程序重启系统。
在实际中,当监控完所有目标,比如上述qq.exe和qq2011检测完毕后,并且当前是第一次重启,那么记录重启数为1,比如
[rebootnum]
TimeNum=1;启动之前为TimeNum=0。
如果重启次数配置为2,则对于配置中的重启次数记录TimeMax=2,则将TimeNum与TimeMax比较,发现TimeNum小于TimeMax,则需要继续重启,因此可等待一定时间后再次重启。其中,自动重启的间隔等待时间可根据实际需要进行配置,并记录在配置文件(比如set.ini)中。比如记录重启次数为2,等待时间为2000ms:
[rebootwaite]
TimeMax=2
Time=2000
然后从步骤110开始再次进行,比如类似得到:
[timeexewin]
exe1=taskmgr.exe,1203ms,1205ms
exe2=spoolsv.exe,11003ms,11006ms
exe3=qq.exe,1303ms,1305ms
exe4=qq2011,1503ms,1505ms
[rebootnum]
TimeNum=2
比较TimeNum与TimeMax相等,那么不需要再次重启。
此时,则可进行步骤260,将写入系统启动注册表中的检测模块启动路径进行删除。以避免下次启动时再次启动检测模块,使测试环境恢复正常。
步骤270,将所监控的一个或者多个目标应用启动时间进行分析处理或展示。
最后将监控的一个或者多个目标应用的启动时间进行分析,比如分析当前是否比该系统环境下各机器的平均启动时间慢;又比如分析哪个启动项导致系统启动延迟严重,那么即可将该目标应用的启动项禁止启动。
另外还可直接将Log.ini中的记录整理展示给用户端,比如以Excel表格按启动时间长短的顺序的形式展示给用户端,或者以图形显示各个开机目标软件启动项的CPU占用时间比例的形式展示给用户端。
在时间中,经过多次重启测试,对于每一个目标应用可得到多个测试结果,则可对其进行平均得到每个目标应用的平均启动时间,比如对于前述:
[timeexewin]
exe1=taskmgr.exe,1203ms,1205ms
exe2=spoolsv.exe,11003ms,11006ms
exe3=qq.exe,1303ms,1305ms
exe4=qq2011,1503ms,1505ms
则可得到qq.exe的平均启动时间为1104ms,qq2011的平均启动时间为1504。
通过本申请可以方法首先可检测出每个开机启动项目的CPU占用时间,所有开机启动项目的CPU累计占用时间,再算出每个开机启动项的CPU占用时间在这个累计占用时间的比例。其次,可根据安装软件或者其他硬件设备前后的启动时间比较,准确知道系统是否被其他软件或硬件延迟。
参照图3,其示出了本申请一种目标应用启动时间检测装置的结构示意图,包括:
检测模块300,所述检测模块300包括:
启动子模块310,用于在开机加电后,根据预置在注册表中的检测模块启动位置,启动检测模块;其中,注册表中所述检测模块所在启动位置优先于目标应用所在启动位置;
目标应用监控子模块320,用于监控目标应用是否启动;
运算子模块330,用于当一目标应用启动,则获取该目标应用当前时间点;计算从系统开机加电开始到所述目标应用当前启动时间点的时间段,并根据检测数据存储路径存入记录文件;
处理子模块340,用于将所监控的一个或者多个目标应用启动时间进行分析处理或展示。
还包括:重启判断子模块,用于若当前系统重启次数小于预置重启次数,则根据重启路径调用重启执行程序进行系统重启;
平均启动时间计算子模块,用于若当前系统重启次数等于预置重启次数,则根据记录文件中的记录计算各目标应用的平均启动时间。
参照图4,其示出了本申请优选的一种目标应用启动时间检测装置的结构示意图,包括:
初始化启动模块420,配置模块410和检测模块430。
所述检测模块包括430:
启动子模块431,用于在开机加电后,根据预置在注册表中的检测模块启动位置,启动检测模块;其中,注册表中所述检测模块所在启动位置优先于目标应用所在启动位置;
目标应用监控子模块432,用于监控目标应用是否启动;
运算子模块433,用于当一目标应用启动,则获取该目标应用当前时间点;计算从系统开机加电开始到所述目标应用当前启动时间点的时间段,并根据检测数据存储路径存入记录文件;
重启判断子模块434,用于若当前系统重启次数小于预置重启次数,则根据重启路径调用重启执行程序进行系统重启;
平均启动时间计算子模块435,用于若当前系统重启次数等于预置重启次数,则根据记录文件中的记录计算各目标应用的平均启动时间;
启动路径删除子模块436,用于将写入系统启动注册表中的检测模块启动路径进行删除;
处理子模块437,用于将所监控的一个或者多个目标应用启动时间进行分析处理或展示。
所述配置模块410用于配置目标应用启动检测过程中所需的参数;所述参数包括配置检测模块启动路径,检测数据存储路径存,系统自动重启次数,各目标应用;其中,所述检测模块启动路径对应的启动时间点优先于目标应用的启动时间点。
所述初始化启动模块420用于将预置的检测模块启动路径写入相应位置的系统启动注册表,并重启系统。
优选的,在运算子模块中计算从系统开机加电开始到所述目标应用当前启动时间点的时间段时包括:
根据获得的目标应用的当前启动时间点,调用系统API函数gettickcount计算从系统开机加电开始到所述目标应用当前启动时间点的时间段。
优选的,在目标应用监控子模块中通过监控目标应用是否启动时包括:
获取监控名单中各目标应用的进程名称或者界面句柄,轮询监控系统进程是否启动了监控名单中各目标应用的进程名称或者界面句柄。
优选的,获取目标应用的界面句柄时包括:
通过调用FindWindow函数轮询监控并获取系统进程中属于监控名单的界面句柄,和/或者通过调用spy++函数轮询监控并获取系统进程中属于监控名单的界面句柄。
优选的,在启动子模块之前还包括:
路径写入子模块,用于将预置的检测模块启动路径写入系统配置相应位置的启动注册表,并重启系统。
优选的,在处理子模块之后还包括:
路径删除子模块,用于将写入系统启动注册表中的检测模块启动路径进行删除。
相应的,本申请还公开了一种不同系统环境目标启动项启动时间比较方法,包括:
步骤S1,在开机加电后,根据预置在注册表中的检测模块启动位置,启动检测模块;其中,注册表中所述检测模块所在启动位置优先于目标应用所在启动位置;
步骤S2,当检测到一目标应用启动,则获取该目标应用当前时间点;并计算从系统开机加电开始到所述目标应用当前启动时间点的时间段,作为该目标应用第一启动时间;
步骤S3,安装待测试软件或硬件;
步骤S4,重启系统,当检测模块检测到所述目标应用启动,则获取该目标应用当前时间点;并计算从系统开机加电开始到所述目标应用当前启动时间点的时间段,作为该目标应用第二启动时间;
步骤S5,比较第一启动时间和第二启动时间,以确定所述待测试软件或硬件是否延缓了系该目标应用的启动时间。
本申请通过对比某款软件或者硬件安装前后系统相同的各目标应用的启动时间,可以客观准确的判断该款软件是否导影响到系统的启动时间。
比如对于本系统在软件安装使用前后测试比较过程可如下:
某系统安装了360的安全卫士,并优化开机速度,为了检测开机后,速度是否真正得到提高,本系统的处理过程步骤如下:
1)安装一些通用的软件,如QQ,旺旺等IM软件,或者办公软件,并设置这些软件开机后启动,安装完毕后GHOST(备份)系统,作为环境备份。
2)通过本申请记录需要检测软件的进程名称或者界面的句柄,如QQ.exe,AliIM.exe,Outlook.exe等。
3)自动重新开机,开机后则实时检测这些(QQ,旺旺等IM软件,或者办公软件)进程或句柄是否启动。如果启动,便记录时间。
4)自动重复循环N次,最后计算出被检测软件的平均启动时间。
5)GHOST系统,安装360的安全软件,并设置开机优化。
6)重新开机,开机后则实时检测这些(QQ,旺旺等IM软件,或者办公软件)进程或句柄是否启动。如果启动,便记录时间。
7)同理,循环N次,最后计算出被检测软件的平均启动时间。
对比3)和5)的时间,由此检测360的安全软件是否有效优化了开机的速度。
如果某系统安装了影响开机速度的硬件,用户安装后,明显感觉到系统启动慢了,系统开机后重启机器,开机需要的时间长了,本系统可精确的检测目标应用的开机时间。对于本系统在硬件安装前后的测试比较的过程可如下:
1)安装一些通用的软件,如QQ,旺旺等IM软件,或者办公软件,设置这些软件开机后启动,安装完毕后GHOST系统,作为环境备份。
2)通过本申请记录需要检测软件的进程名称或者界面的句柄,如
QQ.exe,AliIM.exe,Outlook.exe等。
3)自动重新开机,开机后则实时检测这些(QQ,旺旺等IM软件,
或者办公软件)进程或句柄是否启动。如果启动,便记录时间。
4)自动重复循环N次,最后计算出被检测软件的平均启动时间。
5)GHOST系统,安装某大型软件。
6)重新开机,开机后则实时检测这些(QQ,旺旺等IM软件,或者
办公软件)进程或句柄是否启动。如果启动,便记录时间。
7)同理,循环N次,最后计算出被检测软件的平均启动时间。
对比3)和5)的时间,由此检测了某软件或硬件是否延缓了系统的开机启动的时间,验证用户的感觉:明显感觉到系统启动慢了。
对于系统实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
以上对本申请所提供的一种目标应用启动时间检测方法和装置,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

Claims (11)

1.一种目标应用启动时间检测的方法,其特征在于,包括:
步骤110,在开机加电后,根据预置在注册表中的检测模块启动位置,启动检测模块;其中,注册表中所述检测模块所在启动位置优先于目标应用所在启动位置;
步骤120,监控目标应用是否启动;
步骤130,当一目标应用启动,则获取该目标应用当前时间点;计算从系统开机加电开始到所述目标应用当前启动时间点的时间段,作为该目标应用启动时间,并根据检测数据存储路径存入记录文件;
步骤140,将所监控的一个或者多个目标应用启动时间进行分析处理或展示;
其中,在步骤110之前还包括:
将预置的检测模块启动路径写入系统配置相应位置的启动注册表,并重启系统;
其中,在步骤140之前还包括:
若当前系统重启次数小于预置重启次数,则根据重启路径调用重启执行程序进行系统重启;
若当前系统重启次数等于预置重启次数,则根据记录文件中的记录计算各目标应用的平均启动时间。
2.根据权利要求1所述的方法,其特征在于,计算从系统开机加电开始到所述目标应用当前启动时间点的时间段的方法包括:
根据获得的目标应用的当前启动时间点,调用系统API函数gettickcount计算从系统开机加电开始到所述目标应用当前启动时间点的时间段。
3.根据权利要求1所述的方法,其特征在于,通过如下方式监控目标应用是否启动:
获取监控名单中各目标应用的进程名称或者界面句柄,轮询监控系统进程是否启动了监控名单中各目标应用的进程名称或者界面句柄。
4.根据权利要求3所述的方法,其特征在于,目标应用的界面句柄的获取方法包括:
通过调用FindWindow函数轮询监控并获取系统进程中属于监控名单的界面句柄,和/或者通过调用spy++函数轮询监控并获取系统进程中属于监控名单的界面句柄。
5.根据权利要求1所述的方法,其特征在于,在步骤140之后还包括:
将写入系统启动注册表中的检测模块启动路径进行删除。
6.一种不同系统环境目标启动项启动时间比较方法,其特征在于:
在开机加电后,根据预置在注册表中的检测模块启动位置,启动检测模块;其中,注册表中所述检测模块所在启动位置优先于目标应用所在启动位置;
当检测到一目标应用启动,则获取该目标应用当前时间点;并计算从系统开机加电开始到所述目标应用当前启动时间点的时间段,作为该目标应用第一启动时间;
安装待测试软件或硬件;
重启系统,当检测模块检测到所述目标应用启动,则获取该目标应用当前时间点;并计算从系统开机加电开始到所述目标应用当前启动时间点的时间段,作为该目标应用第二启动时间;
比较第一启动时间和第二启动时间,以确定所述待测试软件或硬件是否延缓了系统的启动时间。
7.一种目标应用启动时间检测装置,其特征在于,包括:
检测模块,所述检测模块包括:
路径写入子模块,用于将预置的检测模块启动路径写入系统配置相应位置的启动注册表,并重启系统;
启动子模块,用于在开机加电后,根据预置在注册表中的检测模块启动位置,启动检测模块;其中,注册表中所述检测模块所在启动位置优先于目标应用所在启动位置;
目标应用监控子模块,用于监控目标应用是否启动;
运算子模块,用于当一目标应用启动,则获取该目标应用当前时间点;计算从系统开机加电开始到所述目标应用当前启动时间点的时间段,并根据检测数据存储路径存入记录文件;
重启判断子模块,用于若当前系统重启次数小于预置重启次数,则根据重启路径调用重启执行程序进行系统重启;
平均启动时间计算子模块,用于若当前系统重启次数等于预置重启次数,则根据记录文件中的记录计算各目标应用的平均启动时间;
处理子模块,用于将所监控的一个或者多个目标应用启动时间进行分析处理或展示。
8.根据权利要求7所述的装置,其特征在于,在运算子模块中计算从系统开机加电开始到所述目标应用当前启动时间点的时间段时包括:
根据获得的目标应用的当前启动时间点,调用系统API函数gettickcount计算从系统开机加电开始到所述目标应用当前启动时间点的时间段。
9.根据权利要求7所述的装置,其特征在于,在目标应用监控子模块中通过监控目标应用是否启动时包括:
获取监控名单中各目标应用的进程名称或者界面句柄,轮询监控系统进程是否启动了监控名单中各目标应用的进程名称或者界面句柄。
10.根据权利要求9所述的装置,其特征在于,获取目标应用的界面句柄时包括:
通过调用FindWindow函数轮询监控并获取系统进程中属于监控名单的界面句柄,和/或者通过调用spy++函数轮询监控并获取系统进程中属于监控名单的界面句柄。
11.根据权利要求10所述的装置,其特征在于,在检测模块中,在处理子模块之后还包括:
路径删除子模块,用于将写入系统启动注册表中的检测模块启动路径进行删除。
CN201110445257.4A 2011-12-27 2011-12-27 一种目标应用启动时间检测方法和装置 Active CN102591770B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201110445257.4A CN102591770B (zh) 2011-12-27 2011-12-27 一种目标应用启动时间检测方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110445257.4A CN102591770B (zh) 2011-12-27 2011-12-27 一种目标应用启动时间检测方法和装置

Publications (2)

Publication Number Publication Date
CN102591770A CN102591770A (zh) 2012-07-18
CN102591770B true CN102591770B (zh) 2016-06-29

Family

ID=46480465

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110445257.4A Active CN102591770B (zh) 2011-12-27 2011-12-27 一种目标应用启动时间检测方法和装置

Country Status (1)

Country Link
CN (1) CN102591770B (zh)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103577312B (zh) * 2012-07-26 2016-08-10 阿里巴巴集团控股有限公司 一种软件的时间性能的检测方法及装置
CN103678010B (zh) * 2012-09-25 2018-03-23 腾讯科技(深圳)有限公司 一种浏览器启动时间的测试方法和装置
CN102929782A (zh) * 2012-11-14 2013-02-13 北京奇虎科技有限公司 软件性能的测试设备及测试方法
CN103150248B (zh) * 2013-03-22 2015-03-18 腾讯科技(深圳)有限公司 一种启动项耗时的测算方法和装置
CN103197944B (zh) * 2013-04-11 2014-11-05 腾讯科技(深圳)有限公司 一种应用程序的进程的性能确定方法和计算机系统
CN103309740B (zh) * 2013-06-05 2016-12-28 腾讯科技(深圳)有限公司 程序启动方法、装置和设备
CN104424198B (zh) * 2013-08-21 2020-06-26 腾讯科技(深圳)有限公司 一种页面显示速度的获取方法及装置
CN103488557B (zh) * 2013-08-28 2016-03-30 北京奇虎科技有限公司 一种计算机操作系统开机时间的获取方法和装置
CN104199692B (zh) * 2014-08-25 2017-08-04 北京金山安全软件有限公司 一种获取应用程序的启动时间的方法、装置及终端
CN105988925A (zh) * 2015-02-10 2016-10-05 腾讯科技(深圳)有限公司 一种应用程序启动耗时的测试方法、装置及系统
CN105045714A (zh) * 2015-07-25 2015-11-11 北京金山安全软件有限公司 一种应用软件启动时长的测试方法、装置及终端
CN105320601A (zh) * 2015-12-02 2016-02-10 北京奇虎科技有限公司 一种用于应用程序的测试方法及装置
CN105550104B (zh) * 2015-12-08 2018-04-20 北京奇虎科技有限公司 应用程序性能测试方法及装置
CN105740125B (zh) * 2016-01-29 2018-03-30 四川秘无痕信息安全技术有限责任公司 获取Android应用程序启动次数和时间的方法
CN105893251B (zh) * 2016-03-29 2019-03-08 工业和信息化部电信研究院 一种智能终端app启动所需时间的测试方法及系统
CN107341094B (zh) * 2016-04-29 2020-01-31 腾讯科技(深圳)有限公司 启动项耗时的测量方法及装置
CN105975307B (zh) * 2016-04-30 2019-10-18 维沃移动通信有限公司 应用的启动方法及移动终端
CN106295131B (zh) * 2016-07-29 2019-03-19 武汉联影医疗科技有限公司 一种监管软件运行的方法及装置
CN106708728B (zh) * 2016-11-18 2019-06-04 武汉斗鱼网络科技有限公司 自动测试Android应用启动时间的方法及系统
CN106951302A (zh) * 2017-04-28 2017-07-14 努比亚技术有限公司 应用启动时间的测试方法与终端及计算机可读存储介质
CN107992397A (zh) * 2017-12-21 2018-05-04 联想(北京)有限公司 Bios程序启动监控方法以及电子设备
CN109100764B (zh) * 2018-07-25 2022-12-27 百度在线网络技术(北京)有限公司 导航应用性能评测方法、装置、设备及存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102177500A (zh) * 2008-10-15 2011-09-07 富士通株式会社 信息处理装置以及启动完成通知程序

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006350481A (ja) * 2005-06-13 2006-12-28 Matsushita Electric Ind Co Ltd 端末装置
CN100426234C (zh) * 2005-12-22 2008-10-15 佛山市顺德区顺达电脑厂有限公司 测量基本输入输出系统的自我开机测试时间的方法
CN101639787B (zh) * 2009-09-07 2013-02-27 中兴通讯股份有限公司 应用程序启动方法及装置
CN102289379A (zh) * 2010-06-18 2011-12-21 昆达电脑科技(昆山)有限公司 用于缩短开机时间的方法及系统

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102177500A (zh) * 2008-10-15 2011-09-07 富士通株式会社 信息处理装置以及启动完成通知程序

Also Published As

Publication number Publication date
CN102591770A (zh) 2012-07-18

Similar Documents

Publication Publication Date Title
CN102591770B (zh) 一种目标应用启动时间检测方法和装置
US8683440B2 (en) Performing dynamic software testing based on test result information retrieved in runtime using test result entity
US8930915B2 (en) System and method for mitigating repeated crashes of an application resulting from supplemental code
US9207973B2 (en) Meta-application management in a multitasking environment
US10613970B1 (en) Method and system for managing deployment of software application components based on software performance data
US7165189B1 (en) Distributed test framework for clustered systems
US20130019170A1 (en) Automating execution of arbitrary graphical interface applications
US7836432B2 (en) Systems and methods for embedded application test suites
US11762763B2 (en) Orchestration for automated performance testing
US11550628B2 (en) Performing runbook operations for an application based on a runbook definition
US7774657B1 (en) Automatically estimating correlation between hardware or software changes and problem events
US20080115134A1 (en) Repair of system defects with reduced application downtime
CN104737134A (zh) 用于操作系统无关的硬件验证的系统和方法
CN111813646B (zh) docker容器环境下注入应用探针的方法和装置
WO2020010725A1 (zh) 自动同步刷新浏览器的方法、装置及计算机设备
CN102591769B (zh) 一种关机时间检测方法和装置
US7392149B2 (en) Automatic software testing
US9830184B2 (en) Systems and methods for determining desktop readiness using interactive measures
CN105426301A (zh) 一种基于Linux平台Oracle数据库压力测试方法
EP4085336A1 (en) Computer resource leak detection
US20070245341A1 (en) System and method for performing automatic software installations and automatic software executions in a to-be-tested computer
Weng et al. Argus: Debugging performance issues in modern desktop applications with annotated causal tracing
US11269729B1 (en) Overloading a boot error signaling mechanism to enable error mitigation actions to be performed
CN110347577B (zh) 一种页面测试方法、装置及其设备
CN112306639A (zh) 一种虚拟桌面的测试方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20160511

Address after: 100088 Beijing city Xicheng District xinjiekouwai Street 28, block D room 112 (Desheng Park)

Applicant after: BEIJING QIHOO TECHNOLOGY Co.,Ltd.

Applicant after: Qizhi software (Beijing) Co.,Ltd.

Address before: The 4 layer 100016 unit of Beijing city Chaoyang District Jiuxianqiao Road No. 14 Building C

Applicant before: Qizhi software (Beijing) Co.,Ltd.

C14 Grant of patent or utility model
GR01 Patent grant
CB03 Change of inventor or designer information

Inventor after: Shen Chaohui

Inventor before: Shen Chaohui

COR Change of bibliographic data
CP01 Change in the name or title of a patent holder
CP01 Change in the name or title of a patent holder

Address after: 100088 room 112, block D, 28 new street, new street, Xicheng District, Beijing (Desheng Park)

Patentee after: BEIJING QIHOO TECHNOLOGY Co.,Ltd.

Patentee after: Beijing Qizhi Business Consulting Co.,Ltd.

Address before: 100088 room 112, block D, 28 new street, new street, Xicheng District, Beijing (Desheng Park)

Patentee before: BEIJING QIHOO TECHNOLOGY Co.,Ltd.

Patentee before: Qizhi software (Beijing) Co.,Ltd.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20220328

Address after: 100016 1773, 15 / F, 17 / F, building 3, No.10, Jiuxianqiao Road, Chaoyang District, Beijing

Patentee after: Sanliu0 Digital Security Technology Group Co.,Ltd.

Address before: 100088 room 112, block D, 28 new street, new street, Xicheng District, Beijing (Desheng Park)

Patentee before: BEIJING QIHOO TECHNOLOGY Co.,Ltd.

Patentee before: Beijing Qizhi Business Consulting Co.,Ltd.