CN113032264A - 页面视图控件的检测方法及装置 - Google Patents

页面视图控件的检测方法及装置 Download PDF

Info

Publication number
CN113032264A
CN113032264A CN202110333030.4A CN202110333030A CN113032264A CN 113032264 A CN113032264 A CN 113032264A CN 202110333030 A CN202110333030 A CN 202110333030A CN 113032264 A CN113032264 A CN 113032264A
Authority
CN
China
Prior art keywords
control
view
structure tree
page
view control
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.)
Granted
Application number
CN202110333030.4A
Other languages
English (en)
Other versions
CN113032264B (zh
Inventor
杨野驰
葛锋
刘潇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Netease Shuzhifan Technology Co ltd
Original Assignee
Netease Hangzhou Network Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Netease Hangzhou Network Co Ltd filed Critical Netease Hangzhou Network Co Ltd
Priority to CN202110333030.4A priority Critical patent/CN113032264B/zh
Publication of CN113032264A publication Critical patent/CN113032264A/zh
Application granted granted Critical
Publication of CN113032264B publication Critical patent/CN113032264B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/368Test management for test version control, e.g. updating test cases to a new software version

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

本公开涉及UI自动化测试技术领域,提供一种页面视图控件的检测方法及装置,以解决视图控件检测时间久的问题,该方法包括:响应于测试脚本发送的控件查询请求,获取测试对象当前页面的第一页面结构树,调用视图控件检测线程遍历第一页面结构树,检测第一页面结构树中是否存在目标视图控件,以及并行调用操作控件检测线程遍历第一页面结构树,获得目标操作控件;在获得视图控件检测结果之后,生成针对目标操作控件的驱动指令,以对目标操作控件执行相应的操作。采用双线程模式并行检测页面结构树的策略,节省检测控件花费的时间,提高检测效率。利用等待机制的特点,可避免在自动化测试进程因突然弹出的目标视图控件而中断。

Description

页面视图控件的检测方法及装置
技术领域
本公开涉及用户界面设计(User Interface Design,UI)自动化测试技术领域,提供了一种页面视图控件的检测方法及装置。
背景技术
相关技术中的UI自动化测试技术中,通常使用Python、Java等脚本语言编写测试脚本,再调用开源API进行UI自动化测试。但在运行测试脚本的过程中,会因突然出现的视图控件(如,弹窗、提示框等)对UI自动化测试进程造成阻碍,中断测试脚本的运行。因此,为了保证UI自动化测试进程能顺利、有序地运行,可采用图像识别或者轮询页面结构的方式,判断是否出现视图控件。
但对于UI结构复杂的页面来说,采用上述两种方式的检测时间较长,导致视图控件无法被及时处理,进而影响到测试脚本的运行进度。
有鉴于此,本公开实施例提供了一种新的页面视图控件的检测方法及装置。
发明内容
本公开实施例提供一种页面视图控件的检测方法及装置,以解决视图控件检测时间久的问题。
第一方面,本公开实施例提供了一种页面视图控件的检测方法,包括:
响应于测试脚本发送的控件查询请求,获取测试对象当前页面的第一页面结构树;
调用视图控件检测线程遍历所述第一页面结构树,检测所述第一页面结构树中是否存在目标视图控件,以及并行调用操作控件检测线程遍历所述第一页面结构树,获得目标操作控件;
在获得视图控件检测结果之后,生成针对所述目标操作控件的驱动指令,以对所述目标操作控件执行相应的操作。
可选的,所述调用视图控件检测线程遍历所述第一页面结构树,检测所述第一页面结构树中是否存在目标视图控件,包括:
通过所述视图控件检测线程遍历所述第一页面结构树中的各个控件;
对于每个所遍历的控件,若相应控件的第一控件检索信息与预设的第二控件检索信息集合进行匹配后,获得了相应的匹配项,则生成相应的视图控件检测结果,所述视图控件检测结果表征获得所述匹配项的控件为所述目标视图控件;
基于所述视图控件检测结果关闭所述目标视图控件。
可选的,所述调用视图控件检测线程遍历所述第一页面结构树,检测所述第一页面结构树中是否存在目标视图控件,包括:
通过所述视图控件检测线程遍历所述第一页面结构树中的各个控件;
对于每个所遍历的控件,若相应控件的第一控件检索信息在与预设的第二控件检索信息集合进行匹配后,均未获得相应的匹配项,则生成相应的视图控件检测结果,所述视图控件检测结果表征所述第一页面结构树中不存在所述目标视图控件。
可选的,所述第二控件检索信息集合包括至少一个第二控件检索信息,所述第二控件检索信息通过以下方式获得:
基于历史检测记录获取历史页面的第二页面结构树,所述历史页面包括历史视图控件,所述第二页面结构树包含所述历史视图控件的第一控件标识;
根据所述第一控件标识,从所述第二页面结构树中提取所述历史视图控件的子结构树;
根据所述子结构树获取所述历史视图控件的控件标题以及所述历史视图控件的文本信息;
将所述第一控件标识、所述历史视图控件的控件标题和所述历史视图控件的文本信息封装为所述第二控件检索信息。
可选的,所述目标视图控件为以下任意一种:
弹窗、悬浮层、提示框、气泡框。
可选的,所述并行调用操作控件检测线程遍历所述第一页面结构树,获得目标操作控件,包括:
通过所述操作控件检测线程遍历所述第一页面结构树中的各个控件;
对于每个所遍历的控件,若相应控件的第一控件检索信息与第二控件标识相匹配,则将所述控件确定为所述目标操作控件;
其中,所述第二控件标识是基于测试脚本发送的控件查询请求而获得的。
可选的,在获得视图控件检测结果之后,生成针对所述目标操作控件的驱动指令,包括:
在未获得所述视图控件检测结果之前,若所述操作控件检测线程已经遍历完毕并获得所述目标操作控件,则暂时阻塞所述操作控件检测线程;
待所述视图控件检测线程遍历完毕后,重新唤醒所述操作控件检测线程,并基于所获得的视图控件检测结果,生成针对所述目标操作控件的驱动指令。
可选的,生成针对所述目标操作控件的驱动指令,包括:
通过所述操作控件检测线程,向控件驱动线程发送所述目标操作控件的驱动信息和驱动事件,所述驱动信息包括所述目标操作控件的控件标识和/或所述目标操作控件在所述当前页面中的位置坐标,所述驱动事件为期望所述驱动指令针对所述目标操作控件而触发的行为事件,所述驱动事件是基于所述测试脚本发送的控件查询请求获得的;
调用所述控件驱动线程对所述驱动信息和所述驱动事件进行封装,以生成所述驱动指令。
第二方面,本公开实施例还提供了一种页面视图控件的检测装置,包括:
获取单元,用于响应于测试脚本发送的控件查询请求,获取测试对象当前页面的第一页面结构树;
检测单元,用于调用视图控件检测线程遍历所述第一页面结构树,检测所述第一页面结构树中是否存在目标视图控件,以及并行调用操作控件检测线程遍历所述第一页面结构树,获得目标操作控件;
处理单元,用于在获得视图控件检测结果之后,生成针对所述目标操作控件的驱动指令,以对所述目标操作控件执行相应的操作。
可选的,所述检测单元用于:
通过所述视图控件检测线程遍历所述第一页面结构树中的各个控件;
对于每个所遍历的控件,若相应控件的第一控件检索信息与预设的第二控件检索信息集合进行匹配后,获得了相应的匹配项,则生成相应的视图控件检测结果,所述视图控件检测结果表征获得所述匹配项的控件为所述目标视图控件;
基于所述视图控件检测结果关闭所述目标视图控件。
可选的,所述检测单元用于:
通过所述视图控件检测线程遍历所述第一页面结构树中的各个控件;
对于每个所遍历的控件,若相应控件的第一控件检索信息在与预设的第二控件检索信息集合进行匹配后,均未获得相应的匹配项,则生成相应的视图控件检测结果,所述视图控件检测结果表征所述第一页面结构树中不存在所述目标视图控件。
可选的,所述第二控件检索信息集合包括至少一个第二控件检索信息,所述装置还包括生成单元,所述生成单元通过以下方式获得第二控件检索信息:
基于历史检测记录获取历史页面的第二页面结构树,所述历史页面包括历史视图控件,所述第二页面结构树包含所述历史视图控件的第一控件标识;
根据所述第一控件标识,从所述第二页面结构树中提取所述历史视图控件的子结构树;
根据所述子结构树获取所述历史视图控件的控件标题以及所述历史视图控件的文本信息;
将所述第一控件标识、所述历史视图控件的控件标题和所述历史视图控件的文本信息封装为所述第二控件检索信息。
可选的,所述目标视图控件为以下任意一种:
弹窗、悬浮层、提示框、气泡框。
可选的,所述检测单元用于:
通过所述操作控件检测线程遍历所述第一页面结构树中的各个控件;
对于每个所遍历的控件,若相应控件的第一控件检索信息与第二控件标识相匹配,则将所述控件确定为所述目标操作控件;
其中,所述第二控件标识是基于测试脚本发送的控件查询请求而获得的。
可选的,所述处理单元用于:
在未获得所述视图控件检测结果之前,若所述操作控件检测线程已经遍历完毕并获得所述目标操作控件,则暂时阻塞所述操作控件检测线程;
待所述视图控件检测线程遍历完毕后,重新唤醒所述操作控件检测线程,并基于所获得的视图控件检测结果,生成针对所述目标操作控件的驱动指令。
可选的,所述处理单元用于:
通过所述操作控件检测线程,向控件驱动线程发送所述目标操作控件的驱动信息和驱动事件,所述驱动信息包括所述目标操作控件的控件标识和/或所述目标操作控件在所述当前页面中的位置坐标,所述驱动事件为期望所述驱动指令针对所述目标操作控件而触发的行为事件,所述驱动事件是基于所述测试脚本发送的控件查询请求获得的;
调用所述控件驱动线程对所述驱动信息和所述驱动事件进行封装,以生成所述驱动指令。
第三方面,本公开实施例还提供了一种计算机设备,包括处理器和存储器,其中,所述存储器存储有程序代码,当所述程序代码被所述处理器执行时,使得所述处理器执行上述任意一种页面视图控件的检测方法的步骤。
第四方面,本公开实施例还提供了一种计算机可读存储介质,其包括程序代码,当程序产品在计算机设备上运行时,所述程序代码用于使所述计算机设备执行上述任意一种页面视图控件的检测方法的步骤。
本公开有益效果如下:
本公开实施例提供的一种页面视图控件的检测方法及装置,该方法包括:响应于测试脚本发送的控件查询请求,获取测试对象当前页面的第一页面结构树,调用视图控件检测线程遍历第一页面结构树,检测第一页面结构树中是否存在目标视图控件,以及并行调用操作控件检测线程遍历第一页面结构树,获得目标操作控件;在获得视图控件检测结果之后,生成针对目标操作控件的驱动指令,以对目标操作控件执行相应的操作。采用双线程模式并行检测页面结构树的策略,尤其是对UI结构复杂的页面来说,大大节省了检测控件花费的时间,有利于提高检测效率。而利用等待机制的特点,在获取到视图控件检测结果,确保当前页面中的目标视图控件已关闭,或当前页面中不存在目标视图控件之后,再生成针对目标操作控件的驱动指令,避免在自动化测试进程因突然弹出的目标视图控件而中断。
本公开的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本公开而了解。本公开的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
此处所说明的附图用来提供对本公开的进一步理解,构成本公开的一部分,本公开的示意性实施例及其说明用于解释本公开,并不构成对本公开的不当限定。在附图中:
图1为本公开实施例中应用场景的一个可选的示意图;
图2a为本公开实施例中页面视图控件的检测方法的流程示意图;
图2b为音乐APP的首页示意图;
图2c为本公开实施例中视图控件检测线程遍历第一页面结构树的流程示意图;
图2d为本公开实施例中悬浮窗的示意图;
图2e为本公开实施例中提示框的示意图;
图2f为本公开实施例中气泡框的示意图;
图3为本公开实施例中一种页面视图控件的检测装置的结构示意图;
图4为本公开实施例中一种计算机设备的结构示意图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中的附图,对本公开的技术方案进行清楚、完整地描述,显然,所描述的实施例是本公开技术方案的一部分实施例,而不是全部的实施例。基于本公开文件中记载的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本公开技术方案保护的范围。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够使用除了在这里图示或描述的那些以外的顺序实施。
相关技术中的UI自动化测试技术中,通常使用Python、Java等脚本语言编写测试脚本,再调用开源API进行UI自动化测试。但在运行测试脚本的过程中,会因突然出现的视图控件(如,弹窗、提示框等)对UI自动化测试进程造成阻碍,中断测试脚本的运行。因此,为了保证UI自动化测试进程能顺利、有序地运行,可采用图像识别或者轮询页面结构的方式,判断是否出现弹窗。
但对于UI结构复杂的页面来说,采用上述两种方式的检测时间较长,导致视图控件无法被及时处理,进而影响到测试脚本的运行进度。有鉴于此,本公开实施例提供了一种新的页面视图控件的检测方法及装置。
参阅图1示出的应用场景示意图,在该应用场景中包括测试终端110和被测终端120。测试终端110为运行测试脚本的终端,如台式机、笔记本电脑等具备测试脚本运行环境的电子设备;被测终端120为安装有被测应用程序(Application,APP)和UI自动化测试APP的终端,如手机、平板电脑等可移动便携式电子设备。将测试终端110的API接口与被测终端的API接口连接,UI自动化测试APP响应于测试脚本发送的控件查询请求,对被测APP进行UI自动化测试。
参阅图2a示出的流程示意图,对本公开实施例提供的页面视图控件的检测方法进行介绍。
S201:响应于测试脚本发送的控件查询请求,获取测试对象当前页面的第一页面结构树。
测试对象指的是安装在被测终端120上的被测APP。当UI自动化测试APP接收到测试脚本发送的、针对被测APP的控件查询请求时,UI自动化测试APP一边获取被测APP当前页面的第一页面结构树,一边对控件查询请求进行解析,获取该请求中携带的目标操作控件的第二控件标识、目标操作控件的驱动事件,其中,驱动事件指的是期望驱动指令针对目标操作控件而触发的行为事件。需要指出的是,若驱动事件为多点触摸事件,测试脚本可将驱动事件以及多个目标操作控件的第二控件标识,封装在同一个控件查询请求中。
在获取被测APP当前页面的第一页面结构树时,本公开实施例还提供了一种优选实施例:UI自动化测试APP采用非轮询策略获取当前页面的第一页面结构树,即若UI自动化测试APP之前获取过该页面的第一页面结构树,则无需重复获取第一页面结构树,可直接使用之前已获取的第一页面结构树,节省获取第一页面结构树的时间,简化整体流程,提升工作效率。
在第一页面结构树中,至少包括页面上各个控件的子结构树,每个子结构树中包含对应控件的属性信息。属性信息至少包括以下属性和对应的属性值:控件标识、控件类型、控件坐标(包括控件框的左上角坐标、右下角坐标)、控件标题、控件的文本信息、子控件(控件上的附属控件,如视图关闭控件等)、子控件标识以及子控件的坐标。其中,控件标识、控件标题和控件的文本信息,可作为控件的第一控件检索信息,用于判断控件是否为目标视图控件。
例如,在图2b所示的音乐APP的首页上存在一弹窗,则该弹窗的属性信息如表1所示。
表1
属性 属性值
控件标识 e2d96d56
控件类型 视图控件
控件坐标 (26,58)(56,27)
控件标题 获取权限
控件的文本信息 “请问是否允许获取设备地理位置”
子控件1 视图关闭控件
子控件1标识 e2d96d5v
子控件1坐标 (50,57)(55,50)
子控件2 点击控件
子控件2标识 e2d96d5c
子控件2的文本信息 “是”
子控件2的坐标 (28,30)(36,29)
子控件3 点击控件
子控件3标识 e2d96d5d
子控件3的文本信息 “否”
子控件3的坐标 (45,30)(53,29)
S202:调用视图控件检测线程遍历第一页面结构树,检测第一页面结构树中是否存在目标视图控件,以及并行调用操作控件检测线程遍历第一页面结构树,获得目标操作控件。
可选的,参阅图2c示出的流程示意图,对视图控件检测线程遍历第一页面结构树的过程介绍如下:
S2021:通过视图控件检测线程遍历第一页面结构树中的各个控件。
在执行步骤2021时,视图控件检测线程按照从上至下的顺序,依次遍历第一页面结构树中的各个控件。
但在执行步骤2021之前,UI自动化测试APP从被测终端120的本地数据库中,获取第二控件检索信息集合,第二控件检索信息集合包括至少一个第二控件检索信息。第二控件检索信息集合中添加了历史视图控件的部分属性信息,便于视图控件检测线程在遍历的过程中,快速、准确地从第一页面结构树中检测到目标视图控件。
具体地,生成一个第二控件检索信息的过程如下:
基于历史检测记录获取历史页面的第二页面结构树,历史页面包括历史视图控件,第二页面结构树包含所述历史视图控件的第一控件标识;
根据第一控件标识,从第二页面结构树中提取历史视图控件的子结构树;
根据子结构树获取历史视图控件的控件标题以及历史视图控件的文本信息,并将第一控件标识、历史视图控件的控件标题和历史视图控件的文本信息,封装为第二控件检索信息。
其中,历史页面指的曾出现过历史视图控件的页面。如,对安装在被测终端120上的社交类APP执行点击操作,进入社交类APP的首页,当首页页面刚刚加载完毕,在页面中心处弹出一个APP版本更新的提示框。
S2022:对于每个所遍历的控件,若相应控件的第一控件检索信息与第二控件检索信息集合进行匹配后,获得了相应的匹配项,则生成相应的视图控件检测结果,视图控件检测结果表征获得匹配项的控件为目标视图控件。
第一控件检索信息至少包括:控件的控件标识、控件的控件标题、控件的文本信息;第二控件检索信息集合中的一个第二控件检索信息至少包括:历史视图控件的第一控件标识、历史视图控件的控件标题、历史视图控件的文本信息。因此,将第一控件检索信息分别与各个第二控件检索信息进行匹配,将与控件匹配一致的历史视图控件作为控件的匹配项,控件被确定为目标视图控件,并生成视图控件检测结果。
S2023:基于视图控件检测结果关闭目标视图控件。
根据视图控件检测结果中的历史视图控件的第一控件标识,从本地数据库中获取与第一控件标识对应的控件关闭信息,该控件关闭信息中包括历史视图关闭子控件的子控件标识、历史视图关闭子控件在历史视图控件中的位置坐标。
基于子控件标识和历史视图关闭子控件在历史视图控件中的位置坐标,获得控件上的视图关闭子控件,通过点击视图关闭子控件,关闭该目标视图控件,确保在针对当前页面上的目标操作控件进行自动化测试时,不会因当前页面上突然弹出的目标视图控件中断自动化测试。
在通过视图控件检测线程遍历第一页面结构树中的各个控件,对于每个所遍历的控件,若相应控件的第一控件检索信息在于第二控件检索信息集合进行匹配后,均未获得相应的匹配项,则生成相应的视图控件检测结果,该视图控件检测结果表征第一页面结构树中不存在目标视图控件。由于第一页面结构树中不存在目标视图控件,因此,在针对当前页面上的目标操作控件进行自动化测试时,不会因当前页面上突然弹出的目标视图控件中断自动化测试。
本公开实施例中的目标视图控件可为以下任意一种:弹窗、悬浮层、提示框、气泡框。
若目标视图控件为弹窗,在未及时处理弹窗的情况下,可能出现运行控件驱动线程的过程中,以页面中心为弹出方向,弹出弹窗形如图2b所示的弹窗;
若目标视图控件为悬浮窗,在未及时处理悬浮窗的情况下,可能出现运行控件驱动线程的过程中,在页面的任意位置弹出形如图2d所示的悬浮窗;
若目标视图控件为提示框,在未及时处理提示框的情况下,可能出现运行控件驱动线程的过程中,在页面中心处弹出形如图2e所示的提示框;
若目标视图控件为气泡框,在未及时处理气泡框的情况下,可能出现运行控件驱动线程的过程中,在页面的任意位置弹出形如图2f所示的气泡框。
可选的,对操作控件检测线程遍历第一页面结构树的过程介绍如下:
通过操作控件检测线程遍历第一页面结构树中的各个控件,对于每个所遍历的控件,若相应控件的第一控件检索信息与第二控件标识相匹配,则将该控件确定为目标操作控件。其中,第二控件标识是基于测试脚本发送的控件查询请求获得的。
采用双线程模式并行检测页面结构树的策略,尤其是对UI结构复杂的页面来说,大大节省了检测控件花费的时间,有利于提高检测效率。
S203:在获得视图控件检测结果之后,生成针对目标操作控件的驱动指令,以对目标操作控件执行相应的操作。
本公开实施例中在视图控件检测线程和操作控件检测线程之间,遵守预设的等待机制,即在未获得视图控件检测结果之前,若操作控件检测线程已经遍历完毕并获得目标操作控件,则暂时阻塞操作控件检测线程;待视图控件检测线程遍历完毕后,重新唤醒操作控件检测线程,并基于所获得的视图控件检测结果,生成针对目标操作控件的驱动指令。利用等待机制的特点,在获取到视图控件检测结果,确保当前页面中的目标视图控件已关闭,或当前页面中不存在目标视图控件之后,再生成针对目标操作控件的驱动指令,避免在自动化测试进程因突然弹出的目标视图控件而中断。
通过操作控件检测线程,向控件驱动线程发送目标操作控件的驱动信息和驱动事件,该驱动信息包括目标操作控件的控件标识和/或目标操作控件在当前页面中的位置坐标;再调用控件驱动线程对驱动信息和驱动事件进行封装,以生成驱动指令。
例如,若目标操作控件为搜索栏,获取搜索栏在当前页面中的位置坐标,以及针对搜索栏的驱动事件“点击搜索栏”,生成形如“点击搜索栏:搜索栏的坐标”的驱动指令。除了点击事件外,本公开实施例至少提供了以下几种驱动事件:滑动事件(如,下拉菜单、上滑收起菜单、滑动解锁)、双击事件、多点触摸、特定手势操作(如,在屏幕上画“S”形)、拖动事件。
参阅图3示出的页面视图控件的检测装置的结构示意图,在该装置中包括获取单元301、检测单元302和处理单元303,其中,
获取单元301,用于响应于测试脚本发送的控件查询请求,获取测试对象当前页面的第一页面结构树;
检测单元302,用于调用视图控件检测线程遍历所述第一页面结构树,检测所述第一页面结构树中是否存在目标视图控件,以及并行调用操作控件检测线程遍历所述第一页面结构树,获得目标操作控件;
处理单元303,用于在获得视图控件检测结果之后,生成针对所述目标操作控件的驱动指令,以对所述目标操作控件执行相应的操作。
可选的,所述检测单元301用于:
通过所述视图控件检测线程遍历所述第一页面结构树中的各个控件;
对于每个所遍历的控件,若相应控件的第一控件检索信息与预设的第二控件检索信息集合进行匹配后,获得了相应的匹配项,则生成相应的视图控件检测结果,所述视图控件检测结果表征获得所述匹配项的控件为所述目标视图控件;
基于所述视图控件检测结果关闭所述目标视图控件。
可选的,所述检测单元301用于:
通过所述视图控件检测线程遍历所述第一页面结构树中的各个控件;
对于每个所遍历的控件,若相应控件的第一控件检索信息在与预设的第二控件检索信息集合进行匹配后,均未获得相应的匹配项,则生成相应的视图控件检测结果,所述视图控件检测结果表征所述第一页面结构树中不存在所述目标视图控件。
可选的,所述第二控件检索信息集合包括至少一个第二控件检索信息,所述装置还包括生成单元304,所述生成单元304通过以下方式获得第二控件检索信息:
基于历史检测记录获取历史页面的第二页面结构树,所述历史页面包括历史视图控件,所述第二页面结构树包含所述历史视图控件的第一控件标识;
根据所述第一控件标识,从所述第二页面结构树中提取所述历史视图控件的子结构树;
根据所述子结构树获取所述历史视图控件的控件标题以及所述历史视图控件的文本信息;
将所述第一控件标识、所述历史视图控件的控件标题和所述历史视图控件的文本信息封装为所述第二控件检索信息。
可选的,所述目标视图控件为以下任意一种:
弹窗、悬浮层、提示框、气泡框。
可选的,所述检测单元302用于:
通过所述操作控件检测线程遍历所述第一页面结构树中的各个控件;
对于每个所遍历的控件,若相应控件的第一控件检索信息与第二控件标识相匹配,则将所述控件确定为所述目标操作控件;
其中,所述第二控件标识是基于测试脚本发送的控件查询请求而获得的。
可选的,所述处理单元303用于:
在未获得所述视图控件检测结果之前,若所述操作控件检测线程已经遍历完毕并获得所述目标操作控件,则暂时阻塞所述操作控件检测线程;
待所述视图控件检测线程遍历完毕后,重新唤醒所述操作控件检测线程,并基于所获得的视图控件检测结果,生成针对所述目标操作控件的驱动指令。
可选的,所述处理单元303用于:
通过所述操作控件检测线程,向控件驱动线程发送所述目标操作控件的驱动信息和驱动事件,所述驱动信息包括所述目标操作控件的控件标识和/或所述目标操作控件在所述当前页面中的位置坐标,所述驱动事件为期望所述驱动指令针对所述目标操作控件而触发的行为事件,所述驱动事件是基于所述测试脚本发送的控件查询请求获得的;
调用所述控件驱动线程对所述驱动信息和所述驱动事件进行封装,以生成所述驱动指令。
在一些可能的实施方式中,本公开实施例还提供了一种计算机设备,参阅图4示出的结构示意图,计算机设备至少包括至少一个处理器401、以及至少一个存储器402。其中,存储器402存储有程序代码,当程序代码被处理器401执行时,使得处器401执行本说明书上述描述的根据本公开各种示例性实施方式的页面视图控件的检测方法中的步骤。例如,处理器401可以执行如图2a中所示的步骤。
在一些可能的实施方式中,本公开提供的页面视图控件的检测方法的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在计算机设备上运行时,程序代码用于使计算机设备执行本说明书上述描述的根据本公开各种示例性实施方式的页面视图控件的检测方法中的步骤,例如,计算机设备可以执行如图2a中所示的步骤。
程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
本公开的实施方式的用于业务控制的程序产品可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在计算装置上运行。然而,本公开的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被命令执行系统、装置或者器件使用或者与其结合使用。
可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由命令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本公开操作的程序代码,程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算装置上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算装置上部分在远程计算装置上执行、或者完全在远程计算装置或服务器上执行。在涉及远程计算装置的情形中,远程计算装置可以通过任意种类的网络包括局域网(LAN)或广域网(WAN)连接到用户计算装置,或者,可以连接到外部计算装置(例如利用因特网服务提供商来通过因特网连接)。
尽管已描述了本公开的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本公开范围的所有变更和修改。
显然,本领域的技术人员可以对本公开进行各种改动和变型而不脱离本公开的精神和范围。这样,倘若本公开的这些修改和变型属于本公开权利要求及其等同技术的范围之内,则本公开也意图包含这些改动和变型在内。

Claims (10)

1.一种页面视图控件的检测方法,其特征在于,包括:
响应于测试脚本发送的控件查询请求,获取测试对象当前页面的第一页面结构树;
调用视图控件检测线程遍历所述第一页面结构树,检测所述第一页面结构树中是否存在目标视图控件,以及并行调用操作控件检测线程遍历所述第一页面结构树,获得目标操作控件;
在获得视图控件检测结果之后,生成针对所述目标操作控件的驱动指令,以对所述目标操作控件执行相应的操作。
2.如权利要求1所述的方法,其特征在于,所述调用视图控件检测线程遍历所述第一页面结构树,检测所述第一页面结构树中是否存在目标视图控件,包括:
通过所述视图控件检测线程遍历所述第一页面结构树中的各个控件;
对于每个所遍历的控件,若相应控件的第一控件检索信息与预设的第二控件检索信息集合进行匹配后,获得了相应的匹配项,则生成相应的视图控件检测结果,所述视图控件检测结果表征获得所述匹配项的控件为所述目标视图控件;
基于所述视图控件检测结果关闭所述目标视图控件。
3.如权利要求1所述的方法,其特征在于,所述调用视图控件检测线程遍历所述第一页面结构树,检测所述第一页面结构树中是否存在目标视图控件,包括:
通过所述视图控件检测线程遍历所述第一页面结构树中的各个控件;
对于每个所遍历的控件,若相应控件的第一控件检索信息在与预设的第二控件检索信息集合进行匹配后,均未获得相应的匹配项,则生成相应的视图控件检测结果,所述视图控件检测结果表征所述第一页面结构树中不存在所述目标视图控件。
4.如权利要求2或3所述的方法,其特征在于,所述第二控件检索信息集合包括至少一个第二控件检索信息,所述第二控件检索信息通过以下方式获得:
基于历史检测记录获取历史页面的第二页面结构树,所述历史页面包括历史视图控件,所述第二页面结构树包含所述历史视图控件的第一控件标识;
根据所述第一控件标识,从所述第二页面结构树中提取所述历史视图控件的子结构树;
根据所述子结构树获取所述历史视图控件的控件标题以及所述历史视图控件的文本信息;
将所述第一控件标识、所述历史视图控件的控件标题和所述历史视图控件的文本信息封装为所述第二控件检索信息。
5.如权利要求1或2所述的方法,其特征在于,所述目标视图控件为以下任意一种:
弹窗、悬浮层、提示框、气泡框。
6.如权利要求1所述的方法,其特征在于,所述并行调用操作控件检测线程遍历所述第一页面结构树,获得目标操作控件,包括:
通过所述操作控件检测线程遍历所述第一页面结构树中的各个控件;
对于每个所遍历的控件,若相应控件的第一控件检索信息与第二控件标识相匹配,则将所述控件确定为所述目标操作控件;
其中,所述第二控件标识是基于测试脚本发送的控件查询请求而获得的。
7.如权利要求1所述的方法,其特征在于,在获得视图控件检测结果之后,生成针对所述目标操作控件的驱动指令,包括:
在未获得所述视图控件检测结果之前,若所述操作控件检测线程已经遍历完毕并获得所述目标操作控件,则暂时阻塞所述操作控件检测线程;
待所述视图控件检测线程遍历完毕后,重新唤醒所述操作控件检测线程,并基于所获得的视图控件检测结果,生成针对所述目标操作控件的驱动指令。
8.一种页面视图控件的检测装置,其特征在于,包括:
获取单元,用于响应于测试脚本发送的控件查询请求,获取测试对象当前页面的第一页面结构树;
检测单元,用于调用视图控件检测线程遍历所述第一页面结构树,检测所述第一页面结构树中是否存在目标视图控件,以及并行调用操作控件检测线程遍历所述第一页面结构树,获得目标操作控件;
处理单元,用于在获得视图控件检测结果之后,生成针对所述目标操作控件的驱动指令,以对所述目标操作控件执行相应的操作。
9.一种计算机设备,其特征在于,其包括处理器和存储器,其中,所述存储器存储有程序代码,当所述程序代码被所述处理器执行时,使得所述处理器执行权利要求1~7中任一项所述方法的步骤。
10.一种计算机可读存储介质,其特征在于,其包括程序代码,当程序产品在计算机设备上运行时,所述程序代码用于使所述计算机设备执行权利要求1~7中任一项所述方法的步骤。
CN202110333030.4A 2021-03-29 2021-03-29 页面视图控件的检测方法及装置 Active CN113032264B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110333030.4A CN113032264B (zh) 2021-03-29 2021-03-29 页面视图控件的检测方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110333030.4A CN113032264B (zh) 2021-03-29 2021-03-29 页面视图控件的检测方法及装置

Publications (2)

Publication Number Publication Date
CN113032264A true CN113032264A (zh) 2021-06-25
CN113032264B CN113032264B (zh) 2024-09-06

Family

ID=76452552

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110333030.4A Active CN113032264B (zh) 2021-03-29 2021-03-29 页面视图控件的检测方法及装置

Country Status (1)

Country Link
CN (1) CN113032264B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113608817A (zh) * 2021-08-19 2021-11-05 上海幻电信息科技有限公司 弹框处理方法及系统
CN114025210A (zh) * 2021-11-01 2022-02-08 深圳小湃科技有限公司 弹窗屏蔽方法、设备、存储介质及装置
CN114463730A (zh) * 2021-07-15 2022-05-10 荣耀终端有限公司 一种页面识别方法及终端设备
CN114670200A (zh) * 2022-03-30 2022-06-28 上海擎朗智能科技有限公司 应用于机器人的自动化测试方法、计算机存储介质及机器人

Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105573911A (zh) * 2015-12-10 2016-05-11 北京奇虎科技有限公司 一种应用弹窗的处理方法和装置
WO2016101768A1 (zh) * 2014-12-26 2016-06-30 北京奇虎科技有限公司 终端以及基于触摸操作的搜索方法和装置
CN107368418A (zh) * 2017-07-26 2017-11-21 网易有道信息技术(北京)有限公司 一种遍历测试的方法、装置和介质
CN107451062A (zh) * 2017-08-09 2017-12-08 百度在线网络技术(北京)有限公司 一种用户界面遍历测试方法、装置、服务器、存储介质
CN107506300A (zh) * 2017-08-09 2017-12-22 百度在线网络技术(北京)有限公司 一种用户界面测试方法、装置、服务器和存储介质
CN108595329A (zh) * 2018-04-23 2018-09-28 腾讯科技(深圳)有限公司 一种应用测试方法、装置及计算机存储介质
CN109144608A (zh) * 2018-08-23 2019-01-04 深圳市元征科技股份有限公司 在应用程序中屏蔽控件应用的功能弹窗的方法及装置
CN109840199A (zh) * 2018-12-14 2019-06-04 深圳壹账通智能科技有限公司 一种自动化测试方法及终端
CN111258914A (zh) * 2020-02-26 2020-06-09 广州虎牙科技有限公司 自动化用例测试的弹窗处理方法、装置、设备及存储介质
US20200409830A1 (en) * 2018-01-23 2020-12-31 Netease (Hangzhou) Network Co.,Ltd. Automated testing method and apparatus, storage medium and electronic device
CN112199301A (zh) * 2020-11-30 2021-01-08 北京七维视觉科技有限公司 用户界面自动化测试方法、电子设备及存储介质
CN112286781A (zh) * 2019-07-23 2021-01-29 百度时代网络技术(北京)有限公司 自动化测试方法、装置、设备和存储介质
CN112565523A (zh) * 2020-12-22 2021-03-26 上海哔哩哔哩科技有限公司 一种自动处理弹窗方法及装置
CN113535542A (zh) * 2021-06-04 2021-10-22 北京房江湖科技有限公司 控件定位方法、装置、电子设备及可读存储介质

Patent Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016101768A1 (zh) * 2014-12-26 2016-06-30 北京奇虎科技有限公司 终端以及基于触摸操作的搜索方法和装置
CN105573911A (zh) * 2015-12-10 2016-05-11 北京奇虎科技有限公司 一种应用弹窗的处理方法和装置
CN107368418A (zh) * 2017-07-26 2017-11-21 网易有道信息技术(北京)有限公司 一种遍历测试的方法、装置和介质
CN107451062A (zh) * 2017-08-09 2017-12-08 百度在线网络技术(北京)有限公司 一种用户界面遍历测试方法、装置、服务器、存储介质
CN107506300A (zh) * 2017-08-09 2017-12-22 百度在线网络技术(北京)有限公司 一种用户界面测试方法、装置、服务器和存储介质
US20200409830A1 (en) * 2018-01-23 2020-12-31 Netease (Hangzhou) Network Co.,Ltd. Automated testing method and apparatus, storage medium and electronic device
CN108595329A (zh) * 2018-04-23 2018-09-28 腾讯科技(深圳)有限公司 一种应用测试方法、装置及计算机存储介质
CN109144608A (zh) * 2018-08-23 2019-01-04 深圳市元征科技股份有限公司 在应用程序中屏蔽控件应用的功能弹窗的方法及装置
CN109840199A (zh) * 2018-12-14 2019-06-04 深圳壹账通智能科技有限公司 一种自动化测试方法及终端
CN112286781A (zh) * 2019-07-23 2021-01-29 百度时代网络技术(北京)有限公司 自动化测试方法、装置、设备和存储介质
CN111258914A (zh) * 2020-02-26 2020-06-09 广州虎牙科技有限公司 自动化用例测试的弹窗处理方法、装置、设备及存储介质
CN112199301A (zh) * 2020-11-30 2021-01-08 北京七维视觉科技有限公司 用户界面自动化测试方法、电子设备及存储介质
CN112565523A (zh) * 2020-12-22 2021-03-26 上海哔哩哔哩科技有限公司 一种自动处理弹窗方法及装置
CN113535542A (zh) * 2021-06-04 2021-10-22 北京房江湖科技有限公司 控件定位方法、装置、电子设备及可读存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
张文烨: "基于图像识别的移动端应用控件检测方法", 《计算机应用》, vol. 40, no. 2020, pages 157 - 160 *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114463730A (zh) * 2021-07-15 2022-05-10 荣耀终端有限公司 一种页面识别方法及终端设备
CN113608817A (zh) * 2021-08-19 2021-11-05 上海幻电信息科技有限公司 弹框处理方法及系统
CN113608817B (zh) * 2021-08-19 2024-05-07 上海幻电信息科技有限公司 弹框处理方法及系统
CN114025210A (zh) * 2021-11-01 2022-02-08 深圳小湃科技有限公司 弹窗屏蔽方法、设备、存储介质及装置
CN114025210B (zh) * 2021-11-01 2023-02-28 深圳小湃科技有限公司 弹窗屏蔽方法、设备、存储介质及装置
CN114670200A (zh) * 2022-03-30 2022-06-28 上海擎朗智能科技有限公司 应用于机器人的自动化测试方法、计算机存储介质及机器人
CN114670200B (zh) * 2022-03-30 2024-04-26 上海擎朗智能科技有限公司 应用于机器人的自动化测试方法、计算机存储介质及机器人

Also Published As

Publication number Publication date
CN113032264B (zh) 2024-09-06

Similar Documents

Publication Publication Date Title
CN113032264B (zh) 页面视图控件的检测方法及装置
US10365799B2 (en) System and methods for creating on-demand robotic process automation
US10019716B1 (en) Method for feedback submission resolution
US10088969B2 (en) Image-based automation systems and methods
US11256912B2 (en) Electronic form identification using spatial information
CN114090155B (zh) 机器人流程自动化界面元素定位方法、装置和存储介质
CN113127050B (zh) 一种应用资源打包过程监控方法、装置、设备和介质
CN112882933A (zh) 脚本录制方法、装置、设备及存储介质
CN116302930A (zh) 应用测试方法和装置
CN110990264A (zh) Ui自动化测试的元素识别方法、装置、设备及存储介质
CN112597012A (zh) 应用程序的遍历方法、装置、电子设备和存储介质
CN112052146A (zh) 页面帧率测试方法、应用的安装文件生成方法及装置
CN113687880B (zh) 一种调用组件的方法、装置、设备和介质
CN115481025A (zh) 自动化测试的脚本录制方法、装置、计算机设备及介质
CN114546360A (zh) 代码程序推荐方法、装置、电子设备和存储介质
CN112612469A (zh) 一种界面元素的处理方法、装置和电子设备
CN110851346A (zh) 查询语句边界问题的检测方法、装置、设备及存储介质
CN114780645B (zh) 基于人工智能的数据分类处理方法、系统及云平台
CN117873907B (zh) 控件元素测试方法、装置及存储介质
CN112417252B (zh) 爬虫路径确定方法、装置、存储介质与电子设备
US20230282013A1 (en) Automated key-value pair extraction
CN116594886A (zh) 测试脚本生成方法、装置、电子设备和存储介质
CN115421646A (zh) 虚拟键盘处理方法、装置、电子设备、存储介质及产品
CN114691522A (zh) 自动遍历方法、装置、设备以及存储介质
CN112084502A (zh) 一种软件识别方法、装置、电子设备及存储介质

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
TA01 Transfer of patent application right

Effective date of registration: 20211015

Address after: 310052 Room 301, Building No. 599, Changhe Street Network Business Road, Binjiang District, Hangzhou City, Zhejiang Province

Applicant after: HANGZHOU LANGHE TECHNOLOGY Ltd.

Applicant after: NETEASE (HANGZHOU) NETWORK Co.,Ltd.

Address before: 310052 Building No. 599, Changhe Street Network Business Road, Binjiang District, Hangzhou City, Zhejiang Province, 4, 7 stories

Applicant before: NETEASE (HANGZHOU) NETWORK Co.,Ltd.

TA01 Transfer of patent application right
CB02 Change of applicant information

Address after: 310052 Room 301, Building No. 599, Changhe Street Network Business Road, Binjiang District, Hangzhou City, Zhejiang Province

Applicant after: Hangzhou NetEase Shuzhifan Technology Co.,Ltd.

Applicant after: NETEASE (HANGZHOU) NETWORK Co.,Ltd.

Address before: 310052 Room 301, Building No. 599, Changhe Street Network Business Road, Binjiang District, Hangzhou City, Zhejiang Province

Applicant before: HANGZHOU LANGHE TECHNOLOGY Ltd.

Applicant before: NETEASE (HANGZHOU) NETWORK Co.,Ltd.

CB02 Change of applicant information
TA01 Transfer of patent application right

Effective date of registration: 20231114

Address after: 310052 Room 301, Building No. 599, Changhe Street Network Business Road, Binjiang District, Hangzhou City, Zhejiang Province

Applicant after: Hangzhou NetEase Shuzhifan Technology Co.,Ltd.

Address before: 310052 Room 301, Building No. 599, Changhe Street Network Business Road, Binjiang District, Hangzhou City, Zhejiang Province

Applicant before: Hangzhou NetEase Shuzhifan Technology Co.,Ltd.

Applicant before: NETEASE (HANGZHOU) NETWORK Co.,Ltd.

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant