一种自动测试方法、装置、电子设备及存储介质

文档序号:31152414发布日期:2022-08-17 06:34阅读:78来源:国知局
一种自动测试方法、装置、电子设备及存储介质

1.本发明涉及网页自动化测试技术领域,尤其涉及一种自动测试方法、装置、电子设备及存储介质。


背景技术:

2.ui测试:通过人工的方式去操作网页上的用户界面,从而发现程序的bug。自动化测试工具可以通过代码替代人为的操作,完成对用户界面的测试。主要包括以下步骤:定位元素、操作元素、模拟页面动作、生成测试脚本。其具体步骤为:定位元素、操作元素、模拟页面动作、生成测试脚本。基于生成的测试脚本代替人工执行,进行ui测试。
3.相关技术中自动化测试工具生成的测试脚本鲁棒性低,且在回归测试中容易出现测试中断,需要测试人员手动进行测试脚本的修复。


技术实现要素:

4.本发明实施例提供一种自动测试方法、装置、电子设备及存储介质,旨在解决或者部分解决目前自动化测试工具生成的测试脚本鲁棒性低,且在回归测试中容易出现测试中断,需要测试人员手动进行测试脚本的修复的问题。
5.为了解决上述技术问题,本发明是这样实现的:
6.第一方面,本发明实施例提供了一种自动测试方法,方法包括:
7.获取用户针对目标网页中目标元素输入的第一文本信息、辅助定位标识以及操作指令;
8.截取目标网页的第一图像,并根据第一文本信息和第一图像,生成目标元素的第一文本定位器;
9.根据辅助定位标识,生成目标元素的第一辅助定位器;
10.获取目标网页的源代码,并根据源代码,生成目标元素的第一全局定位器;
11.根据第一文本定位器、第一辅助定位器、第一全局定位器、以及操作指令,生成目标元素的第一自动测试脚本;
12.截取目标网页的第二图像,并根据第一图像与第二图像的图像相似度,确定目标网页的更新区域;
13.在目标网页存在更新区域的情况下,根据第二图像,对第一自动测试脚本的第一文本定位器和第一辅助定位器进行更新,获得第二自动测试脚本;
14.根据第二自动测试脚本,执行回归测试;
15.在回归测试中断的情况下,根据更新后的目标网页的源代码,对第二自动测试脚本的第一全局定位器进行更新,获得第三自动测试的脚本;
16.根据第三自动测试的脚本,继续执行回归测试。
17.可选地,根据第一文本信息和第一图像,生成目标元素的第一文本定位器,包括:
18.提取第一图像中的第二文本信息,以及与第二文本信息对应的文本框的中心点坐
标;
19.遍历第二文本信息,查找与第一文本信息匹配的目标第二文本信息;
20.将目标第二文本信息对应的文本框的中心点坐标,封装成目标元素的第一文本定位器。
21.可选地,辅助定位标识用于表征目标元素与相邻元素的位置关系,根据辅助定位标识,生成目标元素的第一辅助定位器,包括:
22.确定相邻元素在第一图像中的坐标;
23.将相邻元素在第一图像中的坐标,封装成目标元素的第一辅助定位器。
24.可选地,根据源代码,生成目标元素的第一全局定位器,包括:
25.根据目标网页的源代码,确定目标元素的属性名及唯一属性值;
26.将目标元素的属性名及唯一属性值,封装成目标元素的第一全局定位器。
27.可选地,根据第一图像与第二图像的图像相似度,确定目标网页的更新区域,包括:
28.将第一图像和第二图像,分割为多个第一子图像和多个第二子图像;
29.分别计算每个图像组的图像相似度,每个图像组包括一个第一子图像和一个对应的第二子图像;
30.将图像相似度小于预设阈值的图像组,确定为目标图像组;
31.将目标图像组中的第二子图像对应的图像区域,确定为目标网页的更新区域。
32.可选地,根据第二图像,对第一自动测试脚本中的第一文本定位器和第一辅助定位器进行更新,获得第二自动测试脚本,包括:
33.提取第二图像中的第三文本信息,以及与第三文本信息对应的文本框的中心点坐标;
34.遍历第三文本信息,查找与第一文本信息匹配的目标第三文本信息;
35.将目标第三文本信息对应的文本框的中心点坐标,封装成目标元素的第二文本定位器;
36.确定第二图像中相邻元素的坐标,并将相邻元素在第二图像中的坐标,封装成目标元素的第二辅助定位器;
37.将第一自动测试脚本中的第一文本定位器和第一辅助定位器,分别替换为第二文本定位器和第二辅助定位器。
38.可选地,根据更新后的目标网页的源代码,对第二自动测试脚本中的第一全局定位器进行更新,获得第三自动测试的脚本,包括:
39.获取第一全局定位器中目标元素的属性名和唯一属性值;
40.遍历更新后的目标网页的源代码,查找是否存在与属性名和唯一属性值匹配的目标源代码;
41.在存在目标源代码的情况下,根据目标源代码的超文本语言标记代码,对目标元素的属性名和唯一属性值进行自动更新;
42.将更新后的目标元素的属性名及唯一属性值,封装成目标元素的第二全局定位器,并将第二自动测试脚本中的第一全局定位器,替换为第二全局定位器;
43.在未存在目标源代码的情况下,输出需要对第二自动测试脚本中的第一全局定位
器进行手动更新的提示信息。
44.第二方面,本发明实施例提供了一种自动测试装置,装置包括:
45.获取单元,用于获取用户针对目标网页中目标元素输入的第一文本信息、辅助定位标识以及操作指令;
46.第一定位器生成单元,用于截取目标网页的第一图像,并根据第一文本信息和第一图像,生成目标元素的第一文本定位器;
47.第二定位器生成单元,用于根据辅助定位标识,生成目标元素的第一辅助定位器;
48.第三定位器生成单元,用于获取目标网页的源代码,并根据源代码,生成目标元素的第一全局定位器;
49.脚本生成单元,用于根据第一文本定位器、第一辅助定位器、第一全局定位器、以及操作指令,生成目标元素的第一自动测试脚本;
50.图像比对单元,用于截取目标网页的第二图像,并根据第一图像与第二图像的图像相似度,确定目标网页的更新区域;
51.第一更新单元,用于在目标网页存在更新区域的情况下,根据第二图像,对第一自动测试脚本的第一文本定位器和第一辅助定位器进行更新,获得第二自动测试脚本;
52.第一执行单元,用于用于根据第二自动测试脚本,执行回归测试;
53.第二更新单元,用于在回归测试中断的情况下,根据更新后的目标网页的源代码,对第二自动测试脚本的第一全局定位器进行更新,获得第三自动测试的脚本;
54.第二执行单元,根据第三自动测试的脚本,继续执行回归测试。
55.本发明实施例第三方面提出一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
56.存储器,用于存放计算机程序;
57.处理器,用于执行存储器上所存放的程序时,实现本发明实施例第一方面提出方法步骤。
58.第四方面,本技术还提供了一种计算机可读存储介质,其上存储有指令,当由一个或多个处理器执行时,使得处理器执行如本技术实施例第一方面的方法的步骤。
59.本发明实施例包括以下优点:
60.首先,获取用户针对目标网页中目标元素输入的第一文本信息、辅助定位标识以及操作指令,然后,生成目标元素的文本定位器,辅助定位器,全局定位器等多重定位器,最后,将多重定位器与操作指令结合,从而确定出对于目标元素的第一自动测试脚本。在本发明中,对测试人员的测试技能和编程能力要求较低,只需要测试人员输入要定位的目标元素的文本信息就可以为要定位的目标元素生成高鲁棒性的多重定位器,从而提高了用户的适用范围;本发明中,弱化了属性在元素定位中的作用,生成元素的多重定位器,增强了生成的自动测试脚本的鲁棒性。
61.在本技术的一些实施例中,对于版本发生更新的目标网页,利用图像比对技术,综合旧版本和新版本中目标元素的相关信息,自动修复失效的元多重定位器,保证正常进行测试。极大地降低了测试人员手动修复失效元素定位器的工作量,尽可能地节省测试人员的时间。
附图说明
62.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
63.图1是本发明实施例中一种自动测试方法的步骤流程图;
64.图2是本发明实施例中更新之前的目标网页的html代码;
65.图3是本发明实施例中更新之后的目标网页的html代码;
66.图4是本发明实施例中一种自动测试装置的模块示意图。
具体实施方式
67.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
68.术语解释:
69.网页元素:网页元素可以看成组成网页的基本单元,网页中最基本的元素是文字,即文本内容,此外还有超链接,导航栏,表单等等。
70.定位器:可以利用元素的定位器自动定位元素。
71.文本定位器:对当前网页进行截图,将截图进行预处理、文字检测、文本识别等操作后会得到截图中所有文字信息及对应的坐标,将输出结果进行处理后,通过用户输入的要定位元素对应的文字信息,查找出输出结果中对应的坐标,将该坐标作为该元素的文本定位器。
72.辅助定位器:辅助定位器是基于元素的盒模型分析要定位元素邻近的元素坐标信息,然后通过对比分析出的坐标信息确定要定位的元素,将辅助进行元素定位的邻近元素的坐标作为其辅助定位器。
73.全局定位器:全局定位器是通过爬虫爬取网页的html代码,然后自动分析html代码,得出要定位元素对应的唯一属性和属性值,将元素的唯一属性和属性值作为其全局定位器。
74.相关技术中,以实施例展示现有的自动测试脚本生成工具,如何实现某网页自动登录功能及网页版本更新后登录功能的回归测试。其具体包括步骤:
75.步骤(1)测试人员明确要定位的元素,用户名输入框,密码输入框,登录按钮。
76.步骤(2)手动打开网页源码,查看用户名输入框,密码输入框,登录按钮对应的元素属性及属性值,比如:id属性及属性值。
77.步骤(3)手动编写测试用例,调用自动化工具提供的关于元素属性定位的接口,最终生成测试脚本。
78.步骤(4)基于测试脚本,对网页进行测试。假设由于网页版本的更新测试用例中三个元素的属性值均发生了变化。此时,在运行之前的测试脚本时,就会发生测试中断。在发生测试中断之后,测试人员查看测试用例的报错信息,经过排查发现,是因为用户名元素属
性值发生变化导致定位不到元素,从而引发测试中断。这时就需要测试人员手动打开浏览器,查看网页的源码,找到用户名元素对应的属性值,替换原有测试用例中的属性值,之后重新开始测试。但是由于密码输入框元素的属性值也发生了变化,所以依然会发生测试中断,当发生测试中断后,测试人员又需要重复以上步骤手动修复测试中断。同理,点击登录按钮时,也需要测试人员手动修复测试中断。
79.即现有的自动化测试工具生成的测试脚本鲁棒性太差,网页版本进行更新之后,由于元素属性的微小变化就会导致定位不到元素或者定位错误,非常容易发生测试中断,而且测试人员的工作量非常大,费时费力,并且在发生测试中断后,没有办法自动修复,需要测试人员定位发生测试中断的位置手动进行修复。并且现有方法利用元素属性进行元素定位生成的定位器比较脆弱,非常容易因为网页版本的更新而导致生成的定位器失效,并且有些网页没有id,name等属性,而在测试阶段,在发生测试中断时需要测试人员手动查看测试用例,查找导致测试中断的元素,查看网页源码中失效元素定位器对应的属性,手动替换测试用例中失效的元素定位器。
80.基于此,提出了本技术的发明构思:弱化属性在元素定位中的作用,主要利用文本定位器、辅助定位器和全局定位器等多重定位器进行元素定位,并且在测试阶段,综合考虑可能导致测试中断的多种情况,自动修复测试过程中发生的测试中断。
81.本发明实施例提供了一种自动测试方法,参见图1,图1示出了本技术实施例一种自动测试方法的步骤流程图,方法包括:
82.s101:获取用户针对目标网页中目标元素输入的第一文本信息、辅助定位标识以及操作指令。
83.在本实施方式中,目标网页即需要进行测试的网页,以目标网页的自动登录功能进行说明,首先,需要获取测试人员要在该网页进行定位的元素,在该网页中,用户名输入框,密码输入框,登录按钮即为测试人员的需要定位的目标元素,第一文本信息为目标元素的文字内容,即“用户名输入框”的第一文本信息“用户名”,“密码输入框”的第一文本信息“密码”,“登录按钮”的第一文本信息“登录”,因为在同一个网页页面中可能存在多个相同的要定位的元素文本信息,故可能存在多个“用户名”的第一文本信息,因此需要辅助定位标识去唯一的标识要定位的元素,即保证目标元素的唯一性,操作指令即需要对目标元素执行的指令,即用户名输入框,密码输入框,登录按钮对应的指令为“输入指令”、“输入指令”、“点击指令”。
84.s102:截取目标网页的第一图像,并根据第一文本信息和第一图像,生成目标元素的第一文本定位器。
85.在本实施方式中,在确定用户针对目标网页中目标元素输入的第一文本信息、辅助定位标识以及操作指令之后,利用截图软件对目标网页进行截图,获得目标网页的第一图像,然后根据ocr(optical character recognition,光学字符识别)技术识别网页截图中文字的位置坐标信息,并生成目标元素的第一文本定位器,其具体过程包括:
86.s102-1:提取第一图像中的第二文本信息,以及与第二文本信息对应的文本框的中心点坐标。
87.在本实施方式中,首先对第一图像进行图像预处理的操作,图像预处理的操作主要作用是将文字、图片等区域分离出来。由于主要利用ocr技术识别网页截图中文字的位置
坐标信息,所以文字和网页背景的颜色属于冗余信息,并且彩色网页截图所包含的信息量特别巨大,所以根据网页截图的特点,会对截图进行如下预处理,在经过预处理之后,能够降低特提取算法的难度,提高文字识别结果的精度。图像预处理具体包括:灰度化:处理网页截图三个通道的数据比较复杂,本发明先将图像进行灰度化处理,灰度化的过程就是将每个像素点的rgb值统一成同一个值。灰度化后的图像将由三通道变为单通道,单通道的数据处理起来会简单许多。二值化:网页往往包含各种元素,并且这些元素的颜色十分丰富,某些网页的背景更是十分复杂,所以需要继续对截图进行二值化处理,在经过二值化之后,截图不包含灰色,只有纯白和纯黑两种颜色,能够极大提高文字识别的精度。ocr在经过图像预处理之后会进行最关键的两步:文字检测和文本识别。文字检测的主要作用是定位文字在图像中的区域,然后提取区域的序列特征,即判断该区域是否存在文字。文本识别就是在文字检测的基础上对区域中的文本进行识别,即确定存在的文字具体是什么文字。在经过文字检测和文本识别后,会输出包含网页截图所有文字的信息,文字所对应的文本框的四个顶点的坐标。
88.作为示例的,输出“用户名”“密码”“登录”“时间”“支持”等等多个网页中原本文字对应的第二文本信息,以及“用户名”“密码”“登录”“时间”“支持”等多个第二文本信息对应的文本框的四个顶点的坐标,然后根据四个顶点的坐标,计算第二文本信息对应的文本框的中点坐标,文本框的中点坐标用于表征该第二文本信息在原本的网页页面中的位置信息,并将结果保存成json文件。
89.s102-2:遍历第二文本信息,查找与第一文本信息匹配的目标第二文本信息。
90.在本实施方式中,遍历json文件中的识别结果,通过正则表达式在上述输出结果中进行查找与第一文本信息匹配的目标第二文本信息。作为示例的,首先,查找是否存在与第一文本信息“密码”匹配的第二文本信息,然后查找是否存在与第一文本信息“用户名”匹配的第二文本信息,最后查找是否存在与第一文本信息“登录”匹配的第二文本信息。如果存在,则将匹配的第二文本信息确定为目标第二文本信息。
91.s102-3:将目标第二文本信息对应的文本框的中心点坐标,封装成目标元素的第一文本定位器。
92.在本实施方式中,作为示例的,在确定与第一文本信息“用户名”匹配的目标第二文本信息之后,将该目标第二文本信息对应的文本框的中心点坐标(a,b),封装成“用户名输入框”目标元素的第一文本定位器,在确定与第一文本信息“密码”匹配的目标第二文本信息之后,将该目标第二文本信息对应的文本框的中心点坐标(c,d),封装成“密码输入框”目标元素的第一文本定位器,在确定与第一文本信息“登录”匹配的目标第二文本信息之后,将该目标第二文本信息对应的文本框的中心点坐标(e,f),封装成“登录按钮”目标元素的第一文本定位器。
93.s103:根据辅助定位标识,生成目标元素的第一辅助定位器。
94.在本实施方式中,生成第一辅助定位器的原因是在同一个页面中可能存在多个相同的要定位的元素文本信息,即在同一个页面中,可能存在多个第二文本信息是相同的情况,因此,在不采用第一辅助定位器的情况下,可能会生成同一目标元素的不同坐标,因此需要利用目标元素的邻近文本信息去唯一标识目标元素,具体步骤如下:
95.s103-1:确定相邻元素在第一图像中的坐标。
96.在本实施方式中,将第一辅助定位器分为上下左右四种,在用户输入要定位的目标元素的第一文本信息的时候,用户可以手动添加该目标元素的上下左右元素的文字信息,默认为null,本发明会为上下左右辅助定位器设定对应的辅助定位标识top、bottom、left、right,在用户输入要定位的目标元素的相邻元素的文字信息后,会将对应的文字信息作为四个标识的值进行存储。作为示例的,若目标元素为“用户名输入框”,而在“用户名输入框”的上方一个文字元素为“欢迎文本框”。因此在“用户名输入框”辅助定位标识的top中填写“欢迎文本框”的文本内容。首先在生成目标元素“用户名输入框”的第一文本定位器时会检测要定位的元素是否为唯一性元素,即是否添加了其相邻的元素的文本信息来确定其位置。如果检测到上述四个标识有一个不为null,说明该元素不为唯一性元素,所以要通过四个标识和对应的值来唯一的确定要定位的元素。读取元素四个标识中不为null的标识并记录其对应的值,之后遍历得到的同一目标元素“用户名输入框”的不同坐标,将其坐标记为(a,b),对每个坐标做如下处理,首先获取目标元素“用户名输入框”对应的content,content的宽度和高度,分别记为content-width、content-height、padding、border、margin值,之后按如下公式计算其上面元素的坐标值。记为(x,y),若flag=top,则x=a,y=a+0.5conten-height+border-top+padding-top+margin-top,若flag=bottom,则x=a,y=a-0.5conten-height-border-bottom-padding-bottom-margin-bottom,若flag=right,则x=a+0.5content-width+border-right+padding-right+margin-right,y=b,若flag=left,则x=a-0.5content-width-border-left-padding-left

margin-left,y=b,从而确定出“欢迎文本框”相邻元素的坐标值(x,y)。
97.s103-2:将相邻元素在第一图像中的坐标,封装成目标元素的第一辅助定位器。
98.在本实施方式中,由于在输出的第二文本信息,以及与第二文本信息对应的文本框的中心点坐标的结果时,是按照行输出网页中的文字信息,所以要定位的目标元素的上下左右等相邻元素的文字信息及对应坐标只可能在要定位元素对应文字信息的上一行、下一行或者本行,所以查找要定位元素的上一行、下一行或者本行。继续以s103-1的实施方式为例,由于辅助标识为top,则会查找要目标元素“用户名输入框”所在行的上一行,将上一行中输出的文字信息和对应的四个顶点的坐标中进行比对。当计算的相邻元素“欢迎文本框”的坐标值在上一行中欢迎文字信息对应的四个顶点内时,说明“欢迎文本框”元素在网页布局中就是要定位的目标元素“用户名输入框”的上面的元素,从而从多个坐标中,确定目标元素“用户名输入框”的位置,将相邻元素“欢迎文本框”的坐标值封装成要目标元素“用户名输入框”的第一辅助定位器。其他位置辅助定位器的生成方式和上述过程类似。
99.s104:获取目标网页的源代码,并根据源代码,生成目标元素的第一全局定位器。
100.在本实施方式中,第一全局定位器的作用相当于是一个备用定位器,在第一文本定位器和第二辅助定位器都失效之后,会利用第一全局定位器进行元素定位,生成第一全局定位器的具体步骤如下:
101.s104-1:根据目标网页的源代码,确定目标元素的属性名及唯一属性值。
102.s104-2:将目标元素的属性名及唯一属性值,封装成目标元素的第一全局定位器。
103.在s104-1至s104-2的实施方式中,利用爬虫等工具爬取目标网页的源代码,然后将该页面上所有要操作的元素,即所有的目标元素封装成集合,依次提取集合中目标元素对应的html(hyper text markup language,超文本语言标记)代码,然后从html代码中提
取每个目标元素对应的属性名及属性值,然后将提取得到的属性名和属性值封装成该元素的全局定位器。在本实施方式中,没有直接读取id、name等属性,是因为有些属性值可能重复,不具有唯一性,会定位到多个元素,从而导致测试中断,此外,有些网页没有id、name等属性。
104.s105:根据第一文本定位器、第一辅助定位器、第一全局定位器、以及操作指令,生成目标元素的第一自动测试脚本。
105.在本实施方式中,将针对每个目标元素的第一文本定位器、第一辅助定位器、第一全局定位器、以及操作指令,按照预设的顺序进行组合在一起,生成针对目标网页中各个目标元素的第一自动测试脚本。
106.基于s101-s105的步骤,利用用户输入的目标元素的文字信息,基于文字识别等技术生成的多重定位器,弱化了属性在元素定位中的作用,主要利用文本定位器、辅助定位器和全局定位器等多重定位器进行元素定位。用网页元素的文本信息生成元素的定位器,对测试人员的测试技能和编程能力要求较低,只需要测试人员输入要定位元素的文本信息就可以为要定位的元素生成高鲁棒性的多重定位器;将元素的文本信息、辅助文本信息、唯一属性信息提取出来,封装成元素的多重定位器,增强了元素定位器的鲁棒性。
107.在一种可行的实施方式中,对于图片元素的定位,图片元素包含src属性,代表了网页中图片的文件路径,在本发明中会利用图片的src属性进行图片元素的定位,测试人员只需要添加图片元素对应的src属性,就能够自动生成图片元素对应的xpath表达式,具体流程如下:测试人员添加当前网页要定位的图片元素src属性信息,分析上述步骤得到的网页源码,根据图片元素的src属性定位到元素对应的html代码,提取其父标签中唯一的属性和属性值,分析img标签与其父标签之间的层级关系,自动生成图片元素的xpath表达式,之后利用xpath表达式对图片元素进行定位。
108.在进行回归测试的时候,由于网站版本的更新,之前生成的测试脚本可能会由于某些元素信息的更新(外观,属性等)而导致测试脚本失效,所以在进行回归测试的时候,需要对失效的定位器进行修复,而手动修复工作量巨大,非常浪费测试人员的时间,所以有必要对失效的定位器进行自动修复。
109.在生成第一自动测试脚本之后,则可以利用第一自动测试脚本对标网页进行测试,具体步骤为:
110.s106:截取目标网页的第二图像,并根据第一图像与第二图像的图像相似度,确定目标网页的更新区域。
111.在本实施方式中,在利用第一自动测试脚本对目标网页进行测试的过程中,如果目标网页的版本没有进行更新,则可以利用生成的第一自动测试脚本正常进行更新,而判断目标网页的版本是否更新是通过比较当前目标网页的图像与之前目标网页的图像之间图像的相似度来进行确定的,即利用windows api对当前网页进行截图,通过图像识别技术对当前截图和旧版本的目标网页截图进行对比,确定目标网页是否存在更新区域,其具体的步骤包括:
112.s106-1:将第一图像和第二图像,分割为多个第一子图像和多个第二子图像。
113.在本实施方式中,假设目标网页发生了更新,则第一图像对应的是版本号为v1的目标网页的截图,则第二图像对应的是版本号为v2的目标网页的截图,分别将第一图像沿
中线分割为a、b、c、d四个子图像,将第二图像沿中线分割为e、f、g、k四个子图像,由于第一图像和第二图像的图像大小相同,a、b、c、d、e、f、g、k八个子图像的大小也相同,本实施方式不对子图像的数量可进行限定,子图像的数量越多,越容易发现第一图像和第二图像的差异。
114.s106-2:分别计算每个图像组的图像相似度,每个图像组包括一个第一子图像和一个对应的第二子图像。
115.在本实施方式中,继续以s106-1的实施方式为例,第一图像组包括子图像a和子图像e,对应第一图像和第二图像的左上角部分,第二图像组包括子图像b和子图像f,对应第一图像和第二图像的右上角部分,第三图像组包括子图像c和子图像g,对应第一图像和第二图像的左下角部分,第四图像组包括子图像d和子图像k,对应第一图像和第二图像的右下角部分,然后计算每个图像组中的第一子图像和第二子图像的图像相似度。
116.s106-3:将图像相似度小于预设阈值的图像组,确定为目标图像组。
117.在本实施方式中,在获得第一图像组、第二图像组、第三图像组、第四图像组的图像相似度之后,若第一图像组、第二图像组、第三图像组、第四图像组的图像相似度均为1,则说明第一图像和第二图像完全相同,也说明目标网页没有发生更新,目标元素的文本信息未发生更改,第一自动测试脚本中的文本定位器和辅助定位器没有失效,测试能够正常进行,若第一图像组、第二图像组、第三图像组、第四图像组的图像相似度不均为1,则将图像相似度不为1的图像组,确定为目标图像组,并且说明第一图像和第二图像不完全相同,也说明目标网页发生了更新,目标元素的文本信息可能发生更改,第一自动测试脚本中的文本定位器和辅助定位器可能失效,测试可能无法正常进行。
118.s106-4:将目标图像组中的第二子图像对应的图像区域,确定为目标网页的更新区域。
119.在本实施方式中,若第一图像组为目标图像组,则说明当前的目标网页(版本号为v2)的左上角的页面布局,当对于之前的目标网页(版本号为v1)左上角图像,已经发生了改变,则说明子图像e对应的图像区域为已经发生更新区域,即将当前的目标网页(版本号为v2)的左上角区域,确定为更新区域。
120.s107:在目标网页存在更新区域的情况下,根据第二图像,对第一自动测试脚本的第一文本定位器和第一辅助定位器进行更新,获得第二自动测试脚本。
121.在本实施方式中,假设目标网页版本中三个目标元素的属性值均发生了变化,而网页布局没有发生变化。此时,在运行之前的测试用例时,不会发生测试中断,因为测试用例首先会通过用户名元素的文本定位器和辅助定位器进行定位,由于网页布局没有发生变化,所以文本定位器和辅助定位器依然有效,测试正常进行。如果仅仅是网页布局发生了变化,那么用户名元素的文本定位器和辅助定位器将会失效,但是全局定位器依然有效,测试正常进行。如果目标网页的布局和目标元素的属性值都发生了变化,那么之前生成的第一自动测试脚本的三个定位器都会失效,此时就会发生测试中断。在发生测试中断之后,系统会根据日志中的异常信息判断是否是由于元素定位器失效而导致的测试中断,如果是,则会自动进行失效定位器的修复。首先会进行文本定位器和辅助定位器的修复,其具体步骤可以为:
122.s107-1:提取第二图像中的第三文本信息,以及与第三文本信息对应的文本框的
中心点坐标;
123.s107-2:遍历第三文本信息,查找与第一文本信息匹配的目标第三文本信息;
124.s107-3:将目标第三文本信息对应的文本框的中心点坐标,封装成目标元素的第二文本定位器;
125.s107-4:确定第二图像中相邻元素坐标,并将相邻元素在第二图像中的坐标,封装成目标元素的第二辅助定位器;
126.s107-5:将第一自动测试脚本中的第一文本定位器和第一辅助定位器,分别替换为第二文本定位器和第二辅助定位器。
127.在s107-1至s107-5的实施方式中,在确定目标网页已经发生更新之后,提取更新后的目标网页的截图,即第二图像,对第二图像进行经过截图预处理、文字检测、文本识别、最后输出屏幕截图中所有文本的坐标信息,并保存成json文件。第二图像中所有元素的文本信息,即第三文本信息以及第三文本信息对应的文本框的中心点坐标,遍历json文件中是否存在核心元素文本定位器及辅助定位器信息,若存在,更新核心元素文本定位器,作为示例的,在遍历json文件时,查找是否目标元素“登录按钮”的第一文本信息“登录”匹配的第三文本信息,若第三文本信息中存在“登录”,则将该第三文本对应的文本框的中心点坐标封装成目标元素的第二文本定位器,从而实现由第一文本定位器到第二文本定位器的更新。对于第一辅助定位器的更新,在第一自动测试脚本中,提取目标元素对应的第一辅助定位器,然后和根据相邻元素在第二图像中的坐标生成的第二辅助定位器进行对比,如果第一辅助定位器的信息和第二辅助定位器的信息相同,则认为只是核心元素文字信息发生更改,则更新目标元素的文本定位器,否则认为页面功能发生改变,不做任何处理。作为示例的,当目标元素“登录按钮”在第一图像和第二图像中的坐标信息不改变,而仅仅是由第一文本内容的“登录”变成“登录选项”时,即目标页面的版本更新是文字的更新而页面布局并未进行更新,因此,可以选择坐标不变的相邻元素生成的第二辅助定位器来进行更新,然后将第一自动测试脚本中的第一文本定位器和第一辅助定位器,分别替换为第二文本定位器和第二辅助定位器,实现第一自动测试脚本版本的更新。
128.s108:根据第二自动测试脚本,执行回归测试。
129.在本实施方式中,为了避免在回归测试中频繁中止的情况出现,因此需要在测试前进行必要的检验,而在测试前,本发明会对当前网页中的第一测试脚本进行自动执行,预先修复可能失效的第一文本定位器及第一辅助定位器,首先对目标页面图像进行检验,从而排除第一文本定位器及第一辅助定位器失效导致的测试中止,在执行完图像比对校验之后,就可以评估出所有可能失效的定位器,在测试之前就可以对这些定位器进行修复,尽可能减少发生测试中断的概率即可执行回归测试。
130.s109:在回归测试中断的情况下,根据更新后的目标网页的源代码,对第二自动测试脚本的第一全局定位器进行更新,获得第三自动测试的脚本。
131.在本实施方式中,由于文本定位器和辅助定位器已经在测试开始之前经过验证,所以在测试过程中发生的测试中断,只可能是由于全局定位器失效而导致的。只需要对全局定位器进行修复即可。具体步骤如下:
132.s109-1:获取第一全局定位器中目标元素的属性名和唯一属性值。
133.s109-2:遍历更新后的目标网页的源代码,查找是否存在与属性名和唯一属性值
匹配的目标源代码。
134.s109-3:在存在目标源代码的情况下,根据目标源代码的超文本语言标记代码,对目标元素的属性名和唯一属性值进行自动更新。
135.s109-4:将更新后的目标元素的属性名及唯一属性值,封装成目标元素的第二全局定位器,并将第二自动测试脚本中的第一全局定位器,替换为第二全局定位器。
136.s109-5:在未存在目标源代码的情况下,输出需要对第二自动测试脚本中的第一全局定位器进行手动更新的提示信息。
137.在s109-1至s109-5的实施方式中,首先判断测试中断是否由全局定位器失效导致的,可以通过读取日志文件确定是否为全局定位器失效导致测试中断。在确定测试中断是由全局定位器失效导致的之后,获取更新后的目标网页的源代码,然后遍历该源代码,查找是否有与属性名和唯一属性值匹配的目标源代码,如果存在,则根据目标源代码的超文本语言标记代码,对目标元素的属性名和唯一属性值进行自动更新,作为示例的,比如:在超文本语言标记代码中,id属性的值是唯一的,那么就可以根据id及id属性的值进行目标元素的定位。如图2所示,图2为更新之前的目标网页(版本号为v1)的“登录按钮对应”目标元素的html代码,其中属性包括id、type、value、class,利用更新之前的目标网页(版本号为v1)的id属性生成的第一全局定位器,那么在更新之后的目标网页中(版本号为v2)第一全局定位器会失效,因为id属性的属性值发生了变化,如图3所示,图3为更新之后的目标网页(版本号为v2)的“登录按钮对应”目标元素的html代码,需要对第一全局定位器进行更新,即解析其在新版本中对应的html代码,提取其唯一的属性即属性值,具体方法为:计算更新之前的目标网页(版本号为v1)“登录按钮对应”目标元素的的html标签代码和更新之后的目标网页中(版本号为v2)的所有html标签代码的相似度,相似度最高的一个html标签代码即为“登录按钮对应”目标元素在更新之后的目标网页中(版本号为v2)的html标签代码,之后提取该标签中的属性及唯一属性值作为“登录按钮对应”目标元素的第二全局定位器。从而实现将第二自动测试脚本中的第一全局定位器,替换为第二全局定位器的自动修改,如果不存在,则输出需要对第二自动测试脚本中的第一全局定位器进行手动更新的提示信息,由用户进行手动进行修复。
138.本发明实施例还提供了一种网页第一自动测试脚本生成装置,参照图4,示出了本发明一种网页第一自动测试脚本生成装置,该装置可以包括以下单元:
139.获取单元401,用于获取用户针对目标网页中目标元素输入的第一文本信息、辅助定位标识以及操作指令;
140.第一定位器生成单元402,用于截取目标网页的第一图像,并根据第一文本信息和第一图像,生成目标元素的第一文本定位器;
141.第二定位器生成单元403,用于根据辅助定位标识,生成目标元素的第一辅助定位器;
142.第三定位器生成单元404,用于获取目标网页的源代码,并根据源代码,生成目标元素的第一全局定位器;
143.脚本生成单元405,用于根据第一文本定位器、第一辅助定位器、第一全局定位器、以及操作指令,生成目标元素的第一自动测试脚本;
144.图像比对单元406,用于截取目标网页的第二图像,并根据第一图像与第二图像的
图像相似度,确定目标网页的更新区域;
145.第一更新单元407,用于在目标网页存在更新区域的情况下,根据第二图像,对第一自动测试脚本的第一文本定位器和第一辅助定位器进行更新,获得第二自动测试脚本;
146.第一执行单元408,用于用于根据第二自动测试脚本,执行回归测试;
147.第二更新单元409,用于在回归测试中断的情况下,根据更新后的目标网页的源代码,对第二自动测试脚本的第一全局定位器进行更新,获得第三自动测试的脚本;
148.第二执行单元410,根据第三自动测试的脚本,继续执行回归测试。
149.在一种可行的实施方式中,第一定位器生成单元包括:
150.提取子单元,用于提取第一图像中的第二文本信息,以及与第二文本信息对应的文本框的中心点坐标;
151.查找子单元,用于遍历第二文本信息,查找与第一文本信息匹配的目标第二文本信息;
152.封装子单元,用于将目标第二文本信息对应的文本框的中心点坐标,封装成目标元素的第一文本定位器。
153.在一种可行的实施方式中,第二定位器生成单元包括:
154.坐标确定子单元,用于确定相邻元素在第一图像中的坐标;
155.封装子单元,用于将相邻元素在第一图像中的坐标,封装成目标元素的第一辅助定位器。
156.在一种可行的实施方式中,第三定位器生成单元包括:
157.属性确定子单元,用于根据目标网页的源代码,确定目标元素的属性名及唯一属性值;
158.封装子单元,用于将目标元素的属性名及唯一属性值,封装成目标元素的第一全局定位器。
159.在一种可行的实施方式中,图像比对单元包括:
160.分割子单元,用于将第一图像和第二图像,分割为多个第一子图像和多个第二子图像;
161.相似度计算子单元,用于分别计算每个图像组的图像相似度,每个图像组包括一个第一子图像和一个对应的第二子图像;
162.目标图像组确定子单元,用于将图像相似度小于预设阈值的图像组,确定为目标图像组;
163.更新区域确定子单元,用于将目标图像组中的第二子图像对应的图像区域,确定为目标网页的更新区域。
164.在一种可行的实施方式中,第一更新单元包括:
165.提取子单元,用于提取第二图像中的第三文本信息,以及与第三文本信息对应的文本框的中心点坐标;
166.查找子单元,用于遍历第三文本信息,查找与第一文本信息匹配的目标第三文本信息;
167.第一封装子单元,用于将目标第三文本信息对应的文本框的中心点坐标,封装成目标元素的第二文本定位器;
168.第一封装子单元,用于确定第二图像中相邻元素坐标,并将相邻元素在第二图像中的坐标,封装成目标元素的第二辅助定位器;
169.替换子单元,用于将第一自动测试脚本中的第一文本定位器和第一辅助定位器,分别替换为第二文本定位器和第二辅助定位器。
170.在一种可行的实施方式中,第二更新单元包括:
171.属性获取子单元,用于获取第一全局定位器中目标元素的属性名和唯一属性值;
172.遍历子单元,用于遍历更新后的目标网页的源代码,查找是否存在与属性名和唯一属性值匹配的目标源代码;
173.更新子单元,用于在存在目标源代码的情况下,根据目标源代码的超文本语言标记代码,对目标元素的属性名和唯一属性值进行自动更新;
174.替换子单元,用于将更新后的目标元素的属性名及唯一属性值,封装成目标元素的第二全局定位器,并将第二自动测试脚本中的第一全局定位器,替换为第二全局定位器;
175.提示子单元,用于在未存在目标源代码的情况下,输出需要对第二自动测试脚本中的第一全局定位器进行手动更新的提示信息。
176.基于同一发明构思,本技术另一实施例提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行时实现本技术上述任一实施例所述的种植体模型生成方法中的步骤。本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
177.本技术实施例还提供了一种计算机可读存储介质,其上存储有指令,当由控制器执行时,使得控制器执行本技术实施例第一方面的方法步骤。
178.本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、系统、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用车辆(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
179.本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的系统。
180.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令系统的制造品,该指令系统实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
181.这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在
计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
182.最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。“和/或”表示可以选择两者之中的任意一个,也可以两者都选择。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
183.以上对本发明所提供的一种网页第一自动测试脚本生成、网页自动化测试方法及存储介质,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1