CN111324535B - 一种控件异常检测方法、装置和计算机设备 - Google Patents
一种控件异常检测方法、装置和计算机设备 Download PDFInfo
- Publication number
- CN111324535B CN111324535B CN202010100216.0A CN202010100216A CN111324535B CN 111324535 B CN111324535 B CN 111324535B CN 202010100216 A CN202010100216 A CN 202010100216A CN 111324535 B CN111324535 B CN 111324535B
- Authority
- CN
- China
- Prior art keywords
- control
- display
- target
- detection
- blueprint
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
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
本发明实施例公开了一种控件异常检测方法、装置和计算机设备,可显示目标检测项目的检测页面,其中,检测页面包括检测触发控件,目标检测项目包括至少一个版本的控件蓝图文件,基于针对检测触发控件的触发操作,显示版本输入页面;基于针对版本输入页面的版本输入操作,显示目标控件蓝图文件的检测结果页面,其中,目标控件蓝图文件的版本为通过版本输入操作确定的目标版本,检测结果页面包括目标控件蓝图文件中目标控件蓝图的控件异常检测结果,通过上述方案,无需测试人员运行目标检测项目的应用程序,脱离了安装包对控件异常检测的限制,可自动对控件蓝图进行分析,获取控件异常检测结果,有利于降低人力资源需求,提升检测速度。
Description
技术领域
本发明涉及互联网技术领域,具体涉及一种控件异常检测方法、装置和计算机设备。
背景技术
目前,一些应用程序如游戏程序等,通常需要大量的控件才能在用户使用过程中实现与用户的交互,保证用户体验。为了实际使用过程中控件的正常显示,需要对应用程序中出现的控件进行检测,以确保控件可以正常显示。
相关技术中,一般是由测试人员在应用程序的运行过程中进行人工检测,即测试人员肉眼判断显示的控件是否异常,这种异常检测方式不仅耗费人力资源,且检测效率不高,不利于应用程序的开发。
发明内容
本发明实施例提供一种控件异常检测方法、装置和计算机设备,可以提升控件异常检测的效率,降低检测所需的人力资源。
本发明实施例提供一种控件异常检测方法,该方法包括:
显示目标检测项目的检测页面,其中,所述检测页面包括检测触发控件,所述目标检测项目包括至少一个版本的控件蓝图文件,所述控件蓝图文件中包括至少一个控件蓝图;
基于针对所述检测触发控件的触发操作,显示版本输入页面;
基于针对所述版本输入页面的版本输入操作,显示目标控件蓝图文件的检测结果页面,其中,所述目标控件蓝图文件的版本为通过所述版本输入操作确定的目标版本,所述检测结果页面包括所述目标控件蓝图文件中目标控件蓝图的控件异常检测结果。
本发明实施例还提供一种控件异常检测装置,该装置包括:
检测页面显示单元,用于显示目标检测项目的检测页面,其中,所述检测页面包括检测触发控件,所述目标检测项目包括至少一个版本的控件蓝图文件,所述控件蓝图文件中包括至少一个控件蓝图;
版本输入页面显示单元,用于基于针对所述检测触发控件的触发操作,显示版本输入页面;
结果显示单元,用于基于针对所述版本输入页面的版本输入操作,显示目标控件蓝图文件的检测结果页面,其中,所述目标控件蓝图文件的版本为通过所述版本输入操作确定的目标版本,所述检测结果页面包括所述目标控件蓝图文件中目标控件蓝图的控件异常检测结果。
本发明实施例还提供一种存储介质,其上存储有计算机程序,其中,所述计算机程序被处理器执行时实现如上所述控件异常检测方法的步骤。
本发明实施例还提供一种计算机设备,包括存储器,处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,所述处理器执行所述计算机程序时实现如上所述控件异常检测方法的步骤。
本发明实施例提供了一种控件异常检测方法、装置、计算机设备和存储介质,可以显示目标检测项目的检测页面,其中,检测页面包括检测触发控件,目标检测项目包括至少一个版本的控件蓝图文件,控件蓝图文件中包括至少一个控件蓝图;基于针对检测触发控件的触发操作,显示版本输入页面;基于针对所述版本输入页面的版本输入操作,显示目标控件蓝图文件的检测结果页面,其中,目标控件蓝图文件的版本为通过版本输入操作确定的目标版本,检测结果页面包括目标控件蓝图文件中目标控件蓝图的控件异常检测结果,通过上述方案,本发明实施例无需测试人员运行目标检测项目的应用程序,脱离了安装包对控件异常检测的限制,通过自动地对控件蓝图进行分析,确定控件异常检测结果,不仅降低了人力资源的消耗,还提升了检测速度。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的控件异常检测方法的场景示意图;
图2是本发明实施例提供的控件异常检测方法的流程图;
图3a是本发明实施例提供的一种检测结果页面显示示意图;
图3b是本发明实施例提供的另一种检测结果页面的示意图;
图3c是本发明实施例提供的一种检测页面显示示意图;
图3d是本发明实施例提供的一种异常信息详情页面显示示意图;
图4是本发明实施例提供的一种获取控件的显示属性信息的流程示意图;
图5是本发明实施例提供的一种控件路径树的示意图;
图6是本发明实施例提供的一种确定最大可显示区域的示意图;
图7是本发明实施例提供的一种控件异常检测方法的流程图;
图8a是本发明实施例提供的一种控件异常检测装置的结构示意图;
图8b是本发明实施例提供的另一种控件异常检测装置的结构示意图;
图8c是本发明实施例提供的另一种控件异常检测装置的结构示意图;
图8d是本发明实施例提供的另一种控件异常检测装置的结构示意图;
图9是本发明实施例提供的计算机设备的结构示意图;
图10是本发明实施例提供的分布式***100应用于区块链***的一个可选的结构示意图;
图11是本发明实施例提供的区块结构的一个可选的示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供一种控件异常检测方法、装置、计算机设备和存储介质。具体地,本实施例提供适用于计算机设备的控件异常检测方法。该计算机设备可以为具有显示模块的终端等设备,例如可以为手机、平板电脑、笔记本电脑、台式电脑等。其中,该计算机设备还可以为服务器等设备,该服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式***,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。终端可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
比如,控件异常检测装置可以集成在终端或服务器中。
本实施例中,控件异常检测装置可以由终端或服务器单独执行,也可以由终端和服务器共同执行完成。
本发明实施例将以计算机设备为终端为例,来介绍控件异常检测方法。
参考图1,本发明实施例提供的控件异常检测***包括终端10和服务器20等;终端10与服务器20之间通过网络连接,比如,通过有线或无线网络连接等,其中,控件异常检测装置集成在终端中,比如,以客户端的形式集成在终端中。
其中,终端10,可以用于显示目标检测项目的检测页面,其中,所述检测页面包括检测触发控件,所述目标检测项目包括至少一个版本的控件蓝图文件,所述控件蓝图文件中包括至少一个控件蓝图;基于针对所述检测触发控件的触发操作,显示版本输入页面;基于针对所述版本输入页面的版本输入操作,显示目标控件蓝图文件的检测结果页面,其中,所述目标控件蓝图文件的版本为通过所述版本输入操作确定的目标版本,所述检测结果页面包括所述目标控件蓝图文件中目标控件蓝图的控件异常检测结果。
其中,对于目标控件蓝图文件中目标控件蓝图的异常控件检测,可以由终端实现。
其中,控件蓝图文件中的目标蓝图文件,可以通过服务器获取,比如终端10可以基于针对所述版本输入页面的版本输入操作,生成蓝图获取请求,其中,蓝图获取请求中可以包括目标检测项目的标识信息和目标版本的描述信息。
服务器20可以用于,接收蓝图获取请求,基于目标检测项目的标识信息确定目标检测项目,基于目标版本的描述信息确定所述目标检测项目的目标控件蓝图文件;基于该目标控件蓝图文件确定目标控件蓝图,将目标控件蓝图发送给终端10。
终端10可以在接收到目标控件蓝图后,基于目标控件蓝图进行控件异常检测,得到控件异常检测结果,基于该结果显示目标控件蓝图文件的检测结果页面。
以下分别进行详细说明。需说明的是,以下实施例的描述顺序不作为对实施例优选顺序的限定。
本发明实施例将从控件异常检测装置的角度进行描述,该控件异常检测装置具体可以集成在终端中。
本发明实施例提供的一种控件异常检测方法,该方法可以由终端的处理器执行,与相关技术中基于各版本应用程序的运行,对不同版本的应用程序进行控件异常检测的方案不同,采用本实施例的控件异常检测方法,可以脱离安装包,基于各版本的控件蓝图文件进行控件异常检测。如图2所示,该控件异常检测方法的流程可以如下:
201、显示目标检测项目的检测页面,其中,检测页面包括检测触发控件,目标检测项目包括至少一个版本的控件蓝图文件,控件蓝图文件中包括至少一个控件蓝图;
本实施例中,项目可以用于指代其对应的应用程序,该项目可以表示该项目包括的控件蓝图文件属于项目指代的应用程序。可以理解的是,在应用程序如游戏类应用程序的开发过程中,需要不断的测试与改进,才能最终得到可供用户使用的应用程序,所以在开发的过程中,会存在不同版本的应用程序,不同版本的应用程序使用的控件蓝图文件可能不同,不同版本的应用程序可以对应不同版本的控件蓝图文件。
在一个示例中,一个版本的应用程序可以只有一个版本的控件蓝图文件,或者,可选的,一个版本的应用程序可以对应有多个版本的控件蓝图文件。在一个示例中,控件蓝图文件的版本号的设置,可以与应用程序的版本无关,仅根据控件蓝图的更新情况进行设置。
本实施例中,控件蓝图中包含若干控件的信息,一张控件蓝图可以对应一个UI(User Interface,用户界面),基于控件蓝图可以将开发者在控件蓝图中设置的控件显示于用户界面中,为用户界面的用户提供各种不同功能的控件。针对应用程序的不同,控件蓝图的生成方式可以不同,例如,针对游戏类应用程序,控件蓝图可以是开发人员利用游戏引擎生成的。
本实施例中,每张控件蓝图包含的控件的数量和类型等可以根据实际需要设置。一个应用程序如游戏程序可能需要由上千张控件蓝图来进行制作,每张蓝图内包含了数量不等的控件,利用这些功能特异的控件进行多种组合即可完成多种多样的UI。而本实施例中的控件蓝图文件,可以理解为至少一个控件蓝图的集合。
本实施例中,控件蓝图文件的版本,与控件蓝图所属的应用程序的版本可以不采用同样的命名方式。不同版本的控件蓝图文件中,包含的控件蓝图存在不同之处,例如不同版本的控件蓝图文件中包含的控件蓝图的数量不同,或者不同版本的控件蓝图文件中包含的控件蓝图数量相同,但控件蓝图对应的UI不完全相同,或者不同版本的控件蓝图文件中包含的控件蓝图对应的UI相同,但是对应同一UI的不同版本的控件蓝图中,设置的控件不同。
假设针对游戏A的项目启动后,控件蓝图的负责团队在了解控件蓝图的制作需求后,按照制作需求制作了1000张控件蓝图,该1000张控件蓝图的版本被命名为0001版本,则该1000张控件蓝图组成了0001版本的控件蓝图文件。假设,在游戏A的后续开发过程中,游戏增加了新的故事支线,负责团队新增了500张控件蓝图,已经制作的1500张控件蓝图的版本被命名为0002版本,则该1500张控件蓝图组成了0002版本的控件蓝图文件。
本实施例中,不同版本的控件蓝图文件可以存储在不同的文件夹中,文件夹的名称中可以包括控件蓝图文件对应的版本信息,如版本号等等。
本实施例中的检测触发控件的表现形式不限,比如按钮控件、图标控件等等形式。
例如,参考图3a中的301所示的检测页面,页面中包括检测触发控件如名为“新建扫描”的控件。
其中,检测页面中还可以包括关于目标检测项目的控件蓝图文件的一些信息,例如包括目标检测项目的已有版本的控件蓝图文件的信息。可选的,终端可以在显示检测页面时,获取目标检测项目包括的所有版本的控件蓝图文件的信息。进一步的,终端可以从目标检测项目对应的版本管理装置中获取这些信息。其中,对于已检测的控件蓝图文件,检测页面中可以显示其扫描状态为扫描完成,对于未检测的控件蓝图文件,检测页面中可以显示其扫描状态为未扫描。
在检测页面上显示的控件蓝图文件的信息不限,可以包括:控件蓝图文件的版本描述信息,以及该控件蓝图文件的测试序号,测试人的名字,测试的开始时间、扫描状态(即测试状态)等等信息等等,其中,版本描述信息在一个示例中可以为版本号,如301页面中的版本号356400。进一步的,检测页面还可以包括详情控件,例如名为“查看详情”的控件,该详情控件在被用户触发后,控制显示对应版本的控件蓝图文件的详情信息,对于已检测过的控件蓝图文件,例如扫描状态为“扫描完成”的控件蓝图文件,显示的详情信息可以包括该控件蓝图文件的控件异常检测结果。对于未检测的控件蓝图文件,例如扫描状态为“等待扫描”的控件蓝图文件,显示的详情信息可以包括该控件蓝图文件的控件蓝图数量等信息。
本实施例中,一个测试人员可能负责多个项目的测试,测试人员可以基于终端的显示选择目标检测项目。
可选的,步骤“显示目标检测项目的检测页面”,可以包括:
显示项目选择页面,其中,所述项目选择页面包括至少一个候选检测项目;
基于针对所述候选检测项目中目标检测项目的选择操作,显示所述目标检测项目的检测页面。
其中,项目选择页面可以包括当前检测人员的信息,例如头像、名字等等信息。项目选择页面具体可以包括候选检测项目的标识信息,例如项目名称或项目编号信息等等。
例如,参考图3c,在图3c中显示有测试人员负责的检测项目的项目名称如“游戏A”,“游戏B”等等。
在一个示例中,步骤“基于针对所述候选检测项目中目标检测项目的选择操作,显示所述目标检测项目的检测页面”,可以包括:
当检测到针对候选检测项目中的目标检测项目的标识信息的触发操作时,显示目标检测项目的检测页面。
其中,该触发操作可以是点击、双击、长按等触控操作。或者,在一个示例中,触发操作还可以通过语音方式实现,
步骤“当检测到针对候选检测项目中的目标检测项目的标识信息的触发操作时,显示目标检测项目的检测页面”,可以包括:
通过语音模块采集音频数据,将所述音频数据翻译成文本;
当检测到所述文本中包含候选检测项目的标识信息时,将该候选检测项目确定为目标检测项目,显示目标检测项目的检测页面。
在一个示例中,项目选择页面还可以包括对应于每个候选检测项目的项目检测控件。步骤“基于针对所述候选检测项目中目标检测项目的选择操作,显示所述目标检测项目的检测页面”,可以包括:
当检测到针对目标检测项目的项目检测控件的触发操作时,显示目标检测项目的检测页面。
例如,还是参考图3c,305所示的项目选择页面中包括对应于每个候选检测项目的项目检测控件,如名为“UI异常检测”的控件,当检测到针对某个“UI异常检测”控件的触发操作时,显示该“UI异常检测”控件对应的目标检测项目的检测页面。其中,触发操作可以是触控操作,如点击、双击、长按等触控操作。
202、基于针对检测触发控件的触发操作,显示版本输入页面;
本实施例中,针对检测触发控件的触发操作,可以是基于对终端的触控操作或者基于音频实现的。
在一个示例中,针对检测触发控件的触发操作可以是触控操作,包括但不限于点击、双击、长按、以及滑动等触控操作。
其中,版本输入页面可以是一个完全覆盖检测页面的页面,或者版本输入页面可以以子页面、或小窗口等形式显示于检测页面的显示区域中,本实施例对此没有限制。
203、基于针对版本输入页面的版本输入操作,显示目标控件蓝图文件的检测结果页面,其中,目标控件蓝图文件的版本为通过版本输入操作确定的目标版本,检测结果页面包括目标控件蓝图文件中目标控件蓝图的控件异常检测结果。
本实施例中,目标控件蓝图可以是目标控件蓝图文件中的全部控件蓝图,也可以是目标控件蓝图中的一部分控件蓝图,例如,目标控件蓝图为未进行过控件异常检测的控件蓝图。
可以理解的是,不同版本的控件蓝图文件中可能存在一些完全相同的控件蓝图,例如版本为0004的目标控件蓝图文件中的一部分控件蓝图与版本为0003的已检测控件蓝图文件中的一部分控件蓝图相同,这种情况下,目标控件蓝图可以是版本为0004的目标控件蓝图文件中,与版本0003的控件蓝图文件中所有控件蓝图都不相同的控件蓝图。
可以理解的是,两个控件蓝图中只要有一个控件不同,则可以认为这两个控件蓝图不同。
本实施例中,控件异常检测结果可以包括目标控件蓝图中所有控件的异常情况,或者控件异常检测结果可以包括目标控件蓝图中特定类型控件的异常情况。其中,该特定类型控件可以根据需要设置,例如特定类型控件可以为文本类控件。本实施例的文本类控件可以理解为用于显示文本内容的控件,本实施例的文本类控件包括但不限于:Label(标签)控件,TextBox(文本框)控件以及TextBlock(文本块)控件等等控件。本实施例中的异常情况包括但不限于控件的异常显示情况。
可选的,本实施例中,控件异常检测结果包括所述目标控件蓝图中文本类控件的标识信息和异常显示统计信息,其中,所述异常显示统计信息包括:文本类控件在多种显示语言下的异常显示情况的统计信息。其中,文本类控件的标识信息可以为该文本类控件在控件蓝图文件中的名称。
本实施例的显示语言为目标控件蓝图中的控件显示时使用的语言,该显示语言的种类(即显示语言所属的语种)不限,可以根据需要任意设置,例如显示语言的种类包括但不限于:汉语、英语、日语、韩语、西班牙语等等语言。
本实施例中的异常显示情况可以有多种,例如超框、重叠、文本显示异常等等。其中,文本显示异常可以包括翻译缺失等等异常情况。本实施例中的统计信息是文本类控件在多种显示语言下的异常显示情况的统计,具体的,统计信息可以包括文本类控件在多种显示语言下的不同异常显示情况的出现次数。其中,该出现次数可以包括根据异常显示情况的不同类型进行统计。
其中,超框,可以理解为文本类控件的显示区域超出了其最大可显示区域,重叠可以理解为文本类控件的显示区域发生重叠,文本显示异常可以理解为文本类控件的显示文本在显示语言下出现异常,例如在某种显示语言下文本内容相较于中文语种的参考显示文本,出现翻译缺失的情况。
例如,参考图3a,在图3a中,当在301所示的检测页面中检测到针对检测触发控件如“新建扫描”控件的触发操作时,显示版本输入页面(参考页面302中的小方框内所示的页面),在302所示的页面中,版本输入页面以小窗口的形式显示于检测页面上,本实施例中,用户可以通过版本输入页面输入目标版本的信息,以便于终端确定目标版本对应的目标控件蓝图文件。基于针对版本输入页面的版本输入操作,显示如303所示的检测结果页面,该检测结果页面中可以包括文本类控件如Textblock控件的异常显示情况的统计信息。如图3a中的303所示,检测结果页面的一个文本类控件名为Textblock_1,其异常显示统计信息包括多种显示语言下,该控件的超框次数17,内容缺失次数0,以及重叠次数17。
可选的,该检测结果页面中还可以包括检测人员的信息如检测人员的头像,名称等等,测试ID以及测试版本等信息,本实施例对此没有限制。
本实施例中,控件异常检测结果可以通过列表的形式进行显示,可选的,检测结果页面包括检测结果列表,检测结果列表中包括N条控件异常检测结果。该N为不低于0的整数,可以根据对目标控件蓝图的检测结果而定,或者N可以为目标控件蓝图中所有控件的数量和,即检测结果列表中包括目标控件蓝图中所有控件的控件异常检测结果。
在一个示例中,检测结果页面还包括概述信息显示控件,当检测到概述信息显示控件时,在检测结果页面中将图3a中303所示的表格形式显示的控件异常检测结果切换显示为图3b中以图像形式显示的控件异常检测结果(检测结果图),该检测结果图可以为柱状图,扇形图等等类型的图形。如图3b,检测结果图包括所有文本类控件中正常显示的控件、出现每种异常显示情况的控件占总控件的比例。
例如,如图3b所示,圆形的检测结果图中示出的异常检测结果中,重叠的文本类控件的比例为9.2%,内容缺失的文本类控件的比例为30.4%。
可选的,本实施例中,检测结果页面还包括对应于各文本类控件的详情显示控件,所述方法还包括:
基于针对目标文本类控件对应的详情显示控件的显示操作,显示所述目标文本类控件的异常信息详情页面,所述异常信息详情页面包括所述多种显示语言中的目标显示语言的名称,以及每种目标显示语言下所述目标文本类控件的异常显示情况。
在一个示例中,目标显示语言可以包括所述多种显示语言中的所有种类的显示语言,在另一个示例中,目标显示语言可以包括:目标文本类控件出现异常显示情况时的显示语言。
其中,步骤“基于针对目标文本类控件对应的详情显示控件的显示操作,显示所述目标文本类控件的异常信息详情页面”可以包括:
当检测到针对目标文本类控件对应的详情显示控件的触控操作时,显示所述目标文本类控件的异常信息详情页面。
例如,参考图3d,在图3d中,306所示的页面为检测结果页面,该检测结果页面中包括文本类控件对应的详情显示控件如名为“查看多语言详情”的控件,当检测到用户针对某个详情显示控件的触发操作如点击、长按等触控操作时,将被触控的详情显示控件对应的文本类控件作为目标文本类控件,显示该目标文本类控件的异常信息详情页面。其中,异常信息详情页面可以以覆盖检测结果页面的方式显示,或者还可以以子页面或小窗口的形式显示,本实施例对此没有限制。参考图3d中的307所示的页面,异常信息详情页面可以以小窗口的形式显示于检测结果页面上。
参考图3d,该异常信息详情页面包括多种显示语言中的目标显示语言的名称如“英语”“俄语”等等,以及每种目标显示语言下目标文本类控件的异常显示情况。如目标文本类控件的目标显示语言为英语时,目标文本类控件的异常显示情况为:未超框,未缺失翻译内容,未重叠等等。
在一个示例中,所述版本输入页面包括版本输入控件和检测开始控件,所述基于针对所述版本输入页面的版本输入操作,显示目标控件蓝图文件的检测结果页面,包括:
基于针对所述版本输入控件输入的目标版本,确定所述目标版本下的控件蓝图文件为目标控件蓝图文件;
当检测到针对所述检测开始控件的触发操作时,对所述目标控件蓝图文件中的目标控件蓝图进行控件异常检测,得到控件异常检测结果;
基于所述控件异常检测结果,显示所述目标控件蓝图文件的检测结果页面。
例如,参考图3a,302中的版本输入页面中包括版本输入控件和检测开始控件,该版本输入控件包括输入框以及与输入框对应的控件名称如“测试版本”,用户可以通过该输入框输入目标版本的版本号如39506,当检测到用户针对名为检测开始控件如“确认”控件的触发操作时,对所述目标控件蓝图文件中的目标控件蓝图进行控件异常检测,得到控件异常检测结果,基于该控件异常检测结果显示303所示的检测结果页面。
在一个示例中,用户还可以自己选择目标版本的检测方式,其中检测方式包括全量检测和增量检测。
可选的,所述版本输入页面包括版本输入控件、检测方式选择控件以及检测开始控件,所述基于针对所述版本输入页面的版本输入操作,显示目标控件蓝图文件的检测结果页面,包括:
基于针对所述版本输入控件输入的目标版本,确定所述目标版本下的控件蓝图文件为目标控件蓝图文件;
基于针对所述检测方式选择控件的检测方式选择操作,确定目标检测方式,其中,所述检测方式选择控件提供选择的检测方式包括:全量检测和增量检测;
当检测到针对所述检测开始控件的触发操作时,基于所述目标检测方式,对所述目标控件蓝图文件中的目标控件蓝图进行控件异常检测,得到控件异常检测结果;
基于所述控件异常检测结果,显示所述目标控件蓝图文件的检测结果页面。
在一个实施例中,检测方式选择控件可以通过下拉列表的方式显示其提供的检测方式,用户可以点击下拉列表中的检测方式将其选择为目标检测方式。
可选的,在全量检测方式下,目标控件蓝图为目标控件蓝图中的所有蓝图,可选的,所述目标检测方式为全量检测时候,基于所述目标检测方式,对所述目标控件蓝图文件中的目标控件蓝图进行控件异常检测,得到控件异常检测结果,包括:
将所述目标控件蓝图文件中的所有控件蓝图作为目标控件蓝图;
对所述目标控件蓝图的进行控件异常检测,得到控件异常检测结果。
其中,对目标控件蓝图进行控件异常检测的方式有多种,可以参考增量检测示例中的描述。
在另一示例中,目标检测方式为增量检测,所述基于所述目标检测方式,对所述目标控件蓝图文件中的目标控件蓝图进行控件异常检测,得到控件异常检测结果,包括:
从已进行过控件异常检测的控件蓝图文件中,确定所述目标控件蓝图文件的参考控件蓝图文件,其中,所述参考控件蓝图文件的版本为所述目标版本之前的版本;
基于所述参考控件蓝图文件,从所述目标控件蓝图文件中确定目标控件蓝图,其中,所述目标控件蓝图与所述参考控件蓝图文件中的控件蓝图不相同;
对所述目标控件蓝图的进行控件异常检测,得到控件异常检测结果。
可选的,所述参考控件蓝图文件的版本可以为与所述目标版本最为接近的版本;或者,参考控件蓝图文件可以为版本在目标版本之前,且历史检测时间与当前时刻最接近的控件蓝图文件。
其中,在基于所述参考控件蓝图文件,从所述目标控件蓝图文件中确定目标控件蓝图时,可以确定目标控件蓝图文件中的同名蓝图和非同名蓝图,其中,同名蓝图与所述参考控件蓝图文件中的至少一个控件蓝图名称相同,非同名蓝图与参考控件蓝图文件中的任意控件蓝图名称不同,将非同名蓝图确认为目标控件蓝图,将参考控件蓝图文件中的每张同名蓝图与目标控件蓝图中相同名称的控件蓝图进行比较,若不同,则将该同名蓝图确定为目标控件蓝图。
本实施例中,对目标控件蓝图进行控件异常检测,包括但不限于对目标控件蓝图中的控件进行异常显示的检测。
在游戏中,特别是支持多语言的国际版游戏中,UI文字异常经常出现,异常至少包括两方面,一方面是显示区域异常,意味着UI文字与其期望位置出现差异,常见的异常包括文字超框,文字重叠等;另一方面是多种语言下的UI文字缺失翻译等。
通过前述内容描述可知,文本类控件是用于显示文本内容的,如TextBlock:控件的一种,用于显示文字的静态控件,是检查异常最关注的控件类型。
可选的,在一个示例中,步骤“对所述目标控件蓝图的进行控件异常检测,得到控件异常检测结果”,可以包括:
确定所述目标控件蓝图对应的多种显示语言;
获取每种显示语言下,所述目标控件蓝图中控件的显示属性信息;
基于所述显示属性信息,确定所述目标控件蓝图中的文本类控件在每种显示语言下的异常显示情况;
基于所述异常显示情况得到所述目标控件蓝图的控件异常检测结果。
其中,目标控件蓝图的数量为至少一个,当目标控件蓝图的数量为多个时,可以通过遍历的方式对目标控件蓝图中控件的显示属性信息进行获取。
本实施例中,文本类控件可能会嵌套在其他控件下,例如文本类控件中的TextBlock控件,多数情况下Textblock控件嵌套在其他控件下。为了得到文本类控件的最大可显示区域,需要将蓝图内的所有控件均获取到,并获取它们的显示区域,这样才可能计算出文本类控件的最大可显示区域。
本申请中对于目标控件蓝图的检测,可以归纳为两大步,第一大步是对目标控件蓝图中控件的显示属性信息的获取,第二大步是基于显示属性信息确定文本类控件在每种显示语言下的异常显示情况。
本实施例中,对于不同的测试项目,显示语言的种类可以不同。
步骤“确定所述目标控件蓝图对应的多种显示语言”,可以包括:获取目标检测项目对应的显示语言的种类,将所述显示语言的种类作为所述目标控件蓝图的显示语言的种类。
其中,获取每种显示语言下,所述目标控件蓝图中控件的显示属性信息时,可以先在每种显示语言下,显示目标控件蓝图中的控件,再基于显示的控件获取显示属性信息。
本实施例中的显示属性信息包括与文本类控件的显示相关的信息,包括控件的显示区域、显示文本等等信息。
可选的,步骤“获取每种显示语言下,所述目标控件蓝图中控件的显示属性信息”,可以包括:
分别以每种显示语言,显示所述目标控件蓝图的控件于用户界面中;
在每种显示语言下,获取所述目标控件蓝图中的控件在所述用户界面的显示属性信息。
本实施例中,在确定目标控件蓝图后,可以从目标控件蓝图文件中获取目标控件蓝图的名称,基于目标控件蓝图的名称遍历每张控件蓝图,在每一张控件蓝图的遍历过程中,都采用上述的方案,针对每一张控件蓝图,都获取其中的控件的显示属性信息。
本实施例中,所述显示属性信息包括显示区域和显示文本,所述获取所述目标控件蓝图中的控件在所述用户界面的显示属性信息,包括:
若所述目标控件蓝图中控件的可见性属性为可见,获取所述控件在所述用户界面上的显示文本,通过第一显示区域获取函数确定所述控件在所述用户界面的显示区域;
若所述目标控件蓝图中控件的可见性属性为隐藏,将所述控件的所述可见性属性修改为可见,使所述控件显示于用户界面,获取所述控件在所述用户界面上的显示文本,通过所述第一显示区域获取函数获取所述控件在所述用户界面的显示区域;
若所述目标控件蓝图中控件的内容排布属性为内容自动排布,获取所述控件在所述用户界面上的显示文本,通过第二显示区域获取函数确定所述控件在所述用户界面的显示区域;
若所述目标控件蓝图中控件为预设容器控件,获取所述控件在所述用户界面上的显示文本,通过所述第一显示区域获取函数确定所述控件在所述用户界面的显示区域,获取所述控件的所有子控件的索引信息,基于所述子控件的索引信息控制各子控件分别显示在所述用户界面上,在各子控件显示时,获取子控件在所述用户界面上的显示文本,通过所述第一显示区域获取函数获取所述子控件在所述用户界面的显示区域,其中,若所述预设容器控件为限制子控件大小的容器控件,以所述控件的显示区域作为所述子控件实际的显示区域。
本实施例中,预设容器控件可以是容器控件中的任意类型,预设容器控件包括的子控件的数量不限,可以是一个,也可以是多个,根据预设容器控件的具体类型以及开发人员的实际设置确定。其中,对于显示子控件大小的预设容器控件,其可以是Scale Box,Horizontal Box,Vertical Box等控件。
在一个实施例中,预设容器控件一次只能显示一个子控件。
本实施例中,获取控件在用户界面上的显示区域时,可以获取控件的显示区域的大小和位置这两类信息。
本实施例中,可以通过第一显示区域获取函数在用户界面上检测每个控件的显示区域,也可以基于第一显示区域获取函数从目标控件蓝图中获取控件的默认显示区域(如默认显示位置和默认显示大小),本实施例对此没有限制。对于一些特殊的控件,可以通过其他的方式获取,例如对于内容自动排布的控件,通过第二显示区域获取函数补充获取控件的显示区域。
本实施例中,可选的,第一显示区域获取函数可以包括第一显示大小获取函数和第一显示位置获取函数,分别用于获取控件的显示区域的大小和位置,其中,第一显示大小获取函数可以为GetCachedGeometry().GetAbsoluteSize(),第一显示位置函数可以为GetCachedGeometry().GetAbsolutePosition(),两个函数可获取控件的显示区域的大小和位置。其中,本实施例的控件的显示区域可以为长方形,通过函数获取的显示区域的位置可以是控件显示区域的两个对角的顶点的坐标,例如左上角和右下角的顶点坐标。
本实施例中,大多数控件可以通过然第一显示区域获取函数获取显示区域的大小和位置,有一些特殊的组件需要进行如下的处理后,才可利用以上函数进行大小和位置的获取。
例如,对于一个控件,若Visibility属性(可见性属性)为1,即该属性默认为visible(可见),控件蓝图显示时,控件会正常地显示出来,而设为Visibility属性为0,即该属性设置为hidden(隐藏),控件会处于隐藏状态。所以,若控件的Visibility属性默认设为hidden(即隐藏),可以通过改变UE4引擎代码,即修改控件对应的代码,将设为hidden的控件强制的设为visible;将隐藏属性的控件修改为可见属性,使得该控件显示出来。
例如,控件的size to content属性(即上述的内容排布属性)默认设置为1,当该size to content属性默认设置为0时,会使得控件按照预设的大小进行排布,而设为1时,会使得控件按照自身的内容进行自动的排布,第一显示区域获取函数将无法获取数值,只能获得0。本实施例中可以通过第二显示区域获取函数获取该控件侧用户界面上的显示区域,其中,第二显示区域获取函数可以是GetCachedGeometry().GetLocalSize()函数。
例如,Widget Switcher控件是一种特殊的容器控件。该控件是一个tab控件,可以包含多个子控件,但是一次只能使得一个子控件显示出来,通过设置属性ActiveWidgetIndex可以设置默认显示的子控件。本实施例中可以利用GetChildrenCount()、GetActiveWidgetIndex()获取到每个widget switcher()控件的子控件数量和子控件索引;再通过遍历的方式,利用子控件索引和SetActiveWidgetIndex()函数将每一个hidden的子控件显示出来,在子控件显示的时候通过第一显示区域获取函数获取所述控件在所述用户界面的显示区域。
其中,容器控件中还有一种特殊的容器控件,这种容器控件会限制子控件的大小,例如Scale Box\TextBlcok、Scale Box\Horizontal Box、Scal Box\Vertical Box、Horizontal Box\Horizontal Box、Vertical Box\Vertical Box嵌套等等。
其中,Scale Box组件,其为一个缩放容器,通过它的属性限制了子控件的大小,此时子控件的大小属性无效;Horizontal Box组件是一个水平框容器,它的所有子控件会按水平方向进行排列;Vertical Box组件是一个垂直框容器,它的所有子控件会按垂直方向进行排列;以上组合时,Scale Box会限制到下层的子控件大小,因此子控件的大小复用父控件的显示区域而不是使用通过函数获取的显示区域。
本实施例中,针对每一张目标控件蓝图,可以通过遍历每种显示语言,获取每种显示语言下,目标控件蓝图中控件的显示属性信息。
下面结合图4,对本实施例中的目标属性信息的获取流程进行说明,目标属性信息的获取可以包括六大步骤:
1、获取并遍历目标蓝图:获取目标控件蓝图的名称,基于每张目标控件蓝图的名称遍历每个控件蓝图,在每张目标控件蓝图遍历的过程中,通过步骤2-5获取该目标控件蓝图中控件的显示属性信息;
2、切换蓝图,获取widget实例:在每次遍历到新的目标控件蓝图时,利用该新的目标控件蓝图的名称切换当前显示的控件蓝图为该目标控件蓝图,获取该新的目标控件蓝图的控件Widget实例;其中,新的目标控件蓝图为未进行遍历的目标控件蓝图;
3、获取显示语言,对每张目标控件蓝图遍历显示语言:获取待切换的所有种类的显示语言,对于每张目标控件蓝图,均遍历每种显示语言,通过步骤4-5实现显示语言的遍历;
4、更改语言,获取控件信息,遍历容器控件:将正在显示的目标控件蓝图的当前显示语言设置为未遍历过的显示语言,转换目标控件蓝图的控件Widget实例的类型,显示控件在目标控件蓝图对应的用户界面上,获取控件的显示属性信息并存储,其中,若控件为预设容器控件,即包含子控件的控件,则对该预设容器控件的显示属性信息进行获取并存储,然后遍历预设容器控件,获取预设容器控件的显示属性信息。其中,每个预设容器控件的遍历过程参考下述的步骤5.
5、获取容器控件的子控件索引,遍历子控件索引:若控件为预设容器控件如widget switcher控件等,获取widget switcher的所有子控件的索引信息,根据默认显示的子控件的索引信息,得到默认不显示的子控件的索引信息列表,先获取默认显示的子控件的显示属性信息,再基于索引信息列表遍历其他子控件,每个子控件的遍历过程参考步骤6。
6、更改子控件的隐藏状态为显示状态,获取子控件信息:将默认显示的子控件切换为一个未显示过的子控件,获取显示的子控件的显示属性信息。可以理解的是,在所有自控件都显示一遍之后,子控件的遍历就停止了。
本实施例中,可以将上述获取的所有控件的显示属性信息,存储起来。可选的,可以将这些控件的显示属性信息存储在特定存储文件中,例如TXT格式的文件中,或者将这些显示属性信息存储在区块链中,例如存储在区块链的共享账本中,本实施例对此没有限制。
可选的,本实施例中,除了显示属性信息,还可以获取控件的其他信息,例如控件与其他控件的关联关系,比如控件之间的嵌套关系等等。
在一个实施例中,所述显示属性信息包括显示区域,所述基于所述显示属性信息,确定所述目标控件蓝图中的文本类控件在每种显示语言下的异常显示情况,包括:
当所述目标控件蓝图中的文本类控件属于容器控件的子控件时,确定所述文本类控件对应的父控件;
基于每种显示语言下所述父控件的显示区域,确定每种显示语言下所述文本类控件的最大可显示区域;
对于每种显示语言,若所述文本类控件在所述显示语言下的显示区域超过对应的最大可显示区域,确定在所述显示语言下所述文本类控件出现超框显示情况。
本实施例中,容器控件可以理解为可以设置子控件的控件。该容器控件与上述的预设容器控件可以不同,其中,该容器控件并不限制同一时刻只能显示一个子控件,即该容器控件可以同时显示至少一个子控件。
本实施例中,可以基于目标控件蓝图文件获取控件间的嵌套关系,可选的,可以在获取显示区域和显示文本的过程中,在确定出容器控件时,获取容器控件和其子控件之间的嵌套关系,本实施例中,容器类控件的嵌套层数不限,可以为1层、2层、3层等等。所以一个子控件的父控件的数量可能不止一个。
可选的,在一个示例中,可以基于目标控件蓝图中的所有控件之间的嵌套关系,生成目标控件蓝图对应的控件路径树,该路径树的根节点可以是目标控件蓝图本身,其他的节点可以为该控件蓝图中的控件,该控件路径树中以两节点之间的连线,表示两节点之间存在嵌套关系。
例如参考图5,图5示出了控件蓝图A的控件路径树,其中,控件切换器包括两个子控件,文本块控件1和文本块控件2,控件切换器并没有嵌套在任何控件下,所以其从属于控件蓝图A对应的根节点,其他的控件也采用类似的方式进行节点的划分,最终得到图5中示出的控件蓝图A的控件路径树。
在得到该路径树后,可以基于该路径树上所有节点(即控件)的信息如显示属性信息,对文本类控件进行异常显示情况的检测。其中,对于一些文本类控件如textblock控件,其一般嵌套在最底层,对应在路径树上即为路径树的叶子节点。
在另一个实施例中,还可以针对每一个文本类控件生成一个路径树,路径树的根节点为该文本类控件最上层的父节点,文本类控件为叶子节点。
本实施例中,最大可显示区域可以是不超过所有父控件的显示区域的任意区域。
本实施例中,若子控件的父控件只有一个,步骤“基于每种显示语言下所述父控件的显示区域,确定每种显示语言下所述文本类控件的最大可显示区域”,可以包括:将每种显示语言下所述父控件的显示区域,作为相同显示语言下所述文本类控件的最大可显示区域。
若子控件的父控件不低于两个,步骤“基于每种显示语言下所述父控件的显示区域,确定每种显示语言下所述文本类控件的最大可显示区域”,包括:在每种显示语言下,基于所述父控件的显示区域,计算所述父控件的共同覆盖区域,将所述共同覆盖区域作为相同显示语言下所述文本类控件的最大显示区域。
在前述描述中可知,获取的控件的显示区域其实包括该显示区域的大小和位置,其中,该位置可以是显示区域的左上角和右下角的顶点坐标。
下面结合图6,对最大可显示区域的计算以及超框的判断进行示例说明。图6中,子控件为TextBlock,该子控件有两个父控件,从外层到内层的父控件为Canvas panel_1和Canvas panel_2控件,该Canvas panel是一种布局控件。TextBlock、Canvas panel_2和Canvas panel_1的大小分别为,120*20,140*100,200*100,左上角的顶点坐标分别为(60,40),(30,20)以及(0,0)
最大可显示区域计算方法:
Step1:初始化最大尺寸Max_Size和最大边界Max_Pos为最外层节点的大小和边界;其中Max_Size有两个元素,长度和宽度,Max_Pos有两个元素,左上角和右下角的坐标;
在图6中,初始的Max_Size和Max_Pos,为Canvas Panel_1的大小和边界
即:Max_Size.X=200;Max_Size.Y=100;其中,X表示长度,Y表示宽度;
Max_Pos.topleft=(0,0);Max_Post.buttonright=(200,100),其中,Pos.topleft表示左上角,Post.buttonright表示右下角。
Step2:依次遍历路径树的节点,更新最大区域和最大边界;取Max_Size和当前节点Size的小值,Max_Pos和当前节点的小值;
以图6为例即,将Canvas Panel_2的大小和边界与最大区域、最大边界分别进行比对,更新最大区域和最大边界两者的值;
Max_Size.X=140;Max_Size.Y=100;
Max_Pos.topleft=(30,20);Max_Post.buttonright=(160,100);
Step3:计算叶子节点的边界Leaf_Pos;
利用TextBlock的大小和位置更新Leaf_Pos为Leaf_Pos.topleft=(60,40);Leaf_Pos.buttonright=(180,60)
Step4:利用叶子节点的大小Leaf_Size与最大区域Max_Size做比较,利用叶子节点的边界Leaf_Pos和最大边界Max_Post做比较,判断是否有超框的异常;
其中,叶子节点的长度Leaf_Size.X=120;宽度Leaf_Size.Y=20;
基于大小进行比较:Max_Size.X>Leaf_Size.X,并且Max_Size.Y>Leaf_Size.Y,判定未超框。
基于位置进行比较:Max_Pos.topleft>Leaf_Pos.topleft&&Max_Post.buttonright<Leaf_Pos.buttonright,判定子控件TextBlock超框。
因此最终结论为超框。
在上述示例中,还可以只利用控件的显示区域的顶点坐标进行计算,当然基于顶点坐标进行计算时,需要知道至少一条对角线上的两个顶点坐标。
在一个示例中,显示属性信息包括显示区域,所述基于所述显示属性信息,确定所述目标控件蓝图中的文本类控件在每种显示语言下的异常显示情况,包括:
在每种显示语言下,对所述目标控件蓝图中的文本类控件进行两两之间的显示区域重叠比较;
若同种显示语言下两个文本类控件的显示区域重叠,则确定所述显示语言下所述两个文本类控件出现重叠显示情况。
其中,重叠区域的比较也可以采用前述示例中使用的顶点坐标进行。
在一个示例中,可以控制所述目标控件蓝图中的一部分特殊的控件不参与显示区域重叠的比较,该特殊的控件包括:在目标控件蓝图中可见性属性默认为隐藏的控件。
在一个实施例中,所述显示属性信息包括显示文本;所述基于所述显示属性信息,确定所述目标控件蓝图中的文本类控件在每种显示语言下的异常显示情况,包括:
获取所述文本类控件在参考显示语言下的参考显示文本;
获取所述目标控件蓝图中的文本类控件,在每种显示语言下的显示文本;
基于每种显示语言下的显示文本以及所述参考显示文本,确定所述文本类控件在每种显示语言下出现的文本异常显示情况。
其中,文本异常显示情况是与文本显示有关的异常显示情况,例如可以包括字体大小不一,文字未显示完全,或者文本翻译错误等等异常显示情况。
对于游戏而言,其可能需要使用多种显示语言,文本类控件显示语言时,非常容易出现翻译缺失的情况。该翻译一般是相较于一种参考显示语言而言的,例如,开发者使用中文作为参考显示语言,则翻译缺失一般为其他语种的显示语言下,翻译后的内容出现缺失。
可选的,所述基于每种显示语言下的显示文本以及所述参考显示文本,确定所述文本类控件在每种显示语言下出现的文本异常显示情况,可以包括:
将所述文本类控件在每种显示语言下的显示文本与所述参考显示文本进行比对;
若显示文本和所述参考显示文本中存在相同的文字,确定在所述显示文本所属的显示语言下,所述文本类控件出现翻译缺失显示情况。
本实施例中,可以先去除去对比的两个文本中的数字和特殊符号,再对剩下的内容进行比对。
例如,以英语和汉语为例,假设汉语为参考显示语言,一个文本类控件TextBlock_77显示的中文文本(即参考显示文本)为“加油,射击”。而显示语言为英语时,该TextBlock_77控件显示的文本为“加油,shoot”,所以加油并未成功被翻译,英文语言下出现翻译缺失显示的情况,
在获取异常显示情况后,可以将目标控件蓝图的所有控件的异常显示情况存储在特定的存储区域中,例如可以存储在区块链中。
采用本实施例提供的测试方法,控件的异常检测基于蓝图资源即可实现,无需游戏代码,可在项目的开发期接入,便于异常的及时发现,并且可以自动对多个蓝图进行多种显示语言下的控件异常检测,人工介入性低,降低了对人力资源的需求,有利于提升检测效率和速度。
为了更好地理解以上方法,本发明实施例以游戏A为目标检测项目,TextBlock类型的控件为被检测的控件为例,描述对游戏A的控件异常检测方法。
本实施例中针对游戏A的控件异常检测方法可以发生在游戏的开发过程中,或者开发完成后的更新过程中,本实施例对此没有限制,参考图7,图7中示出了针对游戏A的控件异常检测方法的具体步骤。
701、显示项目选择页面,其中,项目选择页面包括至少一个候选检测项目;
例如,显示图3c中304所示的项目选择页面,该项目选择页面中,包含候选检测项目游戏A-F的选项。
702、基于针对候选检测项目中游戏A的选择操作,显示游戏A的检测页面,其中,检测页面包括检测触发控件,目标检测项目包括至少一个版本的控件蓝图文件,控件蓝图文件中包括至少一个控件蓝图;
其中,游戏A的检测页面可以参考图3c中305所示的页面,该页面中检测触发控件可以是名为“新建扫描”的控件。测试员可以通过点击该“新建扫描”控件,发起针对游戏A的新一轮的控件异常检测。
703、基于针对检测触发控件的触发操作,显示版本输入页面,版本输入页面包括版本输入控件、检测方式选择控件以及检测开始控件;
在检测到用户点击“新建扫描”的控件后,可以显示如图3a中302所示页面,版本输入页面可以在检测页面上以小窗口的形式显示(如图3a中302所示),或者以覆盖检测页面的新页面显示,本实施例对此没有限制。
其中,版本输入页面中包括版本输入控件如“测试版本”和对应的输入框组成的控件、检测方式选择控件“扫描类型”和对应的输入框组成的控件,以及检测开始控件如名为“确定”的控件,其中,版本输入页面中还可以包括备注信息输入控件,该控件包括输入框和提示信息“测试备注”,在该输入框中输入的备注信息在测试完成后,可以显示在测试结果页面中。
其中,针对版本输入控件,测试员可以在版本输入控件中直接输入控件蓝图文件的版本号,在另一个示例中,版本输入控件可以用于在被用户点击后,显示版本选择列表,该版本选择列表中可以包括游戏A对应的已有控件蓝图文件的所有版本的版本号。
704、基于针对版本输入控件输入的目标版本,确定目标版本的控件蓝图文件为目标控件蓝图文件;
例如,步骤704可以包括:当检测到针对版本输入控件的点击操作时,显示游戏A的控件蓝图文件的版本选择列表,该列表中包含所有版本的控件蓝图文件的版本信息;当检测到用户在版本选择列表中针对目标版本的选择操作时,确定目标版本的控件蓝图文件为目标控件蓝图文件;
其中,游戏A的每个版本的控件蓝图文件制作完成后,可以存储在特定的存储区域,例如存储在区块链,或者存储至测试员用于进行控件异常检测的终端,或者存储在服务器或其他终端中。
当检测到针对版本输入控件的点击操作时,终端可以基于版本管理工具,从本地,或服务器或其他终端中获取游戏A的控件蓝图文件的所有版本信息。
705、基于针对检测方式选择控件的检测方式选择操作,确定目标检测方式,其中,检测方式选择控件提供选择的检测方式包括:全量检测和增量检测;
其中,步骤705可以包括:当检测到针对版本输入控件的点击操作时,显示游戏A的检测方式选择列表,该列表中包括全量扫描(对应全量检测)和增量扫描(对应增量检测)两个选项,基于用户针对选项的点击操作,确定测试员选择的目标检测方式,本实施例中,假设测试员点击的是“增量扫描”的选项,目标检测方式为增量检测。
706、当检测到针对检测开始控件的触发操作时,从已进行过控件异常检测的控件蓝图文件中,确定目标控件蓝图文件的参考控件蓝图文件,其中,参考控件蓝图文件的版本为目标版本之前的,且与目标版本最接近的版本;
707、基于参考控件蓝图文件,从目标控件蓝图文件中确定目标控件蓝图,其中,目标控件蓝图与参考控件蓝图文件中的控件蓝图不相同;
例如,目标版本为前述示例中的0002版本,参考控件蓝图文件为0001版本,若两个版本的控件蓝图文件中,前1000张控件蓝图相同,则目标控件蓝图为目标控件蓝图文件中相较于参考控件蓝图文件新增的500张控件蓝图。
708、确定目标控件蓝图对应的多种显示语言;
其中,显示语言包括但不限于英语、日语、汉语、韩语、西班牙语等等语言。可以理解的是,针对的项目不同,显示语言的数量和/或种类可以不同。例如游戏A的显示语言和游戏B的显示语言的数量或种类不同。
709、获取每种显示语言下,目标控件蓝图中所有控件的显示属性信息;
其中,显示属性信息包括但不限于显示文本和显示区域。其中,该显示区域可以用显示区域的对角坐标,如左上角和右下角的坐标,以及显示区域的尺寸如长和宽表示。
其中,考虑到本实施例,显示文本的异常主要出现在文本类控件中,可以仅针对文本类控件如TextBlock控件,获取显示文本和显示区域,而不属于文本类控件的,仅获取其显示区域,以加快控件异常检测速度。
本实施例中,可以以每种显示语言作为目标控件蓝图的显示语言,获取目标控件蓝图中所有控件的显示文本和显示区域。
本实施例中的TextBlock控件是用于显示文本的控件,在控件蓝图中,会设置该TextBlock控件需要显示的文本,该文本一般设置为参考显示语言的文本如汉语的文本,但是可以理解的是,一款游戏可能针对不同国家的玩家,在其他显示语言下时,汉语的文本需要翻译为其他显示语言的文本。
其中多数TextBlock控件,可以利用GetCachedGeometry().GetAbsoluteSize()和GetCachedGeometry().GetAbsolutePosition()两个函数获取控件的显示区域的尺寸和位置(坐标)。对于控件的显示文本,可以在控件在UI上处于显示状态时,通过图像文字识别方法,例如OCR(Optical Character Recognition,光学字符识别),结合获取的控件的显示区域等信息,识别控件上的显示文本。而针对参考显示语言的显示文本,除了图像文字识别,还可以直接从控件蓝图中该控件的配置信息中获取。
对于一些特殊控件,如Visibility属性设为hidden的控件,size to content属性设为1的控件,或者是Widget Switcher控件等等,可以采用一些特殊处理实现对显示区域和显示文本的获取,其中,对于这些特殊控件的显示属性信息的获取,可以参考前述实施例中的描述,本实施例在此不再赘述。
710、基于显示属性信息,确定目标控件蓝图中的TextBlock控件在每种显示语言下的异常显示情况;
其中,TextBlock控件的异常显示情况包括但不限于以下的三种:
1、超框显示,即控件的显示文本超出该TextBlock控件可以占用的显示区域;
其中,超框显示一般一般发生在TextBlock控件嵌套在其他控件中的情况下。对于每一个TextBlock控件,可以通过以下的方式判断其是否超框显示。
当TextBlock控件属于容器控件的子控件时,确定TextBlock控件对应的父控件;基于每种显示语言下该父控件的显示区域,确定每种显示语言下该TextBlock控件的最大可显示区域;
对于每种显示语言,若该TextBlock控件在该种显示语言下的显示区域超过对应的最大可显示区域,确定在该显示语言下该TextBlock控件出现超框显示情况。
其中,最大可显示区域的计算方法可以参考前述实施例中的计算方法,在此不做赘述。
2、重叠显示,即TextBlock控件出现显示区域重叠;
本实施例中,可以只对目标控件蓝图中Visibility属性设为Visible的TextBlock控件进行相互之间的显示区域重叠判断,而对于Visibility属性设为hidden的控件,不参与该显示区域重叠判断。
3、显示文本异常,即TextBlock控件的显示文本在内容上出现异常。
显示文本的内容异常包括但不限于文本显示不全,文本内容显示错乱,文本内容出现乱码,文本内容相较于参考显示语言下的文本内容出现翻译缺失等等情况。
本实施例中的参考显示语言可以为汉语,其他显示语言如英语、韩语等的显示文本,可以认为是汉语的翻译。将汉语作为参考显示语言时,若某显示语言下,TextBlock控件的显示文本中存在汉语文本,或者进一步的,针对TextBlock控件,某显示语言的显示文本中包含出现在参考显示语言的显示文本中的字、词,则确定TextBlock控件在该显示语言下出现翻译缺失的情况。
711、基于异常显示情况得到目标控件蓝图的控件异常检测结果,基于控件异常检测结果,显示目标控件蓝图文件的检测结果页面。
在步骤711中,可以统计每个TextBlock控件在所有显示语言下出现的异常显示情况,在检测结果页面显示该统计情况。本实施例的检测结果页面可以如3d中的306页面所示。
采用本实施例提供的测试方法,控件的异常检测基于蓝图资源即可实现,无需游戏代码,可在项目的开发期接入,便于异常的及时发现,并且可以自动对多个蓝图进行多种显示语言下的控件异常检测,人工介入性低,降低了对人力资源的需求,有利于提升检测效率和速度。
为了更好地实施以上方法,相应的,本发明实施例还提供一种控件异常检测装置,该控件异常检测装置具体集成终端。
参考图8a,该装置包括:
检测页面显示单元801,用于显示目标检测项目的检测页面,其中,所述检测页面包括检测触发控件,所述目标检测项目包括至少一个版本的控件蓝图文件,所述控件蓝图文件中包括至少一个控件蓝图;
版本输入页面显示单元802,用于基于针对所述检测触发控件的触发操作,显示版本输入页面;
结果显示单元803,用于基于针对所述版本输入页面的版本输入操作,显示目标控件蓝图文件的检测结果页面,其中,所述目标控件蓝图文件的版本为通过所述版本输入操作确定的目标版本,所述检测结果页面包括所述目标控件蓝图文件中目标控件蓝图的控件异常检测结果。
参考图8b,在一个示例中,检测页面显示单元801,包括:
项目选择子单元8011,用于显示项目选择页面,其中,所述项目选择页面包括至少一个候选检测项目;
显示子单元8012,用于基于针对所述候选检测项目中目标检测项目的选择操作,显示所述目标检测项目的检测页面。
在一个示例中,所述控件异常检测结果包括:所述目标控件蓝图中文本类控件的标识信息和异常显示统计信息,其中,所述异常显示统计信息包括:文本类控件在多种显示语言下的异常显示情况的统计信息。
在一个示例中,所述检测结果页面还包括对应于各文本类控件的控件异常检测结果的详情显示控件,参考图8c,所述装置还包括:
详情显示单元804,用于基于针对目标文本类控件对应的详情显示控件的显示操作,显示所述目标文本类控件的异常信息详情页面,所述异常信息详情页面包括:所述多种显示语言中的目标显示语言的名称,以及每种目标显示语言下所述目标文本类控件的异常显示情况。
在一个示例中,所述版本输入页面包括版本输入控件、检测方式选择控件以及检测开始控件。参考图8d,结果显示单元803,包括:
第一确定子单元8031,用于基于针对所述版本输入控件输入的目标版本,确定所述目标版本的控件蓝图文件为目标控件蓝图文件;
第二确定子单元8032,基于针对所述检测方式选择控件的检测方式选择操作,确定目标检测方式,其中,所述检测方式选择控件提供选择的检测方式包括:全量检测和增量检测;
检测子单元8033,当检测到针对所述检测开始控件的触发操作时,基于所述目标检测方式,对所述目标控件蓝图文件中的目标控件蓝图进行控件异常检测,得到控件异常检测结果;
显示子单元8034,基于所述控件异常检测结果,显示所述目标控件蓝图文件的检测结果页面。
在一个示例中,所述目标检测方式为增量检测,检测子单元8033,用于:
从已进行过控件异常检测的控件蓝图文件中,确定所述目标控件蓝图文件的参考控件蓝图文件,其中,所述参考控件蓝图文件的版本为所述目标版本之前的版本;
基于所述参考控件蓝图文件,从所述目标控件蓝图文件中确定目标控件蓝图,其中,所述目标控件蓝图与所述参考控件蓝图文件中的控件蓝图不相同;
对所述目标控件蓝图进行控件异常检测,得到控件异常检测结果。
在一个实施例中,检测子单元8033,用于:
确定所述目标控件蓝图对应的多种显示语言;
获取每种显示语言下,所述目标控件蓝图中控件的显示属性信息;
基于所述显示属性信息,确定所述目标控件蓝图中的文本类控件在每种显示语言下的异常显示情况;
基于所述异常显示情况得到所述目标控件蓝图的控件异常检测结果。
在一个示例中,检测子单元8033,用于:
分别以每种显示语言,显示所述目标控件蓝图的控件于对应的用户界面中;
在每种显示语言下,获取所述目标控件蓝图中的控件在用户界面的显示属性信息。
在一个示例中,所述显示属性信息包括显示区域和显示文本,检测子单元8033,用于:
若所述目标控件蓝图中控件的可见性属性为可见,获取所述控件在所述用户界面上的显示文本,通过第一显示区域获取函数确定所述控件在所述用户界面的显示区域;
若所述目标控件蓝图中控件的可见性属性为隐藏,将所述控件的所述可见性属性修改为可见,使所述控件显示于用户界面,获取所述控件在所述用户界面上的显示文本,通过所述第一显示区域获取函数获取所述控件在所述用户界面的显示区域。
在一个示例中,所述显示属性信息包括显示区域和显示文本,检测子单元8033,用于:若所述目标控件蓝图中控件的内容排布属性为内容自动排布,获取所述控件在所述用户界面上的显示文本,通过第二显示区域获取函数确定所述控件在所述用户界面的显示区域。
在一个示例中,所述显示属性信息包括显示区域和显示文本,检测子单元8033,用于:若所述目标控件蓝图中控件为预设容器控件,获取所述控件在所述用户界面上的显示文本,通过所述第一显示区域获取函数确定所述控件在所述用户界面的显示区域,获取所述控件的所有子控件的索引信息,基于所述子控件的索引信息控制各子控件分别显示在所述用户界面上,在各子控件显示时,获取子控件在所述用户界面上的显示文本,通过所述第一显示区域获取函数获取所述子控件在所述用户界面的显示区域,其中,若所述预设容器控件为限制子控件大小的容器控件,以所述控件的显示区域作为所述子控件实际的显示区域。
在一个示例中,所述显示属性信息包括显示区域,检测子单元8033,用于:
当所述目标控件蓝图中的文本类控件属于容器控件的子控件时,确定所述文本类控件对应的父控件;
基于每种显示语言下所述父控件的显示区域,确定每种显示语言下所述文本类控件的最大可显示区域;
对于每种显示语言,若所述文本类控件在所述显示语言下的显示区域超过对应的最大可显示区域,确定在所述显示语言下所述文本类控件出现超框显示情况。
在一个示例中,检测子单元8033,用于:
若所述父控件只有一个,将每种显示语言下所述父控件的显示区域,作为相同显示语言下所述文本类控件的最大可显示区域;
若所述父控件不低于两个,在每种显示语言下,基于所述父控件的显示区域,计算所述父控件的共同覆盖区域,将所述共同覆盖区域作为相同显示语言下所述文本类控件的最大显示区域。
在一个示例中,所述显示属性信息包括显示区域,检测子单元,用于:
在每种显示语言下,对所述目标控件蓝图中的文本类控件进行两两之间的显示区域重叠比较;
若同种显示语言下两个文本类控件的显示区域重叠,则确定所述显示语言下所述两个文本类控件出现重叠显示情况。
可选的,所述显示属性信息包括显示文本;所检测子单元8033,用于:
获取所述文本类控件在参考显示语言下的参考显示文本;
获取所述目标控件蓝图中的文本类控件,在每种显示语言下的显示文本;
基于每种显示语言下的显示文本以及所述参考显示文本,确定所述文本类控件在每种显示语言下出现的文本异常显示情况。
可选的,检测子单元8033,用于:
将所述文本类控件在每种显示语言下的显示文本与所述参考显示文本进行比对;
若显示文本和所述参考显示文本中存在相同的文字,确定在所述显示文本所属的显示语言下,所述文本类控件出现翻译缺失显示情况。
采用本实施例提供的装置,控件的异常检测基于蓝图资源即可实现,无需游戏代码,可在项目的开发期接入,便于异常的及时发现,并且可以自动对多个蓝图进行多种显示语言下的控件异常检测,人工介入性低,降低了对人力资源的需求,有利于提升检测效率和速度。
此外,本发明实施例还提供一种计算机设备,该计算机设备可以为终端或者服务器,如图9所示,其示出了本发明实施例所涉及的计算机设备的结构示意图,具体来讲:
该计算机设备可以包括一个或者一个以上处理核心的处理器901、一个或一个以上计算机可读存储介质的存储器902、电源903和输入单元904等部件。本领域技术人员可以理解,图9中示出的计算机设备结构并不构成对计算机设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
处理器901是该计算机设备的控制中心,利用各种接口和线路连接整个计算机设备的各个部分,通过运行或执行存储在存储器902内的软件程序和/或模块,以及调用存储在存储器902内的数据,执行计算机设备的各种功能和处理数据,从而对计算机设备进行整体监控。可选的,处理器901可包括一个或多个处理核心;优选的,处理器901可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作***、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器901中。
存储器902可用于存储软件程序以及模块,处理器901通过运行存储在存储器902的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器902可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据计算机设备的使用所创建的数据等。此外,存储器902可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器902还可以包括存储器控制器,以提供处理器901对存储器902的访问。
计算机设备还包括给各个部件供电的电源903,优选的,电源903可以通过电源管理***与处理器901逻辑相连,从而通过电源管理***实现管理充电、放电、以及功耗管理等功能。电源903还可以包括一个或一个以上的直流或交流电源、再充电***、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
该计算机设备还可包括输入单元904,该输入单元904可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。
尽管未示出,计算机设备还可以包括显示单元等,在此不再赘述。具体在本实施例中,计算机设备中的处理器901会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到存储器902中,并由处理器901来运行存储在存储器902中的应用程序,从而实现各种功能,如下:
显示目标检测项目的检测页面,其中,所述检测页面包括检测触发控件,所述目标检测项目包括至少一个版本的控件蓝图文件,所述控件蓝图文件中包括至少一个控件蓝图;
基于针对所述检测触发控件的触发操作,显示版本输入页面;
基于针对所述版本输入页面的版本输入操作,显示目标控件蓝图文件的检测结果页面,其中,所述目标控件蓝图文件的版本为通过所述版本输入操作确定的目标版本,所述检测结果页面包括所述目标控件蓝图文件中目标控件蓝图的控件异常检测结果。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
由上,计算机设备可以基于控件蓝图实现对控件的异常检测。
本发明实施例涉及的***可以是由客户端、多个节点(接入网络中的任意形式的计算机设备,如服务器、终端)通过网络通信的形式连接形成的分布式***。
以分布式***为区块链***为例,参见图10,图10是本发明实施例提供的分布式***100应用于区块链***的一个可选的结构示意图,由多个节点(接入网络中的任意形式的计算设备,如服务器、用户终端)和客户端形成,节点之间形成组成的点对点(P2P,PeerTo Peer)网络,P2P协议是一个运行在传输控制协议(TCP,Transmission ControlProtocol)协议之上的应用层协议。在分布式***中,任何机器如服务器、终端都可以加入而成为节点,节点包括硬件层、中间层、操作***层和应用层。本实施例中,各个项目的控件蓝图文件,获取的控件的显示属性信息以及控件异常检测结果等等,都可以通过节点被存储在区域链***的共享账本中,计算机设备(例如终端或服务器)可以基于共享账本存储的记录数据获取显示属性信息,进行控件异常显示的判定。
参见图10示出的区块链***中各节点的功能,涉及的功能包括:
1)路由,节点具有的基本功能,用于支持节点之间的通信。
节点除具有路由功能外,还可以具有以下功能:
2)应用,用于部署在区块链中,根据实际业务需求而实现特定业务,记录实现功能相关的数据形成记录数据,在记录数据中携带数字签名以表示任务数据的来源,将记录数据发送到区块链***中的其他节点,供其他节点在验证记录数据来源以及完整性成功时,将记录数据添加到临时区块中。
例如,应用实现的业务包括:
2.1)钱包,用于提供进行电子货币的交易的功能,包括发起交易(即,将当前交易的交易记录发送给区块链***中的其他节点,其他节点验证成功后,作为承认交易有效的响应,将交易的记录数据存入区块链的临时区块中;当然,钱包还支持查询电子货币地址中剩余的电子货币;
2.2)共享账本,用于提供账目数据的存储、查询和修改等操作的功能,将对账目数据的操作的记录数据发送到区块链***中的其他节点,其他节点验证有效后,作为承认账目数据有效的响应,将记录数据存入临时区块中,还可以向发起操作的节点发送确认。
2.3)智能合约,计算机化的协议,可以执行某个合约的条款,通过部署在共享账本上的用于在满足一定条件时而执行的代码实现,根据实际的业务需求代码用于完成自动化的交易,例如查询买家所购买商品的物流状态,在买家签收货物后将买家的电子货币转移到商户的地址;当然,智能合约不仅限于执行用于交易的合约,还可以执行对接收的信息进行处理的合约。
3)区块链,包括一系列按照产生的先后时间顺序相互接续的区块(Block),新区块一旦加入到区块链中就不会再被移除,区块中记录了区块链***中节点提交的记录数据。
参见图11,图11是本发明实施例提供的区块结构(Block Structure)一个可选的示意图,每个区块中包括本区块存储交易记录的哈希值(本区块的哈希值)、以及前一区块的哈希值,各区块通过哈希值连接形成区块链。另外,区块中还可以包括有区块生成时的时间戳等信息。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了相关的信息,用于验证其信息的有效性(防伪)和生成下一个区块。
本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。
为此,本发明实施例还提供一种存储介质,其中存储有多条指令,该指令能够被处理器进行加载,以执行本发明实施例所提供的控件异常检测方法。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
其中,该存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、磁盘或光盘等。
由于该存储介质中所存储的指令,可以执行本发明实施例所提供的控件异常检测方法中的步骤,因此,可以实现本发明实施例所提供的控件异常检测方法所能实现的有益效果,详见前面的实施例,在此不再赘述。
以上对本发明实施例所提供的一种控件异常检测方法、装置、计算机设备和存储介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上,本说明书内容不应理解为对本发明的限制。
Claims (14)
1.一种控件异常检测方法,其特征在于,包括:
显示目标检测项目的检测页面,其中,所述检测页面包括检测触发控件,所述目标检测项目包括至少一个版本的控件蓝图文件,所述控件蓝图文件中包括至少一个控件蓝图;
基于针对所述检测触发控件的触发操作,显示版本输入页面;
基于针对所述版本输入页面的版本输入操作,显示目标控件蓝图文件的检测结果页面,其中,所述目标控件蓝图文件的版本为通过所述版本输入操作确定的目标版本,所述检测结果页面包括所述目标控件蓝图文件中目标控件蓝图的控件异常检测结果;
其中,对目标控件蓝图的控件异常检测过程包括:
确定目标控件蓝图对应的多种显示语言;
获取每种显示语言下,所述目标控件蓝图中控件的显示属性信息;
基于所述显示属性信息,确定所述目标控件蓝图中的文本类控件在每种显示语言下的异常显示情况;
基于所述异常显示情况得到所述目标控件蓝图的控件异常检测结果。
2.根据权利要求1所述的控件异常检测方法,其特征在于,所述显示目标检测项目的检测页面包括:
显示项目选择页面,其中,所述项目选择页面包括至少一个候选检测项目;
基于针对所述候选检测项目中目标检测项目的选择操作,显示所述目标检测项目的检测页面。
3.根据权利要求1所述的控件异常检测方法,其特征在于,所述控件异常检测结果包括:所述目标控件蓝图中文本类控件的标识信息和异常显示统计信息,其中,所述异常显示统计信息包括:文本类控件在多种显示语言下的异常显示情况的统计信息。
4.根据权利要求3所述的控件异常检测方法,其特征在于,所述检测结果页面还包括对应于各文本类控件的控件异常检测结果的详情显示控件,所述方法还包括:
基于针对目标文本类控件对应的详情显示控件的显示操作,显示所述目标文本类控件的异常信息详情页面,所述异常信息详情页面包括:所述多种显示语言中的目标显示语言的名称,以及每种目标显示语言下所述目标文本类控件的异常显示情况。
5.根据权利要求1所述的控件异常检测方法,其特征在于,所述版本输入页面包括版本输入控件、检测方式选择控件以及检测开始控件,所述基于针对所述版本输入页面的版本输入操作,显示目标控件蓝图文件的检测结果页面,包括:
基于针对所述版本输入控件输入的目标版本,确定所述目标版本的控件蓝图文件为目标控件蓝图文件;
基于针对所述检测方式选择控件的检测方式选择操作,确定目标检测方式,其中,所述检测方式选择控件提供选择的检测方式包括:全量检测和增量检测;
当检测到针对所述检测开始控件的触发操作时,基于所述目标检测方式,对所述目标控件蓝图文件中的目标控件蓝图进行控件异常检测,得到控件异常检测结果;
基于所述控件异常检测结果,显示所述目标控件蓝图文件的检测结果页面。
6.根据权利要求5所述的控件异常检测方法,其特征在于,所述目标检测方式为增量检测,所述基于所述目标检测方式,对所述目标控件蓝图文件中的目标控件蓝图进行控件异常检测,得到控件异常检测结果,包括:
从已进行过控件异常检测的控件蓝图文件中,确定所述目标控件蓝图文件的参考控件蓝图文件,其中,所述参考控件蓝图文件的版本为所述目标版本之前的版本;
基于所述参考控件蓝图文件,从所述目标控件蓝图文件中确定目标控件蓝图,其中,所述目标控件蓝图与所述参考控件蓝图文件中的控件蓝图不相同;
对所述目标控件蓝图进行控件异常检测,得到控件异常检测结果。
7.根据权利要求1所述的控件异常检测方法,其特征在于,所述获取每种显示语言下,所述目标控件蓝图中控件的显示属性信息,包括:
分别以每种显示语言,显示所述目标控件蓝图的控件于对应的用户界面中;
在每种显示语言下,获取所述目标控件蓝图中的控件在用户界面的显示属性信息。
8.根据权利要求7所述的控件异常检测方法,其特征在于,所述显示属性信息包括显示区域和显示文本,所述获取所述目标控件蓝图中的控件在用户界面的显示属性信息,包括:
若所述目标控件蓝图中控件的可见性属性为可见,获取所述控件在所述用户界面上的显示文本,通过第一显示区域获取函数确定所述控件在所述用户界面的显示区域;
若所述目标控件蓝图中控件的可见性属性为隐藏,将所述控件的所述可见性属性修改为可见,使所述控件显示于用户界面,获取所述控件在所述用户界面上的显示文本,通过所述第一显示区域获取函数获取所述控件在所述用户界面的显示区域。
9.根据权利要求7所述的控件异常检测方法,其特征在于,所述显示属性信息包括显示区域和显示文本,所述获取所述目标控件蓝图中的控件在用户界面的显示属性信息,包括:
若所述目标控件蓝图中控件为预设容器控件,获取所述控件在所述用户界面上的显示文本;
通过第一显示区域获取函数确定所述控件在所述用户界面的显示区域,获取所述控件的所有子控件的索引信息,基于所述子控件的索引信息控制各子控件分别显示在所述用户界面上;
在各子控件显示时,获取子控件在所述用户界面上的显示文本,通过所述第一显示区域获取函数获取所述子控件在所述用户界面的显示区域,其中,若所述预设容器控件为限制子控件大小的容器控件,以所述控件的显示区域作为所述子控件实际的显示区域。
10.根据权利要求1所述的控件异常检测方法,其特征在于,所述显示属性信息包括显示区域,所述基于所述显示属性信息,确定所述目标控件蓝图中的文本类控件在每种显示语言下的异常显示情况,包括:
当所述目标控件蓝图中的文本类控件属于容器控件的子控件时,确定所述文本类控件对应的父控件;
基于每种显示语言下所述父控件的显示区域,确定每种显示语言下所述文本类控件的最大可显示区域;
对于每种显示语言,若所述文本类控件在所述显示语言下的显示区域超过对应的最大可显示区域,确定在所述显示语言下所述文本类控件出现超框显示情况。
11.根据权利要求1所述的控件异常检测方法,其特征在于,所述显示属性信息包括显示区域,所述基于所述显示属性信息,确定所述目标控件蓝图中的文本类控件在每种显示语言下的异常显示情况,包括:
在每种显示语言下,对所述目标控件蓝图中的文本类控件进行两两之间的显示区域重叠比较;
若同种显示语言下两个文本类控件的显示区域重叠,则确定所述显示语言下所述两个文本类控件出现重叠显示情况。
12.根据权利要求1所述的控件异常检测方法,其特征在于,所述显示属性信息包括显示文本;所述基于所述显示属性信息,确定所述目标控件蓝图中的文本类控件在每种显示语言下的异常显示情况,包括:
获取所述文本类控件在参考显示语言下的参考显示文本;
获取所述目标控件蓝图中的文本类控件,在每种显示语言下的显示文本;
基于每种显示语言下的显示文本以及所述参考显示文本,确定所述文本类控件在每种显示语言下出现的文本异常显示情况。
13.一种控件异常检测装置,其特征在于,包括:
检测页面显示单元,用于显示目标检测项目的检测页面,其中,所述检测页面包括检测触发控件,所述目标检测项目包括至少一个版本的控件蓝图文件,所述控件蓝图文件中包括至少一个控件蓝图;
版本输入页面显示单元,用于基于针对所述检测触发控件的触发操作,显示版本输入页面;
结果显示单元,用于基于针对所述版本输入页面的版本输入操作,显示目标控件蓝图文件的检测结果页面,其中,所述目标控件蓝图文件的版本为通过所述版本输入操作确定的目标版本,所述检测结果页面包括所述目标控件蓝图文件中目标控件蓝图的控件异常检测结果;
其中,结果显示单元具体还用于确定所述目标控件蓝图对应的多种显示语言;
获取每种显示语言下,所述目标控件蓝图中控件的显示属性信息;基于所述显示属性信息,确定所述目标控件蓝图中的文本类控件在每种显示语言下的异常显示情况;基于所述异常显示情况得到所述目标控件蓝图的控件异常检测结果。
14.一种计算机设备,包括存储器,处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,所述处理器执行所述计算机程序时实现如权利要求1-12任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010100216.0A CN111324535B (zh) | 2020-02-18 | 2020-02-18 | 一种控件异常检测方法、装置和计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010100216.0A CN111324535B (zh) | 2020-02-18 | 2020-02-18 | 一种控件异常检测方法、装置和计算机设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111324535A CN111324535A (zh) | 2020-06-23 |
CN111324535B true CN111324535B (zh) | 2022-02-25 |
Family
ID=71171053
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010100216.0A Active CN111324535B (zh) | 2020-02-18 | 2020-02-18 | 一种控件异常检测方法、装置和计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111324535B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112131869B (zh) * | 2020-09-02 | 2021-09-10 | 苏州好玩友网络科技有限公司 | 基于多语言的文本检测方法及装置 |
CN112416777B (zh) * | 2020-11-23 | 2022-11-18 | 珠海格力电器股份有限公司 | 文本显示测试方法、装置、计算机设备和存储介质 |
CN113407406B (zh) * | 2021-05-26 | 2023-06-23 | 中国联合网络通信集团有限公司 | 异常监控方法和异常监控*** |
CN113791786B (zh) * | 2021-09-23 | 2024-01-19 | 安然 | 基于ios***的app页面控件自动化方法及装置 |
CN116541305B (zh) * | 2023-06-26 | 2023-12-15 | 京东方艺云(杭州)科技有限公司 | 一种异常检测的方法、装置、电子设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5583761A (en) * | 1993-10-13 | 1996-12-10 | Kt International, Inc. | Method for automatic displaying program presentations in different languages |
CN102957773A (zh) * | 2011-08-29 | 2013-03-06 | 比亚迪股份有限公司 | 一种手机软件测试方法及*** |
CN106294178A (zh) * | 2016-08-22 | 2017-01-04 | 北京奇虎科技有限公司 | 自动化测试方法和装置 |
CN108762617A (zh) * | 2018-05-31 | 2018-11-06 | 苏州蜗牛数字科技股份有限公司 | 一种vr环境中的ui交互***、方法及存储介质 |
CN109597755A (zh) * | 2018-10-25 | 2019-04-09 | 东软集团股份有限公司 | 文本显示的检测方法、装置、存储介质和电子设备 |
US10552299B1 (en) * | 2019-08-14 | 2020-02-04 | Appvance Inc. | Method and apparatus for AI-driven automatic test script generation |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7711542B2 (en) * | 2004-08-31 | 2010-05-04 | Research In Motion Limited | System and method for multilanguage text input in a handheld electronic device |
US8566792B2 (en) * | 2010-05-07 | 2013-10-22 | Salesforce, Inc. | Validating visual components |
CN109815156A (zh) * | 2019-02-28 | 2019-05-28 | 北京百度网讯科技有限公司 | 页面中视觉元素的展示测试方法、装置、设备和存储介质 |
CN110262976B (zh) * | 2019-06-21 | 2024-05-28 | 深圳市腾讯网域计算机网络有限公司 | 游戏资源文件的解析方法、装置、设备和存储介质 |
-
2020
- 2020-02-18 CN CN202010100216.0A patent/CN111324535B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5583761A (en) * | 1993-10-13 | 1996-12-10 | Kt International, Inc. | Method for automatic displaying program presentations in different languages |
CN102957773A (zh) * | 2011-08-29 | 2013-03-06 | 比亚迪股份有限公司 | 一种手机软件测试方法及*** |
CN106294178A (zh) * | 2016-08-22 | 2017-01-04 | 北京奇虎科技有限公司 | 自动化测试方法和装置 |
CN108762617A (zh) * | 2018-05-31 | 2018-11-06 | 苏州蜗牛数字科技股份有限公司 | 一种vr环境中的ui交互***、方法及存储介质 |
CN109597755A (zh) * | 2018-10-25 | 2019-04-09 | 东软集团股份有限公司 | 文本显示的检测方法、装置、存储介质和电子设备 |
US10552299B1 (en) * | 2019-08-14 | 2020-02-04 | Appvance Inc. | Method and apparatus for AI-driven automatic test script generation |
Non-Patent Citations (2)
Title |
---|
Multilanguage;KlSKE;《https://forums.unrealengine.com/t/multilanguage/42370/7》;20150920;第1-3页 * |
Unreal Engine4 蓝图入门;广州阿龙;《https://www.cnblogs.com/alongu3d/p/5066955.html》;20151222;第1-5页 * |
Also Published As
Publication number | Publication date |
---|---|
CN111324535A (zh) | 2020-06-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111324535B (zh) | 一种控件异常检测方法、装置和计算机设备 | |
US10503482B2 (en) | Object mapping using intrinsic persistence metadata and pattern-based rules for mapping transformation | |
US9696967B2 (en) | Generation of an application from data | |
JP7407928B2 (ja) | ファイルコメント、コメント閲覧方法、装置、コンピュータ機器及びコンピュータプログラム | |
CN104823158A (zh) | 用于简化的知识工程的方法与*** | |
CN109634579A (zh) | 代码生成方法、装置、计算机装置及存储介质 | |
CN111538774A (zh) | 数据存储及展示方法、***、设备及存储介质 | |
CN108958731B (zh) | 一种应用程序界面生成方法、装置、设备和存储介质 | |
JP6442807B1 (ja) | 対話サーバ、対話方法及び対話プログラム | |
CN109324864A (zh) | 一种人机交互操作信息的获取方法及装置 | |
CN112835577A (zh) | 数据处理方法、装置、计算机设备以及可读存储介质 | |
CN111435367A (zh) | 知识图谱的构建方法、***、设备及存储介质 | |
CN113407284A (zh) | 导航界面的生成方法、装置、存储介质及电子设备 | |
CN109445893A (zh) | 一种确定操作界面帧的唯一性标识的方法及装置 | |
US20220113847A1 (en) | Online collaborative document processing method and device | |
CN111144320A (zh) | 一种图像处理方法、装置、计算机设备和存储介质 | |
US8091016B2 (en) | Visually manipulating instance collections | |
Jiang et al. | ILuvUI: Instruction-tuned LangUage-Vision modeling of UIs from Machine Conversations | |
CN117174272A (zh) | 一种基于大数据模型的药品控制方法、设备及介质 | |
JP7029557B1 (ja) | 判定装置、判定方法および判定プログラム | |
CN112948264B (zh) | 测试任务的执行方法及装置、***、存储介质、电子装置 | |
US11995036B2 (en) | Automated customized modeling of datasets with intuitive user interfaces | |
JP6902871B2 (ja) | 向上したドキュメント生産性のためのエンティティ認識 | |
CN112257450A (zh) | 数据处理方法、装置、可读存储介质及设备 | |
KR101865103B1 (ko) | 소프트웨어 정합성 검증시스템 및 검증방법 |
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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40024259 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |