控件适配方法、装置、设备及可读存储介质与流程
未命名
09-18
阅读:125
评论:0

1.本发明涉及软件自动化测试领域,尤其涉及一种控件适配方法、装置、设备及可读存储介质。
背景技术:
2.目前软件版本迭代频繁,为确保新版本的软件程序能够顺利运行,需要对软件程序进行大量的测试,即针对新版本的软件程序编写测试用例,再根据测试用例编写测试脚本,然后通过自动化的测试工具执行测试脚本来对新版本的软件程序进行测试,而控件是构成软件应用程序界面的基本元素,包括按钮、文本框及进度条等等,在软件程序中大量使用,当新版本的软件程序中的控件信息进行了修改时,为保障测试脚本的执行成功,就需要对测试脚本中的控件进行针对性的修改,即在测试脚本中需要针对新版本软件程序中做了修改的控件进行控件的适配,若未及时的对测试脚本中的控件进行修改,则在执行测试脚本时,就可能会出现测试脚本中的控件信息和新版本的软件程序中的控件信息不匹配的情况发生,即控件识别失败,找不到控件,导致测试脚本执行失败,从而无法对软件功能进行验证。
3.当出现此问题时,传统的解决方法是在测试脚本执行失败时,人工介入对不匹配的控件位置进行定位,手动修正测试脚本中的控件信息,采用传统的人工方式对控件进行适配,通常是通过获取控件的图形信息来识别控件,所获取的控件信息过少,以及相似的控件也会导致控件识别上的困难,且采用传统的人工方式定位不匹配的控件所在的位置速度慢效率低,当面对新版本的软件程序中较多的控件信息变更时,就会给控件适配带来工作量大和效率低的问题。
技术实现要素:
4.本发明的主要目的在于提供一种控件适配方法、装置、设备及可读存储介质,旨在解决目前进行控件适配,采用传统人工方式进行控件的适配,控件适配工作量大和效率低的技术问题。
5.第一方面,本发明提供一种控件适配方法,所述控件适配方法包括:
6.依次将测试脚本中的每个控件作为比对控件,使用比对控件的控件数据,和待测试代码中每个控件的控件数据进行比对;
7.若比对控件的控件数据,和待测试代码中每个控件的控件数据均不相同,则采用多维向量修正值模型,计算比对控件的控件数据的向量值和待测试代码中每个控件的控件数据的向量值之间的相似度;
8.使用相似度最大的待测试代码中控件的控件数据,替换测试脚本中控件的控件数据;
9.执行控件数据替换后的测试脚本,以供对待测试代码进行测试。
10.可选的,在所述依次将测试脚本中的每个控件作为比对控件,使用比对控件的控
件数据,和待测试代码中每个控件的控件数据进行比对之前,包括:
11.对待测试代码的字节码进行反向编译,得到增强代码;
12.从增强代码中提取得到待测试代码的每个控件的控件数据。
13.可选的,所述控件数据包括关系数据,所述依次将测试脚本中的每个控件作为比对控件,使用比对控件的控件数据,和待测试代码中每个控件的控件数据进行比对包括:
14.使用图数据库的节点分别存储待测试代码的每个控件的控件数据,使用图数据库的边分别存储待测试代码的每个控件的关系数据;
15.依次将测试脚本中的每个控件作为比对控件,使用比对控件的控件数据,在图数据库中进行查找,和待测试代码中每个控件的控件数据进行比对。
16.可选的,所述控件数据包括多个属性数据,在所述采用多维向量修正值模型,计算比对控件的控件数据的向量值和待测试代码中每个控件的控件数据的向量值之间的相似度之前,包括:
17.采用skip-gram算法,将测试脚本中每个控件的每个属性数据,分别进行向量化表达,得到测试脚本中每个控件的每个属性数据的向量值;
18.对测试脚本中的所有控件,分别对每个属性数据的向量值计算平均值,得到每个控件的每个属性数据的向量值的修正值;
19.基于每个控件的每个属性数据的向量值的修正值,构建得到多维向量修正值模型:
[0020][0021]
其中,为控件的每个属性数据的向量值的修正值,i代表控件的多个属性数据的序号,xi为测试脚本中控件的相应序号属性数据的向量值,yi为待测试代码中控件的相应序号的属性数据的向量值。
[0022]
可选的,在所述执行控件数据替换后的测试脚本,以供对待测试代码进行测试之后,包括:
[0023]
若测试脚本执行失败,则从测试脚本中获取导致测试脚本执行失败的控件;
[0024]
将导致测试脚本执行失败的控件作为新的比对控件;
[0025]
调整多维向量修正值模型中的修正值,并返回执行所述采用多维向量修正值模型,计算比对控件的控件数据的向量值和待测试代码中每个控件的控件数据的向量值之间的相似度的步骤。
[0026]
可选的,所述调整多维向量修正值模型中的修正值的步骤具体包括:
[0027]
以预设步长,逐步调整修正值;
[0028]
使用调整后的修正值,和测试脚本中通过比对的控件进行准确度的校验;
[0029]
当准确度达到预设准确度时,结束调整;
[0030]
使用结束调整时的修正值,替换多维向量修正值模型中的修正值。
[0031]
第二方面,本发明还提供一种控件适配装置,所述控件适配装置包括:
[0032]
比对模块,用于依次将测试脚本中的每个控件作为比对控件,使用比对控件的控件数据,和待测试代码中每个控件的控件数据进行比对;
[0033]
计算模块,用于若比对控件的控件数据,和待测试代码中每个控件的控件数据均不相同,则采用多维向量修正值模型,计算比对控件的控件数据的向量值和待测试代码中每个控件的控件数据的向量值之间的相似度;
[0034]
替换模块,用于使用相似度最大的待测试代码中控件的控件数据,替换测试脚本中控件的控件数据;
[0035]
执行模块,用于执行控件数据替换后的测试脚本,以供对待测试代码进行测试。
[0036]
可选的,所述控件适配装置还包括提取模块,用于:
[0037]
对待测试代码的字节码进行反向编译,得到增强代码;
[0038]
从增强代码中提取得到待测试代码的每个控件的控件数据。
[0039]
第三方面,本发明还提供一种控件适配设备,所述控件适配设备包括处理器、存储器、以及存储在所述存储器上并可被所述处理器执行的控件适配程序,其中所述控件适配程序被所述处理器执行时,实现如上述所述的控件适配方法的步骤。
[0040]
第四方面,本发明还提供一种可读存储介质,所述可读存储介质上存储有控件适配程序,其中所述控件适配程序被处理器执行时,实现如上述所述的控件适配方法的步骤。
[0041]
本发明中,依次将测试脚本中的每个控件作为比对控件,使用比对控件的控件数据,和待测试代码中每个控件的控件数据进行比对;若比对控件的控件数据,和待测试代码中每个控件的控件数据均不相同,则采用多维向量修正值模型,计算比对控件的控件数据的向量值和待测试代码中每个控件的控件数据的向量值之间的相似度;使用相似度最大的待测试代码中控件的控件数据,替换测试脚本中控件的控件数据;执行控件数据替换后的测试脚本,以供对待测试代码进行测试。通过本发明,能够使得测试脚本中的控件数据自适应匹配待测试代码中最合适的控件数据,提升了自动化测试脚本的执行成功率。
附图说明
[0042]
图1为本发明控件适配方法一实施例的流程示意图;
[0043]
图2为本发明控件适配方法一实施例的测试脚本中的控件数据示意图;
[0044]
图3为本发明控件适配方法一实施例的待测试代码中的控件数据示意图;
[0045]
图4为本发明控件适配方法一实施例的控件数据提取流程示意图;
[0046]
图5为图1中步骤s10的细化流程示意图;
[0047]
图6为本发明控件适配方法一实施例的模型构建流程示意图;
[0048]
图7为本发明控件适配方法一实施例的修正值调整流程示意图;
[0049]
图8为本发明控件适配装置一实施例的功能模块示意图;
[0050]
图9为本发明控件适配设备一实施例的硬件结构示意图。
[0051]
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
[0052]
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0053]
第一方面,本发明实施例提供了一种控件适配方法。
[0054]
为了更清楚地展示本技术实施例提供的控件适配方法,首先介绍一下本技术实施例提供的控件适配方法的应用场景。
[0055]
本技术实施例提供的控件适配方法应用在为确保新版本的软件程序能够顺利运行,需要对新版本的软件程序进行大量的测试,即针对新版本的软件程序编写测试用例,再根据测试用例编写测试脚本,然后通过自动化的测试工具执行测试脚本来对新版本的软件程序进行测试,新版本的软件程序即待测试代码,当新版本的软件程序中的控件信息进行了修改时,为保障测试脚本的执行成功,就需要对测试脚本中的控件进行针对性的修改,即在测试脚本中需要针对新版本软件程序中做了修改的控件进行控件的适配。
[0056]
一实施例中,参照图1,图1为本发明控件适配方法一实施例的流程示意图,如图1所示,所述控件适配方法包括:
[0057]
步骤s10,依次将测试脚本中的每个控件作为比对控件,使用比对控件的控件数据,和待测试代码中每个控件的控件数据进行比对。
[0058]
本实施例中,在软件自动化测试领域,测试脚本一般指一个特定测试的一系列指令,这些指令可以被自动化测试工具执行,从而实现软件的自动化测试,待测试代码即待测试的新版本的软件程序,控件在测试脚本和待测试代码中被广泛使用。
[0059]
首先可以从测试脚本中提取出控件信息并使用数据库进行存储,然后从数据库中依次选取测试脚本中的每个控件作为比对控件,使用比对控件的控件数据,分别和待测试代码中每个控件的控件数据进行比对,以检验测试脚本中的控件数据和待测试代码中的控件数据是否一致。
[0060]
以一个jbutton控件的检测比对过程为例,首先从存储测试脚本控件信息的数据库中提取出控件com.fiberhome.biz.mbmp.ui.components.detailbutton作为比对控件,比对控件的控件数据主要包括其上下文关系和各属性信息,控件数据的具体内容参照图2所示,图2为本发明控件适配方法一实施例的测试脚本中的控件数据示意图,待测试代码中的控件同样以控件com.fiberhome.biz.mbmp.ui.components.detailbutton为例,同样也主要包括上下文关系和各属性信息,待测试代码中控件数据的具体内容参照图3所示,图3为本发明控件适配方法一实施例的待测试代码中的控件数据示意图。
[0061]
步骤s20,若比对控件的控件数据,和待测试代码中每个控件的控件数据均不相同,则采用多维向量修正值模型,计算比对控件的控件数据的向量值和待测试代码中每个控件的控件数据的向量值之间的相似度。
[0062]
本实施例中,可继续参照图2和图3,如图2和图3所示,通过比对可以得出关于控件com.fiberhome.biz.mbmp.ui.components.detailbutton,测试脚本中的控件数据和待测试代码中的控件数据不相同,如果比对控件的控件数据,和待测试代码中每个控件的控件数据均不相同,则说明在待测试代码中没有找到和比对控件的控件数据一致的控件,此时则采用多维向量修正值模型,计算比对控件的控件数据的向量值和待测试代码中每个控件的控件数据的向量值之间的相似度。
[0063]
例如,将比对控件的控件数据进行向量化表达后得到的向量值为detailbutton:text:0.35,visiable:0.54,action:0.43,mouseevent:0.8,keyboard:0.85,e nable:0.93,tooltiptext:0.68,name:0.90,待测试代码中以两个jbutton控件为例,进行向量化表达后的向量值分别为
[0064]
jbutton1:text:0.3,visiable:0.5,action:0.51,mouseevent:0.23,keyboard:0.45,en able:0.43,tooltiptext:0.78,name:0.90,以及
[0065]
jbutton2:text:0.35,visiable:0.15,action:0.58,mouseevent:0.23,keyboard:0.55,enable:0.43,tooltiptext:0.78,name:0.90,采用多维向量修正值模型
[0066][0067]
通过计算可分别得到比对控件detailbutton的向量值和jbutton1的向量值之间的余弦相似度为0.57,比对控件detailbutton的向量值和jbutton2的向量值之间余弦相似度为0.64。
[0068]
步骤s30,使用相似度最大的待测试代码中控件的控件数据,替换测试脚本中控件的控件数据。
[0069]
本实施例中,相似度最大,指相似度值最接近1,相似度最大说明所选择的待测试代码中控件的控件数据和测试脚本中控件的控件数据相似度最高,继续以上述的两个jbutton控件为例,通过比对可知,对于测试脚本中的比对控件detailbutton来说,待测试代码中的jbutton2的余弦相似度0.64大于jbutton1的余弦相似度0.57,最接近1,因此jbutton2为待测试代码中相似度最大的控件,使用jbutton2的控件数据替换测试脚本中控件的控件数据。
[0070]
步骤s40,执行控件数据替换后的测试脚本,以供对待测试代码进行测试。
[0071]
本实施例中,由于使用了相似度最高的待测试代码中控件的控件数据,替换了测试脚本中的不一致的控件数据,因此,执行控件数据替换后的测试脚本,对待测试代码进行测试,提升了自动化测试脚本的执行成功率,能够使得测试脚本中的控件数据自适应匹配待测试代码中最合适的控件数据。
[0072]
本实施例中,对待测试代码和测试脚本中控件的控件数据进行比对,以及使用相似度最高的待测试代码中控件的控件数据,替换测试脚本中的不一致的控件数据,然后执行控件数据替换后的测试脚本,对待测试代码进行测试,从而提升了自动化测试脚本的执行成功率,能够使得测试脚本中的控件数据自适应匹配待测试代码中最合适的控件数据。
[0073]
进一步地,一实施例中,参照图4,图4为本发明控件适配方法一实施例的控件数据提取流程示意图,如图4所示,在步骤s10之前,包括:
[0074]
步骤s011,对待测试代码的字节码进行反向编译,得到增强代码;
[0075]
步骤s012,从增强代码中提取得到待测试代码的每个控件的控件数据。
[0076]
本实施例中,字节码(byte-code)是一种包含执行程序、由一序列操作码/数据对组成的二进制文件,字节码是一种中间码,它比机器码更抽象,它经常被看作是包含一个执行程序的二进制文件,更像一个对象模型,可以反向映射为代码或者在执行过程中进行应用增强。在传统方法中从待测试代码中提取控件信息,只能以图形信息来识别控件,所获取的控件的对比信息过少,因此,导致控件的识别准确度不够高,而通过字节码技术对待测试代码的字节码进行反向编译,然后对反向编译得到的增强代码进行扫描,能够获取丰富的控件信息,提高了控件的识别准确度。
[0077]
进一步地,一实施例中,所述控件数据包括关系数据,参照图5,图5为图1中步骤s10的细化流程示意图,如图5所示,步骤s10包括:
[0078]
步骤s101,使用图数据库的节点分别存储待测试代码的每个控件的控件数据,使
用图数据库的边分别存储待测试代码的每个控件的关系数据;
[0079]
步骤s102,依次将测试脚本中的每个控件作为比对控件,使用比对控件的控件数据,在图数据库中进行查找,和待测试代码中每个控件的控件数据进行比对。
[0080]
本实施例中,控件数据包括关系数据,控件之间的关系数据主要包括父子关系,采用免索引邻接图数据库存储待测试代码中的控件数据,从而可以将传统的遍历物理关系的全局索引的时间复杂度从0(log(n))降低为0(1),使用图数据库的节点分别存储待测试代码的每个控件的控件数据,使用图数据库的边分别存储待测试代码的每个控件的关系数据,之后在图数据库中采用分级查找,依次将测试脚本中的每个控件作为比对控件,使用比对控件的控件数据,和待测试代码中每个控件的控件数据进行比对。其中,图数据库以点、边为基础存储单元,是一组点和边的集合,“点”表示实体,“边”表示实体间的关系,是以高效存储、查询图数据为设计原理的数据管理系统。
[0081]
进一步地,一实施例中,所述控件数据包括多个属性数据,参照图6,图6为本发明控件适配方法一实施例的模型构建流程示意图,如图6所示,在所述采用多维向量修正值模型,计算比对控件的控件数据的向量值和待测试代码中每个控件的控件数据的向量值之间的相似度之前,包括:
[0082]
步骤s021,采用skip-gram算法,将测试脚本中每个控件的每个属性数据,分别进行向量化表达,得到测试脚本中每个控件的每个属性数据的向量值;
[0083]
步骤s022,对测试脚本中的所有控件,分别对每个属性数据的向量值计算平均值,得到每个控件的每个属性数据的向量值的修正值;
[0084]
步骤s023,基于每个控件的每个属性数据的向量值的修正值,构建得到多维向量修正值模型:
[0085][0086]
其中,为控件的每个属性数据的向量值的修正值,i代表控件的多个属性数据的序号,xi为测试脚本中控件的相应序号属性数据的向量值,yi为待测试代码中控件的相应序号的属性数据的向量值。
[0087]
本实施例中,控件数据包括多个属性数据,例如(n:conponent{type:'jbutton',text:'node',visiable:'true',action:'active',mouseevent:'vk_mousepress',keyboard:'vk_1',enable:'rtrue',tooltiptext:'1',name:'jbutton'})(m:conponent{type:'jbutton',text:'node',visiable:'true',action:'active',mouseevent:'vk_mousepress',keyboard:'vk_1',enable:'rtrue',tooltiptext:'1',name:'jbutton'}),其中,n和m后面的信息代表控件的属性数据,将n和m放一起代表他们之间的连接关系,控件的关系数据可以看做是控件的属性数据的一种,采用skip-gram算法,将测试脚本中每个控件的每个属性数据,分别进行向量化表达,得到测试脚本中每个控件的每个属性数据的向量值。skip-gram算法是一个基于分布假说的神经网络模型,用于在给出目标单词(中心单词)的情况下,预测它的上下文单词。控件的某个属性数据,相当于一维向量,控件的多个属性数据,如text属性数据、visable属性数据及event属性数据等就构成了多维向量,可基于相同的控件类型,对测试脚本中的所有控件,分别对每个属性数据的向量值计算平均值,得
到每个属性数据的向量值的修正值,进一步可基于相同的控件类型,为每个控件的每个属性数据的向量值的修正值添加固定偏移值,构建得到多维向量修正值模型,在传统的余弦相似度的基础上,引入多维向量修正值可以解决传统的余弦相似度仅考虑向量维度方向上的相似而没考虑到各个维度的向量的差异性,因此,在每个控件的各个属性值上均进行向量均值修正,可以实现控件的最佳数据匹配。
[0088]
进一步地,一实施例中,参照图7,图7为本发明控件适配方法一实施例的修正值调整流程示意图,如图7所示,在步骤s40之后,包括:
[0089]
步骤s501,若测试脚本执行失败,则从测试脚本中获取导致测试脚本执行失败的控件;
[0090]
步骤s502,将导致测试脚本执行失败的控件作为新的比对控件;
[0091]
步骤s503,调整多维向量修正值模型中的修正值,并返回执行所述采用多维向量修正值模型,计算比对控件的控件数据的向量值和待测试代码中每个控件的控件数据的向量值之间的相似度的步骤。
[0092]
本实施例中,若测试脚本执行成功,则说明控件数据替换正确,若测试脚本执行失败,则说明控件数据替换的准确度不够,因此,需要在测试脚本执行失败时,定位找到导致测试脚本执行失败的控件,然后调整多维向量修正值模型中的修正值,重新进行相似度的计算,控件数据的替换,再次执行控件数据替换后的测试脚本,如此循环,直至测试脚本执行成功,完成测试脚本中控件的自适应匹配,通过修正值的不断调整优化,从而能够提升控件适配的成功率。
[0093]
进一步地,一实施例中,所述调整多维向量修正值模型中的修正值的步骤具体包括:
[0094]
以预设步长,逐步调整修正值;
[0095]
使用调整后的修正值,和测试脚本中通过比对的控件进行准确度的校验;
[0096]
当准确度达到预设准确度时,结束调整;
[0097]
使用结束调整时的修正值,替换多维向量修正值模型中的修正值。
[0098]
本实施例中,以预设步长,对修正值进行步进调整,例如以0.0001,逐步的调整修正值,和测试脚本的样本中通过比对的控件进行准确度的校验,来验证修正值的调整是否合适,是否会降低已经通过验证的控件的准确度,当准确度达到预设准确度时,结束修正值的调整,使用结束调整时的修正值,替换多维向量修正值模型中的修正值,将更新后的修正值,用于多维向量修正值模型的相似度计算。
[0099]
第二方面,本发明实施例还提供一种控件适配装置。
[0100]
参照图8,图8为本发明控件适配装置一实施例的功能模块示意图。
[0101]
本实施例中,所述控件适配装置包括:
[0102]
比对模块10,用于依次将测试脚本中的每个控件作为比对控件,使用比对控件的控件数据,和待测试代码中每个控件的控件数据进行比对;
[0103]
计算模块20,用于若比对控件的控件数据,和待测试代码中每个控件的控件数据均不相同,则采用多维向量修正值模型,计算比对控件的控件数据的向量值和待测试代码中每个控件的控件数据的向量值之间的相似度;
[0104]
替换模块30,用于使用相似度最大的待测试代码中控件的控件数据,替换测试脚
本中控件的控件数据;
[0105]
执行模块40,用于执行控件数据替换后的测试脚本,以供对待测试代码进行测试。
[0106]
进一步地,一实施例中,所述控件适配装置还包括提取模块,用于:
[0107]
对待测试代码的字节码进行反向编译,得到增强代码;
[0108]
从增强代码中提取得到待测试代码的每个控件的控件数据。
[0109]
进一步地,一实施例中,所述控件数据包括关系数据,比对模块10,用于:
[0110]
使用图数据库的节点分别存储待测试代码的每个控件的控件数据,使用图数据库的边分别存储待测试代码的每个控件的关系数据;
[0111]
依次将测试脚本中的每个控件作为比对控件,使用比对控件的控件数据,在图数据库中进行查找,和待测试代码中每个控件的控件数据进行比对。
[0112]
进一步地,一实施例中,所述控件数据包括多个属性数据,所述控件适配装置还包括构建模块,用于:
[0113]
采用skip-gram算法,将测试脚本中每个控件的每个属性数据,分别进行向量化表达,得到测试脚本中每个控件的每个属性数据的向量值;
[0114]
对测试脚本中的所有控件,分别对每个属性数据的向量值计算平均值,得到每个控件的每个属性数据的向量值的修正值;
[0115]
基于每个控件的每个属性数据的向量值的修正值,构建得到多维向量修正值模型:
[0116][0117]
其中,为控件的每个属性数据的向量值的修正值,i代表控件的多个属性数据的序号,xi为测试脚本中控件的相应序号属性数据的向量值,yi为待测试代码中控件的相应序号的属性数据的向量值。
[0118]
进一步地,一实施例中,所述控件数据包括多个属性数据,所述控件适配装置还包括调整模块,包括:
[0119]
获取单元,用于若测试脚本执行失败,则从测试脚本中获取导致测试脚本执行失败的控件;
[0120]
比对单元,用于将导致测试脚本执行失败的控件作为新的比对控件;
[0121]
调整单元,用于调整多维向量修正值模型中的修正值,并返回执行所述采用多维向量修正值模型,计算比对控件的控件数据的向量值和待测试代码中每个控件的控件数据的向量值之间的相似度的步骤。
[0122]
进一步地,一实施例中,调整单元,用于:
[0123]
以预设步长,逐步调整修正值;
[0124]
使用调整后的修正值,和测试脚本中通过比对的控件进行准确度的校验;
[0125]
当准确度达到预设准确度时,结束调整;
[0126]
使用结束调整时的修正值,替换多维向量修正值模型中的修正值。
[0127]
其中,上述控件适配装置中各个模块的功能实现与上述控件适配方法实施例中各步骤相对应,其功能和实现过程在此处不再一一赘述。
[0128]
第三方面,本发明实施例提供一种控件适配设备。
[0129]
参照图9,图9为本发明控件适配设备一实施例的硬件结构示意图。本发明实施例中,控件适配设备可以包括处理器1001(例如中央处理器central processing unit,cpu),通信总线1002,用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信;用户接口1003可以包括显示屏(display)、输入单元比如键盘(keyboard);网络接口1004可选的可以包括标准的有线接口、无线接口(如无线保真wireless-fidelity,wi-fi接口);存储器1005可以是高速随机存取存储器(random access memory,ram),也可以是稳定的存储器(non-volatile memory),例如磁盘存储器,存储器1005可选的还可以是独立于前述处理器1001的存储装置。本领域技术人员可以理解,图9中示出的硬件结构并不构成对本发明的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
[0130]
继续参照图9,图9中作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及控件适配程序。其中,处理器1001可以调用存储器1005中存储的控件适配程序,并执行本发明实施例提供的控件适配方法。
[0131]
第四方面,本发明实施例还提供一种可读存储介质。
[0132]
本发明可读存储介质上存储有控件适配程序,其中所述控件适配程序被处理器执行时,实现如上述的控件适配方法的步骤。
[0133]
其中,控件适配程序被执行时所实现的方法可参照本发明控件适配方法的各个实施例,此处不再赘述。
[0134]
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
[0135]
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
[0136]
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备执行本发明各个实施例所述的方法。
[0137]
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
技术特征:
1.一种控件适配方法,其特征在于,所述控件适配方法包括:依次将测试脚本中的每个控件作为比对控件,使用比对控件的控件数据,和待测试代码中每个控件的控件数据进行比对;若比对控件的控件数据,和待测试代码中每个控件的控件数据均不相同,则采用多维向量修正值模型,计算比对控件的控件数据的向量值和待测试代码中每个控件的控件数据的向量值之间的相似度;使用相似度最大的待测试代码中控件的控件数据,替换测试脚本中控件的控件数据;执行控件数据替换后的测试脚本,以供对待测试代码进行测试。2.如权利要求1所述的控件适配方法,其特征在于,在所述依次将测试脚本中的每个控件作为比对控件,使用比对控件的控件数据,和待测试代码中每个控件的控件数据进行比对之前,包括:对待测试代码的字节码进行反向编译,得到增强代码;从增强代码中提取得到待测试代码的每个控件的控件数据。3.如权利要求1或2所述的控件适配方法,其特征在于,所述控件数据包括关系数据,所述依次将测试脚本中的每个控件作为比对控件,使用比对控件的控件数据,和待测试代码中每个控件的控件数据进行比对包括:使用图数据库的节点分别存储待测试代码的每个控件的控件数据,使用图数据库的边分别存储待测试代码的每个控件的关系数据;依次将测试脚本中的每个控件作为比对控件,使用比对控件的控件数据,在图数据库中进行查找,和待测试代码中每个控件的控件数据进行比对。4.如权利要求1所述的控件适配方法,其特征在于,所述控件数据包括多个属性数据,在所述采用多维向量修正值模型,计算比对控件的控件数据的向量值和待测试代码中每个控件的控件数据的向量值之间的相似度之前,包括:采用skip-gram算法,将测试脚本中每个控件的每个属性数据,分别进行向量化表达,得到测试脚本中每个控件的每个属性数据的向量值;对测试脚本中的所有控件,分别对每个属性数据的向量值计算平均值,得到每个控件的每个属性数据的向量值的修正值;基于每个控件的每个属性数据的向量值的修正值,构建得到多维向量修正值模型:其中,为控件的每个属性数据的向量值的修正值,i代表控件的多个属性数据的序号,x
i
为测试脚本中控件的相应序号属性数据的向量值,y
i
为待测试代码中控件的相应序号的属性数据的向量值。5.如权利要求4所述的控件适配方法,其特征在于,在所述执行控件数据替换后的测试脚本,以供对待测试代码进行测试之后,包括:若测试脚本执行失败,则从测试脚本中获取导致测试脚本执行失败的控件;将导致测试脚本执行失败的控件作为新的比对控件;调整多维向量修正值模型中的修正值,并返回执行所述采用多维向量修正值模型,计
算比对控件的控件数据的向量值和待测试代码中每个控件的控件数据的向量值之间的相似度的步骤。6.如权利要求5所述的控件适配方法,其特征在于,所述调整多维向量修正值模型中的修正值的步骤具体包括:以预设步长,逐步调整修正值;使用调整后的修正值,和测试脚本中通过比对的控件进行准确度的校验;当准确度达到预设准确度时,结束调整;使用结束调整时的修正值,替换多维向量修正值模型中的修正值。7.一种控件适配装置,其特征在于,所述控件适配装置包括:比对模块,用于依次将测试脚本中的每个控件作为比对控件,使用比对控件的控件数据,和待测试代码中每个控件的控件数据进行比对;计算模块,用于若比对控件的控件数据,和待测试代码中每个控件的控件数据均不相同,则采用多维向量修正值模型,计算比对控件的控件数据的向量值和待测试代码中每个控件的控件数据的向量值之间的相似度;替换模块,用于使用相似度最大的待测试代码中控件的控件数据,替换测试脚本中控件的控件数据;执行模块,用于执行控件数据替换后的测试脚本,以供对待测试代码进行测试。8.如权利要求7所述的控件适配装置,其特征在于,所述控件适配装置还包括提取模块,用于:对待测试代码的字节码进行反向编译,得到增强代码;从增强代码中提取得到待测试代码的每个控件的控件数据。9.一种控件适配设备,其特征在于,所述控件适配设备包括处理器、存储器、以及存储在所述存储器上并可被所述处理器执行的控件适配程序,其中所述控件适配程序被所述处理器执行时,实现如权利要求1至6中任一项所述的控件适配方法的步骤。10.一种可读存储介质,其特征在于,所述可读存储介质上存储有控件适配程序,其中所述控件适配程序被处理器执行时,实现如权利要求1至6中任一项所述的控件适配方法的步骤。
技术总结
本发明提供一种控件适配方法、装置、设备及可读存储介质,控件适配方法包括:依次将测试脚本中的每个控件作为比对控件,使用比对控件的控件数据,和待测试代码中每个控件的控件数据进行比对;若比对控件的控件数据,和待测试代码中每个控件的控件数据均不相同,则采用多维向量修正值模型,计算比对控件的控件数据的向量值和待测试代码中每个控件的控件数据的向量值之间的相似度;使用相似度最大的待测试代码中控件的控件数据,替换测试脚本中控件的控件数据;执行控件数据替换后的测试脚本,以供对待测试代码进行测试。通过本发明,能够使得测试脚本中的控件数据自适应匹配待测试代码中最合适的控件数据,提升了自动化测试脚本的执行成功率。本的执行成功率。本的执行成功率。
技术研发人员:许琦
受保护的技术使用者:烽火通信科技股份有限公司
技术研发日:2023.06.30
技术公布日:2023/9/14
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/