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

基于自然语言智能识别控件的数据埋点测试方法及装置与流程

2022-02-19 11:57:03 来源:中国专利 TAG:


1.本发明涉及数据处理技术领域,尤其涉及一种基于自然语言智能识别控件的数据埋点测试方法及装置。


背景技术:

2.前端应用的数据埋点自动化测试受ui的频繁变动影响非常大,元素变动位置、文案变动、icon变动、业务数据变动均会引起上报数据错误,严重的话将会影响自动化测试的正常运行。
3.目前,国内主流的应用ui自动化测试控件定位方法分为两种,一种是主流的webdriver、appium页面定位方法,通过该组建提供的元素定位开放接口,可以通过元素id、name、class name、xpath等进行定位,但是需要提前知晓控件元素的相关属性,如果元素位置变动、文案变动将会使自动化脚本不可用。另外一种是采用图像识别的自动化测试方法,如test.ai、applitool等,图像识别控件的缺陷是识别率太低,元素定位过程中需要分解页面模块,将模块与预置的图像库进行比对,此过程中匹配效率非常低,元素定位非常缓慢。


技术实现要素:

4.鉴于上述问题,本发明提供了一种基于自然语言智能识别控件的数据埋点测试方法及装置,用于解决现有技术中通过组建提供的元素定位开放接口,可以通过元素id、name、class name、xpath等进行定位,但是需要提前知晓控件元素的相关属性,如果元素位置变动、文案变动将会使自动化脚本不可用。或是采用图像识别的自动化测试方法,如test.ai、applitool等,图像识别控件的缺陷是识别率太低,元素定位过程中需要分解页面模块,将模块与预置的图像库进行比对,此过程中匹配效率非常低,元素定位非常缓慢的问题,具体方案如下:
5.一种基于自然语言智能识别控件的数据埋点测试方法,包括:
6.基于自然语言脚本识别目标控件,其中,所述目标控件包括:xpath和第一目标参数;
7.基于所述xpath确定当前页面元素结构中是否存在目标元素,其中,所述目标元素包括:第二目标参数,所述目标元素至少为一个;
8.若存在,基于所述第一目标参数和所述第二目标参数确定所述目标控件与所述目标元素是否匹配;
9.在所述目标控件与所述目标元素匹配的情况下,获取与所述目标元素对应的数据埋点,对所述数据埋点进行校验。
10.上述的方法,可选的,基于自然语言脚本识别目标控件,包括:
11.获取所述自然语言脚本中的关键词,将所述关键词转成控件;
12.将所述控件在预设控件中进行模糊匹配,在达到匹配要求的情况下,将所述控件作为所述目标控件。
13.上述的方法,可选的,基于所述第一目标参数和所述第二目标参数确定所述目标控件与所述目标元素是否匹配,包括:
14.计算所述第一目标参数和所述第二目标参数的第一匹配值;
15.判断所述第一匹配值是否大于预设的匹配度阈值。
16.上述的方法,可选的,基于所述xpath确定当前页面元素结构中是否存在目标元素,还包括:
17.若不存在,基于通用处理方式生成备选xpath;
18.基于所述备选xpath确定第一备选目标元素,确定与所述第一备选目标元素与所述目标控件的第二匹配值;
19.在所述第二匹配值小于所述预设相似度阈值的情况下,遍历所述当前页面各个元素,判断是否存在大于所述预设相似度阈值的第二备选目标元素。
20.上述的方法,可选的,在所述目标控件与所述目标元素匹配的情况下,获取与所述目标元素对应的数据埋点,对所述数据埋点进行校验,包括:
21.对所述目标元素执行预设自动化操作,得到数据埋点;
22.基于数据埋点校验脚本对所述数据埋点进行校验。
23.一种基于自然语言智能识别控件的数据埋点测试装置,包括:
24.识别模块,用于基于自然语言脚本识别目标控件,其中,所述目标控件包括:xpath和第一目标参数;
25.第一确定模块,用于基于所述xpath确定当前页面元素结构中是否存在目标元素,其中,所述目标元素包括:第二目标参数,所述目标元素至少为一个;
26.第二确定模块,用于若存在,基于所述第一目标参数和所述第二目标参数确定所述目标控件与所述目标元素是否匹配;
27.获取和校验模块,用于在所述目标控件与所述目标元素匹配的情况下,获取与所述目标元素对应的数据埋点,对所述数据埋点进行校验。
28.上述的装置,可选的,所述识别模块包括:
29.获取单元,用于获取所述自然语言脚本中的关键词,将所述关键词转成控件;
30.匹配单元,用于将所述控件在预设控件中进行模糊匹配,在达到匹配要求的情况下,将所述控件作为所述目标控件。
31.上述的装置,可选的,所述第二确定模块包括:
32.计算单元,用于计算所述第一目标参数和所述第二目标参数的第一匹配值;
33.第一判断单元,用于判断所述第一匹配值是否大于预设的匹配度阈值。
34.上述的装置,可选的,所述第二确定模块还包括:
35.生成单元,用于若不存在,基于通用处理方式生成备选xpath;
36.确定单元,用于基于所述备选xpath确定第一备选目标元素,确定与所述第一备选目标元素与所述目标控件的第二匹配值;
37.第二判断单元,用于在所述第二匹配值小于所述预设相似度阈值的情况下,遍历所述当前页面各个元素,判断是否存在大于所述预设相似度阈值的第二备选目标元素。
38.上述的装置,可选的,所述获取和校验模块包括:
39.执行单元,用于对所述目标元素执行预设自动化操作,得到数据埋点;
40.校验单元,用于基于数据埋点校验脚本对所述数据埋点进行校验。
41.与现有技术相比,本发明包括以下优点:
42.本发明公开了一种基于自然语言智能识别控件的数据埋点测试方法及装置,包括:基于自然语言脚本识别目标控件,其中,目标控件包括:xpath和第一目标参数;基于xpath确定当前页面元素结构中是否存在目标元素,其中,目标元素包括:第二目标参数,目标元素至少为一个;若存在,基于第一目标参数和第二目标参数确定目标控件与所述目标元素是否匹配;在目标控件与目标元素匹配的情况下,获取与目标元素对应的数据埋点,对数据埋点进行校验。上述过程中,能够通过自然语言识别目标控件,并基于目标控件中的xpath匹确定是否存在目标元素,执行前端页面操作,进行埋点数据自动化校验,不需要提前知晓元素属性和分解页面模块,提高了匹配效率。
附图说明
43.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
44.图1为本发明实施例公开的一种基于自然语言智能识别控件的数据埋点测试方法流程图;
45.图2为本发明实施例公开的一种基于自然语言智能识别控件的数据埋点测试方法执行流程示意图;
46.图3为本发明实施例公开的一种基于自然语言智能识别控件的数据埋点测试装置结构框图。
具体实施方式
47.下面将结合本发明实施例中的附图对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
48.本发明公开了一种基于自然语言智能识别控件的数据埋点测试方法及装置,应用于对控件的识别和对数据埋点的测试过程中,能够通过自然语言编写自动化用例脚本,并智能匹配元素,执行前端页面操作,进行埋点数据自动化校验,能够使自动化脚本的维护成本显著降低,并且提高匹配效率,所述测试方法的执行流程如图1所示,包括步骤:
49.s101、基于自然语言脚本识别目标控件,其中,所述目标控件包括:xpath和第一目标参数;
50.本发明实施例中,基于自然语言脚本识别目标控件,其中,所述自然语言脚本中携带关键词。
51.首先需要获取所述自然语言脚本中的关键词,将所述关键词转换成控件,具体的实现方式包括以下两种:
52.(1)常用控件训练库:保存常用控件的数据结构,通过关键词匹配的方式来查询是
否为该控件类型,如:搜索控件一般都是固定格式,id一般为“serach”,name一般为“搜索”、“全网搜”、“搜本站”等等,那么自然语言传入“搜索”关键词时,即可通过模糊匹配name值,取到该控件的id、name、text、tag、attr、xpath等参数组装的数据结构,所述控件训练库是不断迭代维护的,匹配次数较少的会剔除,优先选择匹配次数较多的。
53.(2)通用处理方式:传入的关键词在训练库中无法匹配到任何数据结构,那么将默认设置name=输入的“关键词”,其余字段为空,组装成一个数据结构,传给下一个流程的算法。
54.本发明实施例中,首先采用常用控件训练库,基于所述关键词,获取控件属性,基于所述控件属性组装控件。其中,所述控件属性包括:包括:xpath(路径)和第一参数,其中,所述第一参数包括:平台号、执行程序标识、页面源码、搜索关键词、类型、文本和其他属性中的至少一个,其中,所述平台号执行程序表示是配置文件配置,比如:某卫视的web端,所述页面源码在启动自动化测试时,打开了被测设备,即可获得页面源码pagesource,所述搜索关键词可以为“登录”,所述类型:type,为数据结构的一个组成字段,所述文本:text,为数据结构的一个组成字段。
55.将所述控件在预设控件中进行模糊匹配,在达到匹配要求的情况下,将所述控件作为所述目标控件,其中,模糊匹配过程包括:获取所述控件的xpath,进一步的,自动化执行过程中,会将当前页面的元素结构pagesource传给下一个执行单位,同时也会将上一步找到的xpath传过下一个执行单位,通过xpath找到pagesource中元素的对应位置,然后通过匹配规则算法计算各个属性所占的比重值,来确认在pagesource中的元素与传入的控件数据结构匹配度是否达到了预期设置的匹配度,如果匹配上了,则返回该元素在pagesource中的xpath。将所述控件作为目标控件,则所述目标控件包括:包括:xpath和第一目标参数;
56.如果未匹配上,则启动重试机制,查找匹配度较低的另外一个元素。
57.s102、基于所述xpath确定当前页面元素结构中是否存在目标元素,其中,所述目标元素包括:第二目标参数,所述目标元素至少为一个;
58.本发明实施例中,基于xpath查找所述当前页面元素结构中是否存在目标元素,其中,所述目标元素至少为一个,所述目标元素包括:第二目标参数,所述第二目标参数与所述第一目标参数存在对应关系。
59.s103、基于所述第一目标参数和所述第二目标参数确定所述目标控件与所述目标元素是否匹配;
60.本发明实施例中,在所述当前页面元素结构中存在所述目标元素的情况下,基于所述第一目标参数和所述第二目标参数确定所述目标控件与所述目标元素是否匹配,其中,根据控件或者元素不同,其对应的第一目标参数或第二目标参数也不同,具体的匹配过程如下:
61.假设所述目标控件的第一目标参数:keyword、type、attribute、权重,目标元素的第二目标参数:type、attribute,根据具体属性值动态调整权重。获取所述第一目标参数和所述第二目标参数
62.计算keyword与元素attribute的匹配度,计算type与元素type匹配值,计算attribute与元素attribute匹配值,其中,具体的计算过程可依据第三方工具进行计算,本
发明实施例中对具体的计算过程不进行限定。
63.根据权重与匹配值的乘积和算出最终匹配度。
64.根据多次执行结果对比修改匹配度,若所述目标元素为一个,直接将该匹配度与预设的匹配度阈值进行比较,判断所述匹配度是否大于预设的匹配度阈值,若所述目标元素为多个,选取各个匹配度中匹配度的最大值与所述预设的匹配度阈值进行比较,判断其是否大于预设的匹配度阈值,其中,所述预设的匹配度阈值可以基于经验或者具体情况进行设定,本发明实施例中,不进行具体限定。
65.进一步的,当前页面元素结构中不存在所述目标元素或者所述匹配度小于预设的匹配度阈值的情况下,基于通用处理方式生成备选xpath,基于所述备选xpath确定第一备选目标元素,确定与所述第一备选目标元素与所述目标控件的第二匹配值;在所述第二匹配值小于所述预设相似度阈值的情况下,遍历所述当前页面各个元素,判断是否存在大于所述预设相似度阈值的第二备选目标元素。若存在,停止遍历,返回对应元素和匹配值,若不存在,返回空。进一步的,在所述第二匹配值大于所述预设相似度阈值的情况下,返回对应元素和匹配值。
66.s104、获取与所述目标元素对应的数据埋点,对所述数据埋点进行校验。
67.本发明实施例中,在匹配值大于预设的匹配度阈值,返回对应元素和匹配值,判定所述目标控件与所述目标元素匹配,页面控制脚本通过组装的所述目标元素属性进行相应的自动化操作,如点击、输入、划动等操作,得到数据埋点,如果所述目标元素定位失败,将再次调用元素匹配算法,直至所述目标元素定位成功,自动化操作成功;
68.优选的,确认所述目标元素是否能点击、输入或划动等操作;如果不能正确执行点击、输入或划动等操作,则启动重试机制,重新选取目标元素。
69.基于数据埋点校验脚本对所述数据埋点进行校验,其中,基于自然语言数据埋点测试脚本如下:
[0070][0071][0072]
具体的校验过程包括:
[0073]
按钮被点击以后会上报一条数据,通过第三方工具,比如charles,进行数据劫持,劫持到自动化框架中的数据接收服务,将该条数据入库,入库成功后,自动化框架会启动自
动化用例校验程序,发送用例的关键信息到数据校验服务,数据校验服务会根据用例的特征,去查找入库的数据,数据校验服务也会去模版数据库中获取一条模版数据,将这两条数据对比,就可以得出是否多报、少报、取值是否正确,然后输出用例结果。
[0074]
本发明公开了一种基于自然语言智能识别控件的数据埋点测试方法,包括:基于自然语言脚本识别目标控件,目标控件包括:xpath和第一目标参数;基于xpath确定当前页面元素结构中是否存在目标元素,目标元素包括:第二目标参数,目标元素至少为一个;若存在,基于第一目标参数和第二目标参数确定目标控件与所述目标元素是否匹配;在目标控件与目标元素匹配的情况下,获取与目标元素对应的数据埋点,对数据埋点进行校验。上述过程中,能够通过自然语言识别目标控件,并基于目标控件中的xpath匹确定是否存在目标元素,执行前端页面操作,进行埋点数据自动化校验,不需要提前知晓元素属性和分解页面模块,提高了匹配效率。
[0075]
本发明实施例中,基于上述方法的处理流程示意图如图2所示,输入自然语言,判断控件类型是否为常见类型,若是组装常见数据结构,若否组装不常见数据结构,其中,所述常见数据结构各属性有预设值,所述不常见数据结构只有keyword有值,其余字段为空,输出控件列表到控件训练库,判断训练库是否获取到元素,若是,模糊匹配度最高的数据结构,包含:xpath、text、name和attribute等属性,利用匹配度算法计算出匹配值,判断元素匹配值是否大于预设的匹配度阈值,若是,返回数据结构,若否,遍历训练库中其余数据结构列表,找到元素,计算匹配值,获取最大匹配值元素,判断该元素匹配值是否大于预设的匹配度阈值,若是,返回数据结构,若否,页面遍历所有元素,使用keywoed、attribute对元素进行匹配,判断是否存在匹配值大于预设的匹配度阈值的元素,若是,停止遍历,返回数据结构,若否,返回空,结束。
[0076]
进一步的,若没有获取到元素,组装数据结构,生成“keyword=关键词”其余字段为空的数据结构在pagesource中执行元素匹配算法,页面遍历所有元素,使用keywoed、attribute对元素进行匹配,判断是否存在匹配值大于预设的匹配度阈值的元素,若是,停止遍历,返回数据结构,若否,返回空,结束。
[0077]
对上述过程进行举例,例如:
[0078]
(1)输入自然语言,如“登录”,自然语言自动化用例脚本运行;
[0079]
(2)控件类型识别算法运行,根据关键词模糊匹配控件类型,并组装控件属性;
[0080]
(3)mysql控件库检索,是否含有符合当前控件的数据;
[0081]
(4)如果mysql控件库中存在符合的数据,则将该数据结构传给控件匹配算法模块,确认当前数据结构是否为要找的元素;
[0082]
(5)如果mysql控件库中检索的数据不能匹配与keyword相符的元素,再启动控件检索,查找最符合要求的第一个元素;
[0083]
(6)返回给操作动作执行模块,确认元素是否能点击、输入或划动等操作;
[0084]
(7)如果不能正确执行点击、输入或划动等操作,则启动重试机制,循环(5)

(6)操作;
[0085]
(8)元素操作执行成功后,启动数据埋点校验模块,从mysql数据库中读取模版数据进行校验,输出自动化测试报告并存档。
[0086]
上述过程,通过自然语言编写自动化用例脚本,并智能匹配元素,执行前端页面操
作,进行埋点数据自动化校验,能够使自动化脚本的维护成本显著降低。
[0087]
基于上述的一种基于自然语言智能识别控件的数据埋点测试方法,本发明实施例中提供了一种基于自然语言智能识别控件的数据埋点测试装置,所述测试装置的结构框图如图3所示,包括:
[0088]
识别模块201、第一确定模块202、第二确定模块203和获取和校验模块204。
[0089]
其中,
[0090]
所述识别模块201,用于基于自然语言脚本识别目标控件,其中,所述目标控件包括:xpath和第一目标参数;
[0091]
所述第一确定模块202,用于基于所述xpath确定当前页面元素结构中是否存在目标元素,其中,所述目标元素包括:第二目标参数,所述目标元素至少为一个;
[0092]
所述第二确定模块203,用于若存在,基于所述第一目标参数和所述第二目标参数确定所述目标控件与所述目标元素是否匹配;
[0093]
所述获取和校验模块204,用于在所述目标控件与所述目标元素匹配的情况下,获取与所述目标元素对应的数据埋点,对所述数据埋点进行校验。
[0094]
本发明公开了一种基于自然语言智能识别控件的数据埋点测试装置,包括:基于自然语言脚本识别目标控件,目标控件包括:xpath和第一目标参数;基于xpath确定当前页面元素结构中是否存在目标元素,目标元素包括:第二目标参数,目标元素至少为一个;若存在,基于第一目标参数和第二目标参数确定目标控件与所述目标元素是否匹配;在目标控件与目标元素匹配的情况下,获取与目标元素对应的数据埋点,对数据埋点进行校验。上述过程中,能够通过自然语言识别目标控件,并基于目标控件中的xpath匹确定是否存在目标元素,执行前端页面操作,进行埋点数据自动化校验,不需要提前知晓元素属性和分解页面模块,提高了匹配效率。
[0095]
本发明实施例中,所述识别模块201包括:
[0096]
获取单元205和匹配单元206。
[0097]
其中,
[0098]
所述获取单元205,用于获取所述自然语言脚本中的关键词,将所述关键词转成控件;
[0099]
所述匹配单元206,用于将所述控件在预设控件中进行模糊匹配,在达到匹配要求的情况下,将所述控件作为所述目标控件。
[0100]
本发明实施例中,所述第二确定模块203包括:
[0101]
计算单元207和第一判断单元208。
[0102]
其中,
[0103]
所述计算单元207,用于计算所述第一目标参数和所述第二目标参数的第一匹配值;
[0104]
所述第一判断单元208,用于判断所述第一匹配值是否大于预设的匹配度阈值。
[0105]
本发明实施例中,所述第二确定模块203还包括:
[0106]
生成单元209、确定单元210和第二判断单元211。
[0107]
其中,
[0108]
所述生成单元209,用于若不存在,基于通用处理方式生成备选xpath;
[0109]
所述确定单元210,用于基于所述备选xpath确定第一备选目标元素,确定与所述第一备选目标元素与所述目标控件的第二匹配值;
[0110]
所述第二判断单元211,用于在所述第二匹配值小于所述预设相似度阈值的情况下,遍历所述当前页面各个元素,判断是否存在大于所述预设相似度阈值的第二备选目标元素。
[0111]
本发明实施例中,所述获取和校验模块204包括:
[0112]
执行单元212和校验单元213。
[0113]
其中,
[0114]
所述执行单元212,用于对所述目标元素执行预设自动化操作,得到数据埋点;
[0115]
所述校验单元213,用于基于数据埋点校验脚本对所述数据埋点进行校验。
[0116]
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0117]
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0118]
以上对本发明所提供的一种基于自然语言智能识别控件的数据埋点测试方法及装置进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

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

相关文献