CN118035081A - 操作系统的测试方法、装置及计算机设备 - Google Patents
操作系统的测试方法、装置及计算机设备 Download PDFInfo
- Publication number
- CN118035081A CN118035081A CN202410094594.0A CN202410094594A CN118035081A CN 118035081 A CN118035081 A CN 118035081A CN 202410094594 A CN202410094594 A CN 202410094594A CN 118035081 A CN118035081 A CN 118035081A
- Authority
- CN
- China
- Prior art keywords
- software
- action
- test
- execution
- operating system
- 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
- 238000010998 test method Methods 0.000 title claims description 22
- 230000009471 action Effects 0.000 claims abstract description 190
- 238000012360 testing method Methods 0.000 claims abstract description 188
- 238000000034 method Methods 0.000 claims abstract description 82
- 230000002452 interceptive effect Effects 0.000 claims abstract description 66
- 230000008569 process Effects 0.000 claims abstract description 66
- 238000012544 monitoring process Methods 0.000 claims abstract description 18
- 238000004590 computer program Methods 0.000 claims description 21
- 238000004088 simulation Methods 0.000 claims description 9
- 230000006399 behavior Effects 0.000 claims description 3
- 230000006870 function Effects 0.000 description 41
- 230000000875 corresponding effect Effects 0.000 description 26
- 238000010586 diagram Methods 0.000 description 8
- 230000000694 effects Effects 0.000 description 4
- 230000009286 beneficial effect Effects 0.000 description 3
- 230000001276 controlling effect Effects 0.000 description 3
- 238000010408 sweeping Methods 0.000 description 3
- 101100264195 Caenorhabditis elegans app-1 gene Proteins 0.000 description 2
- 230000003213 activating effect Effects 0.000 description 2
- 230000004913 activation Effects 0.000 description 2
- 238000012790 confirmation Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000013522 software testing Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012956 testing procedure Methods 0.000 description 1
- 230000002618 waking effect Effects 0.000 description 1
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本申请实施例适用于计算机技术领域,提供了一种操作系统的测试方法、装置及计算机设备,所述方法包括:获取测试信息,所述测试信息包括测试所需的软件的信息以及针对所述软件进行测试的测试流程;根据所述测试流程确定待执行的动作以及执行位置,所述执行位置是在操作系统提供的交互界面中的位置;模拟生成所述动作并在所述执行位置处执行所述动作;监测执行所述动作的过程中所述操作系统的运行情况。采用上述方法,可以实现对操作系统的自动测试,提高测试效率。
Description
技术领域
本申请实施例属于计算机技术领域,特别是涉及一种操作系统的测试方法、装置及计算机设备。
背景技术
在计算机操作系统的开发过程中,需要对操作系统能够实现的各项软件功能进行测试、验证。例如,测试操作系统中运行的生态软件的各项功能的有效性、稳定性是否满足相应要求。
现有技术中,对于计算机操作系统的测试主要是通过人工重复操作来实现的。例如,测试办公软件在操作系统中的运行情况需要用户通过鼠标或其他方式多次打开、关闭办公软件,以此来测试办公软件在操作系统上是否能够正常运行。这种通过人工重复操作的测试方法效率极低。
发明内容
有鉴于此,本申请实施例提供了一种操作系统的测试方法、装置及计算机设备,用以实现对操作系统的自动化测试,提高测试效率。
本申请实施例的第一方面提供了一种操作系统的测试方法,包括:
获取测试信息,所述测试信息包括测试所需的软件的信息以及针对所述软件进行测试的测试流程;
根据所述测试流程确定待执行的动作以及执行位置,所述执行位置是在操作系统提供的交互界面中的位置;
模拟生成所述动作并在所述执行位置处执行所述动作;
监测执行所述动作的过程中所述操作系统的运行情况。
可选地,所述根据所述测试流程确定待执行的动作以及执行位置,包括:
根据所述测试流程,确定针对所述软件进行测试所需的多个动作;
在所述交互界面中分别确定各个所述动作的执行位置。
可选地,所述根据所述测试流程,确定针对所述软件进行测试所需的多个动作,包括:
根据所述测试流程,确定测试所需的多个动作的顺序以及每个动作的间隔时间。
可选地,所述在所述交互界面中分别确定各个所述动作的执行位置,包括:
识别多个动作中最先执行的第一动作,所述第一动作的执行位置为所述交互界面中所述软件的标识位置;
确定所述第一动作执行后所述软件在所述交互界面中显示的软件界面;
在所述软件界面中逐个确定除所述第一动作外的其他各个动作的执行位置。
可选地,在获取测试信息之前,所述方法还包括:
将所述交互界面划分为多个方格,确定各个所述方格的多个顶点的坐标;其中,任一所述方格最多容纳一个测试所需的软件的标识;
根据多个所述方格及其多个顶点的坐标,分别确定每个所述软件在所述交互界面中的标识位置并存储所述标识位置。
可选地,模拟生成所述动作并在所述执行位置处执行所述动作,包括:
控制光标移动至所述执行位置;
在所述执行位置生成操作所述光标的操作信息;
按照所述操作信息在所述执行位置操作所述光标;其中,按照所述操作信息操作所述光标产生的动作与待执行的所述动作相同。
可选地,所述监测执行所述动作的过程中所述操作系统的运行情况,包括:
分别确定所述动作执行后所述软件的运行状态;
在执行所述动作后,获取后台进程信息;
根据所述后台进程信息和所述运行状态,得到所述操作系统的测试结果。
本申请实施例的第二方面提供了一种操作系统的测试装置,包括:
获取模块,用于获取测试信息,所述测试信息包括测试所需的软件的信息以及针对所述软件进行测试的测试流程;
确定模块,用于根据所述测试流程确定待执行的动作以及执行位置,所述执行位置是在操作系统提供的交互界面中的位置;
执行模块,用于模拟生成所述动作并在所述执行位置处执行所述动作;
监测模块,用于监测执行所述动作的过程中所述操作系统的运行情况。
本申请实施例的第三方面提供了一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述第一方面所述的操作系统的测试方法。
本申请实施例的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如上述第一方面所述的操作系统的测试方法。
本申请实施例的第五方面提供了一种计算机程序产品,当所述计算机程序产品在计算机上运行时,使得所述计算机执行上述第一方面所述的操作系统的测试方法。
与现有技术相比,本申请实施例具有以下有益效果:
应用本申请实施例提供的测试方法,计算机设备通过获取测试信息,可以根据测试信息中的测试流程确定待执行的动作以及相应的执行位置。然后,通过模拟生成该动作并在执行位置处执行该动作,可以实现对操作系统的自动化测试,无需人工反复地重复操作,有助于提高测试效率。此外,通过监测执行上述动作的过程中操作系统的运行情况,可以得到准确的测试结果,也降低了由人工来判断测试结果造成测试结果不准确的可能性,提高了测试结果的准确性和可信度。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种操作系统的测试方法的示意图;
图2是本申请实施例提供的一种操作系统的测试流程的示意图;
图3是本申请实施例提供的一种操作系统的测试装置的示意图;
图4是本申请实施例提供的一种计算机设备的示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域技术人员应当清楚,在没有这些具体细节的其他实施例中也可以实现本申请。在其他情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
下面通过具体实施例来说明本申请的技术方案。
参照图1,示出了本申请实施例提供的一种操作系统的测试方法的示意图,具体可以包括如下步骤:
S101、获取测试信息,所述测试信息包括测试所需的软件的信息以及针对所述软件进行测试的测试流程。
需要说明的是,本方法可以应用于计算机设备,即本申请实施例的执行主体可以是计算机设备。该计算机设备中可以安装有待测试的操作系统,计算机设备可以通过执行本申请实施例中的各个步骤,实现对操作系统的测试。上述计算机设备可以是任意类型的设备,如台式计算机、笔记本电脑等等,本申请实施例对计算机设备的类型不作限定。
在本申请实施例的一种可能的实现方式中,操作系统可以是基于linux内核开发的系统。即本申请实施例提供的测试方法可以用于对安装有基于linux内核开发的操作系统的计算机设备进行测试。当然,在安装有其他类型的操作系统的计算机设备上,也可以利用本申请实施例提供的测试方法对操作系统进行测试。在操作系统的开发过程中,需要对其进行测试,以确认开发出的操作系统的功能是否满足相应的要求。示例性地,为了测试操作系统是否能够正常地运行软件,需要将软件安装在运行该操作系统的计算机设备上,并对打开、关闭软件等各项操作进行测试。
本申请实施例中的测试信息可以是用于指示对操作系统某一测试项进行测试的相关信息。通常,在操作系统上实现的相关功能都是基于不同的软件来完成的,对于操作系统的测试也应该基于各个软件来进行。因此,用于指示对操作系统进行测试的上述测试信息可以包括测试所需的软件的信息以及针对该软件进行测试的测试流程。示例性地,测试操作系统上的办公软件或游戏软件的功能,相应的测试信息可以包括待测试的办公软件或游戏软件的名称、测试的具体操作步骤等各种流程信息。例如,测试流程可以包括首先在计算机设备中打开办公软件,然后再使用办公软件的各种功能,最后关闭该办公软件。通过这样的一系列操作,可以得到办公软件在计算机设备运行当前的操作系统的过程中是否可正常启动、正常关闭以及该办公软件的各项功能是否能够正常运行等测试结果。
在本申请实施例的一种可能的实现方式中,测试信息可以由相关的测试人员人工编写,也可以通过计算机设备按照一定的模板自动生成。计算机设备可以通过输入设备或接口获得上述测试信息。
S102、根据所述测试流程确定待执行的动作以及执行位置,所述执行位置是在操作系统提供的交互界面中的位置。
在本申请实施例中,测试流程可以包括测试过程中所要完成的各个测试步骤。例如,打开办公软件、通过办公软件输入信息、保存已输入的信息、关闭办公软件。这些测试步骤共同构成了完整的测试流程。
基于测试流程,计算机设备可以确定在测试过程中待执行的动作。
在本申请实施例中,不同的测试步骤可以通过不同的动作来实现。例如,打开办公软件可以通过双击办公软件的启动标识来实现,关闭办公软件可以通过点击办公软件界面上的关闭按钮来实现。因此,在根据测试流程确定待执行的动作后,计算机设备还应当确定每个动作的执行位置。上述执行位置可以是指操作系统提供的交互界面中的位置。例如,前述示例中办公软件的启动标识在交互界面中的位置,办公软件界面上的关闭按钮在交互界面中的位置等等。
通常,一次完整的测试可能包括多个测试步骤,相应地也就需要通过执行多个动作来实现。因此,计算机设备需要根据测试流程,确定针对软件进行测试所需的多个动作,并在操作系统提供的交互界面中分别确定各个动作的执行位置。例如,执行打开办公软件这一动作的位置,执行关闭办公软件这一动作的位置。在一种示例中,打开办公软件这一动作的位置可以是前述示例中办公软件的启动标识在交互界面中的位置,或其他可以实现启动该办公软件这一功能的位置;关闭办公软件之一动作的位置可以是办公软件界面上的关闭按钮在交互界面中的位置等等。
在本申请实施例的一种可能的实现方式中,计算机设备根据测试流程,确定针对软件进行测试所需的多个动作可以包括:根据测试流程,确定测试所需的多个动作的顺序以及每个动作的间隔时间。
其中,多个动作的顺序可以用于表示测试流程中不同的测试步骤的先后顺序。例如,打开办公软件这一步骤的顺序先于关闭办公软件这一步骤。相应地,打开办公软件这一步骤所对应的动作的顺序也应当先于关闭办公软件这一步骤所对应的动作。当然,在实际的测试过程中,打开办公软件这一步骤与关闭办公软件这一步骤之间还可以包括其他测试步骤,例如在办公软件中输入信息并保存输入的信息等步骤。因此,在这一测试流程中,测试所需的多个动作的先后顺序可以依次包括打开办公软件、在办公软件中输入信息、保存输入至办公软件中的信息、关闭办公软件等步骤。
每个动作的间隔时间可以用于表示测试流程中相邻的测试步骤之间需要等待的时间。例如,如果打开办公软件这一步骤的相邻测试步骤为关闭办公软件,这表示当前的测试流程是在打开办公软件后,不对办公软件作其他处理,而是等待一定时间后关闭办公软件。假设打开办公软件这一步骤与关闭办公软件这一步骤之间需要等待10秒,这就表示在测试过程中,当办公软件被打开后,需要等待10秒再执行关闭办公软件这一操作。
在本申请实施例的一种可能的实现方式中,在交互界面中分别确定各个动作的执行位置,包括:识别多个动作中最先执行的第一动作;确定第一动作执行后软件在交互界面中显示的软件界面;在软件界面中逐个确定除第一动作外的其他各个动作的执行位置。
在一种示例中,对于操作系统中运行的软件的测试,多个动作中最先执行的第一动作可以是打开该软件的动作。例如,在计算机设备中打开办公软件。通常,打开计算机设备中的某一软件,可以通过双击交互界面中该软件的图标来实现。因此,在本示例中,第一动作的执行位置可以是交互界面中该软件的标识位置,也即软件的图标或快捷方式在操作系统的交互界面中的位置。第一动作即是在上述位置处进行双击,以在计算机设备中启动该软件的动作。该动作可以通过软件模拟,由计算机设备自行实现。这样,对于操作系统及安装于该操作系统中的各个软件的测试可以自动化地开始,而无需人工介入。
在本申请实施例的一种可能的实现方式中,操作系统的交互界面中的各个软件的标识位置可以通过将交互界面划分成大小相同的多个方格,通过各个方格的位置来确定。
具体地,计算机设备可以将交互界面划分为多个方格,每个方格可以用于容纳测试所需的软件的标识。并且,每个方格中最多可以容纳一个软件的标识。例如,在一个方格中,放置一个软件的图标或快捷方式标识。
每个方格的位置可以通过自身的多个顶点的坐标来确定。示例性地,一个方格可以包括有4个顶点,计算机设备在将交互界面划分为多个方格后,可以分别确定每个方格的4个顶点的坐标。这样,可以通过4个顶点的坐标,唯一地标识一个方格。或者,也可以基于4个顶点的坐标,计算出方格的中心点,通过方格的中心点唯一地标识一个方格。
由于每个方格最多容纳一个软件的标识,因此可以根据各个方格及其多个顶点的坐标,分别确定每个软件在交互界面中的标识位置。计算机设备可以将各个软件以及对应的标识位置对应存储。示例性地,可以用position1和position2分别表示两个方格square1和square2的位置,其中方格square1中容纳有一个办公软件App1的图标,方格square2中容纳有一个游戏软件App2的图标。计算机设备可以将上述位置信息position1和position2与办公软件和游戏软件对应存储起来。例如,所存储的信息可以表示为:(position1,App1)、(position2,App2)。
在需要确定待测试的软件的第一动作的执行位置时,计算机设备可以从存储的位置信息中直接获取该执行位置。例如,对于办公软件App1,假设测试过程中的第一动作为打开该办公软件App1,则计算机设备可以直接从位置信息(position1,App1)中确定第一动作的执行位置为position1。
在本申请实施例的另一种可能的实现方式中,也可以通过相应工具来确定第一动作的执行位置。示例性地,可以将鼠标的光标定位在待测试的软件的图标所在的位置,然后使用xinput或xdotool工具来获取光标所在位置的坐标,得到待测试的软件的图标的具体位置信息,该位置信息也即是第一动作的执行位置。通过在该位置执行第一动作,可以在交互界面中打开该软件。
在本申请实施例中,计算机设备可以确定第一动作执行后软件在交互界面中显示的软件界面,并在软件界面中逐个确定除第一动作外的其他各个动作的执行位置。
示例性地,第一动作为打开办公软件的动作,当第一动作执行完毕后,操作系统可以在交互界面上打开该办公软件。此时,交互界面中显示有办公软件被打开后的界面,也即是该办公软件的软件界面。然后,计算机设备可以在软件界面中逐个确定其他各个动作的执行位置。例如,在打开办公软件后需要执行输入文字的操作,则计算机设备可以在软件界面中确定“输入文字”这一动作的执行位置。例如,“输入文字”这一动作的执行位置可以是办公软件中光标当前所处的位置。计算机设备可以在该位置处输入文字。在本申请实施例的一种可能的实现方式中,在办公软件中输入文字可以通过计算机设备上的软键盘实现。即,在需要执行“输入文字”这一动作时,计算机设备在交互界面中生成软件盘,然后模拟通过软键盘来输入文字的相关动作。或者,在本申请实施例的另一种可能的实现方式中,在办公软件中输入文字也可以通过外接键盘来实现。即,计算机设备外接有键盘,并且该键盘可以通过指令或其他方式指示外部的机械工具进行操作,从而实现在办公软件中输入文字的效果。在文字输入完成后,如果下一动作为“保存文档”,则计算机设备可以继续在软件界面中确定“保存文档”这一动作的执行位置。通常,实现各种软件功能的各种功能按钮在软件界面中的位置是相对固定的,一般因软件界面显示的大小不同而在计算机设备的交互界面中有所不同。示例性地,在办公软件中,能够实现保存文档这一功能的按钮可以位于软件界面的左上角。由于办公软件的软件界面在计算机设备的交互界面中所处的位置及显示的大小可能不同,该按钮在计算机设备的交互界面中所处的位置也可能不同。示例性地,在待测试的软件被打开后,软件界面可以全屏显示在计算机设备的交互界面中,也可以非全屏地显示。按照显示方式的不同,同一动作对应的执行位置也有所不同。这样,由于显示方式的不同,前述示例中办公软件中实现保存文档这一功能的按钮在计算机设备的交互界面中所处的位置也会不同。
S103、模拟生成所述动作并在所述执行位置处执行所述动作。
在确定测试流程中的动作以及该动作相应的执行位置后,计算机设备可以模拟生成该动作,并在相应的执行位置处执行上述动作,从而触发计算机设备在执行位置处对软件功能的测试。例如,在显示软件图标的位置,通过模拟双击该图标,打开该软件。
在本申请实施例的一种可能的实现方式中,模拟生成动作并在执行位置处执行动作,包括:控制光标移动至执行位置;在执行位置生成操作光标的操作信息;按照操作信息在执行位置操作光标;其中,按照操作信息操作光标产生的动作与待执行的动作相同。
具体地,计算机设备可以首先控制光标移动至执行位置,例如第一动作的执行位置。然后,计算机设备可以在执行位置生成操作光标的操作信息,并按照该操作信息在执行位置操作光标,从而实现在执行位置执行相应动作的效果。例如,在第一动作的执行位置处生成双击操作信息,然后在该执行位置处进行相应的操作。即,在该位置处进行双击操作。
以模拟点击鼠标为例,该操作可以通过模拟发送鼠标或者触摸板的点击事件,获取事件消息传给鼠标或触摸板驱动程序来实现,这相当于直接将鼠标左键按下的事件消息被发送给驱动程序,驱动程序可以直接指向操作系统执行鼠标单击的功能。
在一种示例中,可以通过Python中的第三方库pyautogui来模拟鼠标行为。上述pyautogui库可以模拟鼠标移动、点击和滚动等动作。其中,pyautogui.clik函数可以用于模拟鼠标点击,该函数可以接受两个参数,分别是执行位置的X坐标和Y坐标,实现在执行位置模拟鼠标点击这一动作;pyautogui.moveTo函数可以用于模拟鼠标的移动,该函数同样接受两个参数,表示移动后的执行位置的X坐标和Y坐标。通过执行pyautogui.moveTo函数,可以模拟将鼠标由当前位置移动至新的执行位置。在新的执行位置,计算机设备可以再次执行pyautogui.clik函数模拟鼠标点击,完成下一个动作的执行。
具体地,在开始测试时,计算机设备可以执行pyautogui.clik函数,pyautogui.clik函数接收的两个参数可以是待测试的软件的图标所在位置的X坐标和Y坐标。通过执行pyautogui.clik函数,计算机设备可以打开上述待测试的软件。然后,计算机设备可以执行pyautogui.moveTo函数,pyautogui.moveTo函数接受的两个参数可以是新的执行位置的X坐标和Y坐标。例如,在打开软件后需要执行关闭软件这一动作,新的执行位置的X坐标和Y坐标可以是软件的关闭按钮所在位置的坐标。计算机设备通过执行pyautogui.moveTo函数,可以将鼠标移动至软件关闭按钮的位置。然后,计算机设备可以再次执行pyautogui.clik函数,模拟鼠标单击事件。这样,软件将在交互界面上被关闭。
S104、监测执行所述动作的过程中所述操作系统的运行情况。
在本申请实施例中,在软件测试的过程中,计算机设备还可以监测该过程中操作系统的运行情况,以此得到相应的测试结果。
具体地,计算机设备可以分别确定动作执行后软件的运行状态,并在执行动作后,获取后台进程信息,根据后台进程信息和运行状态,得到操作系统的测试结果。由于测试过程中需要执行的动作可能包括多个,计算机设备在确定动作执行后的软件运行状态时,可以在每个动作执行后即获取一次后台进程信息,依次来获得每个动作执行后的软件运行状态。例如,前述示例中对于办公软件的测试过程中包括打开办公软件和关闭办公软件两个动作,则计算机设备在模拟完成打开办公软件这一动作后,便可以获取一次后台进程信息,根据当前获取到的后台进程信息确定打开办公软件这一动作执行后办公软件的运行状态。然后,在计算机设备模拟进行关闭办公软件这一动作,并在模拟完成该动作后,再次获取一次后台进程信息,根据此时获取到的后台进程信息确定关闭办公软件这一动作执行后办公软件的运行状态。
在一种示例中,上述运行状态可以包括运行中和未运行两种状态。例如,当执行的动作为打开软件时,这一动作被执行后,正常情况下软件应当处于运行中。当执行的动作为关闭软件时,这一动作被执行后,正常情况下软件应当处于未运行状态。上述运行中和未运行两种状态可以通过对获取到的后台进程信息进行识别来确定。
具体地,在相应的动作被执行后,计算机设备可以获取后台进程信息。例如,在打开软件这一动作被执行后,计算机设备可以通过确认是否抓取到软件进程处于活动状态的后台进程信息,来确认软件是否成功运行。如果打开软件这一动作被执行后,计算机设备从后台进程信息中抓取到该软件的运行信息,则可以认为打开该软件这一动作执行有效,软件在这一动作的操作下已经启动并在计算机设备中运行。然后,计算机设备可以执行关闭软件这一动作。在关闭软件的动作执行完成后,计算机设备可以再次抓取后台进程信息。如果后台进程信息中不再包括该软件的运行信息,则可以表示关闭该软件这一动作执行有效,软件在这一动作的操作下已经被关闭。如果后台进程信息中仍然包括该软件的运行信息,则可以表示关闭该软件这一动作执行无效,该软件仍然运行于计算机设备中。根据软件在计算机设备中具体的运行情况,可以生成相应的测试结果。
在本申请实施例中,计算机设备通过获取测试信息,可以根据测试信息中的测试流程确定待执行的动作以及相应的执行位置。然后,通过模拟生成该动作并在执行位置处执行该动作,可以实现对操作系统的自动化测试,无需人工反复地重复操作,有助于提高测试效率。此外,通过监测执行上述动作的过程中操作系统的运行情况,可以得到准确的测试结果,也降低了由人工来判断测试结果造成测试结果不准确的可能性,提高了测试结果的准确性和可信度。
需要说明的是,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
为了便于理解,下面结合具体的示例,对本申请实施例提供的操作系统的测试方法进行介绍。
参照图2,示出了本申请实施例提供的一种操作系统的测试流程的示意图,具体可以包括如下步骤:
S201、确认测试过程中的所有操作。
在本步骤中,测试过程中的所有操作可以根据测试信息确定。示例性地,测试过程中的所有操作可以包括模拟用户在计算机设备中打开和关闭办公文档的功能。因此,在该示例中所有的操作可以包括打开办公软件和关闭办公软件这两个操作。又如,模仿用户使用游戏软件如扫雷。首先将扫雷软件快捷图标添加在桌面,获取快捷图标在桌面的位置坐标、软件打开显示界面的功能设置选定图标的位置坐标、游戏界面的点击位置坐标、游戏界面关闭图标的位置坐标,依次按照打开->功能设置->点击->关闭,这样的顺序模仿用户使用扫雷游戏软件。上述打开、功能设置、点击、关闭等操作即是对扫雷这一游戏软件进行测试的过程中所包括的各种操作。
S202、获取操作关键点的坐标。
在本步骤中,操作关键点可以是指每个动作的执行位置的坐标点。例如,打开办公软件和关闭办公软件这两个操作中,分别对应的动作是双击办公软件的图标打开软件,以及单击软件界面的关闭按钮实现关闭软件,则上述操作关键点的坐标可以是指软件图标在操作系统的交互界面中的坐标以及软件关闭按钮在软件界面中的坐标。其中,由于软件界面显示于操作系统的交互界面中,因此软件关闭按钮在软件界面中的坐标可以通过转换至交互界面中,得到其在交互界面中的位置坐标。例如,办公软件的图标在交互界面中的坐标可以表示为coordinate1,经转换后软件关闭按钮在交互界面中的坐标可以表示为coordinate2,上述坐标coordinate1和coordinate2即是当前测试的操作关键点的坐标。
在本申请实施例的一种可能的实现方式中,本步骤中获取操作关键的坐标这一功能可以通过计算机设备的坐标获取模块实现。
S203、坐标存储。
在本步骤中,可以通过计算机设备的坐标存储模块,对已经获取到的各个操作关键点的坐标进行存储。通过存储操作关键点坐标,可以在后续测试过程中快速地确定各个动作的执行位置。
在对操作关键点的坐标进行存储时,可以对各个操作关键点的坐标及其对应的操作进行关联存储。示例性地,办公软件的图标在交互界面中的坐标表示为coordinate1,经转换后软件关闭按钮在交互界面中的坐标表示为coordinate2,假设打开办公软件和关闭办公软件这两个动作分别表示为operate1和operate2,则在存储操作关键点的坐标时可以分别存储为(coordinate1,operate1)和(coordinate2,operate2)。其中,(coordinate1,operate1)和(coordinate2,operate2)表示具体的测试过程中,在坐标coordinate1所在的位置应当执行的操作为operate1,在坐标coordinate2所在的位置应当执行的操作为operate2。
通过存储操作关键点的坐标及其对应的操作,可以在后续的测试过程中通过直接获取相应信息来执行具体的测试。
S204、获取软件程序坐标传给输入设备。
在本步骤中,软件程序可以是指待测试的软件,例如前述介绍中的办公软件。软件程序坐标可以是指该软件在交互界面中图标的位置。针对该办公软件进行测试的第一动作可以是打开该办公软件,通常打开办公软件可以通过双击软件在交互界面中的图标来实现,因此需要获取该软件程序的图标在交互界面中的位置信息,传给输入设备。
在一种可能的实现方式中,计算机设备可以通过直接获取已存储的操作关键点的坐标来获得上述坐标。例如,从已存储的信息中获取(coordinate1,operate1)这一信息,该信息表示在坐标coordinate1处执行operate1这一操作。由于坐标coordinate1表示的是办公软件在计算机设备的交互界面中的位置,operate1这一操作表示的是在坐标coordinate1处进行双击操作,因此上述信息也就表示在办公软件的图标上进行双击操作,从而完成打开该办公软件的操作。
S205、将光标移动至指定位置。
在本步骤中,指定位置也即是某个动作的执行位置,例如打开办公软件这一动作的执行位置。在获取到执行位置的信息后,计算机设备可以控制将鼠标的光标移动至该位置。例如,在获取到(coordinate1,operate1)这一信息后,计算机设备可以控制将鼠标的光标移动至坐标coordinate1处。
S206、连续发送两次激活信号给鼠标,实现双击功能。
在本步骤中,可以使用前述示例中介绍的Python中的第三方库pyautogui来模拟鼠标行为。由于打开软件所需的操作为双击软件图标,因此需要通过pyautogui库中的pyautogui.clik函数模拟发送两次激活信号给鼠标,实现鼠标双击功能。这样,也就实现了在坐标coordinate1处执行operate1这一操作的目的。
S207、打开软件。
在本步骤中,打开软件即是S206中在软件图标所在的位置模拟鼠标双击后的效果。
S208、确认软件进程是否存在。
在本步骤中,软件进程可以是指计算机设备的后台进程信息。当某一软件被打开后,后台进程信息中应当存在该软件的相关信息。因此,可以通过确认后台进程信息中是否包含该软件进程来确认是否成功打开该软件。如果后台进程信息中存在该软件进程,则表示软件打开成功,可以继续执行后续测试流程,例如执行S209-S2013,通过获取软件程序关闭图标的坐标,关闭该软件。如果后台进程信息中不存在该软件进程,则表示该软件未打开成功,可以返回执行S204,再次获取软件程序坐标传给输入设备,重新执行打开软件这一操作。
S209、获取软件程序关闭图标的坐标传给输入设备。
在本步骤中,软件程序关闭图标可以是指软件界面上关闭按钮。计算机设备可以获取该关闭按钮在交互界面上的位置信息,传给输入设备,用于实现关闭软件的功能。示例性地,软件程序关闭图标的坐标可以是前述示例中的坐标coordinate2。
在本申请实施例的一种可能的实现方式中,在获取该坐标时,计算机设备可以直接从已存储的信息中获得上述坐标。例如,从已存储的信息中获取(coordinate2,operate2)这一信息。该信息表示在坐标coordinate2处执行operate2这一操作。由于坐标coordinate2表示的是办公软件的关闭按钮在计算机设备的交互界面中的位置,operate2这一操作表示的是在坐标coordinate2处进行单击操作,因此上述信息也就表示在办公软件的关闭按钮上进行单击操作,从而完成关闭该办公软件的操作。
S210、将光标移动至指定位置。
在本步骤中,指定位置即是上述示例中软件关闭按钮的位置。计算机设备可以将鼠标的关闭移动至该位置。例如,在获取到(coordinate2,operate2)这一信息后,计算机设备可以控制将鼠标的光标移动至坐标coordinate2处。
S211、发送一次激活信号给鼠标,实现单击确认功能。
在本步骤中,关闭软件可以通过单击软件的关闭按钮实现。因此,可以通过模拟鼠标单击,模拟实现单击关闭按钮的功能。具体地,可以使用pyautogui库中的pyautogui.clik函数模拟发送一次激活信号给鼠标,实现鼠标单击功能。这样,也就实现了在坐标coordinate2处执行operate2这一操作的目的。
S212、关闭软件。
在本步骤中,关闭软件即是S211中在软件关闭按钮所在的位置模拟鼠标单击确认后的效果。
S213、确认软件进程是否消失。
在本步骤中,当某一软件被关闭后,后台进程信息中应当不再存在该软件的相关信息。因此,可以通过确认后台进程信息中是否包含该软件进程来确认是否成功关闭该软件。如果不存在,则表示软件关闭成功,测试流程结束。如果后台进程信息中仍然存在该软件进程,则表示该软件未关闭成功,可以返回执行S209,再次获取软件程序关闭图标的坐标传给输入设备,重新执行关闭软件这一操作。
在一种示例中,当完成关闭软件这一操作并确认软件关闭成功后,计算机设备可以重复执行前述操作,即再次执行S201-S213的各个步骤,继续进行上述测试流程。该测试流程可以在计算机设备上反复、多次地进行。这样,便能够实现自动化地对计算机设备的操作系统及安装于该计算机设备中的各个软件的测试,减轻人工测试所需的成本及工作量。
在本申请实施例的另一种示例中,还可以结合前述方法对计算机设备进行电源管理测试。示例性地,通过计算机设备的上下电时序代码或定时操作的机械治具,模拟用户手动对计算机设备进行电源管理测试。例如,模拟在计算机设备上进行S3、S4、S5等操作。其中,S3操作为待机操作(suspend to RAM,STR),S4操作为休眠操作(suspend to Disk,STD)。在休眠状态下,计算机设备的系统主电源关闭,相较于待机状态,休眠状态下的计算机设备更省电。S5操作为关机操作(shutdown),关机后,计算机设备的功耗为0。
下面,结合本申请实施例提供的方法,对模拟用户在计算机设备上执行S3操作的过程进行介绍。具体地,该模拟测试过程可以通过两种方式来实现。
方式一:
首先,计算机设备可以操作关键点的坐标,例如获取操作系统中开始菜单的位置坐标、电源的位置坐标、执行S3操作的位置的坐标等。然后,可以将执行一次完整的S3操作的各个动作对应的坐标进行存储,并按照操作过程的先后顺序依次在各个坐标位置处执行相应的操作。例如,在开始菜单的位置坐标所在的位置模拟点击操作,这样计算机设备在交互界面中可以显示有电源的图标。该图标所在的位置也即是上述电源的位置坐标对应的位置。计算机设备可以在该位置处再次模拟执行点击操作,以使计算机设备显示执行S3操作的图标。通过在执行S3操作的图标上模拟点击操作,可以实现模拟用户在计算机设备上执行S3操作的目的。另一方面,计算机设备可以获取时序代码中S3操作的定时器接口,并设置相应的定时唤醒时间。当定时唤醒时间达到设定值时,计算机设备可以自行唤醒,从而实现待机-唤醒这一系列的测试流程。需要说明的是,上述测试流程可以重复执行。具体地,可以通过将执行代码程序写入用户开机自启动程序中,来实现重复执行待机-唤醒这一系列的测试流程。
方式二:
在本申请实施例中,可以将上述方式一种使用的时序代码更换成可以设置定时和压力的机械工具,利用该机械工具模拟用户在计算机设备上的操作,从而实现模拟用户在计算机设备上执行S3操作的目的。
具体地,首先,可以统计完整运行执行代码至结束所需的时间,该时间也就是程序运行时间。为了保证测试的顺利进行,可以在上述程序运行时间的基础上增加一定的时间冗余,例如在上述程序运行时间上增加20秒延时,以使机械工具有足够的时间完成相应的操作。在具体的操作过程中,机械工具的按压指针可以被设置为垂直地对准计算机设备的电源按键,并同时设置机械工具按压电源键的压力和按压时间,例如按压时间可以设置为2秒。然后,在程序模仿用户操作控制计算机设备进行待机状态后,当设定的时间到达时,可以通过指令或其他控制方式控制机械工具的按压指针按照设定的压力向下按压计算机设备的电源键。在持续2秒后,机械工具的按压指针可以被控制向上抬起,从而松开电源键,实现通过电源键来唤醒计算机设备的目的。
参照图3,示出了本申请实施例提供的一种操作系统的测试装置的示意图,具体可以包括获取模块301、确定模块302、执行模块303和监测模块304,其中:
获取模块301,用于获取测试信息,所述测试信息包括测试所需的软件的信息以及针对所述软件进行测试的测试流程;
确定模块302,用于根据所述测试流程确定待执行的动作以及执行位置,所述执行位置是在操作系统提供的交互界面中的位置;
执行模块303,用于模拟生成所述动作并在所述执行位置处执行所述动作;
监测模块304,用于监测执行所述动作的过程中所述操作系统的运行情况。
在本申请实施例的一种可能的实现方式中,所述确定模块302具体可以用于:
根据所述测试流程,确定针对所述软件进行测试所需的多个动作;
在所述交互界面中分别确定各个所述动作的执行位置。
在本申请实施例的一种可能的实现方式中,所述确定模块302还可以用于:根据所述测试流程,确定测试所需的多个动作的顺序以及每个动作的间隔时间。
在本申请实施例的一种可能的实现方式中,所述确定模块302还可以用于:识别多个动作中最先执行的第一动作,所述第一动作的执行位置为所述交互界面中所述软件的标识位置;确定所述第一动作执行后所述软件在所述交互界面中显示的软件界面;在所述软件界面中逐个确定除所述第一动作外的其他各个动作的执行位置。
在本申请实施例中,所述装置还包括划分模块和存储模块,其中:
所述划分模块,用于将所述交互界面划分为多个方格,确定各个所述方格的多个顶点的坐标;其中,任一所述方格最多容纳一个测试所需的软件的标识;
所述存储模块,用于根据多个所述方格及其多个顶点的坐标,分别确定每个所述软件在所述交互界面中的标识位置并存储所述标识位置。
在本申请实施例的一种可能的实现方式中,所述执行模块303具体可以用于:控制光标移动至所述执行位置;在所述执行位置生成操作所述光标的操作信息;按照所述操作信息在所述执行位置操作所述光标;其中,按照所述操作信息操作所述光标产生的动作与待执行的所述动作相同。
在本申请实施例的一种可能的实现方式中,所述监测模块304具体可以用于:分别确定所述动作执行后所述软件的运行状态;在执行所述动作后,获取后台进程信息;根据所述后台进程信息和所述运行状态,得到所述操作系统的测试结果。
本申请实施例还提供一种操作系统的测试装置,应用该装置,可以实现前述各个方法实施例中的各个步骤。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述得比较简单,相关之处参见方法实施例部分的说明即可。
参照图4,示出了本申请实施例提供的一种计算机设备的示意图。如图4所示,本申请实施例中的计算机设备400包括:处理器410、存储器420以及存储在所述存储器420中并可在所述处理器410上运行的计算机程序421。所述处理器410执行所述计算机程序421时实现上述操作系统的测试方法各个实施例中的步骤,例如图1所示的步骤S101至S104。或者,所述处理器410执行所述计算机程序421时实现上述各装置实施例中各模块/单元的功能,例如图3所示模块301至304的功能。
示例性的,所述计算机程序421可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器420中,并由所述处理器410执行,以完成本申请。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段可以用于描述所述计算机程序421在所述计算机设备400中的执行过程。例如,所述计算机程序421可以被分割成获取模块、确定模块、执行模块和监测模块,各模块具体功能如下:
获取模块,用于获取测试信息,所述测试信息包括测试所需的软件的信息以及针对所述软件进行测试的测试流程;
确定模块,用于根据所述测试流程确定待执行的动作以及执行位置,所述执行位置是在操作系统提供的交互界面中的位置;
执行模块,用于模拟生成所述动作并在所述执行位置处执行所述动作;
监测模块,用于监测执行所述动作的过程中所述操作系统的运行情况。
所述计算机设备400可以是实现前述各个方法实施例中步骤的计算机设备,该计算机设备400可以是桌上型计算机、笔记本、台式计算机等设备。所述计算机设备400可包括,但不仅限于,处理器410、存储器420。本领域技术人员可以理解,图4仅仅是计算机设备400的一种示例,并不构成对计算机设备400的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述计算机设备400还可以包括输入输出设备、网络接入设备、总线等。
所述处理器410可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器420可以是所述计算机设备400的内部存储单元,例如计算机设备400的硬盘或内存。所述存储器420也可以是所述计算机设备400的外部存储设备,例如所述计算机设备400上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等等。进一步地,所述存储器420还可以既包括所述计算机设备400的内部存储单元也包括外部存储设备。所述存储器420用于存储所述计算机程序421以及所述计算机设备400所需的其他程序和数据。所述存储器420还可以用于暂时地存储已经输出或者将要输出的数据。
本申请实施例还公开了一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如前述各个实施例所述的操作系统的测试方法。
本申请实施例还公开了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如前述各个实施例所述的操作系统的测试方法。
本申请实施例还公开了一种计算机程序产品,当所述计算机程序产品在计算机上运行时,使得所述计算机执行前述各个实施例所述的操作系统的测试方法。
以上所述实施例仅用以说明本申请的技术方案,而非对其限制。尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。
Claims (10)
1.一种操作系统的测试方法,其特征在于,包括:
获取测试信息,所述测试信息包括测试所需的软件的信息以及针对所述软件进行测试的测试流程;
根据所述测试流程确定待执行的动作以及执行位置,所述执行位置是在操作系统提供的交互界面中的位置;
模拟生成所述动作并在所述执行位置处执行所述动作;
监测执行所述动作的过程中所述操作系统的运行情况。
2.根据权利要求1所述的方法,其特征在于,所述根据所述测试流程确定待执行的动作以及执行位置,包括:
根据所述测试流程,确定针对所述软件进行测试所需的多个动作;
在所述交互界面中分别确定各个所述动作的执行位置。
3.根据权利要求2所述的方法,其特征在于,所述根据所述测试流程,确定针对所述软件进行测试所需的多个动作,包括:
根据所述测试流程,确定测试所需的多个动作的顺序以及每个动作的间隔时间。
4.根据权利要求2或3所述的方法,其特征在于,所述在所述交互界面中分别确定各个所述动作的执行位置,包括:
识别多个动作中最先执行的第一动作,所述第一动作的执行位置为所述交互界面中所述软件的标识位置;
确定所述第一动作执行后所述软件在所述交互界面中显示的软件界面;
在所述软件界面中逐个确定除所述第一动作外的其他各个动作的执行位置。
5.根据权利要求4所述的方法,其特征在于,在获取测试信息之前,所述方法还包括:
将所述交互界面划分为多个方格,确定各个所述方格的多个顶点的坐标;其中,任一所述方格最多容纳一个测试所需的软件的标识;
根据多个所述方格及其多个顶点的坐标,分别确定每个所述软件在所述交互界面中的标识位置并存储所述标识位置。
6.根据权利要求1-3或5任一项所述的方法,其特征在于,模拟生成所述动作并在所述执行位置处执行所述动作,包括:
控制光标移动至所述执行位置;
在所述执行位置生成操作所述光标的操作信息;
按照所述操作信息在所述执行位置操作所述光标;其中,按照所述操作信息操作所述光标产生的动作与待执行的所述动作相同。
7.根据权利要求1-3或5任一项所述的方法,其特征在于,所述监测执行所述动作的过程中所述操作系统的运行情况,包括:
分别确定所述动作执行后所述软件的运行状态;
在执行所述动作后,获取后台进程信息;
根据所述后台进程信息和所述运行状态,得到所述操作系统的测试结果。
8.一种操作系统的测试装置,其特征在于,包括:
获取模块,用于获取测试信息,所述测试信息包括测试所需的软件的信息以及针对所述软件进行测试的测试流程;
确定模块,用于根据所述测试流程确定待执行的动作以及执行位置,所述执行位置是在操作系统提供的交互界面中的位置;
执行模块,用于模拟生成所述动作并在所述执行位置处执行所述动作;
监测模块,用于监测执行所述动作的过程中所述操作系统的运行情况。
9.一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1-7任一项所述的操作系统的测试方法。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-7任一项所述的操作系统的测试方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410094594.0A CN118035081A (zh) | 2024-01-22 | 2024-01-22 | 操作系统的测试方法、装置及计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410094594.0A CN118035081A (zh) | 2024-01-22 | 2024-01-22 | 操作系统的测试方法、装置及计算机设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118035081A true CN118035081A (zh) | 2024-05-14 |
Family
ID=90999515
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410094594.0A Pending CN118035081A (zh) | 2024-01-22 | 2024-01-22 | 操作系统的测试方法、装置及计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118035081A (zh) |
-
2024
- 2024-01-22 CN CN202410094594.0A patent/CN118035081A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100338581C (zh) | 用于确定cpu利用率的独立于操作系统的方法和系统 | |
CN103970560A (zh) | 开机方法与电子装置 | |
CN105955741A (zh) | 应用处理方法及装置 | |
BRPI1003688A2 (pt) | aparelho e mÉtodo para ajuste de posiÇço de apresentaÇÕes de componentes de interface grÁfica | |
CN114237676A (zh) | 一种fpga逻辑更新方法、装置、设备及可读存储介质 | |
TW200823755A (en) | Embedded controller and computer system using the same | |
TWI479319B (zh) | 雙作業系統之運作方法及具有雙作業系統之觸控電子裝置與電腦可讀儲存媒體 | |
US20190250925A1 (en) | Booting and Power Management | |
EP2801012B1 (en) | Supporting different event models using a single input source | |
US7213159B2 (en) | Method for testing and verifying power management features of computer system | |
CN118035081A (zh) | 操作系统的测试方法、装置及计算机设备 | |
TW201543363A (zh) | 切換作業系統的方法及電子裝置 | |
CN211044204U (zh) | 一种鼠标键盘模拟设备 | |
CN101777323A (zh) | 用于一计算机系统设定一显示器的方法及相关计算机系统 | |
CN108960433B (zh) | 用于运行机器学习建模过程的方法及系统 | |
CN112463227A (zh) | 基于触摸屏的bios控制方法、系统及触摸屏控制板 | |
US8195927B2 (en) | Expedient preparation of memory for video execution | |
CN113722231B (zh) | 用户操作的模拟方法、装置、电子设备及存储介质 | |
CN101303653B (zh) | 判断计算机系统是否执行重开机的方法及其计算机系统 | |
CN105068835A (zh) | 移动终端及其调试信息显示方法 | |
CN110968519A (zh) | 一种游戏测试方法、装置、服务器及存储介质 | |
JPH08263130A (ja) | シミュレーション方式 | |
CN117170798A (zh) | 一种基于UBQ-SIMTest框架的龙芯1E300模拟器 | |
JP2887515B2 (ja) | 記録装置のシミュレータ | |
JP2908337B2 (ja) | マルチプロセス対応vhdlシミュレーション実行システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |