一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种测试方法、装置、设备及介质与流程

2022-11-19 17:24:12 来源:中国专利 TAG:


1.本技术涉及测试技术领域,具体涉及一种测试方法、装置、设备及介质。


背景技术:

2.在软件开发以及软件的上线运营阶段,需要对软件进行测试,及时发现软件运行的问题。
3.目前,在一些对软件重复测试的过程中,每次都需要通过触发屏幕中软件图标或者软件的按键实现对软件的测试。但是,在一些自动测试的过程中,当软件图标或者按键在屏幕中的位置发生变化后,难以基于改变后的位置继续进行自动测试。


技术实现要素:

4.有鉴于此,本技术提供一种测试方法、装置、设备及介质,能够实现根据改变后的图标或者按键的位置进行自动化测试。
5.为解决上述问题,本技术提供的技术方案如下:第一方面,本技术提供一种测试方法,所述方法包括:响应于获取针对目标软件的测试指令,获取所述目标软件的测试数据,所述测试数据是基于所述目标软件执行的执行操作得到的,所述执行操作包括至少一个子操作,所述测试数据包括每个所述子操作针对的操作对象、操作动作类型、操作位置以及各个所述子操作之间的执行顺序;至少一个所述子操作的操作位置包括所述子操作对应的第一图像或者第一文本;解析所述测试数据,按照所述测试数据包括的各个所述子操作之间的执行顺序,依次执行所述测试数据包括的每个所述子操作,得到各个所述子操作的操作结果;其中,执行所述测试数据包括的每个所述子操作包括:根据所述子操作的操作位置,确定所述子操作的执行位置坐标,并在所述子操作的执行位置坐标处,按照所述子操作对应的操作动作类型,模拟所述子操作对应的操作对象,执行所述子操作;获取各个所述子操作的标准结果,将各个所述子操作的操作结果与所述子操作的标准结果比对,得到测试结果。
6.在一种可能的实现方式中,所述子操作的操作位置包括所述第一图像时,所述根据所述子操作的操作位置,确定所述子操作的执行位置坐标,包括:获取执行所述子操作时所述目标软件的第一显示界面图像;在所述第一显示界面图像中确定与所述第一图像匹配的第二图像;根据所述第二图像包括的像素点坐标确定所述执行位置坐标。
7.在一种可能的实现方式中,所述在所述第一显示界面图像中确定与所述第一图像匹配的第二图像,包括:在所述第一显示界面图像的初始位置创建与所述第一图像的图像尺寸相同的滑动窗口;
按照预设顺序在所述第一显示界面图像中移动所述滑动窗口,得到每次移动所述滑动窗口包括的待匹配图像;计算所述待匹配图像与所述第一图像的匹配度;将所述匹配度大于阈值的待匹配图像作为所述第二图像。
8.在一种可能的实现方式中,所述子操作的操作位置包括所述第一文本时,所述根据所述子操作的操作位置,确定所述子操作的执行位置坐标,包括:获取执行所述子操作时所述目标软件的第二显示界面图像;在所述第二显示界面图像中确定与所述第一文本匹配的第二文本;根据所述第二文本所在的显示区域包括的像素点坐标确定所述执行位置坐标。
9.在一种可能的实现方式中,当所述子操作的操作位置不包括所述第一图像或者所述第一文本时,所述子操作的操作位置包括所述子操作对应的偏移量;所述根据所述子操作的操作位置,确定所述子操作的执行位置坐标,包括:设定当前子操作为第n子操作,根据各个所述子操作之间的执行顺序,查询执行顺序在所述第n子操作之前的第n-1子操作的操作位置;判断所述第n-1子操作的操作位置包括第一图像或者第一文本还是偏移量;当所述第n-1子操作的操作位置包括第一图像或第一文本时,依据所述第n-1子操作的操作位置包括的第一图像或第一文本和所述第n子操作的操作位置包括的偏移量,确定所述第n子操作的执行位置坐标;当所述第n-1子操作的操作位置包括偏移量时,则继续往前查询执行顺序在所述第n-1子操作之前的子操作的操作位置,并重复上述判断过程,直至查询到操作位置包括第一图像或第一文本的第n-m子操作为止,并依据所述第n-m子操作的操作位置包括的第一图像或者第一文本、所述第n-m 1子操作的操作位置包括的偏移量
……
所述第n-1子操作的操作位置包括的偏移量以及所述第n子操作的操作位置包括的偏移量,确定所述第n子操作的执行位置坐标;其中,n为大于1且小于等于n1的整数,m=1、2
……
n-1;所述测试数据的执行操作包括n1个子操作。
10.在一种可能的实现方式中,所述依据所述第n-1子操作的操作位置包括的第一图像或第一文本和所述第n子操作的操作位置包括的偏移量,确定所述第n子操作的执行位置坐标,包括:依据所述第n-1子操作的操作位置包括的第一图像或第一文本确定所述第n-1子操作的执行位置坐标;依据所述第n-1子操作的执行位置坐标和所述第n子操作的操作位置包括的偏移量,确定所述第n子操作的执行位置坐标。
11.在一种可能的实现方式中,所述目标软件的测试数据是采用以下方式生成的:获取所述目标软件的软件名称和测试用例的用例编号;显示与所述目标软件的软件名称和所述测试用例的用例编号匹配的数据表格,所述数据表格用于储存指示所述执行操作的用例步骤,所述数据表格包括的每行用例步骤对应一个所述执行操作包括的子操作,所述数据表格中各行用例步骤的排序对应于各个所述子操作之间的执行顺序,所述每行用例步骤包括用于指示执行所述子操作的步骤描述;根据所述每行用例步骤包括的步骤描述,获取各个子操作的针对的操作对象、操
作动作类型以及操作位置;其中,所述步骤描述为针对目标图标的操作的描述,所述操作位置为第一图像,所述第一图像为所述目标图标的截图图像;所述步骤描述为针对目标文本的操作的描述,所述操作位置为第一文本,所述第一文本为所述目标文本;将各个所述子操作的针对的操作对象、操作动作类型以及操作位置写入所述数据表格中与子操作对应的各行表格中,得到记载所述目标软件的测试数据的数据表格。
12.第二方面,本技术提供一种测试装置,所述装置包括:获取单元,用于响应于获取针对目标软件的测试指令,获取所述目标软件的测试数据,所述测试数据是基于所述目标软件执行的执行操作得到的,所述执行操作包括至少一个子操作,所述测试数据包括每个所述子操作针对的操作对象、操作动作类型、操作位置以及各个所述子操作之间的执行顺序;至少一个所述子操作的操作位置包括所述子操作对应的第一图像或者第一文本;解析单元,用于解析所述测试数据,按照所述测试数据包括的各个所述子操作之间的执行顺序,依次执行所述测试数据包括的每个所述子操作,得到各个所述子操作的操作结果;其中,执行所述测试数据包括的每个所述子操作包括:根据所述子操作的操作位置,确定所述子操作的执行位置坐标,并在所述子操作的执行位置坐标处,按照所述子操作对应的操作动作类型,模拟所述子操作对应的操作对象,执行所述子操作;比对单元,用于获取各个所述子操作的标准结果,将各个所述子操作的操作结果与所述子操作的标准结果比对,得到测试结果。
13.在一种可能的实现方式中,所述子操作的操作位置包括所述第一图像时,所述解析单元,用于根据所述子操作的操作位置,确定所述子操作的执行位置坐标,包括:所述解析单元,用于获取执行所述子操作时所述目标软件的第一显示界面图像;在所述第一显示界面图像中确定与所述第一图像匹配的第二图像;根据所述第二图像包括的像素点坐标确定所述执行位置坐标。
14.在一种可能的实现方式中,所述解析单元,用于在所述第一显示界面图像中确定与所述第一图像匹配的第二图像,包括:所述解析单元,用于在所述第一显示界面图像的初始位置创建与所述第一图像的图像尺寸相同的滑动窗口;按照预设顺序在所述第一显示界面图像中移动所述滑动窗口,得到每次移动所述滑动窗口包括的待匹配图像;计算所述待匹配图像与所述第一图像的匹配度;将所述匹配度大于阈值的待匹配图像作为所述第二图像。
15.在一种可能的实现方式中,所述子操作的操作位置包括所述第一文本时,所述解析单元,用于根据所述子操作的操作位置,确定所述子操作的执行位置坐标,包括:所述解析单元,用于获取执行所述子操作时所述目标软件的第二显示界面图像;在所述第二显示界面图像中确定与所述第一文本匹配的第二文本;根据所述第二文本所在的显示区域包括的像素点坐标确定所述执行位置坐标。
16.在一种可能的实现方式中,当所述子操作的操作位置不包括所述第一图像或者所述第一文本时,所述子操作的操作位置包括所述子操作对应的偏移量;所述解析单元,用于根据所述子操作的操作位置,确定所述子操作的执行位置坐
标,包括:所述解析单元,用于设定当前子操作为第n子操作,根据各个所述子操作之间的执行顺序,查询执行顺序在所述第n子操作之前的第n-1子操作的操作位置;判断所述第n-1子操作的操作位置包括第一图像或者第一文本还是偏移量;当所述第n-1子操作的操作位置包括第一图像或第一文本时,依据所述第n-1子操作的操作位置包括的第一图像或第一文本和所述第n子操作的操作位置包括的偏移量,确定所述第n子操作的执行位置坐标;当所述第n-1子操作的操作位置包括偏移量时,则继续往前查询执行顺序在所述第n-1子操作之前的子操作的操作位置,并重复上述判断过程,直至查询到操作位置包括第一图像或第一文本的第n-m子操作为止,并依据所述第n-m子操作的操作位置包括的第一图像或者第一文本、所述第n-m 1子操作的操作位置包括的偏移量
……
所述第n-1子操作的操作位置包括的偏移量以及所述第n子操作的操作位置包括的偏移量,确定所述第n子操作的执行位置坐标;其中,n为大于1且小于等于n1的整数,m=1、2
……
n-1;所述测试数据的执行操作包括n1个子操作。
17.在一种可能的实现方式中,所述解析单元,用于依据所述第n-1子操作的操作位置包括的第一图像或第一文本和所述第n子操作的操作位置包括的偏移量,确定所述第n子操作的执行位置坐标,包括:所述解析单元,用于依据所述第n-1子操作的操作位置包括的第一图像或第一文本确定所述第n-1子操作的执行位置坐标;依据所述第n-1子操作的执行位置坐标和所述第n子操作的操作位置包括的偏移量,确定所述第n子操作的执行位置坐标。
18.在一种可能的实现方式中,所述目标软件的测试数据是采用以下方式生成的:获取所述目标软件的软件名称和测试用例的用例编号;显示与所述目标软件的软件名称和所述测试用例的用例编号匹配的数据表格,所述数据表格用于储存指示所述执行操作的用例步骤,所述数据表格包括的每行用例步骤对应一个所述执行操作包括的子操作,所述数据表格中各行用例步骤的排序对应于各个子操作之间的执行顺序,所述每行用例步骤包括用于指示执行所述子操作的步骤描述;根据所述每行用例步骤包括的步骤描述,获取各个子操作的针对的操作对象、操作动作类型以及操作位置;其中,所述步骤描述为针对目标图标的操作的描述,所述操作位置为第一图像,所述第一图像为所述目标图标的截图图像;所述步骤描述为针对目标文本的操作的描述,所述操作位置为第一文本,所述第一文本为所述目标文本;将各个所述子操作的针对的操作对象、操作动作类型以及操作位置写入所述数据表格中与子操作对应的各行表格中,得到记载所述目标软件的测试数据的数据表格。
19.第三方面,本技术提供一种测试设备,包括:处理器、存储器、系统总线;所述处理器以及所述存储器通过所述系统总线相连;所述存储器用于存储一个或多个程序,所述一个或多个程序包括指令,所述指令当被所述处理器执行时使所述处理器执行第一方面以及第一方面包括的任一种可能的实现方式所述的测试方法。
20.第四方面,本技术提供一种计算机可读存储介质,所述计算机可读存储介质中存
储有指令,当所述指令在终端设备上运行时,使得所述终端设备执行第一方面以及第一方面包括的任一种可能的实现方式所述的测试方法。
21.第五方面,本技术提供一种计算机程序产品,该计算机程序产品包括指令,当其在计算机上运行时,使得所述计算机执行第一方面以及第一方面包括的任一种可能的实现方式所述的测试方法。
22.由此可见,本技术具有如下有益效果:本技术提供的一种测试方法、装置、设备及介质,该方法响应于获取针对目标软件的测试指令,获取目标软件的测试数据;其中,测试数据是基于目标软件执行的执行操作得到的,执行操作包括至少一个子操作,测试数据包括执行操作中每个子操作针对的操作对象、操作动作类型、操作位置以及各个子操作之间的执行顺序,至少一个子操作的操作位置包括第一图像或者第一文本;对测试数据进行解析,按照测试数据包括的各个子操作之间的执行顺序,依次执行测试数据包括的每个子操作,得到各个子操作的操作结果;其中,执行测试数据包括的每个子操作包括:根据子操作的操作位置,确定子操作的执行位置坐标,并在子操作的执行位置坐标处,按照子操作对应的操作动作类型,模拟子操作对应的操作对象,执行子操作;最后,获取各个子操作的标准结果,将各个子操作的操作结果与子操作的标准结果比对,得到测试结果。测试数据包括的操作位置包括用于确定执行位置坐标的第一图像或者第一文本。基于操作位置,在执行子操作之前,重新确定执行子操作的执行位置坐标。如此,在自动测试过程中,即使子操作的执行的位置发生改变,也能够基于操作位置较为准确地确定当前执行子操作的执行位置坐标。
附图说明
23.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
24.图1为本技术实施例提供的一种测试方法的流程示意图;图2为本技术实施例提供的一种测试装置的结构示意图;图3为本技术实施例提供的一种用于测试的设备的框图。
具体实施方式
25.为了便于理解和解释本技术实施例提供的技术方案,下面将先对本技术的背景技术进行说明。
26.在一些测试的过程中,会根据预设的触发位置确定测试中操作的触发位置。比如,在针对目标软件进行测试时,预先确定目标软件的图标在屏幕中的位置。在测试时,根据预先确定的目标软件的图标位置,触发目标软件的图标,运行目标软件,实现对目标软件的开启的测试。但是,如果目标软件的图标在屏幕中的位置发生变化。根据预先确定的目标软件的图标的位置不能实现触发目标软件的运行,难以实现自动测试。
27.基于此,本技术实施例提供一种测试方法、装置、设备及介质,该方法响应于获取针对目标软件的测试指令,获取目标软件的测试数据;其中,测试数据是基于目标软件执行
的执行操作得到的,执行操作包括至少一个子操作,测试数据包括执行操作中每个子操作针对的操作对象、操作动作类型、操作位置以及各个子操作之间的执行顺序,至少一个子操作的操作位置包括第一图像或者第一文本;对测试数据进行解析,按照测试数据包括的各个子操作之间的执行顺序,依次执行测试数据包括的每个子操作,得到各个子操作的操作结果;其中,执行测试数据包括的每个子操作包括:根据子操作的操作位置,确定子操作的执行位置坐标,并在子操作的执行位置坐标处,按照子操作对应的操作动作类型,模拟子操作对应的操作对象,执行子操作;最后,获取各个子操作的标准结果,将各个子操作的操作结果与子操作的标准结果比对,得到测试结果。测试数据包括的操作位置包括用于确定执行位置坐标的第一图像或者第一文本。基于操作位置,在执行子操作之前,重新确定执行子操作的执行位置坐标。如此,在自动测试过程中,即使子操作的执行的位置发生改变,也能够基于操作位置较为准确地确定当前执行子操作的执行位置坐标。
28.下面对本技术实施例提供的测试方法的应用场景进行说明。本技术实施例提供的测试方法可以应用于测试软件。测试软件能够应用于计算机,实现对待测试的目标软件进行自动化测试。本技术实施例不限定测试软件适用的操作环境。作为一种示例,测试软件可以是适用于linux(一种操作系统)的测试软件。
29.在实际应用中,作为一种示例,测试人员运行测试软件。测试人员触发针对目标软件的测试指令。测试软件响应于获取针对目标软件的测试指令,获取目标软件的测试数据。其中,测试数据是预先根据目标软件执行的执行操作生成的。执行操作包括至少一个子操作。例如,执行操作可以包括四个子操作,分别为:{子操作1:在目标软件的图标所在的位置点击鼠标右键;子操作2:在目标软件的图标旁显示的菜单栏中“打开(o)
”ꢀ
按键的位置点击鼠标左键;子操作3:在目标软件的显示界面的菜单栏中的“文件(f)
”ꢀ
按键的位置点击鼠标左键;子操作4:在目标软件的显示界面的通过点击“文件(f)”按键触发的菜单栏中“保存(s)”的位置点击鼠标左键;子操作5:在目标软件的显示界面的通过点击“文件(f)”按键触发的菜单栏中“退出(x)”的位置点击鼠标左键}。测试数据包括执行操作中每个子操作针对的操作对象、操作动作类型、操作位置以及各个子操作之间的执行顺序。
30.与常规自动化测试方案不同的是,本技术实施例中,至少一个子操作的测试数据中的操作位置包括第一图像或者第一文本。第一图像或者第一文本用于确定执行对应子操作的位置。以上述包括四个子操作的执行操作为例,测试数据包括的子操作1的操作位置为目标软件的图标的图像,子操作2的操作位置为“打开(o)”的文本,子操作3的操作位置为“文件(f)”的文本,子操作4的操作位置为“保存(s)”的文本,子操作5的操作位置为“退出(x)”的文本。
31.测试软件解析测试数据,依次确定各个子操作针对的操作对象、操作动作类型、操作位置,并且确定各个子操作的执行顺序。基于每个子操作的操作位置,能够确定执行该子操作的位置坐标。以上述包括四个子操作的执行操作为例,基于子操作1的操作位置为目标软件的图标的图像,确定执行子操作1的位置坐标为显示界面中目标软件的图标的图像所在的区域的坐标;基于子操作2的操作位置为“打开(o)”的文本,确定执行子操作2的位置坐标为显示界面中“打开(o)”的文本所在的区域的坐标;基于子操作3的操作位置为“文件(f)”的文本,确定执行子操作3的位置坐标为显示界面中“打开(o)文件(f)”的文本所在的区域的坐标;基于子操作4的操作位置为“保存(s)”的文本,确定执行子操作4的位置坐标为
显示界面中“保存(s)”的文本所在的区域的坐标;基于子操作5的操作位置为“退出(x)”的文本,确定执行子操作5的位置坐标为显示界面中“退出(x)”的文本所在的区域的坐标。在确定的各个子操作的位置坐标处,按照子操作对应的操作动作类型,模拟子操作对应的操作对象,执行子操作,得到各个子操作的操作结果。各个子操作的操作结果分别与各个子操作的标准结果进行比对,得到对目标软件的测试结果。
32.本领域技术人员可以理解,上述场景实施例仅是本技术的实施方式可以在其中得以实现的一个示例。本技术实施方式的适用范围不受到该框架任何方面的限制。
33.为了便于理解本技术实施例提供的技术方案,下面结合附图对本技术实施例提供的一种测试方法进行说明。
34.参见图1所示,该图为本技术实施例提供的一种测试方法的流程示意图,该测试方法包括以下s101-s103。
35.s101:响应于获取针对目标软件的测试指令,获取目标软件的测试数据,测试数据是根据目标软件执行的执行操作得到的;执行操作包括至少一个子操作,测试数据包括执行操作中每个子操作针对的操作对象、操作动作类型、操作位置以及各个子操作之间的执行顺序;至少一个子操作的操作位置包括子操作对应的第一图像或者第一文本。
36.本技术实施例不限定针对目标软件的测试指令的触发操作的具体实现方式。在一种可能的实现方式中,测试软件的显示界面包括“测试”按键。测试人员能够通过点击“测试”的按键实现针对目标软件的测试指令的触发操作。在另一种可能的实现方式中,测试人员能够通过点击用于触发目标软件的测试指令的快捷键实现针对目标软件的测试指令的触发操作。
37.测试软件响应于针对目标软件的测试指令,获取目标软件的测试数据。目标软件是需要被测试的软件。在一种可能的实现方式中,目标软件是预先设置的需要被测试的软件。在另一种可能的实现方式中,测试软件的显示界面包括用于输入目标软件的软件名称的输入框。测试人员将需要进行测试的软件的软件名称写入输入框中。测试软件基于输入框内写入的软件名称确定需要被测试的目标软件。
38.目标软件的测试数据是基于对目标软件执行的执行操作得到的。对目标软件执行的执行操作是对目标软件进行测试所需要执行的操作。对目标软件执行的执行操作可以是预先根据对目标软件的测试需要设定的。测试数据包括每个子操作针对的操作对象、操作动作类型、操作位置以及各个子操作之间的执行顺序。其中,操作对象是执行子操作所控制的对象。操作动作类型是指子操作的操作动作的类型。操作动作类型与输入设备的设备类型相关。比如,输入设备包括鼠标,则操作动作类型可以包括触发/点击/双击鼠标左键、触发/点击/双击鼠标右键、上滑/下滑鼠标滚轮等;输入设备包括键盘,则操作动作类型可以包括键盘输入等;输入设备包括触控输入设备,则操作动作类型可以包括触摸点击、按压触发等。操作位置是指针对操作对象执行子操作的位置。本技术实施例中,至少一个子操作的操作位置包括子操作对应的第一图像或者第一文本。有关操作位置为偏移量的具体介绍,请参见下文。
39.其中,第一图像为用于确定子操作针对的操作对象的操作位置的图像。比如,子操作是针对显示界面中的目标图标进行选择。操作对象为鼠标,则第一图像为显示界面的鼠
标要执行选择操作的目标图标的图像。第一文本为用于确定子操作针对的操作对象的操作位置的文本。比如,子操作是针对显示界面中“菜单”选项进行点击,操作对象为鼠标,则第一文本为鼠标要执行点击操作的“菜单”选项对应的文本,即为{菜单}。
40.需要说明的是,在一种可能的实现方式中,目标软件的测试数据可以是执行操作的记录数据得到的。执行操作的记录数据可以是测试用例。执行操作的记录数据用于规范执行操作的执行过程。测试人员能够参考该记录数据控制输入设备执行针对目标软件的执行操作。本技术实施例下文中,均采用测试用例说明该记录数据,在本技术其他实施例中,针对包括执行操作的记录数据并不做具体限定。其中测试用例可以是指对一项特定的软件产品进行测试任务的描述,其内容可以包括测试对象、测试环境、输入数据、测试步骤、预期结果、测试脚本等。每个目标软件可以对应多个测试用例,每个测试用例能够针对目标软件的一项功能的测试任务进行描述。每个测试用例都具有为唯一的用例编号。目标软件的测试用例具体能够使用表格文件记录。表格文件预先存储在预设存储位置。表格文件的名称包括目标软件的名称。例如,表格文件的名称为“xxxx用例编号.xls”。其中,“xxxx”为目标软件的名称。
41.参见表1所示,表1为本技术实施例提供的一种测试用例的表格。
42.表1其中,该表格包括一个测试用例。该测试用例是针对目标软件的打开和关闭的功能进行测试的测试用例。测试用例的编号为“mspaint001”。其中,“mspaint”为目标软件的名称。“001”为测试用例的标识。测试用例的步骤描述是测试人员预先确定的测试步骤的描述内容。测试用例包括四个步骤,包括:{1.右键mspaint快捷方式;2.点击右键菜单打开选项;3.点击mspaint菜单栏文件;4. 点击保存选项;5.点击退出选项}。预期结果是指目标软件正常运行的条件下按照测试操作得到的结果。该示例中预期结果为“mspaint正常启动,保存文件,并且可以通过文件菜单栏的退出选项退出”。
43.在一种可能的实现方式中,目标软件的测试数据可以是根据测试用例生成的。测试软件的显示界面还可以包括软件名称的输入框和用例编号的输入框。测试人员能够在触发录制按键之前,在软件名称的输入框内输入目标软件的名称,在用例编号的输入框输入本次测试的测试用例编号。其中,软件名称用于标识目标软件,用例编号用于标识本次测试采用的测试用例。测试软件基于软件名称和用例编号,能够查询与软件名称和用例编号对应的测试用例。该测试用例用于指示执行操作的具体内容,比如,执行操作包括的子操作,每步子操作针对的操作对象、操作动作类型以及操作位置,子操作之间的执行顺序等。软件名称和用例编号与测试用例的对应关系可以是预先建立的,并保存在测试用例库中。根据
测试用例,便于测试人员确定需要测试的目标软件的功能所对应的执行操作的具体内容,执行对目标软件的功能测试。并且,将测试用例作为执行操作的参考标准,能够保证多次对目标软件进行测试时,确定的执行操作较为准确,也便于测试人员对目标软件的测试过程进行整理。
44.测试软件基于目标软件的软件名称以及测试用例的用例编号,查询目标软件的软件名称以及测试用例的用例编号对应的存储该测试用例的表格。以上述表1为例,测试软件基于获取的mspaint以及001,查询得到表1。测试软件基于查询到的测试用例的表格能够生成数据表格。在一种可能的实现方式中,测试软件对查询到的测试用例的表格包括的步骤描述进行解析,生成数据表格。数据表格用于储存指示执行操作的用例步骤。数据表格包括一行或者多行用例步骤。每行用例步骤与执行操作包括的一个子操作对应。每行用例步骤包括指示执行该子操作的步骤描述。数据表格中各行用例步骤的排序对应于各个子操作之间的执行顺序。测试人员基于每行用例步骤包括的步骤描述,能够执行每行用例步骤对应的子操作。测试软件显示数据表格,以便测试人员基于数据表格填写测试数据,或者便于测试人员基于数据表格执行该数据表格储存的用例步骤所指示的执行操作,通过监听执行操作生成测试数据。
45.基于数据表格包括的各行的用例步骤包括的步骤描述,能够确定各行的用例步骤对应的子操作针对的操作对象、操作动作类型以及操作位置。
46.作为一种示例,参见表2所示,表2为本技术实施例提供的一种存储目标软件的软件名称以及测试用例的用例编号对应的数据表格。
47.表2其中,表2的数据表格为包括五个子操作的执行操作的用例步骤。序号用于标识不同行的用例步骤的排序,分别对应于5个子操作在执行操作中的执行顺序。
48.序号1所在行的用例步骤对应于子操作1,序号1所在行的用例步骤的步骤描述为“右键mspaint快捷方式”。测试人员能够基于序号1所在行的用例步骤的步骤描述,控制鼠标指针移动至mspaint快捷方式的图标所在的区域,并且点击鼠标右键。基于序号1所在行的用例步骤,能够确定子操作1针对的操作对象为“鼠标”,操作动作类型为“右键单击”,操作位置为mspaint快捷方式的图标所在的区域。
49.序号2所在行的用例步骤对应于子操作2,序号2所在行的用例步骤的步骤描述为“点击右键菜单打开选项”。测试人员能够基于序号2所在行的用例步骤的步骤描述,控制鼠标指针移动至mspaint快捷方式的图标所在区域显示的菜单栏中的“打开”选项,并点击鼠
标左键。基于序号2所在行的用例步骤,能够确定子操作2针对的操作对象为“鼠标”,操作动作类型为“左键单击”,操作位置为菜单栏中的“打开”选项的文本所在的区域。
50.序号3所在行的用例步骤对应于子操作3。序号3所在行的用例步骤的步骤描述为“点击mspaint菜单栏文件”。测试人员能够基于序号3所在行的用例步骤的步骤描述,控制鼠标指针移动至mspaint的显示界面中的菜单栏中的“文件”选项,并点击鼠标左键。基于序号3所在行的用例步骤,能够确定子操作3针对的操作对象为“鼠标”,操作动作类型为“左键单击”,操作位置为菜单栏中的“文件”选项的文本所在的区域。
51.序号4所在行的用例步骤对应于子操作4。序号4所在行的用例步骤的步骤描述为“点击保存选项”。测试人员能够基于序号4所在行的用例步骤的步骤描述,控制鼠标指针移动至mspaint的显示界面触发“文件”选项显示的菜单栏中包括的“保存”选项,并点击鼠标左键。基于序号4所在行的用例步骤,能够确定子操作4针对的操作对象为“鼠标”,操作动作类型为“左键单击”,操作位置为菜单栏中包括的“保存”选项的文本所在的区域。
52.序号5所在行的用例步骤对应于子操作5。序号5所在行的用例步骤的步骤描述为“点击退出选项”。测试人员能够基于序号5所在行的用例步骤的步骤描述,控制鼠标指针移动至mspaint的显示界面触发“文件”选项显示的菜单栏中包括的“退出”选项,并点击鼠标左键。基于序号5所在行的用例步骤,能够确定子操作5针对的操作对象为“鼠标”,操作动作类型为“左键单击”,操作位置为菜单栏中包括的“退出”选项的文本所在的区域。
53.需要说明的是,在一种可能的实现方式中,各个子操作针对的操作对象、操作动作类型以及操作位置可以是测试人员输入数据表格中的。测试软件能够监听测试人员控制输入设备,获取测试人员在数据表格中输入的各个子操作针对的操作对象、操作动作类型以及操作位置。
54.对于基于图像确定操作位置的情况,对图像进行截图,并将得到的用于指示操作位置的图像存储至预设存储位置。测试人员将得到的图像的名称写入数据表格。比如,根据序号1所在行的用例步骤,测试人员对mspaint快捷方式的图标进行截图,并将得到的截图命名为“1.png”,将截图存储至预设的存储位置,在数据表格的序号1的图片定位中写入1.png。
55.对于基于文本确定操作位置的情况,能够获取测试人员输入的文本内容,将测试人员输入的文本内容写入数据表格。比如,根据序号2所在行的用例步骤,测试人员在数据表格的序号2的文本定位中写入“打开”。
56.在另一种可能的实现方式中,测试人员触发测试软件对执行操作进行监听。测试软件监听输入设备针对目标软件的执行操作,获取各个子操作针对的操作对象、操作动作类型以及操作位置,并将得到的各个子操作针对的操作对象、操作动作类型以及操作位置写入数据表格中与子操作对应的各行表格中。如此能够得到记载目标软件的该用例编号的测试数据的数据表格。
57.比如,根据序号1所在行的用例步骤,测试人员执行子操作1。测试软件通过监听测试人员对鼠标的操作过程,确定子操作1针对的操作对象为鼠标、操作动作类型为右键单击、操作位置为触发鼠标右键单击时响应的控件(也就是mspaint快捷方式的图标)所在的显示区域。测试软件对mspaint快捷方式的图标所在的显示区域进行截屏,得到mspaint快捷方式的图标的图像,并根据对应的子操作的序号为截屏得到的图标命名为1.png;将截图
存储至预设的存储位置,在数据表格的序号1的图片定位中写入1.png。
58.又比如,根据序号2所在行的用例步骤,测试人员执行子操作2。测试软件通过监听测试人员对鼠标的操作过程,确定子操作2针对的操作对象为鼠标、操作动作类型为左键单击、操作位置为触发鼠标右键单击时响应的控件(也就是“打开”选项)所在的显示区域。测试软件对“打开”选项进行截屏,并对截屏得到的图像进行文本识别,得到“打开”文本,在数据表格的序号2的文本定位中写入“打开”。
59.以上述表2所示的数据表格为例,得到的记载目标软件的测试数据的数据表格参见表3所示。
60.表3s102:解析测试数据,按照测试数据包括的各个子操作之间的执行顺序,依次执行测试数据包括的每个子操作,得到各个子操作的操作结果;其中,执行测试数据包括的每个子操作包括:根据子操作的操作位置,确定子操作的执行位置坐标,并在子操作的执行位置坐标处,按照子操作对应的操作动作类型,模拟子操作对应的操作对象,执行子操作。
61.本实施例中,子操作的操作位置用于指示执行子操作的位置坐标。基于子操作的操作位置,能够确定子操作的执行位置坐标。子操作的执行位置坐标为执行子操作的坐标。子操作的执行位置坐标可以使用屏幕坐标系的坐标表示。需要说明的是,以计算机屏幕为例,计算机屏幕的左上角为坐标原点,水平向右的方向为x轴正方向,垂直向下的方向为y轴正方向。一个像素长度为单位长度。坐标的取值范围为计算机屏幕的分辨率的最大值。
62.需要说明的是,对于不同类型的操作位置,确定执行位置坐标的具体实现方式不同。对于子操作的测试数据包括为第一图像的操作位置和为第一文本的操作位置,本技术实施例提供两种根据子操作的操作位置,确定子操作的执行位置坐标的具体实现方式,具体请参见下文。
63.在基于操作位置确定执行位置坐标后,能够在执行位置坐标处按照子操作对应的操作动作类型,模拟子操作对应的操作对象,执行子操作,得到子操作的操作结果。通过按照各个子操作之间的执行顺序,依次执行各个子操作,能够实现对执行操作的还原。
64.需要说明的是,在一些可能的实现方式中,在执行完成子操作后,对目标软件的显示界面进行截图,得到子操作的操作结果。在另一种可能的实现方式中,在执行子操作后,基于目标软件的运行情况,得到操作结果。
65.s103:获取各个子操作的标准结果,将各个子操作的操作结果与子操作的标准结果比对,得到测试结果。
66.子操作的操作结果能够用于确定目标软件的测试结果。各个子操作还具有标准结果。通过将子操作的操作结果与该子操作标准结果进行比对,能够得到目标软件的测试结果。
67.在一种可能的实现方式中,子操作的操作结果为对目标软件的显示界面的截图。子操作的标准结果为目标软件在正常运行的情况下,对目标软件响应于执行子操作后显示界面的截图。将子操作的操作结果与子操作的标准结果进行比较,能够确定目标软件是否正常响应于执行子操作,得到目标软件的测试结果。
68.基于上述s101-s103的相关内容可知,根据包括执行操作中子操作对应的第一图像或者第一文本的操作位置,能够确定本次测试过程中执行操作的子操作的执行位置坐标。如此能够较为准确地确定执行测试操作的位置,能够根据被测试的目标软件的图标或者界面文本的变化情况灵活地调整执行子操作的位置,实现自动测试。
69.下面对于本技术实施例提供的两种类型的操作位置,确定执行位置坐标的具体实现方式进行详细介绍。
70.第一种:操作位置为第一图像。
71.本技术实施例提供一种根据子操作的操作位置,确定子操作的执行位置坐标的具体实现方式,包括以下三个步骤a1-a3:a1:获取执行子操作时目标软件的第一显示界面图像。
72.目标软件的第一显示界面图像是在执行子操作时,目标软件的显示界面的图像或者目标软件所运行的设备的显示界面的图像。在一种可能的实现方式中,第一显示界面图像可以是采用截屏操作得到的。作为一种示例,子操作是在桌面界面中触发目标软件运行,则第一显示界面图像为桌面界面的截屏图像。作为另一种示例,子操作是基于目标软件的运行界面执行,则第一显示界面图像为目标软件的显示界面的截图。
73.a2:在第一显示界面图像中确定与第一图像匹配的第二图像。
74.在得到的第一显示界面图像中,查找与第一图像匹配的第二图像。第二图像是第一显示界面图像的部分图像。第二图像可以是对第一显示界面图像划分后得到的与第一图像匹配的图像。
75.在一些可能的实现方式中,第二图像的图像尺寸与第一图像的图像尺寸相同,并且,第二图像与第一图像的匹配程度大于或者等于阈值。
76.作为一种示例,本技术实施例提供一种在第一显示界面图像中确定与第一图像匹配的第二图像的具体实现方式,包括以下四个步骤b1-b4:b1:在第一显示界面图像的初始位置建立与第一图像的图像尺寸相同的滑动窗口。
77.获取第一图像的图像尺寸。作为一种示例,第一图像为矩形,获取第一图像的长和宽。第一图像的图像尺寸能够采用像素大小表示。
78.根据第一图像的图像尺寸,在第一显示界面图像的初始位置建立滑动窗口。滑动窗口的图像尺寸与第一图像的图像尺寸相同。第一显示界面图像的初始位置能够是基于滑动窗口的移动的预设顺序确定的。作为一种示例,滑动窗口遍历第一显示界面图像的预设顺序在水平方向上是从左到右,在竖直方向上是从上到下,则第一显示界面图像的初始位置为第一显示界面图像的左上角,也就是滑动窗口的上边界与第一显示界面图像的上边界
重合,滑动窗口的左边界与第一显示界面图像的左边界重合。
79.b2:按照预设顺序在第一显示界面图像中移动滑动窗口,将滑动窗口所包括的第一显示界面图像的部分图像作为待匹配图像。
80.预设顺序为预先设定的移动滑动窗口的顺序。将滑动窗口按照预设顺序移动,实现对第一显示界面图像的遍历。其中,滑动窗口在水平方向上的移动步长以及竖直方向上的移动步长能够预先设定,或者是根据第一图像的图像尺寸确定。在一些可能的实现方式中,为了确保滑动窗口能够截取到较为完整的与第一图像匹配的待匹配图像,滑动窗口在水平方向上的移动步长以及竖直方向上的移动步长可以选取较小的数值,例如单位像素大小。
81.b3:计算待匹配图像与第一图像的匹配度。
82.本技术实施例不限定触发计算待匹配图像与第一图像的匹配度的方式。在一种可能的实现方式中,每次基于滑动窗口划分得到待匹配图像后,计算得到待匹配图像与第一图像的匹配度。在另一种可能的实现方式中,在完成滑动窗口的移动后,得到全部的待匹配图像,在逐个计算得到的待匹配图像与第一图像的匹配度。
83.本技术实施例不限定待匹配图像与第一图像的匹配度的计算方法。下面介绍六种计算待匹配图像和第一图像的匹配度的计算方法。
84.第一种:差值平方和。
85.ꢀꢀꢀꢀ(1)第二种:标准化差值平方和。
86.ꢀꢀꢀꢀꢀꢀꢀ(2)第三种:相关匹配。
87.ꢀꢀꢀꢀꢀ(3)第四种:标准化相关匹配。
88.ꢀꢀꢀꢀꢀꢀꢀ(4)第五种:相关匹配。
89.ꢀꢀꢀꢀ(5)第六种:标准相关匹配。
90.ꢀꢀꢀꢀꢀ(6)其中,需要说明的是,t为第一图像包括的坐标的像素值。i为待匹配图像包括的坐标的像素值。
91.b4:将匹配度大于或者等于阈值的待匹配图像作为第二图像。
92.在一些可能的实现方式中,阈值为预先设置的匹配度阈值。在另一些可能的实现方式中,阈值基于计算得到的待匹配图像与第一图像的匹配度的数值确定的。比如,将计算得到的全部的匹配度中最大的匹配度的待匹配图像作为第二图像。
93.a3:根据第二图像包括的像素点坐标确定执行位置坐标。
94.在一种可能的实现方式中,执行位置坐标可以是第二图像的中心点坐标。具体的,可以获取第二图像包括的各个像素点在屏幕坐标系的坐标;在第二图像包括的各个像素点在屏幕坐标系的坐标中,确定横坐标的最大值、横坐标的最小值、纵坐标的最大值和纵坐标的最小值;基于横坐标的最大值和横坐标的最小值,确定第二图像的中心点的横坐标的数值;基于纵坐标的最大值和纵坐标的最小值,确定第二图像的中心点的纵坐标的数值;基于确定的第二图像的中心点的横坐标的数值和纵坐标的数值,确定执行位置坐标。在另一种可能的实现方式中,执行位置坐标可以是第二图像所在区域包括的任一像素点的坐标。
95.第二种:操作位置为第一文本。
96.第一文本是用于确定执行位置坐标的文本。例如,第一文本为需要测试的目标软件的软件名称。又例如,第一文本为需要点击的目标软件的按键的文本。
97.在一种可能的实现方式中,本技术实施例提供一种根据子操作的操作位置,确定子操作的执行位置坐标的具体实现方式,包括以下三个步骤c1-c3:c1:获取执行子操作的目标软件的第二显示界面图像。
98.目标软件的第二显示界面图像是在执行子操作之前,目标软件的显示界面的图像或者目标软件所运行的设备的显示界面的图像。在一种可能的实现方式中,第二显示界面图像可以是采用截屏操作得到的。作为一种示例,子操作是在桌面界面中触发目标软件运行,则第二显示界面图像为桌面界面的截屏图像。作为另一种示例,子操作是基于目标软件的运行界面执行,则第二显示界面图像为目标软件的显示界面的截图。
99.c2:在第二显示界面图像中确定与第一文本匹配的第二文本。
100.在得到的第二显示界面图像中,查找与第一文本匹配的第二文本。第二文本与第一文本的匹配程度大于阈值。作为一种示例, 可以采用光学字符识别技术在第二显示界面图像中确定与第一文本匹配的第二文本。具体的,可以采用paddle ocr(paddle optical character recognition,飞桨文本识别)、pp-ocr(a practical ultra lightweight ocr system,超轻量文本识别模型)v3或者svtr(scene text recognition with a single visual model,单视觉场景文本识别模型)实现第二文本的识别。
101.c3:根据第二文本所在的显示区域包括的像素点坐标确定执行位置坐标。
102.在一种可能的实现方式中,执行位置坐标可以是第二文本所在的显示区域的中心点坐标。具体的,获取第二文本所在的显示区域包括的各个像素点在屏幕坐标系的坐标;在第二文本所在的显示区域包括的各个像素点在屏幕坐标系的坐标中,确定横坐标的最大值、横坐标的最小值、纵坐标的最大值和纵坐标的最小值;基于横坐标的最大值和横坐标的最小值,确定第二文本所在的显示区域的中心点的横坐标的数值;基于纵坐标的最大值和纵坐标的最小值,确定第二文本所在的显示区域的中心点的纵坐标的数值;基于确定的中心点的横坐标的数值和纵坐标的数值,确定执行位置坐标。
103.在另一种可能的实现方式中,执行位置坐标可以是第二文本所在的显示区域所包括的任一像素点的坐标。
104.需要说明的是,目标软件的显示界面包括的部分控件之间的相对位置固定,不会受到目标软件的图标在屏幕中的显示区域的变化,或者目标软件的显示界面在屏幕中的显示区域的变化的影响。例如,目标软件的图标以及通过目标软件的图标触发的菜单栏之间的相对位置固定。又例如,通过目标软件的图标触发的菜单栏包括的各个控件之间的相对位置固定。还例如,目标软件的显示界面所包括的部分控件之间的相对位置固定。基于此,在一些可能的实现方式中,子操作的操作位置不为第一图像或者第一文本,操作位置包括子操作对应的偏移量。基于偏移量以及其他子操作的操作位置的第一图像或者第一文本,能够确定子操作的执行位置坐标。
105.需要说明的是,操作位置为偏移量的子操作的执行位置坐标,需要基于执行顺序在前的子操作的操作位置包括的第一图像或者第一文本确定。执行顺序为第一个的子操作的操作位置为第一图像或者第一文本。
106.在一种可能的实现方式中,偏移量是基于偏移量获取辅助工具确定的。偏移量获取辅助工具用于确定已知的坐标与点击的位置坐标之间的坐标偏移量。偏移量获取辅助工具能够根据测试人员在针对目标软件的执行操作过程中,依据一个子操作的执行位置坐标,以及与该子操作的执行顺序相邻的下一个子操作的执行位置坐标,确定这两个执行位置坐标之间的坐标偏移量。作为一种示例,测试人员在执行子操作1的过程中,点击目标软件的软件图像的显示区域所包括的某一坐标,该坐标在屏幕坐标系中的位置坐标为p1(50,60)。测试人员在执行执行顺序为该子操作1的下一个子操作2的过程中,点击目标软件的显示页面包括的控件的显示区域所包括某一坐标,该坐标在屏幕坐标系的位置坐标为p2(50,110)。偏移量获取辅助工具以p1(50,60)为输入参数,基于测试人员点击的p2(50,110)的坐标,输出第一偏移量(0,50)。
107.需要说明的是,执行顺序在先的子操作对应的第一图像或者第一文本,能够作为执行顺序在后的子操作的执行位置坐标的确定依据。基于执行顺序在先的子操作的测试数据包括的第一图像或者第一文本,以及执行顺序在后的子操作的测试数据包括的偏移量,能够确定该执行顺序在后的子操作的执行位置坐标。本技术实施例提供一种根据所述子操作的操作位置,确定所述子操作的执行位置坐标的具体实现方式,具体包括d1-d4:d1:设定当前子操作为第n子操作,根据各个所述子操作之间的执行顺序,查询执行顺序在所述第n子操作之前的第n-1子操作的操作位置。
108.将当前正在确定执行位置坐标的子操作设定为第n个子操作。其中,n为大于1并且小于或者等于n1的整数。n1为测试数据的执行操作包括的子操作的个数。在一种可能的实现方式中,n为当前的子操作在各个子操作之间的执行顺序中的执行次序。在确定当前子操作,也就是第n子操作的操作位置包括偏移量,基于各个子操作之间的执行顺序,查询第n-1个子操作的操作位置,也就是当前子操作的前一个子操作的操作。
109.d2:判断所述第n-1子操作的操作位置包括第一图像或者第一文本还是偏移量。
110.d3:当所述第n-1子操作的操作位置包括第一图像或第一文本时,依据所述第n-1子操作的操作位置包括的第一图像或第一文本和所述第n子操作的操作位置包括的偏移量,确定所述第n子操作的执行位置坐标。
111.如果第n-1子操作的操作位置包括第一图像或者第一文本,则能够将第n-1子操作的操作位置包括第一图像或者第一文本作为确定第n子操作的执行位置坐标的依据。基于
第n-1子操作的操作位置包括第一图像或者第一文本,以及第n子操作的操作位置包括的偏移量,确定第n子操作的执行位置坐标。
112.在一种可能的实现方式中,先根据第n-1子操作的操作位置包括的第一图像或者第一文本,确定第n-1子操作的执行位置坐标。再将第n-1子操作的执行位置坐标与第n子操作的偏移量进行叠加,得到第n子操作的执行位置坐标。其中,若第n-1子操作的操作位置包括第一图像,基于第一图像确定第n-1子操作的执行位置坐标的具体实现方式与上述a1-a3的实现方式类似,具体请参见a1-a3的具体实现过程,在此不再赘述。若第n-1子操作的操作位置包括第一文本,基于第一文本确定第n-1子操作的执行位置坐标的具体实现方式与上述c1-c3的实现方式类似,具体请参见c1-c3的具体实现过程,在此不再赘述。
113.d4:当所述第n-1子操作的操作位置包括偏移量时,则继续往前查询执行顺序在所述第n-1子操作之前的子操作的操作位置,并重复上述判断过程,直至查询到操作位置包括第一图像或第一文本的第n-m子操作为止,并依据所述第n-m子操作的操作位置包括的第一图像或者第一文本、所述第n-m 1子操作的操作位置包括的偏移量
……
所述第n-1子操作的操作位置包括的偏移量以及所述第n子操作的操作位置包括的偏移量,确定所述第n子操作的执行位置坐标;其中,n为小于等于n1的自然数且n不等于1,m=1、2
……
n-1;所述测试数据的执行操作包括n1个子操作。
114.在一些情况下,第n-1子操作的操作位置不为第一图像或者第一文本,第n-1子操作的操作位置为偏移量。第n-1子操作的操作位置包括的偏移量无法作为第n子操作的执行操作位置的确认依据。再依据各个子操作之间的执行顺序,往前查询第n-1子操作的前一个子操作的操作位置,也就是第n-2子操作的操作位置。如果第n-2子操作的操作位置包括第一图像或者第一文本,则能够将第n-2子操作的操作位置包括第一图像或者第一文本作为确定第n子操作的执行位置坐标的依据之一。如果第n-2子操作的操作位置为偏移量。第n-2子操作的操作位置包括的偏移量无法作为第n子操作的执行操作位置的确认依据。再依据各个子操作之间的执行顺序,往前查询第n-2子操作的前一个子操作的操作位置,也就是第n-3子操作的操作位置。并以此类推,直到查询到操作位置包括第一图像或第一文本的第n-m子操作为止。其中,m为正整数,m=1、2
……
n-1。
115.基于查询得到的第n-m子操作的操作位置包括的第一图像或者第一文本,以及第n-m 1子操作的操作位置包括的偏移量、
……
、第n子操作的操作位置包括的偏移量,确定第n子操作的执行位置坐标。
116.在一种可能的实现方式中,先基于第n-m子操作的操作位置包括的第一图像或者第一文本,确定第n-m子操作的执行位置坐标。其中,基于第一图像确定第n-m子操作的执行位置坐标的具体实现方式与上述a1-a3的实现方式类似,具体请参见a1-a3的具体实现过程,在此不再赘述。或者,基于第一文本确定第n-m子操作的执行位置坐标的具体实现方式与上述c1-c3的实现方式类似,具体请参见c1-c3的具体实现过程,在此不再赘述。
117.在得到第n-m子操作的执行位置坐标后,将第n-m子操作的执行位置坐标,第n-m 1子操作的操作位置包括的偏移量、
……
、第n子操作的操作位置包括的偏移量叠加,得到第n子操作的执行位置坐标。
118.需要说明的是,在一些可能的实现方式中,第n子操作的偏移量是针对图像的偏移量。在根据各个子操作之间的执行顺序,向前查询子操作的操作位置时,需要查询到包括第
一图像的操作位置为止。在另一些可能的实现方式中,第n子操作的偏移量是针对文本的偏移量。在根据各个子操作之间的执行顺序,向前查询子操作的操作位置时,需要查询到包括第一文本的操作位置为止。
119.作为一种示例,记载目标软件的测试数据的数据表格参见表4所示。
120.表4其中,子操作2的测试数据包括的“(0,50)”为偏移量。
121.以表4所示的测试数据为例,在对子操作2进行解析时,检测到子操作2的测试数据的操作位置包括偏移量,也就是(0,50)。将子操作2设定为第2子操作(即n的取值为2)。根据各个子操作之前的执行顺序,查询执行顺序在第2子操作之前的第1(即n-1的取值为1)子操作,也就是子操作1的操作位置。第1子操作的操作位置包括第一图像“1.png”。先根据第1子操作的操作位置包括第一图像“1.png”,确定第1子操作的执行位置坐标。再将得到的第1子操作的执行位置坐标与第2子操作的偏移量(0,50)相加,得到第2子操作的执行位置坐标。
122.作为一种示例,参见表5所示,表5为本技术实施例提供的另一种存储目标软件的软件名称以及测试用例的用例编号对应的数据表格。
123.表5其中,子操作4的测试数据的操作位置包括的“(0,50)”为偏移量,子操作5的测试数据的操作位置包括的“(0,100)”为偏移量。
124.以表5所示的测试数据为例,在对子操作4进行解析时,检测到子操作4的测试数据的操作位置包括偏移量,也就是(0,50)。将子操作4设定为第4子操作(即n的取值为4)。根据各个子操作之前的执行顺序,查询执行顺序在第4子操作之前的第3(即n-1的取值为3)子操作,也就是子操作3的操作位置。第3子操作的操作位置包括第一文本“文件”。先根据第3子操作的操作位置包括第一文本“文件”,确定第3子操作的执行位置坐标。再将得到的第3子
操作的执行位置坐标与第4子操作的偏移量(0,50)相加,得到第4子操作的执行位置坐标。
125.在对子操作5进行解析时,检测到子操作5的测试数据的操作位置包括偏移量,也就是(0,100)。将子操作5设定为第5子操作(即n的取值为5)。根据各个子操作之前的执行顺序,查询执行顺序在第5子操作之前的第4(即n-1的取值为4)子操作,也就是子操作4的操作位置。第4子操作的操作位置包括偏移量
ꢀ“
(0,50)”。再查询执行顺序在第4子操作之前的第3(即n-2的取值为3)子操作,也就是子操作3的操作位置。第3子操作的操作位置包括第一文本“文件”。先根据第3子操作的操作位置包括的第一文本“文件”,确定第3子操作的执行位置坐标。再将得到的第3子操作的执行位置坐标与第4子操作的偏移量(0,50),以及第5子操作的偏移量“(0,100)”相加,得到第5子操作的执行位置坐标。
126.基于本技术实施例提供的测试方法,本技术实施例提供一种测试装置,参见图2所示,该图为本技术实施例提供的一种测试装置的结构示意图。该测试装置包括:获取单元201,用于响应于获取针对目标软件的测试指令,获取所述目标软件的测试数据,所述测试数据是基于所述目标软件执行的执行操作得到的,所述执行操作包括至少一个子操作,所述测试数据包括每个所述子操作针对的操作对象、操作动作类型、操作位置以及各个所述子操作之间的执行顺序;至少一个所述子操作的操作位置包括所述子操作对应的第一图像或者第一文本;解析单元202,用于解析所述测试数据,按照所述测试数据包括的各个所述子操作之间的执行顺序,依次执行所述测试数据包括的每个所述子操作,得到各个所述子操作的操作结果;其中,执行所述测试数据包括的每个所述子操作包括:根据所述子操作的操作位置,确定所述子操作的执行位置坐标,并在所述子操作的执行位置坐标处,按照所述子操作对应的操作动作类型,模拟所述子操作对应的操作对象,执行所述子操作;比对单元203,用于获取各个所述子操作的标准结果,将各个所述子操作的操作结果与所述子操作的标准结果比对,得到测试结果。
127.在一种可能的实现方式中,所述子操作的操作位置包括所述第一图像时,所述解析单元202,用于根据所述子操作的操作位置,确定所述子操作的执行位置坐标,包括:所述解析单元202,用于获取执行所述子操作时所述目标软件的第一显示界面图像;在所述第一显示界面图像中确定与所述第一图像匹配的第二图像;根据所述第二图像包括的像素点坐标确定所述执行位置坐标。
128.在一种可能的实现方式中,所述解析单元202,用于在所述第一显示界面图像中确定与所述第一图像匹配的第二图像,包括:所述解析单元202,用于在所述第一显示界面图像的初始位置创建与所述第一图像的图像尺寸相同的滑动窗口;按照预设顺序在所述第一显示界面图像中移动所述滑动窗口,得到每次移动所述滑动窗口包括的待匹配图像;计算所述待匹配图像与所述第一图像的匹配度;将所述匹配度大于阈值的待匹配图像作为所述第二图像。
129.在一种可能的实现方式中,所述子操作的操作位置包括所述第一文本时,所述解析单元202,用于根据所述子操作的操作位置,确定所述子操作的执行位置坐标,包括:所述解析单元202,用于获取执行所述子操作时所述目标软件的第二显示界面图
像;在所述第二显示界面图像中确定与所述第一文本匹配的第二文本;根据所述第二文本所在的显示区域包括的像素点坐标确定所述执行位置坐标。
130.在一种可能的实现方式中,当所述子操作的操作位置不包括所述第一图像或者所述第一文本时,所述子操作的操作位置包括所述子操作对应的偏移量;所述解析单元202,用于根据所述子操作的操作位置,确定所述子操作的执行位置坐标,包括:所述解析单元202,用于设定当前子操作为第n子操作,根据各个所述子操作之间的执行顺序,查询执行顺序在所述第n子操作之前的第n-1子操作的操作位置;判断所述第n-1子操作的操作位置包括第一图像或者第一文本还是偏移量;当所述第n-1子操作的操作位置包括第一图像或第一文本时,依据所述第n-1子操作的操作位置包括的第一图像或第一文本和所述第n子操作的操作位置包括的偏移量,确定所述第n子操作的执行位置坐标;当所述第n-1子操作的操作位置包括偏移量时,则继续往前查询执行顺序在所述第n-1子操作之前的子操作的操作位置,并重复上述判断过程,直至查询到操作位置包括第一图像或第一文本的第n-m子操作为止,并依据所述第n-m子操作的操作位置包括的第一图像或者第一文本、所述第n-m 1子操作的操作位置包括的偏移量
……
所述第n-1子操作的操作位置包括的偏移量以及所述第n子操作的操作位置包括的偏移量,确定所述第n子操作的执行位置坐标;其中,n为大于1且小于等于n1的整数,m=1、2
……
n-1;所述测试数据的执行操作包括n1个子操作。
131.在一种可能的实现方式中,所述解析单元202,用于依据所述第n-1子操作的操作位置包括的第一图像或第一文本和所述第n子操作的操作位置包括的偏移量,确定所述第n子操作的执行位置坐标,包括:所述解析单元202,用于依据所述第n-1子操作的操作位置包括的第一图像或第一文本确定所述第n-1子操作的执行位置坐标;依据所述第n-1子操作的执行位置坐标和所述第n子操作的操作位置包括的偏移量,确定所述第n子操作的执行位置坐标。
132.在一种可能的实现方式中,所述目标软件的测试数据是采用以下方式生成的:获取所述目标软件的软件名称和测试用例的用例编号;显示与所述目标软件的软件名称和所述测试用例的用例编号匹配的数据表格,所述数据表格用于储存指示所述执行操作的用例步骤,所述数据表格包括的每行用例步骤对应一个所述执行操作包括的子操作,所述数据表格中各行用例步骤的排序对应于各个子操作之间的执行顺序,所述每行用例步骤包括用于指示执行所述子操作的步骤描述;根据所述每行用例步骤包括的步骤描述,获取各个子操作的针对的操作对象、操作动作类型以及操作位置;其中,所述步骤描述为针对目标图标的操作的描述,所述操作位置为第一图像,所述第一图像为所述目标图标的截图图像;所述步骤描述为针对目标文本的操作的描述,所述操作位置为第一文本,所述第一文本为所述目标文本;将各个所述子操作的针对的操作对象、操作动作类型以及操作位置写入所述数据表格中与子操作对应的各行表格中,得到记载所述目标软件的测试数据的数据表格。
133.本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
134.关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
135.本技术实施例提供了一种用于测试的设备,包括有存储器,以及一个以上的程序,其中一个以上程序存储于存储器中,且经配置以由一个以上处理器执行所述一个以上程序包含用于进行上述一个或多个实施例中所述的测试方法。
136.图3是根据一示例性实施例示出的一种用于测试的设备300的框图。例如,用于测试的设备300可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等。
137.参照图3,设备300可以包括以下一个或多个组件:处理组件302,存储器304,电源组件306,多媒体组件308,音频组件310,输入/输出(i/ o)组件312,传感器组件314,以及通信组件316。
138.处理组件302通常控制设备300的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理组件302可以包括一个或多个处理器320来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件302可以包括一个或多个模块,便于处理组件302和其他组件之间的交互。例如,处理组件302可以包括多媒体模块,以方便多媒体组件308和处理组件302之间的交互。
139.存储器304被配置为存储各种类型的数据以支持在设备300的操作。这些数据的示例包括用于在设备300上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器304可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(sram),电可擦除可编程只读存储器(eeprom),可擦除可编程只读存储器(eprom),可编程只读存储器(prom),只读存储器(rom),磁存储器,快闪存储器,磁盘或光盘。
140.电源组件306为设备300的各种组件提供电力。电源组件306可以包括电源管理系统,一个或多个电源,及其他与为设备300生成、管理和分配电力相关联的组件。
141.多媒体组件308包括在所述设备300和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(lcd)和触摸面板(tp)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件308包括一个前置摄像头和/或后置摄像头。当设备300处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。
142.音频组件310被配置为输出和/或输入音频信号。例如,音频组件310包括一个麦克风(mic),当设备300处于操作模式,如呼叫模式、记录模式和语音信息处理模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器304或经由通信组件316发送。在一些实施例中,音频组件310还包括一个扬声器,用于输出音频信号。
143.i/ o组件312为处理组件302和外围接口模块之间提供接口,上述外围接口模块可
可以表示:只存在a,只存在b以及同时存在a和b三种情况,其中a,b可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。
152.还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
153.以上对本技术所提供的一种软件测试方法、一种软件测试装置和可读存储介质,进行了详细介绍,本文中应用了具体个例对本技术的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本技术的方法及其核心思想;同时,对于本领域的一般技术人员,依据本技术的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本技术的限制。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献