CN111897741B - 一种应用软件的检测方法及计算设备 - Google Patents
一种应用软件的检测方法及计算设备 Download PDFInfo
- Publication number
- CN111897741B CN111897741B CN202011046360.7A CN202011046360A CN111897741B CN 111897741 B CN111897741 B CN 111897741B CN 202011046360 A CN202011046360 A CN 202011046360A CN 111897741 B CN111897741 B CN 111897741B
- Authority
- CN
- China
- Prior art keywords
- application software
- application
- state
- tray
- window
- 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
Links
- 238000000034 method Methods 0.000 claims abstract description 72
- 238000001514 detection method Methods 0.000 claims abstract description 70
- 238000009434 installation Methods 0.000 claims abstract description 34
- 230000008569 process Effects 0.000 claims description 10
- 238000004891 communication Methods 0.000 description 17
- 230000006870 function Effects 0.000 description 13
- 238000010586 diagram Methods 0.000 description 10
- 238000012545 processing Methods 0.000 description 5
- 238000012360 testing method Methods 0.000 description 4
- 230000002093 peripheral effect Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000007723 transport mechanism Effects 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Images
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/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/302—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3065—Monitoring arrangements determined by the means or processing involved in reporting the monitored data
- G06F11/3072—Monitoring arrangements determined by the means or processing involved in reporting the monitored data where the reporting involves data filtering, e.g. pattern matching, time or event triggered, adaptive or policy-based reporting
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种应用软件的检测方法,应用软件适于在计算设备的操作系统中执行,所述方法包括:安装所述应用软件,并记录所述应用软件的安装状态;若所述应用软件安装成功,则运行所述应用软件,创建应用窗口;获取所创建的应用窗口属性;根据所创建的所述应用窗口属性确定所述应用软件的运行状态并记录;卸载所述应用软件,并记录所述应用软件的卸载状态;存储所述应用软件安装状态、所述应用软件运行状态和所述应用软件卸载状态以作为所述应用软件的检测结果。本发明一并公开了相应的计算设备。
Description
技术领域
本发明涉及操作系统技术领域,特别涉及一种应用软件的执行方法及计算设备。
背景技术
应用软件(Application),是用户可以使用的各种程序设计语言,以及用各种程序设计语言编制的应用程序的集合。应用软件能够满足不同领域、不同问题的应用需求,因此应用软件的使用越来越广泛。
目前,主要通过人工的方式验证操作系统中应用商店的应用软件能否安装,以及应用软件能否实现基本功能,但是由于应用商店中的应用软件数量多,人工遍历检测应用商店的所有应用软件工作量大,耗时长,以及人工检测还容易出现漏测的情况。因此,目前通过人工检测应用商店中的应用软件性能的效率及准确性低。
为此,需要一种自动化的应用软件检测方法来解决上述技术方案中存在的问题。
发明内容
为此,本发明提供一种应用软件的执行方法,以力图解决或者至少缓解上面存在的问题。
根据本发明的一个方面,提供了一种应用软件的检测方法,所述应用软件适于在计算设备的操作系统中执行,所述方法包括:
安装所述应用软件,并记录所述应用软件的安装状态;
若所述应用软件安装成功,则运行所述应用软件,创建应用窗口;
获取所创建的应用窗口属性;
根据所创建的所述应用窗口属性确定所述应用软件的运行状态并记录;
卸载所述应用软件,并记录所述应用软件的卸载状态;
存储所述应用软件安装状态、所述应用软件运行状态和所述应用软件卸载状态以作为所述应用软件的检测结果。
可选地,所述应用软件安装状态、所述应用软件运行状态和所述应用软件卸载状态分别包括:成功或失败。
可选地,所述安装所述应用软件,并记录所述应用软件的安装状态的步骤包括:
获取所述操作系统中与所下载的应用软件对应的应用软件包的状态,基于所述应用软件包状态判断所述应用软件是否安装;
若所述应用软件未安装,则通过消息总线系统的安装命令安装所述应用软件,并记录所述应用软件的安装状态。
可选地,方法还包括:
若所述应用软件已安装,则判断所述应用软件是否为默认应用软件,其中,所述默认应用软件是所述计算设备出厂时在计算设备的操作系统中已安装的应用软件;
若所述应用软件为默认应用软件,则运行所述应用软件并创建应用窗口;
若所述应用软件不是默认应用软件,则卸载所述应用软件,通过消息总线系统的安装命令安装所述应用软件,并记录所述应用软件的安装状态。
可选地,方法还包括:
在获取所述应用窗口属性之前,在预设时间阈值内判断所述应用窗口是否成功打开,若是,则获取当前创建的所述应用窗口属性。
可选地,在根据所创建的应用窗口属性确定所述应用软件的运行状态并记录之前,还包括:
获取已创建的应用窗口属性;
基于已创建的所述应用窗口属性,确定已创建的应用窗口的开启数量编号。
可选地,所述根据已创建的应用窗口属性确定所述应用软件的运行状态的步骤包括:
从当前创建的所述应用窗口属性中获取所述应用窗口的开启数量编号;
判断当前创建的应用窗口的开启数量编号是否大于已创建的应用窗口的开启数量编号;
若当前创建的应用窗口的开启数量编号大于已创建的应用窗口的开启数量编号,则所述应用软件的运行状态为成功,若否,所述应用软件的运行状态为失败。
可选地,在运行所述应用软件的过程中,将所述应用软件放置于托盘中,所述托盘用于显示已启动的应用软件图标。
可选地,方法还包括:
当超过所述预设时间阈值时所述应用窗口打开失败,则通过消息总线系统的获取命令,获取托盘中最新显示的所述应用软件属性,基于所述托盘中最新显示的所述应用软件属性确定所述应用软件的运行状态并记录。
可选地,所述基于所述托盘中最新显示的所述应用软件属性确定所述应用软件的运行状态包括:
基于所述托盘中最新显示的所述应用软件属性确定托盘中最新显示的所述应用软件的打开编号;
通过所述消息总线系统的获取命令获取托盘中已经存在的应用软件属性,并通过托盘中已经存在的应用软件属性确定托盘中已存在的应用软件的打开编号;
判断托盘中最新显示的所述应用软件的打开编号是否大于托盘中已存在的应用软件的打开编号,若大于,则所述应用软件的运行状态为成功,若否,所述应用软件的运行状态为失败。
可选地,方法还包括:
关闭正在运行的所述应用软件;
若所述应用软件关闭失败,则关闭所述应用软件所在的进程。
可选地,方法还包括:
判断安装成功的所述应用软件是否可卸载,若可卸载,则执行卸载所述应用软件,记录所述应用软件的卸载状态的步骤,若不可卸载,记录所述应用软件为不可卸载软件。
可选地,方法还包括:
若所述应用软件安装失败,则执行卸载所述应用软件,记录所述应用软件的卸载状态的步骤。
可选地,方法还包括:
获取所述计算设备的硬件信息,将所述应用软件的检测结果与计算设备的硬件信息相关联。
可选地,方法还包括:
对所述应用软件列表中的应用软件逐个进行检测,并将所述应用软件列表中的每个应用软件的检测结果与所述计算设备的硬件信息相关联。
可选地,方法还包括:
从与所述计算设备通信连接的应用服务器获取应用软件列表;
从所述应用软件列表中选取应用软件并从所述应用服务器下载所选取的应用软件。
根据本发明的一个方面,提供了一种计算设备,包括:至少一个处理器;以及存储器,存储有程序指令,其中,所述程序指令被配置为适于由所述至少一个处理器执行,所述程序指令包括用于执行如上所述的页面内容的处理方法的指令。
根据本发明的一个方面,提供了一种存储有程序指令的可读存储介质,当所述程序指令被计算设备读取并执行时,使得所述计算设备执行如上所述方法。
根据本发明的技术方案,提供了一种应用软件的检测方法,通过该方法实现自动化检测操作系统中应用商店的应用软件能否正常安装、能否实现基本功能、能否正常卸载等性能。具体包括:安装应用软件,并记录应用软件的安装状态,若应用软件安装成功,则运行应用软件,创建应用窗口,获取所创建的应用窗口属性,根据所创建的应用窗口属性确定应用软件的运行状态并记录,卸载应用软件,并记录应用软件的卸载状态,存储应用软件安装状态、应用软件运行状态和应用软件卸载状态以作为应用软件的检测结果。
通过上述方法实现自动化检测操作系统中应用商店的应用软件能否正常安装、能否实现基本功能、能否正常卸载等性能,并将各阶段的检测结果保存至计算设备,检测人员只需查看检测结果即可确定应用商店中各个应用软件的性能。因此自动化测试应用软件的方法能够大大减少检测时间,提高检测效率。且人工检测易受到检测人员的状态、经验等的影响,容易出现误判、漏测的情况,而本发明的自动化检测应用软件的方法,不会受到检测人员状态、经验等的影响,能够提高检测的准确性,也能够有效避免漏测的情况。
附图说明
为了实现上述以及相关目的,本文结合下面的描述和附图来描述某些说明性方面,这些方面指示了可以实践本文所公开的原理的各种方式,并且所有方面及其等效方面旨在落入所要求保护的主题的范围内。通过结合附图阅读下面的详细描述,本公开的上述以及其它目的、特征和优势将变得更加明显。遍及本公开,相同的附图标记通常指代相同的部件或元素。
图1示出了根据本发明一个实施例的计算设备100的示意图;
图2示出了根据本发明一个实施例的应用软件的测试结果200的界面展示效果图;
图3示出了根据本发明一个实施例的应用软件的测试方法300的流程图;
图4示出了根据本发明一个实施例的托盘400的示意图;以及
图5示出了根据本发明一个实施例的一个应用软件的检测方法500的完整流程图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
统信操作系统,也称为UOS操作系统,该系统只能安装应用商店中的应用软件,因此,UOS操作系统需要对应用商店中应用软件能否安装、应用软件能否实现基本功能进行检测。
目前,主要通过人工的方式验证UOS操作系统中应用商店的应用软件能否安装,以及应用软件能否实现基本功能,但是由于应用商店中的应用软件数量多,人工遍历检测应用商店的所有应用软件工作量大,耗时长,以及人工检测易受到检测人员的状态、经验等的影响,容易出现误判、漏测的情况。因此,目前通过人工检测应用商店中的应用软件性能的效率及准确性低。
为此,本发明提出了一种应用软件的检测方法,通过该方法实现自动化检测应用软件的性能,在检测过程中无需人工参与,具体地:从与计算设备通信连接的应用服务器获取应用软件列表,在应用软件列表中选取应用软件并从应用服务器下载所选取的应用软件,安装所下载的应用软件,并记录应用软件安装状态,若应用软件安装成功,则运行应用软件,创建应用窗口,获取当前创建的应用窗口属性,通过当前创建的应用窗口属性确定应用软件的运行状态并记录,接下来卸载应用软件,并记录应用软件的卸载状态,最后将应用软件的安装状态、运行状态和卸载状态作为应用软件的检测结果,并存储至计算设备中,其中安装状态、运行状态和卸载状态均包括成功和失败,利用passed表示成功,利用failed表示失败,从而检测人员可根据检测结果判断应用软件是否能够正常安装、运行和卸载。通过在本发明的自动化检测应用软件的方法,能够大大减少检测时间,提高检测效率,且在不会受到检测人员状态、经验等的影响,能够提高检测的准确性,也能够有效避免漏测的情况。
当然,本发明的应用软件的检测方法同样应用于目前已有的其他操作系统,例如Windows操作系统、Linux操作系统等。
上述的检测方法仅仅是检测一个应用软件性能的方法,若应用软件列表中有多个应用软件,则执行多次上述方法,并得到多个检测结果。本发明将所有应用软件的检测结果保存在一个统计表中,图2为应用软件的检测结果统计表的示意图,图2示出了应用商店中部分应用软件的检测结果,图中的各字段含义如表1所示:
表1
number | name | exec_cmd | desktoppath | Install_status | open_status | remove_status |
应用软件编号 | 应用软件名称 | 执行命令 | 桌面路径 | 安装状态 | 运行状态 | 卸载状态 |
需要说明的是,exec_cmd是执行命令,用户直接在操作系统终端输入执行命令就可以启动对应的应用软件。Desktoppath是桌面路径,进一步地可以理解为在桌面上显示应用软件图标的路径。
检测人员可根据检测结果表格的name字段确定应用软件的名称,通过Install_status、open_status、remove_status确定对应的应用软件的安装状态、运行状态以及卸载状态。例如,如图2中number2对应的name是org.srchub.gitso,该应用软件的Install_status为passed,说明应用软件org.srchub.gitso安装成功,应用软件的open_status为passed,说明应用软件org.srchub.gitso运行成功,应用软件的remove_status为passed,说明应用软件org.srchub.gitso卸载成功,因此检测人员基于接触结果表格中的Install_status、open_status、remove_status对应的状态可确定应用软件org.srchub.gitso能够正常安装、运行和卸载,也就是说,检测人员通过检测结果统计表的数据可确定应用软件org.srchub.gitso能够正常使用,应用商店中可正常上架该应用软件,以供用户下载使用。
本发明提供的应用软件的检测方法在计算设备的操作系统中执行,图1示出了根据本发明一个实施例的计算设备100的结构图。计算设备100的框图如图1所示,在基本的配置102中,计算设备100典型地包括系统存储器106和一个或者多个处理器104。存储器总线108可以用于在处理器104和系统存储器106之间的通信。
取决于期望的配置,处理器104可以是任何类型的处理,包括但不限于:微处理器(µP)、微控制器(µC)、数字信息处理器(DSP)或者它们的任何组合。处理器104可以包括诸如一级高速缓存110和二级高速缓存112之类的一个或者多个级别的高速缓存、处理器核心114和寄存器116。示例的处理器核心114可以包括运算逻辑单元(ALU)、浮点数单元(FPU)、数字信号处理核心(DSP核心)或者它们的任何组合。示例的存储器控制器118可以与处理器104一起使用,或者在一些实现中,存储器控制器118可以是处理器104的一个内部部分。
取决于期望的配置,系统存储器106可以是任意类型的存储器,包括但不限于:易失性存储器(诸如RAM)、非易失性存储器(诸如ROM、闪存等)或者它们的任何组合。系统存储器106可以包括操作系统120、一个或者多个应用122以及程序数据124。在一些实施方式中,应用122可以布置为在操作系统上利用程序数据124进行操作。程序数据124包括指令,在根据本发明的计算设备100中,程序数据124包含用于执行有应用软件的检测方法300的指令。
计算设备100还包括储存设备132,储存设备132包括可移除储存器136和不可移除储存器138,可移除储存器136和不可移除储存器138均与储存接口总线134连接。
计算设备100还可以包括有助于从各种接口设备(例如,输出设备142、外设接口144和通信设备146)到基本配置102经由总线/接口控制器130的通信的接口总线140。示例的输出设备142包括图形处理单元148和音频处理单元150。它们可以被配置为有助于经由一个或者多个A/V端口152与诸如显示器或者扬声器之类的各种外部设备进行通信。示例外设接口144可以包括串行接口控制器154和并行接口控制器156,它们可以被配置为有助于经由一个或者多个I/O端口158和诸如输入设备(例如,键盘、鼠标、笔、语音输入设备、触摸输入设备)或者其他外设(例如打印机、扫描仪等)之类的外部设备进行通信。示例的通信设备146可以包括网络控制器160,其可以被布置为便于经由一个或者多个通信端口164与一个或者多个其他计算设备162通过网络通信链路的通信。
网络通信链路可以是通信介质的一个示例。通信介质通常可以体现为在诸如载波或者其他传输机制之类的调制数据信号中的计算机可读指令、数据结构、程序模块,并且可以包括任何信息递送介质。“调制数据信号”可以这样的信号,它的数据集中的一个或者多个或者它的改变可以在信号中编码信息的方式进行。作为非限制性的示例,通信介质可以包括诸如有线网络或者专线网络之类的有线介质,以及诸如声音、射频(RF)、微波、红外(IR)或者其它无线介质在内的各种无线介质。这里使用的术语计算机可读介质可以包括存储介质和通信介质二者。
计算设备100可以实现为服务器,例如文件服务器、数据库服务器、应用程序服务器和WEB服务器等,也可以实现为小尺寸便携(或者移动)电子设备的一部分,这些电子设备可以是诸如蜂窝电话、个人数字助理(PDA)、个人媒体播放器设备、无线网络浏览设备、个人头戴设备、应用专用设备、或者可以包括上面任何功能的混合设备。计算设备100还可以实现为包括桌面计算机和笔记本计算机配置的个人计算机。在一些实施例中,计算设备100的操作系统120被配置为执行根据本发明的一种应用软件的检测方法300。
图3示出了根据本发明一个实施例的应用软件的检测方法300的流程图。方法300适于在计算设备100(例如前述计算设备100)的操作系统120中执行。
需要说明的是,本发明提供的应用软件的检测方法,是检测一个应用软件的完整方法,若有多个应用软件需要检测,则利用本发明的应用软件检测方法对应用软件逐个进行检测,将每个应用软件的检测结果保存在一个统计表中,并将一个统计表存储至计算设备100的系统存储器106中。
图3为应用软件的检测方法300的流程图,如图3所示,应用软件的检测方法300始于步骤S310。在执行步骤S310之前,需要从与计算设备100通信连接的应用服务器获取应用软件列表。应用服务器中存储有UOS应用商店的所有应用软件和包括UOS应用商店的所有应用软件数据(例如名称)的应用软件列表,可利用python的request命令获取应用软件列表。
接下来,从应用软件列表中选取应用软件并从应用服务器下载所选取的应用软件。具体地,从应用软件列表中选取一个应用软件,操作系统(例如UOS操作系统)向应用服务器发送HTTP请求,HTTP请求中的参数是选取的应用软件相关数据,例如名称,应用服务器接收并响应HTTP请求,将存储操作系统应用商店的所有应用软件的统一资源定位符https://store.chinauos.com/api/public/packages通过HTTP响应发送至操作系统,操作系统通过统一资源定位符下载所选取的一个应用软件。
下载选取的一个应用软件后执行步骤S310。在步骤S310中,安装应用软件,并记录应用软件的安装状态。具体地,首先通过软件包管理系统Debain中的软件包dpkg的dpkg-l命令查看操作系统中与已经安装的应用软件对应的应用软件包的状态,并基于应用软件包状态判断所下载的应用软件是否已经安装在操作系统中。例如,如果应用软件包状态为ii,表示当前操作系统中已经安装该应用软件,且未出现错误,若为iu,表示当前操作系统中已经安装该应用软件,但未正确配置,若为rc ,表示当前操作系统中该应用软件已经被删除,但配置文件未清理。
若操作系统中未安装所下载的应用软件,则通过调用消息总线Dbus lastore-tools test-j install命令安装应用软件,记录安装状态。其中,如图2所示,安装状态Install_status包括:成功passed或失败failed,若安装失败,则执行步骤S350。
若操作系统中已经安装所下载的应用软件,则调用ls/usr/share/applications命令查看应用软件包的后缀,若应用软件包的后缀为desktop,则判断应用软件为默认应用软件,若否,则应用软件不是默认软件。其中,默认应用软件是计算设备出厂时在计算设备的操作系统中已安装的应用软件。若应用软件不是默认应用软件,则直接卸载该应用软件,并执行步骤S310以重新安装该应用软件,从而检测应用软件性能。
在应用软件为默认应用软件时,或在操作系统中未安装下载的应用软件的情况下、应用软件安装状态为成功passed时,通过Wnck软件包获取所创建的应用窗口属性,并基于所创建的应用窗口属性确定所创建的应用窗口的开启数量编号a,其中,应用窗口属性中包括应用窗口长度(即应用窗口的开启数量)、窗口句柄(即窗口的唯一标识符)等。
随后在步骤S320中,运行应用软件,并创建应用窗口,并在步骤S330中,获取所创建的应用窗口属性。本发明一个实施方式中,运行应用软件后,在预设时间阈值内例如30s内判断应用窗口是否成功打开,若是,则通过Wnck软件包获取当前创建的应用窗口属性,同样地,应用窗口属性中包括应用窗口长度(即应用窗口的开启数量)、窗口句柄(即窗口的唯一标识符)等。
接下来在步骤S340中,根据所创建的应用窗口属性确定应用软件的运行状态并记录。在本发明的一个实施方式中,通过Wnck软件包从当前创建的应用窗口属性中获取应用窗口的开启数量编号b,并判断当前创建的应用窗口的开启数量编号b是否大于已创建的应用窗口的开启数量编号a,即判断b>a是否成立,若b>a,表示应用窗口成功打开,则应用软件的运行状态为成功passed,若b<a,表示应用窗口打开失败,则应用软件的运行状态为失败failed。
值得注意的是,在运行应用软件的过程中,操作系统120会将应用软件放置于托盘中。图4是托盘示意图,如图4所示,图4中的410即为托盘,托盘用于显示已启动的应用软件图标,也就是说,托盘中显示的图标是已启动的应用软件图标。
本发明一个实施方式中,运行应用软件后,若在预设时间阈值内例如30s内应用窗口没有成功打开,则通过消息总线系统Dbus的Get方法获取托盘中最新显示的应用软件属性,其中,托盘中的应用软件属性包括应用软件的打开编号,基于托盘中最新显示的应用软件属性,确定托盘中最新显示的应用软件的打开编号c,再通过消息总线系统Dbus的Get方法获取托盘中已经存在的应用软件属性,并通过托盘中已经存在的应用软件属性,确定托盘中已存在的应用软件的打开编号d,判断托盘中最新显示的所述应用软件的打开编号是否大于托盘中已存在的应用软件的打开编号,即,判断是否满足c>d,若c>d,则应用软件的运行状态为成功passed,若c<d,则应用软件的运行状态为失败failed。
之后,通过close()函数关闭正在运行的应用软件,若应用软件关闭失败,则基于进程的pid号关闭应用软件所在的进程从而关闭正在运行的应用软件。
在操作系统中未安装下载的应用软件的情况下,应用软件安装状态为失败failed时,在这种情况下不运行此应用软件,但是安装失败的应用软件的安装包已经安装在系统中,因此,若应用软件安装失败failed,则在步骤S350中,卸载应用软件,并记录应用软件的卸载状态。其中,通过getstatusoutput()函数执行消息总线系统Dbusd的lastore-toolstest -j remove命令卸载安装失败的应用软件、或已经安装在操作系统120中但是不是默认的应用软件,并返回函数值,若函数返回值为0则表示卸载成功,不为0则表示卸载失败,其中,卸载成功状态为passed,卸载失败状态为failed。
最后在步骤S360中,存储应用软件安装状态、应用软件运行状态和应用软件卸载状态以作为应用软件的检测结果。在本发明一个实施方式中,将通过本发明的应用软件检测方法检测的所有应用软件的安装状态、运行状态和卸载状态存储在一个统计表中,如图2所示,并将统计表保存至计算设备100的系统存储器106中,例如计算设备的磁盘或内存中。
基于上述的应用软件的检测方法,实现由人工检测转化为自动化检测一个应用软件的性能,能够大大减少检测时间,提高检测效率,且在不会受到检测人员状态、经验等的影响,能够提高检测的准确性,也能够有效避免漏测的情况。
图5为一个应用软件的检测方法500的完整流程图,如图5所示,应用软件的检测方法500始于步骤S501。
在步骤S501中,从与计算设备通信连接的应用服务器获取应用软件列表;
在步骤S502中,从应用软件列表中选取应用软件并从应用服务器下载所选取的应用软件;
在步骤S503中,获取操作系统中步骤S502已选取的应用软件的软件包状态,基于应用软件包状态判断应用软件是否安装;
若应用软件未安装,则在步骤S504中通过消息总线系统的安装命令安装应用软件,并记录应用软件的安装状态,若安装成功则执行步骤S507,若安装失败则执行步骤S519;
若所述应用软件已安装,则在步骤S505中判断应用软件是否为默认应用软件,若应用软件为默认应用软件,则执行步骤S507;
若应用软件不是默认应用软件,则在步骤S506中卸载应用软件,并执行步骤S504。
接着在步骤S507中运行应用软件,创建应用窗口;
在步骤S508中,在预设时间阈值内判断应用窗口是否成功打开,若成功打开,则执行步骤S509,若打开失败,则执行步骤S514;
在步骤S509中获取所创建的应用窗口属性;
基于所创建的应用窗口属性,在步骤S510中确定所创建的应用窗口的开启数量编号;
在步骤S511中,判断所创建的应用窗口的开启数量编号是否大于已创建的应用窗口的开启数量编号,若所创建的应用窗口的开启数量编号大于已创建的应用窗口的开启数量编号,则应用软件的运行状态为成功,若否,应用软件的运行状态为失败,并记录应用软件运行状态;
当超过预设时间阈值时应用窗口打开失败,则在步骤S512中通过消息总线系统的获取命令,获取托盘中最新显示的应用软件属性;
在步骤S513中,基于托盘中最新显示的应用软件属性确定托盘中最新显示的应用软件的打开编号;
在步骤S514中,通过消息总线系统的获取命令,获取托盘中已经存在的应用软件属性,并通过托盘中已经存在的应用软件属性,确定托盘中已存在的应用软件的打开编号;
在步骤S515中,判断托盘中最新显示的应用软件的打开编号是否大于托盘中已存在的应用软件的打开编号,若大于,则应用软件的运行状态为成功,若否,应用软件的运行状态为失败,记录应用软件运行状态;
在步骤S516中,关闭正在运行的应用软件,若应用软件关闭失败,则关闭应用软件所在的进程;
在步骤S517中,判断安装成功或失败的应用软件是否可卸载,若可卸载,则卸载应用软件,记录应用软件的卸载状态,若不可卸载,记录应用软件为不可卸载软件;
在步骤S518中,存储应用软件安装状态、运行状态和卸载状态以作为应用软件的检测结果。
图5仅为一个应用软件的检测方法的完整流程图,但是应用商店中包括多个应用软件,而应用软件列表将应用商店中的应用软件全部罗列出,因此需要对应用软件列表中的应用软件逐个进行检测,并将应用软件列表中的每个应用软件的检测结果存储在图2的统计表中,再将统计表存储在计算设备100的系统存储器106中,以供检测人员查看检测结果,检测人员基于检测结果可确定各个应用软件的性能,从而实现由人工转化为自动化检测应用软件性能,能够大大减少检测时间,提高检测效率,且在不会受到检测人员状态、经验等的影响,能够提高检测的准确性,也能够有效避免漏测的情况。
这里描述的各种技术可结合硬件或软件,或者它们的组合一起实现。从而,本发明的方法和设备,或者本发明的方法和设备的某些方面或部分可采取嵌入有形媒介,例如可移动硬盘、U盘、软盘、CD-ROM或者其它任意机器可读的存储介质中的程序代码(即指令)的形式,其中当程序被载入诸如计算机之类的机器,并被所述机器执行时,所述机器变成实践本发明的设备。
在程序代码在可编程计算机上执行的情况下,计算设备一般包括处理器、处理器可读的存储介质(包括易失性和非易失性存储器和/或存储元件),至少一个输入装置,和至少一个输出装置。其中,存储器被配置用于存储程序代码;处理器被配置用于根据该存储器中存储的所述程序代码中的指令,执行本发明的应用软件的检测方法。
以示例而非限制的方式,可读介质包括可读存储介质和通信介质。可读存储介质存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息。通信介质一般以诸如载波或其它传输机制等已调制数据信号来体现计算机可读指令、数据结构、程序模块或其它数据,并且包括任何信息传递介质。以上的任一种的组合也包括在可读介质的范围之内。
在此处所提供的说明书中,算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与本发明的示例一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下被实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员应当理解在本文所公开的示例中的设备的模块或单元或组件可以布置在如该实施例中所描述的设备中,或者可替换地可以定位在与该示例中的设备不同的一个或多个设备中。前述示例中的模块可以组合为一个模块或者此外可以分成多个子模块。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
此外,所述实施例中的一些在此被描述成可以由计算机系统的处理器或者由执行所述功能的其它装置实施的方法或方法元素的组合。因此,具有用于实施所述方法或方法元素的必要指令的处理器形成用于实施该方法或方法元素的装置。此外,装置实施例的在此所述的元素是如下装置的例子:该装置用于实施由为了实施该发明的目的的元素所执行的功能。
如在此所使用的那样,除非另行规定,使用序数词“第一”、“第二”、“第三”等等来描述普通对象仅仅表示涉及类似对象的不同实例,并且并不意图暗示这样被描述的对象必须具有时间上、空间上、排序方面或者以任意其它方式的给定顺序。
尽管根据有限数量的实施例描述了本发明,但是受益于上面的描述,本技术领域内的技术人员明白,在由此描述的本发明的范围内,可以设想其它实施例。此外,应当注意,本说明书中使用的语言主要是为了可读性和教导的目的而选择的,而不是为了解释或者限定本发明的主题而选择的。因此,在不偏离所附权利要求书的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。对于本发明的范围,对本发明所做的公开是说明性的,而非限制性的,本发明的范围由所附权利要求书限定。
Claims (15)
1.一种应用软件的检测方法,所述应用软件适于在计算设备的操作系统中执行,所述方法包括:
安装所述应用软件,并记录所述应用软件的安装状态;
若所述应用软件安装成功,则运行所述应用软件,创建应用窗口;
在预设时间阈值内判断所述应用窗口是否成功打开,若是,则获取当前创建的所述应用窗口属性;
获取已创建的应用窗口属性,并基于所述已创建的所述应用窗口属性,确定已创建的应用窗口的开启数量编号;
从当前创建的所述应用窗口属性中获取所述应用窗口的开启数量编号,判断当前创建的应用窗口的开启数量编号是否大于已创建的应用窗口的开启数量编号,若是,则所述应用软件的运行状态为成功,若否,所述应用软件的运行状态为失败,并记录所述应用软件运行状态;
卸载所述应用软件,并记录所述应用软件的卸载状态;
存储所述应用软件安装状态、所述应用软件运行状态和所述应用软件卸载状态以作为所述应用软件的检测结果。
2.如权利要求1所述的方法,其中,所述应用软件安装状态、所述应用软件运行状态和所述应用软件卸载状态分别包括:成功或失败。
3.如权利要求1所述的方法,其中,所述安装所述应用软件,并记录所述应用软件的安装状态的步骤包括:
获取所述操作系统中与所下载的应用软件对应的应用软件包的状态,基于所述应用软件包状态判断所述应用软件是否安装;
若所述应用软件未安装,则通过消息总线系统的安装命令安装所述应用软件,并记录所述应用软件的安装状态。
4.如权利要求3所述的方法,还包括:
若所述应用软件已安装,则判断所述应用软件是否为默认应用软件,其中,所述默认应用软件是所述计算设备出厂时在计算设备的操作系统中已安装的应用软件;
若所述应用软件为默认应用软件,则运行所述应用软件并创建应用窗口;
若所述应用软件不是默认应用软件,则卸载所述应用软件,通过消息总线系统的安装命令安装所述应用软件,并记录所述应用软件的安装状态。
5.如权利要求1所述的方法,其中,在运行所述应用软件的过程中,将所述应用软件放置于托盘中,所述托盘用于显示已启动的应用软件图标。
6.如权利要求5所述的方法,还包括:
当超过所述预设时间阈值时所述应用窗口打开失败,则通过消息总线系统的获取命令,获取托盘中最新显示的所述应用软件属性,基于所述托盘中最新显示的所述应用软件属性确定所述应用软件的运行状态并记录。
7.如权利要求6所述的方法,其中,所述基于所述托盘中最新显示的所述应用软件属性确定所述应用软件的运行状态包括:
基于所述托盘中最新显示的所述应用软件属性确定托盘中最新显示的所述应用软件的打开编号;
通过所述消息总线系统的获取命令获取托盘中已经存在的应用软件属性,并通过托盘中已经存在的应用软件属性确定托盘中已存在的应用软件的打开编号;
判断托盘中最新显示的所述应用软件的打开编号是否大于托盘中已存在的应用软件的打开编号,若大于,则所述应用软件的运行状态为成功,若否,所述应用软件的运行状态为失败。
8.如权利要求1所述的方法,还包括:
关闭正在运行的所述应用软件;
若所述应用软件关闭失败,则关闭所述应用软件所在的进程。
9.如权利要求1所述的方法,还包括:
判断安装成功的所述应用软件是否可卸载,若可卸载,则执行卸载所述应用软件,记录所述应用软件的卸载状态的步骤,若不可卸载,记录所述应用软件为不可卸载软件。
10.如权利要求1所述的方法,还包括:
若所述应用软件安装失败,则执行卸载所述应用软件,记录所述应用软件的卸载状态的步骤。
11.如权利要求1所述的方法,还包括:
获取所述计算设备的硬件信息,将所述应用软件的检测结果与计算设备的硬件信息相关联。
12.如权利要求11所述的方法,还包括:
对所述应用软件列表中的应用软件逐个进行检测,并将所述应用软件列表中的每个应用软件的检测结果与所述计算设备的硬件信息相关联。
13.如权利要求1所述的方法,还包括:
从与所述计算设备通信连接的应用服务器获取应用软件列表;
从所述应用软件列表中选取应用软件并从所述应用服务器下载所选取的应用软件。
14.一种计算设备,包括:
至少一个处理器;以及
存储器,存储有程序指令,其中,所述程序指令被配置为适于由所述至少一个处理器执行,所述程序指令包括用于执行如权利要求1-13中任一项所述的方法的指令。
15.一种存储有程序指令的可读存储介质,当所述程序指令被计算设备读取并执行时,使得所述计算设备执行如权利要求1-13中任一项所述方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011046360.7A CN111897741B (zh) | 2020-09-29 | 2020-09-29 | 一种应用软件的检测方法及计算设备 |
CN202011443853.4A CN112540921B (zh) | 2020-09-29 | 2020-09-29 | 一种应用软件的检测方法及计算设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011046360.7A CN111897741B (zh) | 2020-09-29 | 2020-09-29 | 一种应用软件的检测方法及计算设备 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011443853.4A Division CN112540921B (zh) | 2020-09-29 | 2020-09-29 | 一种应用软件的检测方法及计算设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111897741A CN111897741A (zh) | 2020-11-06 |
CN111897741B true CN111897741B (zh) | 2021-02-19 |
Family
ID=73224008
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011443853.4A Active CN112540921B (zh) | 2020-09-29 | 2020-09-29 | 一种应用软件的检测方法及计算设备 |
CN202011046360.7A Active CN111897741B (zh) | 2020-09-29 | 2020-09-29 | 一种应用软件的检测方法及计算设备 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011443853.4A Active CN112540921B (zh) | 2020-09-29 | 2020-09-29 | 一种应用软件的检测方法及计算设备 |
Country Status (1)
Country | Link |
---|---|
CN (2) | CN112540921B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106775631A (zh) * | 2016-11-18 | 2017-05-31 | 宇龙计算机通信科技(深圳)有限公司 | 应用打开方法、系统及电子设备 |
CN109634831A (zh) * | 2017-10-09 | 2019-04-16 | 飞狐信息技术(天津)有限公司 | 一种Android应用程序GUI自动遍历测试方法及系统 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103019764B (zh) * | 2012-11-15 | 2016-02-10 | 深圳市宜搜科技发展有限公司 | Andriod资源包可安装性的检测方法及系统 |
CN104077211B (zh) * | 2013-03-25 | 2018-11-09 | 腾讯科技(深圳)有限公司 | 一种移动终端软件的测试方法及测试系统 |
CN104216700B (zh) * | 2013-09-10 | 2017-05-03 | 侯金涛 | 基于云计算的html5应用的打包、安装、卸载、运行方法的系统 |
CN106681925A (zh) * | 2017-01-04 | 2017-05-17 | 广州四三九九信息科技有限公司 | 基于UIAutomator的自动化测试方法及装置 |
US10528336B2 (en) * | 2017-01-30 | 2020-01-07 | International Business Machines Corporation | Creation of software images of software applications for image-based maintenance of the software applications |
CN110928630A (zh) * | 2019-11-26 | 2020-03-27 | 北京博睿宏远数据科技股份有限公司 | 应用程序窗口的激活控制方法、装置、设备及存储介质 |
-
2020
- 2020-09-29 CN CN202011443853.4A patent/CN112540921B/zh active Active
- 2020-09-29 CN CN202011046360.7A patent/CN111897741B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106775631A (zh) * | 2016-11-18 | 2017-05-31 | 宇龙计算机通信科技(深圳)有限公司 | 应用打开方法、系统及电子设备 |
CN109634831A (zh) * | 2017-10-09 | 2019-04-16 | 飞狐信息技术(天津)有限公司 | 一种Android应用程序GUI自动遍历测试方法及系统 |
Non-Patent Citations (1)
Title |
---|
《图形用户界面GUI的自动测试工具的研究》;李涛;《中国优秀博硕士学位论文全文数据库 (硕士) 信息科技辑》;20051215;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN111897741A (zh) | 2020-11-06 |
CN112540921A (zh) | 2021-03-23 |
CN112540921B (zh) | 2023-11-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8495425B2 (en) | System and method to efficiently identify bad components in a multi-node system utilizing multiple node topologies | |
US7793161B2 (en) | Method and apparatus to anticipate memory exhaustion in an open services gateway initiative environment | |
US11128543B2 (en) | Enrollment data visualization using enhanced graphical user interface elements | |
CN112445708B (zh) | 一种压力测试方法、装置及计算设备 | |
US20140068325A1 (en) | Test case result processing | |
CN107491374B (zh) | 一种设备停机状态的判断方法及计算设备 | |
CN113867847A (zh) | 一种异常插件处理方法、装置及计算设备 | |
US20170017561A1 (en) | Software detection method and device | |
CN113204385A (zh) | 一种插件加载方法、装置、计算设备及可读存储介质 | |
CN114416252A (zh) | 一种窗口显示方法、装置、计算设备和存储介质 | |
CN110874298B (zh) | 一种请求数据存储方法及终端设备 | |
CN113485712B (zh) | 一种内核裁剪方法及计算设备 | |
CN111897741B (zh) | 一种应用软件的检测方法及计算设备 | |
CN111930392B (zh) | 一种应用服务部署方法、计算设备及可读存储介质 | |
CN110069217A (zh) | 一种数据存储方法及装置 | |
CN111913858A (zh) | 一种压力测试系统和方法 | |
CN108304310B (zh) | 一种日志分析方法及计算设备 | |
CN113778834B (zh) | 一种应用软件的系统性能测试方法、装置与计算设备 | |
CN113821264B (zh) | 操作系统安装控制方法、安装控制系统及计算设备 | |
CN114721672A (zh) | 一种应用安装方法、计算设备及存储介质 | |
CN113342698B (zh) | 一种测试环境调度方法、计算设备及存储介质 | |
CN109491831A (zh) | 系统分区自救方法、装置、系统及计算机可读存储介质 | |
CN113239396A (zh) | 数据访问系统、方法、装置、计算机设备及介质 | |
CN113254248A (zh) | 一种故障诊断方法、系统及计算设备 | |
CN112241283B (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 |