CN112685056A - 脚本更新方法及装置 - Google Patents
脚本更新方法及装置 Download PDFInfo
- Publication number
- CN112685056A CN112685056A CN201910995649.4A CN201910995649A CN112685056A CN 112685056 A CN112685056 A CN 112685056A CN 201910995649 A CN201910995649 A CN 201910995649A CN 112685056 A CN112685056 A CN 112685056A
- Authority
- CN
- China
- Prior art keywords
- interface control
- interface
- similarity
- script
- controls
- 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
- 238000013515 script Methods 0.000 title claims abstract description 279
- 238000000034 method Methods 0.000 title claims abstract description 73
- 230000008859 change Effects 0.000 claims abstract description 8
- 230000001960 triggered effect Effects 0.000 claims description 10
- 238000012216 screening Methods 0.000 claims description 7
- 238000004590 computer program Methods 0.000 claims description 5
- 238000012360 testing method Methods 0.000 description 13
- 238000010586 diagram Methods 0.000 description 10
- 238000004364 calculation method Methods 0.000 description 8
- 230000008569 process Effects 0.000 description 7
- 238000004891 communication Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 238000000605 extraction Methods 0.000 description 3
- 238000013527 convolutional neural network Methods 0.000 description 2
- 238000013135 deep learning Methods 0.000 description 2
- 239000012634 fragment Substances 0.000 description 2
- 238000012015 optical character recognition Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Landscapes
- Stored Programmes (AREA)
Abstract
本申请公开了一种脚本更新方法及装置,属于计算机技术领域。方法包括:对第二软件执行第一脚本;在第一代码片段执行失败时,获取第一界面控件的上下文信息,以及第二软件中多个候选界面控件的上下文信息;其中,任一界面控件的上下文信息用于指示:操作任一界面控件前后任一界面控件所在软件的界面的变化情况;确定第一界面控件的上下文信息与每个候选界面控件的上下文信息的相似度;基于确定出的相似度确定多个候选界面控件中的第二界面控件;将第一脚本中第一代码片段中的第一界面控件的标识替换为第二界面控件的标识,得到第二脚本。本申请解决了无法基于更新前的软件的脚本对更新后的软件进行测试的问题,本申请用于脚本的更新。
Description
技术领域
本申请涉及计算机技术领域,特别涉及一种脚本更新方法及装置。
背景技术
随着计算机技术的发展,基于图形用户界面(graphical user interface,GUI)的软件越来越多,这种软件包括界面控件。目前,对这种软件进行自动化测试得到越来越广泛的应用。
在对这种软件进行自动化测试时,通常需要对软件执行适用于操作该软件的脚本,进而根据该脚本的执行结果判定该软件是否存在故障。
但是,软件会有版本的更新,适用于更新前的软件的脚本无法适用于更新后的软件,导致无法基于更新前的软件的脚本对更新后的软件进行测试。
发明内容
本申请提供了一种脚本更新方法及装置,可以解决无法基于更新前的软件的脚本对更新后的软件进行测试的问题,所述技术方案如下:
一方面,提供了一种脚本更新方法,应用于将适用于操作第一软件的第一脚本更新为适用于操作第二软件的第二脚本,其中,所述第二软件基于所述第一软件得到,所述第一软件和所述第二软件均包括界面控件,所述第一脚本包括用于对所述第一软件中第一界面控件进行操作的第一代码片段,且所述第一代码片段包括第一界面控件的标识,其特征在于,所述方法包括:对所述第二软件执行所述第一脚本;在所述第一代码片段执行失败时,获取所述第一界面控件的上下文信息,以及所述第二软件中多个候选界面控件的上下文信息;其中,所述第一界面控件与所述多个候选界面控件中,任一界面控件的上下文信息用于指示:操作所述任一界面控件前后所述任一界面控件所在软件的界面的变化情况;确定所述第一界面控件的上下文信息与所述多个候选界面控件中每个候选界面控件的上下文信息的相似度;基于确定出的相似度确定所述多个候选界面控件中的第二界面控件;将所述第一脚本中所述第一代码片段中的所述第一界面控件的标识替换为所述第二界面控件的标识,得到所述第二脚本。
由于脚本更新装置能够通过比对第一软件中第一界面控件和第二软件中候选界面控件的上下文信息的相似度,以确定多个候选界面控件中用于替换第一界面控件的第二界面控件,进而根据该第一界面控件和第二界面控件更新第一软件的第一脚本,得到第二脚本。由于第二脚本中的代码片段用于操作的界面控件为第二软件中的界面控件,因此,第二脚本能够实现对第二软件进行操作。
并且,本申请实施例提供的脚本更新方法能够自动化地对第一脚本进行更新,无需工作人员过多的操作,因此,脚本更新过程中的人力成本较低,且难度也较低。
另外,本申请实施例中基于界面控件的上下文信息的相似度查找用于替换第一界面控件的第二界面控件。即使第二界面控件中与上下文信息不同的辅助信息发生了改变,但通过上下文信息也能够准确的查找到该第二界面控件,因此,本申请实施例中查找第二界面控件的准确度较高,脚本更新的效率也较高。
可选地,所述任一界面控件的上下文信息包括:操作所述任一界面控件所触发的界面的信息。该界面的信息可以为界面的特征。
可选地,当所述第一脚本还包括用于在所述第一代码片段之前执行的参考代码片段时,所述任一界面控件的上下文信息包括:所述任一界面控件与所述第一软件中参考界面控件的位置关系,所述参考代码片段用于对所述参考界面控件进行操作。该参考代码片段可以为第一代码片段的前一个代码片段,或者前几个代码片段,本申请实施例对此不作限定。
可选地,所述任一界面控件与所述参考界面控件的位置关系包括:所述任一界面控件与所述参考界面控件的距离,和/或,所述任一界面控件与所述参考界面控件的相对方位。示例地,任一界面控件与该参考界面控件的距离可以为:该任一界面控件与参考界面控件的欧式距离,或者,该欧式距离与终端的显示区域的对角线的长度之比,或者,该欧式距离与该显示区域某条边的长度之比);任一界面控件与其参考界面控件的相对方位可以为:参考界面控件的中心点到该任一界面控件的中心点连成的线与该显示区域的某条边的角度。
可选地,确定所述第一界面控件的上下文信息与所述多个候选界面控件中每个候选界面控件的上下文信息的相似度,包括:确定所述第一界面控件的上下文信息和所述每个候选界面控件的上下文信息中,所述界面的信息的相似度、所述距离的相似度以及所述相对方位的相似度中的至少一种相似度;基于所述至少一种相似度,确定所述第一界面控件的上下文信息和所述每个候选界面控件的上下文信息的相似度。上述距离的相似度可以采用距离相似度公式计算得到,该距离相似度公式包括:s2=1/(1+|d1-d2|),s2表示第一界面控件的上述距离d1与一个候选界面控件的上述距离d2的相似度,|d1-d2|表示d1-d2的绝对值;上述相对方位的相似度可以采用相对方位相似度公式计算得到,该相对方位相似度公式包括:s3=cos|a1-a2|,s3表示上述相对方位的相似度,a1表示第一界面控件的参考界面控件的中心点到该第一界面控件的中心点连成的线与该显示区域的某条边的角度,a2表示参考界面控件的中心点到该候选界面控件的中心点连成的线与该显示区域的某条边的角度,|a1-a2|表示a1-a2的绝对值,cos|a1-a2|表示|a1-a2|的余弦。
可选地,基于确定出的相似度确定所述多个候选界面控件中的第二界面控件,包括:将所述第一界面控件的上下文信息与所述每个候选界面控件的上下文信息的相似度,确定为所述每个候选界面控件对应的第一相似度;在所述多个候选界面控件中存在对应的第一相似度大于第一相似度阈值的至少一个候选界面控件时,确定所述至少一个候选界面控件中对应最大第一相似度的界面控件为所述第二界面控件。可以看出,脚本更新装置是在多个候选界面控件中,依据候选界面控件对应的第一相似度和第一相似度阈值,挑选上下文信息与第一界面控件的上下文信息的相似度较高的第二界面控件。该第二界面控件很有可能与第一界面控件为用于实现同一功能的界面控件,该第二界面控件可以为用于替换第一界面控件的界面控件。
可选地,所述方法还包括:在获取所述多个候选界面控件的上下文信息之前,在目标界面的多个初始界面控件中筛选所述多个候选界面控件,其中,所述目标界面为:对所述第二软件执行所述第一脚本中的所述第一代码片段时的界面。示例地,该多个初始界面控件可以为目标界面中的全部界面控件,当然,该多个初始界面控件也可以为目标界面中的部分界面控件,本申请实施例对此不作限定。由于用于替换第一界面控件的界面控件最有可能在对所述第二软件执行所述第一脚本中的所述第一代码片段时的目标界面中,因此,直接在目标界面中的多个初始界面控件中筛选多个候选界面控件能够加快候选界面控件的筛选效率。
可选地,所述在目标界面的多个初始界面控件中筛选所述多个候选界面控件,包括:获取所述第一界面控件的辅助信息,以及所述多个初始界面控件中每个初始界面控件的辅助信息,任一界面控件的辅助信息包括:所述任一界面控件的图像信息和/或文本信息;基于所述第一界面控件的辅助信息中任一种信息与所述每个初始界面控件的辅助信息中所述任一种信息的相似度,确定所述目标界面中的所述多个候选界面控件。脚本更新装置基于界面控件的辅助信息中每种信息的相似度,初步确定了多个初始界面控件中的多个候选界面控件,该多个候选界面控件具有较大概率为用于更新第一界面控件的界面控件。在确定该多个候选界面控件之后,可以通过后续步骤,进一步在多个候选界面控件中确定用于更新第一界面控件的界面控件。
可选地,所述任一界面控件的辅助信息包括:所述任一界面控件的图像信息和文本信息,基于所述第一界面控件的辅助信息中任一种信息与所述每个初始界面控件的辅助信息中所述任一种信息的相似度,确定所述目标界面中的所述多个候选界面控件,包括:将所述多个初始界面控件中对应的图像相似度大于目标图像相似度的界面控件,和/或,所述多个初始界面控件中对应的文本相似度大于目标文本相似度的界面控件,确定为所述多个候选界面控件;其中,所述每个初始界面控件对应的图像相似度包括:所述第一界面控件的图像信息与所述每个初始界面控件的图像信息的相似度;所述每个初始界面控件对应的文本相似度包括:所述第一界面控件的文本信息与所述每个初始界面控件的文本信息的相似度;所述目标图像相似度为所述多个初始界面控件对应的图像相似度中的任一非最大图像相似度,所述目标文本相似度为所述多个初始界面控件对应的文本相似度中的任一非最大文本相似度。
可选地,将所述多个初始界面控件中对应的图像相似度大于目标图像相似度的界面控件,和/或,所述多个初始界面控件中对应的文本相似度大于目标文本相似度的界面控件,确定为所述多个候选界面控件,包括:在所述多个初始界面控件对应的图像相似度和文本相似度均小于第二相似度阈值时,将所述多个初始界面控件中对应的图像相似度大于目标图像相似度的界面控件,和/或,所述多个初始界面控件中对应的文本相似度大于目标文本相似度的界面控件,确定为所述多个候选界面控件。
可选地,所述方法还包括:在所述多个初始界面控件中存在对应的目标相似度大于或等于所述第二相似度阈值的至少一个初始界面控件时,将所述至少一个初始界面控件中对应最大目标相似度的界面控件确定为第三界面控件,所述目标相似度为:所述图像相似度或所述文本相似度;将所述第一脚本中所述第一代码片段中所述第一界面控件的标识替换为所述第三界面控件的标识,得到所述第二脚本。
可见,当多个初始界面控件中存在对应的目标相似度大于或等于第二相似度阈值的至少一个初始界面控件时,脚本更新装置可以确定该至少一个初始界面控件与第一界面控件的相似度较高,因此,可以直接将该至少一个初始界面控件中的第三界面控件作为用于替换第一界面控件的界面控件。如果多个初始界面控件对应的图像相似度和文本相似度均小于第二相似度阈值,则可以脚本更新装置可以确定当前多个初始界面控件与第一界面控件的相似度均较低,此时,脚本更新装置可以在该多个初始界面控件中挑选对应的目标相似度较高的初始界面控件作为候选界面控件。
可选地,所述方法还包括:在所述第一脚本中的所述第一代码片段执行失败时,检测所述第一代码片段中界面控件的标识是否被替换过;所述获取所述第一代码片段用于操作的第一界面控件的上下文信息,以及所述第二软件中多个候选界面控件的上下文信息,包括:在所述第一代码片段中界面控件的标识未被替换过时,获取所述第一代码片段用于操作的第一界面控件的上下文信息,以及所述第二软件中多个候选界面控件的上下文信息。当第一代码片段中界面控件的标识未被替换过时,说明该第一代码片段执行失败的原因很有可能是界面控件在第二软件中进行了更新,此时脚本更新装置可以获取第一软件中第一界面控件的上下文信息,以及第二软件中多个候选界面控件的上下文信息。当第一代码片段中界面控件的标识被替换过时,说明该第一代码片段执行失败的原因并不是界面控件在第二软件中进行了更新,因此,脚本更新装置无需执行后续步骤,而是立即结束,由工作人员对第一代码片段执行失败的原因进行进一步地分析。这样一来,可以加快确定第一脚本更新的效率。
可选地,所述获取所述第一界面控件的上下文信息,包括:在上下文信息库中获取所述第一界面控件的上下文信息;所述方法还包括:在所述上下文信息库中存储所述多个候选界面控件的上下文信息。
另一方面,提供了一种脚本更新装置,所述脚本更新装置包括:用于执行上一方面提供的脚本更新方法的各个模块。
另一方面,提供了一种脚本更新装置,所述脚本更新装置包括:至少一个处理器、至少一个接口、存储器和至少一个通信总线,所述处理器用于执行所述存储器中存储的程序,以实现本申请提供的脚本更新方法。
另一方面,提供了一种可读存储介质,所述存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现本申请提供的脚本更新方法。
附图说明
图1为本申请实施例提供的一种界面示意图;
图2为本申请实施例提供的另一种界面示意图;
图3为本申请实施例提供的一种脚本更新装置的结构示意图;
图4为本申请实施例提供的一种脚本更新方法的流程图;
图5为本申请实施例提供的另一种界面示意图;
图6为本申请实施例提供的另一种界面示意图;
图7为本申请实施例提供的一种第一软件的界面示意图;
图8为本申请实施例提供的一种第二软件的界面示意图;
图9为本申请实施例提供的另一种脚本更新装置的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
GUI软件通常包括多个界面控件(如文本框、按钮、下拉式菜单等界面元素),界面控件可以称为图形用户接口/图形用户界面(graphical user interface,GUI)控件。界面控件指可以在界面中显示的可视化图形“元件”,如按钮、文本框等,并且,界面控件封装了数据和方法,通过对控件的操作能够触发一些逻辑的执行。终端在运行软件时,通常可以根据需要显示多个界面控件中的至少部分界面控件。此处的界面可以为终端的界面。
在软件发布之前,工作人员通常需要采用至少一个脚本(如测试脚本)对软件进行测试,以确定该软件是否故障。示例地,软件的脚本通常包括用于依次执行的多个代码片段,每个代码片段用于对该软件中一个界面控件进行操作,且该多个代码片段用于操作的界面控件可以相同也可以不同。每个代码片段包括该代码片段用于操作的界面控件的标识,以及对该界面控件执行的操作的指示信息。示例地,上述界面控件的标识可以通过多种方式实现,比如,界面控件的编号,界面控件的图像,界面控件的图像的存储地址,界面控件的图像的名称,或者界面控件的图像的编号等。
在对软件进行测试时,需要对软件执行该脚本(也即是依次执行该脚本中记录的多个代码片段)。比如,脚本包括用于依次执行的代码片段1和代码片段2,且代码片段1指示对软件中的界面控件1进行操作(如点击或者输入文本等操作),代码片段2指示对软件中的界面控件2进行操作。终端在对软件执行该脚本时,如图1所示,终端可以首先显示图1所示的界面(该界面包括界面控件1);之后,终端执行该脚本中的代码片段1(比如点击界面控件1),以使终端显示如图2所示的界面(该界面包括界面控件2、界面控件3和界面控件4);最后,终端执行该脚本中的代码片段2(比如点击界面控件2)。
若采用至少一个脚本对软件进行测试后,该至少一个脚本均执行成功,则工作人员确定该软件并不存在故障。若该至少一个脚本中存在执行失败的脚本,则工作人员确定该软件存在故障,并可以基于该执行失败的脚本对该软件进行修复。
随着技术的发展,软件经常存在更新换代的情况,使得软件具有多个版本(软件的不同版本通常存在一个或多个界面控件不同)。并且,在每个版本的软件发布之前,工作人员都需要对该版本的软件进行测试。但是,由于不同版本的软件中的界面控件存在不同的情况,因此,在基于某一版本的软件(如称为第一软件)的脚本对该第一软件进行测试后,若需要对另一版本的软件(如称为第二软件)进行测试,则该脚本无法适用于该第二软件的测试。
在这种情况下,工作人员通常可以采用以下几种做法,以对第二软件进行测试。
做法一:工作人员需要重新编写第二软件的脚本,并用该脚本对第二软件进行测试。这样一来,就导致工作人员需要为每个版本的软件编写脚本,工作量较大,对第二软件的测试效率较低。
做法二:工作人员可以手动对第一软件的脚本进行更改,以使更改后的脚本能够适用于第二软件。但是,该过程较为费时费力,且难度较高,对第二软件测试的人力成本较高。
做法三:预先录制第一软件中界面控件(称之为旧界面控件)的属性信息。之后,根据旧界面控件的属性信息以及第二软件中界面控件(称之为新界面控件)的属性信息,在第二软件中查找旧界面控件对应的新界面控件,之后,再将第一软件的脚本中的旧界面控件替换为对应的新界面控件,从而得到第二软件的脚本。其中,界面控件的属性信息可以包括:界面控件的父窗口的标题和/或类名,界面控件相对于父窗口的位置坐标,以及在该位置坐标处预设尺寸的图像。此时,根据旧界面控件的属性信息以及新界面控件的属性信息,在第二软件中查找旧界面控件对应的新界面控件的过程包括:首先,根据旧界面控件的父窗口的标题和/或类名,找到第二软件中具有该标题和/或类名的父窗口;之后,再根据旧界面控件相对于其父窗口的位置坐标,截取第二软件中该位置处预设尺寸的图像;最后,对旧界面控件的属性信息中的图像与第二软件中截取的图像进行相似度计算,若相似度高,则该图像所在位置的新界面控件即该旧界面控件对应的新界面控件。但是,当新界面控件与旧界面控件的位置变化较大时,较容易在第二软件中找错新界面控件,进而导致得到的第二软件的脚本出错。另外,当新界面控件的图像相对旧界面控件的图像变化较大,但是新界面控件的图像所体现的文本相对旧界面控件图像所体现的文本不变或含义变化不大时,也容易在第二软件中找错新界面控件,进而导致得到的第二软件的脚本出错。
可以看出,相关技术中的三种脚本更新方法均存在各种各样的问题,导致得到第二软件的脚本的效率较低,且准确度较低,人力成本较高。本申请实施例提供了一种脚本更新方法,该方法能够快速有效地对脚本进行更新,且人力成本较低。
本申请实施例提供的脚本更新方法可以用于本申请实施例提供的脚本更新装置,图3为本申请实施例提供的一种脚本更新装置的结构示意图,如图3所示,该脚本更新装置可以包括:存储器301和处理器302,该存储器301中存储有程序,该处理器302用于执行存储器301中存储的程序,以实现本申请实施例提供的脚本更新方法。可选地,该脚本更新装置还可以包括:至少一个接口303(图3中示出了一个接口)以及至少一个通信总线304(图3示出了一个通信总线)。接口303用于与其它存储装置或网络装置进行通信。存储器302与接口303分别通过通信总线304与处理器301连接。
示例地,图4为本申请实施例提供的一种脚本更新方法的流程图,该脚本更新方法可以用于本申请实施例提供的脚本更新装置(如图3所示的脚本更新装置)。该脚本更新方法可以应用于将适用于操作第一软件的第一脚本更新为适用于操作第二软件的第二脚本,其中,第一软件和第二软件均包括界面控件(也即该第一软件和第二软件均可以为GUI软件),第二软件基于第一软件得到。第一脚本和第二脚本可以为测试脚本,或者与测试脚本不同的其他操作脚本,本申请实施例对此不作限定。
如图4所示,该脚本更新方法可以包括:
步骤401、对第二软件执行第一脚本。
第一脚本为适用于操作该第一软件的脚本,第一脚本包括指示对第一软件中第一界面控件进行操作的第一代码片段,且第一代码片段包括第一界面控件的标识。可选地,该第一脚本可以包括用于依次执行的多个代码片段,且该多个代码片段中的每个代码片段指示对第一脚本中的一个界面控件进行操作,这些代码片段用于操作的界面控件可以相同,也可以不同,上述第一代码片段可以为该多个代码片段中的任一代码片段。
第二软件基于第一软件得到,比如第二软件可以由对第一软件进行修改得到,第二软件可以为第一软件的新版本;可选地,第二软件也可以由对第一软件进行修改得到的软件修改得到,此时,第二软件可以为第一软件的新版本的新版本。本申请实施例对第二软件是第一软件的哪个新版本不作限定。
在步骤401中,脚本更新装置可以首先获取该第一脚本(比如工作人员可以将第一脚本输入该脚本更新装置,以使脚本更新装置获取到第一脚本)。之后,脚本更新装置可以依据该第一脚本,对第二软件中的界面控件依次进行第一脚本中的多个代码片段,以实现对第二软件执行第一脚本的目的。
步骤402、当第一脚本中的第一代码片段执行失败时,获取第一界面控件的辅助信息,以及目标界面中多个初始界面控件的辅助信息。
在对第二软件执行第一脚本的过程中,脚本更新装置需要不断地判断第一脚本中的每个代码片段是否执行成功。示例地,若第一脚本中依次执行的多个代码片段均执行成功,则认为第一脚本执行成功;一旦发现第一脚本中依次执行的多个代码片段中存在执行失败的代码片段,则脚本更新装置可以将该代码片段作为第一代码片段
当发现第一代码片段执行失败时,脚本更新装置确定当前第一脚本中记载的界面控件可能需要更换。此时,脚本更新装置可以首先确定第一代码片段用于操作的第一界面控件,并获取第一界面控件的辅助信息。
当发现第一代码片段执行失败时,脚本更新装置还可以确定目标界面,该目标界面为:对第二软件执行第一代码片段时的界面。之后,脚本更新装置可以获取该目标界面中的多个初始界面控件,并获取多个初始界面控件中每个初始界面控件的辅助信息。示例地,该多个初始界面控件可以为目标界面中的全部界面控件,当然,该多个初始界面控件也可以为目标界面中的部分界面控件,本申请实施例对此不作限定。
可选地,对于每个界面控件,界面控件的辅助信息包括:该界面控件的图像信息(如界面控件中图像的特征)和/或文本信息(如界面控件中图像所显示的文本的特征)。比如,界面控件的辅助信息包括:该界面控件的图像信息,或者,该界面控件的文本信息,或者,该界面控件的文本信息和图像信息。本发明实施例中以界面控件的辅助信息包括图像信息和文本信息为例。需要说明的是,若某一界面控件的图像并未显示有文本,则该界面控件的文本信息为预设值(如0)。
可选地,界面控件的图像信息可以为图像特征,脚本更新装置可以采用传统图像特征提取方法,如尺度不变特征变换(scale-invariant feature transform,SIFT)、方向梯度直方图(histogram of oriented gradient,HOG)或深度学习方法等提取得到图像特征(通常可以用数值向量标识)。该深度学习方法例如是卷积神经网络(convolutionalneural network,CNN)的方法等。
脚本更新装置在提取界面控件的文本信息时,可以首先采用文本识别技术获取界面控件的图像所显示的文本,该文本识别技术可以包括:光学字符识别(OCR)技术、模板匹配技术等从界面控件图像中提取文本的技术。然后,脚本更新装置可以将该文本通过语义特征提取模型转换为文本信息(如包括语义信息且便于运算的数值向量)。该语义特征提取模型可以如:各类词嵌入(word embedding)模型。
步骤403、确定第一界面控件的辅助信息中任一种信息与多个初始界面控件中每个初始界面控件的辅助信息中该任一种信息的相似度。
可选地,任一界面控件的辅助信息包括:该任一界面控件的图像信息和文本信息。此时,脚本更新装置可以计算第一界面控件的图像信息与每个初始界面控件的图像信息的相似度,并将第一界面控件的图像信息与每个初始界面控件的图像信息的相似度,确定为该每个初始界面控件对应的图像相似度。脚本更新装置还可以计算第一界面控件的文本信息与每个初始界面控件的文本信息的相似度,并将第一界面控件的文本信息与每个初始界面控件的文本信息的相似度,确定为该每个初始界面控件对应的文本相似度。
脚本更新装置在计算上述相似度(如图像相似度或文本相似度)时,可以采用向量相似度计算方法,如余弦相似度计算方法、基于欧几里得距离的相似度计算方法等。当然,脚本更新装置也可以采用除向量相似度计算方法之外的计算方法,如在计算文本相似度时,可以采用集合相似度的计算方法、杰卡德(Jaccard)相似度计算方法等,本申请实施例对此不作限定。
步骤404、基于第一界面控件的辅助信息中任一种信息与每个初始界面控件的辅助信息中该任一种信息的相似度,确定多个初始界面控件中的多个候选界面控件。
脚本更新装置在确定第一界面控件的辅助信息中任一种信息与初始界面控件的辅助信息中任一种信息的相似度后,可以将多个初始界面控件中对应的图像相似度大于目标图像相似度的界面控件,和/或,多个初始界面控件中对应的文本相似度大于目标文本相似度的界面控件,确定为多个候选界面控件;其中,目标图像相似度为多个初始界面控件对应的图像相似度中的任一非最大图像相似度,目标文本相似度为多个初始界面控件对应的文本相似度中的任一非最大文本相似度。
比如,脚本更新装置可以将多个初始界面控件中对应的图像相似度按照从大到小的顺序排序,并确定这些图像相似度中排在第k+1位的图像相似度为目标图像相似度,之后,将第1位图像相似度至第k位图像相似度对应的界面控件均确定为候选界面控件。脚本更新装置可以将多个初始界面控件中对应的文本相似度按照从大到小的顺序排序,并确定这些文本相似度中排在第h+1位的图像相似度为目标图像相似度,之后,将第1位图像相似度至第h位图像相似度对应的界面控件均确定为候选界面控件。
其中,当多个候选界面控件仅包括上述第1位图像相似度至第k位图像相似度对应的界面控件时,k≥2;当多个候选界面控件仅包括上述第1位图像相似度至第h位文本相似度对应的界面控件时,h≥2;当多个候选界面控件不仅包括上述第1位图像相似度至第k位图像相似度对应的界面控件,还包括上述第1位图像相似度至第h位文本相似度对应的界面控件时,k+h≥2。
示例地,假设多个初始界面控件包括:初始界面控件1、初始界面控件2、初始界面控件3和初始界面控件4,初始界面控件1对应的图像相似度为98%,初始界面控件1对应的文本相似度为50%;初始界面控件2对应的图像相似度为90%,初始界面控件2对应的文本相似度为60%;初始界面控件3对应的图像相似度为85%,初始界面控件3对应的文本相似度为50%;初始界面控件4对应的图像相似度为80%,初始界面控件4对应的文本相似度为55%。若k=h=2,则脚本更新装置可以将这四个初始界面控件中对应的图像相似度较高的两个界面控件(分别为初始界面控件1和2)确定为多个候选界面控件,或者,脚本更新装置可以将这四个初始界面控件中对应的文本相似度较高的两个界面控件(分别为初始界面控件2和4)确定为多个候选界面控件。
可以看出,脚本更新装置在步骤404中基于界面控件的辅助信息中每种信息的相似度,初步确定了多个初始界面控件中的多个候选界面控件,该多个候选界面控件具有较大概率为用于更新第一界面控件的界面控件。在确定该多个候选界面控件之后,可以通过后续步骤,进一步在多个候选界面控件中确定用于更新第一界面控件的界面控件。
步骤405、获取第一界面控件的上下文信息,以及多个候选界面控件的上下文信息。
在进一步确定多个候选界面控件中用于更新第一界面控件的界面控件时,可以基于界面控件的上下文信息的相似度确定该用于更新第一界面控件的界面控件。示例地,在步骤405中,脚本更新装置可以获取第一界面控件的上下文信息,以及多个候选界面控件的上下文信息,以便于后续基于获取到的上下文信息在多个候选界面控件中确定用于更新第一界面控件的第二界面控件。
示例地,第一界面控件与多个候选界面控件中,任一界面控件的上下文信息用于指示:操作该任一界面控件前后该任一界面控件所在软件的界面的变化情况。此时,第一界面控件的上下文信息用于指示:操作第一界面控件前后第一软件的界面的变化情况。候选界面控件的上下文信息用于指示:操作该候选界面控件前后第二软件的界面的变化情况。
示例地,上述任一界面控件的上下文信息用于指示:该任一界面控件与至少一个其他代码片段用于操作的界面控件的关系,和/或,操作该任一界面所触发的界面。其中,该其他代码片段为第一脚本中与第一代码片段不同的代码片段(比如在该第一代码片段之前执行的代码片段,或在第一代码片段之后执行的代码片段)。可选地,任一界面控件的上下文信息包括:操作该任一界面控件所触发的界面的信息(如界面的特征)。又可选地,当第一脚本包括用于在第一代码片段之前操作的参考代码片段时,上述任一界面控件的上下文信息包括:该任一界面控件与第一软件中该参考代码片段用于操作的参考界面控件的位置关系。该参考代码片段可以为第一代码片段的前一个执行的代码片段,或者前几个执行的代码片段,本申请实施例对此不作限定。
示例地,该任一界面控件与该参考界面控件的位置关系可以包括:该任一界面控件与该参考界面控件的距离(在终端的显示区域的距离),和/或,该任一界面控件与该参考界面控件的相对方位(在终端的显示区域的相对方位)。示例地,任一界面控件与该参考界面控件的距离可以为:该任一界面控件与参考界面控件的欧式距离,或者,该欧式距离与终端的显示区域的对角线的长度之比,或者,该欧式距离与该显示区域某条边的长度之比);任一界面控件与参考界面控件的相对方位可以为:参考界面控件的中心点到该任一界面控件的中心点连成的线与该显示区域的某条边的角度。
例如,图5和图6为本申请实施例提供的两种界面示意图,假设第一脚本中的第一个代码片段指示对图5中的界面控件51进行点击,且在图5中的界面控件51被点击后,终端可以显示如图6所示的界面;第一脚本中的第二个代码片段指示对图6中的界面控件61进行点击。若该第二个代码片段执行失败,则脚本更新装置可以将第二个代码片段确定为上述第一代码片段,并且此时可以将该第一个代码片段作为参考代码片段。第二个代码片段指示的界面控件61为第一界面控件,第一个代码片段用于操作的界面控件51为参考界面控件。此时,第一界面控件(界面控件61)与参考界面控件(界面控件51)的相对方位为:参考界面控件左上方120度位置,第一界面控件与参考界面控件的距离为90毫米。
步骤406、确定第一界面控件的上下文信息与多个候选界面控件中每个候选界面控件的上下文信息的相似度。
在步骤406中脚本更新装置可以首先确定第一界面控件的上下文信息和每个候选界面控件的上下文信息中,界面的信息的相似度、距离的相似度以及相对方位的相似度中的至少一种相似度;之后,再基于该至少一种相似度,确定第一界面控件的上下文信息和每个候选界面控件的上下文信息的相似度。示例地,本申请实施例中以该至少一种相似度同时包括上述界面的信息的相似度、距离的相似度以及相对方位的相似度为例。
上述界面的信息的相似度的计算方法可以参考步骤403中图像相似度的计算方法,本申请实施例在此不做赘述。
上述距离的相似度可以采用距离相似度公式计算得到,该距离相似度公式包括:s2=1/(1+|d1-d2|),s2表示第一界面控件的上述距离d1与一个候选界面控件的上述距离d2的相似度,|d1-d2|表示d1-d2的绝对值;
上述相对方位的相似度可以采用相对方位相似度公式计算得到,该相对方位相似度公式包括:s3=cos|a1-a2|,s3表示上述相对方位的相似度,a1表示第一界面控件的参考界面控件的中心点到该第一界面控件的中心点连成的线与该显示区域的某条边的角度,a2表示参考界面控件的中心点到该候选界面控件的中心点连成的线与该显示区域的某条边的角度,|a1-a2|表示a1-a2的绝对值,cos|a1-a2|表示|a1-a2|的余弦。
进一步地,当该至少一种相似度同时包括上述界面的信息的相似度、距离的相似度以及相对方位的相似度时,脚本更新装置在确定第一界面控件的上下文信息和每个候选界面控件的上下文信息的相似度时,可以基于界面的信息的相似度、距离的相似度以及相对方位的相似度,以及相似度权重公式,计算该上下文信息的相似度。其中,相似度权重公式包括:S=q1*s1+q2*s2+q3*s3;S表示第一界面控件的上下文信息与一个候选界面控件的上下文信息的相似度;s1表示第一界面控件的上述界面的信息与该候选界面控件的上述界面的信息的相似度;s2表示第一界面控件的上述距离与该候选界面控件的上述距离的相似度;s3表示第一界面控件的上述相对方位与该候选界面控件的上述相对方位的相似度;q1为s1的权重,q2为s2的权重,q3为s3的权重,q1、q2和q3均大于或等于零,且小于或等于1,且q1+q2+q3=1。
步骤407、基于第一界面控件的上下文信息与多个候选界面控件中每个候选界面控件的上下文信息的相似度,确定多个候选界面控件中的第二界面控件。
在步骤407中,脚本更新装置可以首先将第一界面控件的上下文信息与每个候选界面控件的上下文信息的相似度,确定为该每个候选界面控件对应的第一相似度。之后,脚本更新装置可以判断该多个候选界面控件中每个候选界面控件对应的第一相似度是否大于第一相似度阈值。在该多个候选界面控件中存在对应的第一相似度大于第一相似度阈值的至少一个候选界面控件时,脚本更新装置可以确定该至少一个候选界面控件中对应最大第一相似度的界面控件为第二界面控件。
比如,假设多个候选界面控件包括:界面控件1、界面控件2和界面控件3,并且,界面控件1对应的第一相似度为80%,界面控件2对应的第一相似度为90%,界面控件3对应的第一相似度为50%。若该第一相似度阈值为70%,则脚本更新装置可以确定界面控件1和界面控件2对应的第一相似度均大于该第一相似度阈值,且界面控件3对应的第一相似度小于该第一相似度阈值。之后,脚本更新装置可以将界面控件1和界面控件2中对应最大第一相似度的界面控件(界面控件2)确定为上述第二界面控件。
可以看出,脚本更新装置在步骤407中是在多个候选界面控件中,依据候选界面控件对应的第一相似度和第一相似度阈值,挑选上下文信息与第一界面控件的上下文信息的相似度较高的第二界面控件。该第二界面控件很有可能与第一界面控件为用于实现同一功能的界面控件,该第二界面控件可以为用于替换第一界面控件的界面控件。
步骤408、将第一脚本记录的第一代码片段中的第一界面控件的标识替换为第二界面控件的标识,得到第二脚本。
脚本更新装置在确定出第二界面控件后,可以对该第一脚本中的第一代码片段进行调整,以使该第一代码片段中的界面控件标识由第一界面控件的标识替换为第二界面控件的标识。这样一来,再对该第二软件执行第二脚本时,该第一代码片段就很有可能能够执行成功。
需要说明的是,将第一脚本记录的第一代码片段中的第一界面控件的标识替换为第二界面控件的标识,便可以完成对第一代码片段的更新。本申请实施例中以第一脚本中仅存在一个需要更新的代码片段(也即上述第一代码片段)为例。可选地,该第一脚本中也可以有多个需要更新的代码片段,在将第一脚本记录的第一代码片段中的第一界面控件的标识替换为第二界面控件的标识后,还可以继续对第二软件执行第一脚本中剩余的代码片段,并参考上述步骤402至步骤408,一旦发现执行失败的代码片段,就参考对第一代码片段更新的过程,对该执行失败的代码片段进行更新。当第一脚本中的所有代码片段均执行成功时,脚本更新装置可以认为第一脚本已经更新为能够适用于操作第二软件的第二脚本。
另外,上述实施例中以第一脚本中存在执行失败的代码片段为例,当该第一脚本中不存在执行失败的脚本时,脚本更新装置可以确定该第一脚本也即是能够适用于操作第二软件的第二脚本,本申请实施例对此不作限定。
步骤404中以脚本更新装置在确定第一界面控件与初始界面控件的辅助信息中每种信息的相似度之后,直接将多个初始界面控件中对应的图像相似度大于目标图像相似度的界面控件,和/或,多个初始界面控件中对应的文本相似度大于目标文本相似度的界面控件,确定为多个候选界面控件为例。可选地,也可以是脚本更新装置在确定第一界面控件与初始界面控件的辅助信息中每种信息的相似度之后,首先判断每个初始界面控件对应的图像相似度和文本相似度是否均小于第二相似度阈值。之后,在多个初始界面控件对应的图像相似度和文本相似度均小于第二相似度阈值时,才将多个初始界面控件中对应的图像相似度大于目标图像相似度的界面控件,和/或,多个初始界面控件中对应的文本相似度大于目标文本相似度的界面控件,确定为多个候选界面控件。
此时,该脚本更新方法还可以包括:在多个初始界面控件中存在对应的目标相似度大于或等于第二相似度阈值的至少一个初始界面控件时,脚本更新装置将至少一个初始界面控件中对应最大目标相似度的界面控件确定为第三界面控件,该目标相似度为:图像相似度或文本相似度;之后,脚本更新装置再将所述第一脚本中第一代码片段中的第一界面控件的标识替换为第三界面控件的标识,得到上述第二脚本。
可见,当多个初始界面控件中存在对应的目标相似度大于或等于第二相似度阈值的至少一个初始界面控件时,脚本更新装置可以确定该至少一个初始界面控件与第一界面控件的相似度较高,因此,可以直接将该至少一个初始界面控件中的第三界面控件作为用于替换第一界面控件的界面控件。如果多个初始界面控件对应的图像相似度和文本相似度均小于第二相似度阈值,则可以脚本更新装置可以确定当前多个初始界面控件与第一界面控件的相似度均较低,此时,脚本更新装置可以在该多个初始界面控件中挑选对应的目标相似度较高的初始界面控件作为候选界面控件。
上述实施例中以在第一脚本执行失败时,脚本更新装置直接获取第一界面控件的辅助信息,以及多个初始界面控件中每个初始界面控件的辅助信息为例。可选地,也可以是在第一脚本执行失败时,脚本更新装置检测第一代码片段中界面控件的标识是否被替换过。当第一代码片段中界面控件的标识未被替换过时,说明该第一代码片段执行失败的原因很有可能是界面控件在第二软件中进行了更新,此时脚本更新装置可以获取第一界面控件的辅助信息,以及多个初始界面控件中每个初始界面控件的辅助信息。当第一代码片段中界面控件的标识被替换过时,说明该第一代码片段执行失败的原因并不是界面控件在第二软件中进行了更新,因此,脚本更新装置无需执行后续步骤,而是立即结束,由工作人员对第一代码片段执行失败的原因进行进一步地分析。这样一来,可以加快确定第一脚本更新的效率。
可选地,上述实施例中以在第二软件中的多个初始界面控件中筛选上述多个候选界面控件为例,当然,该多个候选界面控件也可以为第二软件中的全部界面控件(此时无需执行步骤402至404),或者,该多个候选界面控件也可以是随机在第二软件中挑选的部分界面控件(此时无需执行步骤402至404),本申请实施例对此不作限定。
可选地,脚本更新装置可以维护有一个上下文信息库。此时,上述步骤405中脚本更新装置可以在该上下文信息库中获取第一界面控件的上下文信息。比如,该上下文信息库用于存储多个软件的脚本对应的上下文信息组,该上下文信息组可以包括该脚本中每个代码片段用于操作的界面控件的上下文信息,步骤405中脚本更新装置可以在该上下文信息库中第一软件的脚本对应的上下文信息组中,获取第一界面控件的上下文信息。
示例地,每个软件可以具有一个或多个脚本,该上下文信息库包括:每个脚本对应的上下文信息组。比如,在该上下文信息库中,每个脚本对应的上下文信息组可以通过该脚本的标识对应的上下文信息表记录,脚本的标识可以是脚本的编号(也称ID)或名称。例如,该上下文信息表可以下表1所示,其中,该上下文信息表可以包括:该脚本中的代码片段(如通过记录代码片段的ID记录该代码片段),代码片段用于操作的界面控件(如通过记录界面控件的ID记录界面控件),基于代码片段操作界面控件所触发的界面的信息,代码片段用于操作的界面控件与参考界面控件的距离,代码片段用于操作的界面控件与参考界面控件的相对方位。可选地,该上下文信息表还可以包括根据代码片段操作界面控件所触发的界面的保存路径,以及参考界面控件(如通过记录参考界面控件ID记录该参考界面控件)。需要说明的是,若某一代码片段不具有参考代码片段时,可以将该代码片段用于操作的界面控件与参考界面控件的相对方位置零,将该代码片段用于操作的界面控件与参考界面控件的距离也置零,参考界面控件ID也可以置零。
表1
脚本更新装置在获取第一界面控件的上下文信息时,可以首先基于第一软件的信息(如版本号)以及第一脚本的标识,在上下文信息库中查找第一软件的第一脚本对应的上下文信息表。之后,脚本更新装置可以将该上下文信息表中第一代码片段(指示第一界面控件的代码片段)的ID对应的上述方位、上述距离以及上述界面的信息作为该第一界面控件的上下文信息。在这种情况下,在获取到多个候选界面控件的上下文信息后,脚本更新装置还可以在上下文信息库中存储这些候选界面控件的上下文信息,比如存储第二软件的脚本对应的上下文信息组,该上下文信息组包括:第二软件的脚本中每个代码片段用于操作的界面控件的上下文信息。这样一来,当在基于第二软件得到其他软件时,在执行图4所示的方法的过程中,将原先的第二软件作为图4所示的方法中的第一软件,将该其他软件作为图4所示的方法中的第二软件,并直接在上下文信息库中查找到第一界面控件的上下文信息。
进一步地,脚本更新装置还可以维护有一个辅助信息库,该辅助信息库用于存储软件的每个界面控件的辅助信息。此时,上述步骤402中脚本更新装置可以在该辅助信息库中查找第一界面控件和初始界面控件的辅助信息。
示例地,该辅助信息库可以包括软件对应的如表2所示的辅助信息表,其中,该辅助信息表可以包括:该软件中的界面控件(如通过记录界面控件的ID记录界面控件),界面控件中的图像所显示的文本,界面控件中图像所显示的文本的信息(也即界面控件的文本信息),界面控件的保存路径,界面控件中图像的信息,界面控件所在界面的标识(如ID),以及界面控件在终端的显示区域中的位置。
表2
脚本更新装置在获取任意界面控件的辅助信息时,可以首先获取界面控件的ID,之后,再根据该界面控件的ID在辅助信息库中查找该界面控件的ID对应的辅助信息(如上述界面控件的文本信息,以及界面控件的图像信息)。其中,脚本更新装置在获取第一界面控件的ID时,可以在上下文信息库中获取第一代码片段的ID对应的第一界面控件的ID。需要说明的是,若该辅助信息库不包括某一界面控件的ID对应的辅助信息,则需要脚本更新装置采用其他方式(如接收工作人员输入的辅助信息)获取该辅助信息,之后,再将获取到的辅助信息加入该辅助信息库。
图4所示的实施例中以脚本更新装置先获取辅助信息,再获取上下文信息为例。可选地,脚本更新装置也可以先获取上下文信息,再获取该辅助信息。
以下将以一个示例对图4所示的脚本更新方法进行讲解。
示例地,图7为本申请实施例提供的一种第一软件的界面示意图,图8为本申请实施例提供的该第二软件的界面示意图。假设第一软件的第一脚本包括:代码片段a):点击界面控件1(如图7所示);代码片段b):点击界面控件2(如图7所示)。
当对第二软件执行第一脚本时,在执行代码片段a)后,由于图8所示的第二软件的界面并不包括图7中的界面控件2,因此,代码片段b)会执行失败。此时,脚本更新装置可以确定该代码片段b)为第一代码片段,代码片段b)用于操作的界面控件2为第一界面控件。
之后,脚本更新装置可以基于步骤402至步骤404中的方法,在当前图8所示的目标界面中筛选多个候选界面控件(如图8中的界面控件3、界面控件4和界面控件5)。其中,界面控件3的图像所显示的文本包括“钱包”,界面控件4的图像所显示的文本包括“卡包”,均与代码片段b)用于操作的界面控件2的图像所显示的文本“支付”的信息(如文本特征)的相似度较高;界面控件5的文本包括“微信”,界面控件5在图像与代码片段b)用于操作的界面控件2的图像的相似度较高。该示例中以步骤404中将多个初始界面控件中对应的图像相似度较高的1个界面控件,和所述多个初始界面控件中对应的文本相似度较高的2个界面控件,确定为所述多个候选界面控件为例。
接着,脚本更新装置便可以采用步骤405到步骤407中的方法,确定出图7中的界面控件1(第一界面控件)与图8中的界面控件3的上下文信息最为相似,并将图8中的界面控件3、界面控件4和界面控件5中的界面控件3确定为第二界面控件。示例地,点击图7中的界面控件1所触发的界面与点击图8中的界面控件3所触发的界面的相似度较高,图8中的界面控件3的功能与图7中的界面控件1的功能相似,图8中的界面控件3最有可能是第二软件中用于替换图7中的界面控件1的界面控件。
最后,脚本更新装置便可以采用步骤408中的方法,将第一脚本中代码片段b)中的界面控件标识由图7中的界面控件1的标识更新为图8中的界面控件3的标识即可。
综上所述,本申请实施例提供的脚本更新方法中,脚本更新装置能够通过比对第一软件中第一界面控件和第二软件中候选界面控件的上下文信息的相似度,以确定多个候选界面控件中用于替换第一界面控件的第二界面控件,进而根据该第一界面控件和第二界面控件更新第一软件的第一脚本,得到第二脚本。由于第二脚本中的代码片段用于操作的界面控件为第二软件中的界面控件,因此,第二脚本能够实现对第二软件进行操作。
并且,本申请实施例提供的脚本更新方法能够自动化地对第一脚本进行更新,无需工作人员过多的操作,因此,脚本更新过程中的人力成本较低,且难度也较低。
另外,本申请实施例中基于界面控件的上下文信息的相似度查找用于替换第一界面控件的第二界面控件。即使第二界面控件的辅助信息发生了改变,但通过上下文信息也能够准确的查找到该第二界面控件,因此,本申请实施例中查找第二界面控件的准确度较高,脚本更新的效率也较高。
图9为本申请实施例提供的另一种脚本更新装置的结构示意图,该脚本更新装置可以用于图3所示的脚本更新装置。该脚本更新装置应用于将适用于操作第一软件的第一脚本更新为适用于操作第二软件的第二脚本,其中,所述第二软件基于所述第一软件得到,所述第一软件和所述第二软件均包括界面控件,所述第一脚本包括指示对所述第一软件中第一界面控件进行操作的第一代码片段,且所述第一代码片段包括第一界面控件的标识。
如图9所示,该脚本更新装置包括:
执行模块901,用于对第二软件执行所述第一脚本;
获取模块902,用于在所述第一代码片段执行失败时,获取所述第一界面控件的上下文信息,以及所述第二软件中多个候选界面控件的上下文信息,其中,第一界面控件与多个候选界面控件中,任一界面控件的上下文信息用于指示:操作该任一界面控件前后该任一界面控件所在软件的界面的变化情况;
第一确定模块903,用于确定第一界面控件的上下文信息与多个候选界面控件中每个候选界面控件的上下文信息的相似度;
第二确定模块904,用于基于确定出的相似度确定多个候选界面控件中的第二界面控件;
第一替换模块905,用于将所述第一脚本中所述第一代码片段中的所述第一界面控件的标识替换为所述第二界面控件的标识,得到所述第二脚本。
综上所述,本申请实施例提供的脚本更新装置中,第二确定模块能够通过比对第一软件中第一界面控件和第二软件中候选界面控件的上下文信息的相似度,以确定多个候选界面控件中用于替换第一界面控件的第二界面控件,进而第一替换模块根据该第一界面控件和第二界面控件更新第一软件的第一脚本,得到第二脚本。由于第二脚本中的代码片段用于操作的界面控件为第二软件中的界面控件,因此,第二脚本能够实现对第二软件进行操作。
可选地,任一界面控件的上下文信息包括:操作该任一界面控件所触发的界面的信息。
可选地,当所述第一脚本还包括用于在所述第一代码片段之前执行的参考代码片段时,所述任一界面控件的上下文信息包括:所述任一界面控件与所述第一软件中参考界面控件的位置关系,所述参考代码片段指示对所述参考界面控件进行操作。
可选地,所述任一界面控件与所述参考界面控件的位置关系包括:所述任一界面控件与所述参考界面控件的距离,和/或,所述任一界面控件与所述参考界面控件的相对方位。
可选地,第一确定模块用于:
确定第一界面控件的上下文信息和每个界面控件的上下文信息中,界面的信息的相似度、距离的相似度以及相对方位的相似度中的至少一种相似度;
基于至少一种相似度,确定第一界面控件的上下文信息和每个候选界面控件的上下文信息的相似度。
可选地,第二确定模块用于:
将第一界面控件的上下文信息与每个候选界面控件的上下文信息的相似度,确定为每个候选界面控件对应的第一相似度;
在多个候选界面控件中存在对应的第一相似度大于第一相似度阈值的至少一个候选界面控件时,确定至少一个候选界面控件中对应最大第一相似度的界面控件为第二界面控件。
可选地,所述脚本更新装置还包括:
筛选模块,用于在获取所述多个候选界面控件的上下文信息之前,在目标界面的多个初始界面控件中筛选所述多个候选界面控件,其中,所述目标界面为:所述第二软件的界面中执行所述第一代码片段时的界面。
可选地,获取模块用于:
获取第一界面控件的辅助信息,以及多个初始界面控件中每个初始界面控件的辅助信息,任一界面控件的辅助信息包括:任一界面控件的图像信息和/或文本信息;
基于所述第一界面控件的辅助信息中任一种信息与所述每个初始界面控件的辅助信息中任一种信息的相似度,确定所述目标界面中的所述多个候选界面控件。
可选地,任一界面控件的辅助信息包括:任一界面控件的图像信息和文本信息,获取模块用于:
将所述多个初始界面控件中对应的图像相似度大于目标图像相似度的界面控件,和/或,所述多个初始界面控件中对应的文本相似度大于目标文本相似度的界面控件,确定为所述多个候选界面控件;
其中,所述每个初始界面控件对应的图像相似度包括:所述第一界面控件的图像信息与所述每个初始界面控件的图像信息的相似度;所述每个初始界面控件对应的文本相似度包括:所述第一界面控件的文本信息与所述每个初始界面控件的文本信息的相似度;
所述目标图像相似度为所述多个初始界面控件对应的图像相似度中的任一非最大图像相似度,所述目标文本相似度为所述多个初始界面控件对应的文本相似度中的任一非最大文本相似度。
可选地,获取模块用于:在多个初始界面控件对应的图像相似度和文本相似度均小于第二相似度阈值时,将所述多个初始界面控件中对应的图像相似度大于目标图像相似度的界面控件,和/或,所述多个初始界面控件中对应的文本相似度大于目标文本相似度的界面控件,确定为所述多个候选界面控件。
可选地,脚本更新装置还包括:
第三确定模块,用于在多个初始界面控件中存在对应的目标相似度大于或等于第二相似度阈值的至少一个初始界面控件时,将至少一个初始界面控件中对应最大目标相似度的界面控件确定为第三界面控件,目标相似度为:图像相似度或文本相似度;
第二替换模块,用于将所述第一脚本中所述第一代码片段中所述第一界面控件的标识替换为所述第三界面控件的标识,得到所述第二脚本。
可选地,脚本更新装置还包括:
检测模块,用于在第一脚本中的所述第一代码片段执行失败时,检测第一代码片段中界面控件的标识是否被替换过;
获取模块用于:在所述第一代码片段中界面控件的标识未被替换过时,获取所述第一代码片段用于操作的第一界面控件的上下文信息,以及所述第二软件中多个候选界面控件的上下文信息。
可选地,获取模块用于:在上下文信息库中获取所述第一界面控件的上下文信息;
脚本更新装置还包括:
存储模块,用于在上下文信息库中存储多个候选界面控件的上下文信息。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现,所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机的可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者包含一个或多个可用介质集成的服务器、数据中心等数据存储装置。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质,或者半导体介质(例如固态硬盘)等。
需要说明的是,本发明实施例提供的方法实施例能够与相应的装置实施例相互参考,本发明实施例对此不做限定。本发明实施例提供的方法实施例步骤的先后顺序能够进行适当调整,步骤也能够根据情况进行相应增减,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化的方法,都应涵盖在本发明的保护范围之内,因此不再赘述。
以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (13)
1.一种脚本更新方法,应用于将适用于操作第一软件的第一脚本更新为适用于操作第二软件的第二脚本,其中,所述第二软件基于所述第一软件得到,所述第一软件和所述第二软件均包括界面控件,所述第一脚本包括用于对所述第一软件中第一界面控件进行操作的第一代码片段,且所述第一代码片段包括第一界面控件的标识,其特征在于,所述方法包括:
对所述第二软件执行所述第一脚本;
在所述第一代码片段执行失败时,获取所述第一界面控件的上下文信息,以及所述第二软件中多个候选界面控件的上下文信息;其中,所述第一界面控件与所述多个候选界面控件中,任一界面控件的上下文信息用于指示:操作所述任一界面控件前后所述任一界面控件所在软件的界面的变化情况;
确定所述第一界面控件的上下文信息与所述多个候选界面控件中每个候选界面控件的上下文信息的相似度;
基于确定出的相似度确定所述多个候选界面控件中的第二界面控件;
将所述第一脚本中所述第一代码片段中的所述第一界面控件的标识替换为所述第二界面控件的标识,得到所述第二脚本。
2.根据权利要求1所述的方法,其特征在于,所述任一界面控件的上下文信息包括:操作所述任一界面控件所触发的界面的信息。
3.根据权利要求1或2所述的方法,其特征在于,当所述第一脚本还包括用于在所述第一代码片段之前执行的参考代码片段时,所述任一界面控件的上下文信息包括:所述任一界面控件与所述第一软件中参考界面控件的位置关系,所述参考代码片段用于对所述参考界面控件进行操作。
4.根据权利要求3所述的方法,其特征在于,所述任一界面控件与所述参考界面控件的位置关系包括:所述任一界面控件与所述参考界面控件的距离,和/或,所述任一界面控件与所述参考界面控件的相对方位。
5.根据权利要求4所述的方法,其特征在于,确定所述第一界面控件的上下文信息与所述多个候选界面控件中每个候选界面控件的上下文信息的相似度,包括:
确定所述第一界面控件的上下文信息和所述每个候选界面控件的上下文信息中,所述界面的信息的相似度、所述距离的相似度以及所述相对方位的相似度中的至少一种相似度;
基于所述至少一种相似度,确定所述第一界面控件的上下文信息和所述每个候选界面控件的上下文信息的相似度。
6.根据权利要求1至5任一所述的方法,其特征在于,基于确定出的相似度确定所述多个候选界面控件中的第二界面控件,包括:
将所述第一界面控件的上下文信息与所述每个候选界面控件的上下文信息的相似度,确定为所述每个候选界面控件对应的第一相似度;
在所述多个候选界面控件中存在对应的第一相似度大于第一相似度阈值的至少一个候选界面控件时,确定所述至少一个候选界面控件中对应最大第一相似度的界面控件为所述第二界面控件。
7.根据权利要求1至6任一所述的方法,其特征在于,所述方法还包括:
在获取所述多个候选界面控件的上下文信息之前,在目标界面的多个初始界面控件中筛选所述多个候选界面控件,其中,所述目标界面为:对所述第二软件执行所述第一脚本中的所述第一代码片段时的界面。
8.根据权利要求7所述的方法,其特征在于,所述在目标界面的多个初始界面控件中筛选所述多个候选界面控件,包括:
获取所述第一界面控件的辅助信息,以及所述多个初始界面控件中每个初始界面控件的辅助信息,任一界面控件的辅助信息包括:所述任一界面控件的图像信息和/或文本信息;
基于所述第一界面控件的辅助信息中任一种信息与所述每个初始界面控件的辅助信息中所述任一种信息的相似度,确定所述目标界面中的所述多个候选界面控件。
9.根据权利要求8所述的方法,其特征在于,所述任一界面控件的辅助信息包括:所述任一界面控件的图像信息和文本信息,基于所述第一界面控件的辅助信息中任一种信息与所述每个初始界面控件的辅助信息中所述任一种信息的相似度,确定所述目标界面中的所述多个候选界面控件,包括:
将所述多个初始界面控件中对应的图像相似度大于目标图像相似度的界面控件,和/或,所述多个初始界面控件中对应的文本相似度大于目标文本相似度的界面控件,确定为所述多个候选界面控件;
其中,所述每个初始界面控件对应的图像相似度包括:所述第一界面控件的图像信息与所述每个初始界面控件的图像信息的相似度;所述每个初始界面控件对应的文本相似度包括:所述第一界面控件的文本信息与所述每个初始界面控件的文本信息的相似度;
所述目标图像相似度为所述多个初始界面控件对应的图像相似度中的任一非最大图像相似度,所述目标文本相似度为所述多个初始界面控件对应的文本相似度中的任一非最大文本相似度。
10.根据权利要求9所述的方法,其特征在于,将所述多个初始界面控件中对应的图像相似度大于目标图像相似度的界面控件,和/或,所述多个初始界面控件中对应的文本相似度大于目标文本相似度的界面控件,确定为所述多个候选界面控件,包括:
在所述多个初始界面控件对应的图像相似度和文本相似度均小于第二相似度阈值时,将所述多个初始界面控件中对应的图像相似度大于目标图像相似度的界面控件,和/或,所述多个初始界面控件中对应的文本相似度大于目标文本相似度的界面控件,确定为所述多个候选界面控件。
11.根据权利要求10所述的方法,其特征在于,所述方法还包括:
在所述多个初始界面控件中存在对应的目标相似度大于或等于所述第二相似度阈值的至少一个初始界面控件时,将所述至少一个初始界面控件中对应最大目标相似度的界面控件确定为第三界面控件,所述目标相似度为:所述图像相似度或所述文本相似度;
将所述第一脚本中所述第一代码片段中所述第一界面控件的标识替换为所述第三界面控件的标识,得到所述第二脚本。
12.一种脚本更新装置,其特征在于,所述脚本更新装置包括:处理器和存储器,所述处理器用于执行所述存储器中存储的程序,以实现权利要求1至11任一所述的脚本更新方法。
13.一种可读存储介质,其特征在于,所述存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1至11任一所述的脚本更新方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910995649.4A CN112685056A (zh) | 2019-10-18 | 2019-10-18 | 脚本更新方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910995649.4A CN112685056A (zh) | 2019-10-18 | 2019-10-18 | 脚本更新方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112685056A true CN112685056A (zh) | 2021-04-20 |
Family
ID=75445166
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910995649.4A Pending CN112685056A (zh) | 2019-10-18 | 2019-10-18 | 脚本更新方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112685056A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116627807A (zh) * | 2023-05-12 | 2023-08-22 | 南京数睿数据科技有限公司 | 融合界面元素语义和结构信息的移动应用测试修复方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104317602A (zh) * | 2014-11-03 | 2015-01-28 | 中国农业银行股份有限公司 | 一种主机代码文件的开发方法及装置 |
CN107102938A (zh) * | 2016-02-19 | 2017-08-29 | 阿里巴巴集团控股有限公司 | 测试脚本的更新方法及装置 |
CN109800173A (zh) * | 2019-01-28 | 2019-05-24 | 腾讯科技(深圳)有限公司 | 程序调试方法、装置及存储介质 |
JP2019101619A (ja) * | 2017-11-30 | 2019-06-24 | Kddi株式会社 | 対話ログ群からコンテキストを決定可能な対話シナリオ生成装置、プログラム及び方法 |
-
2019
- 2019-10-18 CN CN201910995649.4A patent/CN112685056A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104317602A (zh) * | 2014-11-03 | 2015-01-28 | 中国农业银行股份有限公司 | 一种主机代码文件的开发方法及装置 |
CN107102938A (zh) * | 2016-02-19 | 2017-08-29 | 阿里巴巴集团控股有限公司 | 测试脚本的更新方法及装置 |
JP2019101619A (ja) * | 2017-11-30 | 2019-06-24 | Kddi株式会社 | 対話ログ群からコンテキストを決定可能な対話シナリオ生成装置、プログラム及び方法 |
CN109800173A (zh) * | 2019-01-28 | 2019-05-24 | 腾讯科技(深圳)有限公司 | 程序调试方法、装置及存储介质 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116627807A (zh) * | 2023-05-12 | 2023-08-22 | 南京数睿数据科技有限公司 | 融合界面元素语义和结构信息的移动应用测试修复方法 |
CN116627807B (zh) * | 2023-05-12 | 2024-04-09 | 南京数睿数据科技有限公司 | 融合界面元素语义和结构信息的移动应用测试修复方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10970097B2 (en) | Adaptive web-based robotic process automation | |
AU2019355933B2 (en) | Software testing | |
US11182178B1 (en) | Detection of user interface controls via invariance guided sub-control learning | |
US20210390682A1 (en) | Method for detecting surface defect, method for training model, apparatus, device, and media | |
CN113391871B (zh) | 一种rpa元素智能融合拾取的方法与系统 | |
US8943468B2 (en) | Wireframe recognition and analysis engine | |
US11461409B2 (en) | Digitization of technical documentation driven by machine learning | |
US11513670B2 (en) | Learning user interface controls via incremental data synthesis | |
US11182544B2 (en) | User interface for contextual document recognition | |
CN102567565B (zh) | 一种电缆参数的处理方法和系统 | |
US20150347369A1 (en) | Annotation display assistance device and method of assisting annotation display | |
CN111640103B (zh) | 图像检测方法、装置、设备以及存储介质 | |
CN113268236B (zh) | 一种rpa系统中基于功能增强技术的ui元素拾取方法和系统 | |
CN109917978B (zh) | 基于bim模型的批注对应构件显示方法、装置以及存储装置 | |
CN112231034A (zh) | 结合rpa和ai的软件界面元素的识别方法与装置 | |
US11288169B2 (en) | Method of, and apparatus for, handling reference images for an automated test of software with a graphical user interface | |
CN112348107A (zh) | 图像数据清洗方法及装置、电子设备和介质 | |
US11080173B2 (en) | Boundary search test support device and boundary search test support method | |
CN112685056A (zh) | 脚本更新方法及装置 | |
CN116932499B (zh) | 一种dwg格式文件批量修改标注的方法 | |
CN117573006A (zh) | 用于rpa屏幕界面元素批量拾取的方法及系统 | |
CN113012189A (zh) | 图像识别方法、装置、计算机设备和存储介质 | |
US20230401809A1 (en) | Image data augmentation device and method | |
US20240273931A1 (en) | Identification device, identification method, and identification program | |
JPH08305722A (ja) | 文字列検索装置 |
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 |