CN111881019A - 一种用户界面测试方法及装置 - Google Patents
一种用户界面测试方法及装置 Download PDFInfo
- Publication number
- CN111881019A CN111881019A CN202010646102.6A CN202010646102A CN111881019A CN 111881019 A CN111881019 A CN 111881019A CN 202010646102 A CN202010646102 A CN 202010646102A CN 111881019 A CN111881019 A CN 111881019A
- Authority
- CN
- China
- Prior art keywords
- interface
- identifier
- test
- user interface
- determining
- 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
Links
- 238000012360 testing method Methods 0.000 title claims abstract description 357
- 238000000034 method Methods 0.000 claims abstract description 62
- 238000013515 script Methods 0.000 claims abstract description 61
- 238000004891 communication Methods 0.000 claims description 36
- 238000004590 computer program Methods 0.000 claims description 17
- 238000012015 optical character recognition Methods 0.000 claims description 17
- 230000011218 segmentation Effects 0.000 claims description 17
- 238000003860 storage Methods 0.000 claims description 17
- 230000008859 change Effects 0.000 abstract description 9
- 238000010586 diagram Methods 0.000 description 20
- 230000008569 process Effects 0.000 description 11
- 238000013461 design Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 10
- 238000012545 processing Methods 0.000 description 10
- 230000006872 improvement Effects 0.000 description 9
- 238000012549 training Methods 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 5
- 238000010998 test method Methods 0.000 description 5
- 238000002372 labelling Methods 0.000 description 4
- 230000018109 developmental process Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000011161 development Methods 0.000 description 2
- 229910003460 diamond Inorganic materials 0.000 description 2
- 239000010432 diamond Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 241000282553 Macaca Species 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 229920001296 polysiloxane Polymers 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/22—Matching criteria, e.g. proximity measures
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Evolutionary Biology (AREA)
- Evolutionary Computation (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Bioinformatics & Computational Biology (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
本说明书公开了一种用户界面测试方法及装置,第一终端可先连接测试平台与第二终端中待测试的应用,并根据用户操作获取测试用例,之后在运行该测试用例中的测试脚本时,可确定测试事件针对的界面元素的第一标识。并获取该应用当前展示的用户界面的图像,通过元素识别模型确定该用户界面中各界面元素的第二标识以及坐标,然后通过标识匹配确定匹配的第二标识对应的界面元素,最后在该界面元素的坐标位置,执行对应该测试事件的操作,以确定测试结果。通过图像识别的方法确定用户界面中的各界面元素的元素标识,并通过元素标识匹配的方法进行元素定位,避免了用户界面布局更改,导致元素属性变化进而产生的测试出错,极大提高了测试用例的适用性。
Description
技术领域
本申请涉及测试技术领域,尤其涉及一种用户界面测试方法及装置。
背景技术
通常应用程序(Application,APP)在上线之前,需要进行用户界面(Userinterface testing,UI)测试。在根据测试用例对UI进行自动化测试时,可通过测试平台运行测试用例中的测试脚本,模拟用户对UI中界面元素的操作,使该应用执行界面元素对应的事件。通过比较应用UI中依次展示的事件执行结果与测试用例包含的业务流程,判断该应用的UI是否存在问题。
由于测试脚本需要在运行时能够定位到UI中的界面元素,因此测试脚本需要包含能够唯一标识界面元素的信息,以定位到用户界面中对应的界面元素中。现有技术中通常将界面代码中能够唯一标识界面元素的元素属性,作为测试脚本中确定界面元素的信息,其中,元素属性包括:元素名称以及元素在界面中的路径等。则运行测试脚本时,可根据元素名称以及路径,在UI中确定需要执行操作的界面元素。
但是,基于元素属性定位界面元素的方式,由于测试脚本需要人工编写,当应用中UI布局改变时,可能出现路径或者元素名称的变化,需要人工重新编写,测试用例适应性低。
发明内容
本说明书实施例提供一种用户界面测试方法及装置,用于部分解决现有技术中存在的上述问题。
本说明书实施例采用下述技术方案:
本说明书提供的一种用户界面测试方法,包括:
第一终端建立自身安装的测试平台与第二终端中安装的待测试的应用的通信连接;
所述第一终端根据监测到的用户对所述测试平台的操作,从已存储的各测试用例中,获取用于用户界面测试的测试用例,所述测试用例中包含测试脚本;
所述第一终端通过运行获取的测试脚本中的测试事件,确定所述测试事件针对的界面元素的元素标识,作为第一标识;
所述第一终端通过与所述第二终端的通信连接,获取所述第二终端中运行的所述待测试的应用当前展示的用户界面,并确定所述当前展示的用户界面的图像;
所述第一终端将所述图像输入预先训练的元素识别模型,确定所述元素识别模型输出的用户界面中各界面元素的识别结果,所述界面元素的识别结果包含界面元素的元素区域中心位置、界面元素的元素类型以及界面元素的元素内容;
所述第一终端根据所述识别结果,确定所述用户界面中各界面元素的元素标识,作为第二标识,以及根据所述识别结果确定所述用户界面中各界面元素的坐标,所述元素标识至少包括元素类型以及元素内容中的一种;
所述第一终端将所述第一标识与各第二标识进行匹配,从各第二标识中确定与所述第一标识匹配的第二标识,确定所述匹配的第二标识对应的界面元素;
所述第一终端根据确定出的各界面元素的坐标,确定匹配得到的界面元素的坐标,并根据确定出的坐标执行所述测试事件,以根据所述测试事件的执行结果确定测试结果。
可选地,所述方法还包括:
当所述测试脚本中包含多个测试事件时,依次针对所述测试脚本中的每个测试事件,确定该测试事件针对的界面元素的元素标识,作为第一标识;
判断当前展示的用户界面与执行上一测试事件时展示的用户界面是否相同;
若是,则确定已经得到的各界面元素的第二标识,以进行所述第一标识与各第二标识的匹配;
若否,则重新获取所述应用当前展示的用户界面的图像,并将所述图像输入预先训练的元素识别模型,重新确定所述元素识别模型输出的用户界面中各界面元素的识别结果,重新确定所述用户界面中各界面元素的各第二标识,以根据所述第一标识与重新确定出的各第二标识进行匹配。
可选地,所述预先训练的元素识别模型至少包括:语义分割分支模型以及光学字符识别分支模型;
所述第一终端将所述图像输入预先训练的元素识别模型,确定所述元素识别模型输出的用户界面中各界面元素的识别结果,具体包括:
所述第一终端将所述图像输入所述语义分割分支模型中,确定所述语义分割分支模型输出的用户界面中各界面元素的元素区域以及各界面元素的元素类型;
将确定出的所述用户界面中各界面元素的元素区域的图像输入所述光学字符识别分支模型中,确定所述光学字符识别分支模型输出的用户界面中各界面元素的元素内容;
根据所述图像中各界面元素的元素区域中心位置、各界面元素的元素类型以及各界面元素的元素内容,确定识别结果。
可选地,根据所述识别结果确定所述用户界面中各界面元素的坐标,具体包括:
针对所述用户界面中每个界面元素,根据所述识别结果中该界面元素的元素区域中心位置,确定所述中心位置在所述用户界面中的坐标,作为该界面元素的坐标。
可选地,所述第一终端将所述第一标识与各第二标识进行匹配,从各第二标识中确定与所述第一标识匹配的第二标识,确定所述匹配的第二标识对应的界面元素,具体包括:
所述第一终端将所述第一标识中的元素类型与各第二标识中的元素类型进行匹配,从各第二标识中确定与所述第一标识的元素类型匹配的各第二标识;
将所述第一标识中的元素内容与匹配得到的各第二标识的元素内容进行匹配,从匹配得到的各第二标识中确定与所述第一标识的元素内容匹配的第二标识,确定所述匹配的第二标识对应的界面元素。
可选地,所述方法还包括:
当所述当前展示的用户界面中存在多个相同的界面元素时,针对所述当前展示的用户界面中的每个相同的界面元素,根据所述相同的界面元素的坐标,确定该界面元素在所述用户界面中的展示次序;
根据确定出的各相同的界面元素的展示次序,重新确定各相同的界面元素的元素标识;
其中,元素类型以及元素内容均相同的界面元素为相同的界面元素。
可选地,所述测试用例还包含执行所述测试事件后,所述应用展示的标准用户界面;
根据确定出的坐标执行所述测试事件,以根据所述测试事件的执行结果确定测试结果,具体包括:
根据确定出的坐标,在所述当前展示的用户界面中确定对应所述坐标的位置,并在确定出的坐标的位置执行对应所述测试事件的操作;
确定执行对应所述测试事件的操作后的待测用户界面;
当所述待测用户界面与所述标准用户界面不同时,确定所述用户界面存在错误,并展示错误信息。
可选地,第一标识采用以下方法确定:
确定所述测试事件针对的界面元素所在的用户界面;
将所述用户界面的图像输入预先训练的元素识别模型,确定所述用户界面中各界面元素的识别结果,并根据所述识别结果,确定所述用户界面中各界面元素的元素标识;
从所述用户界面中各界面元素的元素标识中确定所述测试事件针对的界面元素的元素标识,作为第一标识。
本说明书提供一种用户界面测试装置,包括:
通信连接模块,建立自身安装的测试平台与第二终端中安装的待测试的应用的通信连接;
测试用例获取模块,根据监测到的用户对所述测试平台的操作,从已存储的各测试用例中,获取用于用户界面测试的测试用例,所述测试用例中包含测试脚本;
元素标识确定模块,通过运行获取的根据所述测试脚本中的测试事件,确定所述测试事件针对的界面元素的元素标识,作为第一标识;
图像获取模块,通过所述通信连接,获取所述第二终端中所述待测试的应用当前展示的用户界面,并确定所述当前展示的用户界面的图像;
识别结果确定模块,将所述图像输入预先训练的元素识别模型,确定所述元素识别模型输出的用户界面中各界面元素的识别结果,所述界面元素的识别结果包含界面元素的元素区域中心位置、界面元素的元素类型以及界面元素的元素内容;
第二标识确定模块,根据所述识别结果,确定所述用户界面中各界面元素的元素标识,作为第二标识,以及根据所述识别结果确定所述用户界面中各界面元素的坐标,所述元素标识至少包括元素类型以及元素内容中的一种;
匹配模块,将所述第一标识与各第二标识进行匹配,从各第二标识中确定与所述第一标识匹配的第二标识,确定所述匹配的第二标识对应的界面元素;
执行模块,根据确定出的各界面元素的坐标,确定匹配得到的界面元素的坐标,并根据确定出的坐标执行所述测试事件,以根据所述测试事件的执行结果确定测试结果。
本说明书提供的一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述用户界面测试方法。
本说明书提供的一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述用户界面测试方法。
本说明书实施例采用的上述至少一个技术方案能够达到以下有益效果:
在进行UI测试时,第一终端可先建立自身安装的测试平台与第二终端中安装的待测试的应用的通信连接,之后根据用户操作获取用于用户界面测试的测试用例,在运行该测试用例中的测试脚本时,根据该测试脚本中的测试事件,确定该测试事件针对的界面元素的第一标识,并获取待测试的应用当前展示的用户界面的图像,以通过预先训练的元素识别模型,确定该用户界面中各界面元素的第二标识以及各界面元素的坐标,然后通过匹配该第一标识与各第二标识,确定与该第一标识匹配的第二标识对应的界面元素,最后在用户界面中该匹配得到的界面元素的坐标的位置,执行对应该测试事件的操作,并根据执行结果确定测试结果。通过图像识别的方法确定用户界面中的各界面元素的元素标识,并通过标识匹配的方法进行元素定位,避免了由于用户界面布局更改,导致元素属性发生变化进而产生的测试出错,极大提高了测试用例的适用性。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本说明书实施例提供的一种用户界面测试的流程示意图;
图2为本说明书实施例提供的测试平台与待测试的应用的连接架构示意图;
图3为本说明书实施例提供的UI设计图;
图4为本说明书实施例提供的执行多个测试事件时的UI示意图;
图5为本说明书实施例提供的存在相同界面元素的UI示意图;
图6为本说明书实施例提供的不同终端显示的UI示意图;
图7为本说明书实施例提供的一种用户界面测试的装置的结构示意图;
图8为本说明书实施例提供的实现用户界面测试方法的电子设备示意图。
具体实施方式
为使本说明书的目的、技术方案和优点更加清楚,下面将结合本说明书具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于说明书中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
以下结合附图,详细说明本申请各实施例提供的技术方案。
图1为本说明书实施例提供的一种用户界面测试流程,具体可包括以下步骤:
S100:第一终端建立自身安装的测试平台与第二终端中安装的待测试的应用的通信连接。
通常在UI测试的过程中,将安装在终端中用于对应用进行UI测试的测试工具,称为测试平台。而将需要进行UI测试的应用作为待测试的应用,该待测试的应用既可以是安装在同一终端中,也可以安装在其他终端中。为了方便测试人员通过测试平台对不同的应用进行UI测试,一般来说安装测试平台的终端中不会安装待测试的应用,而是将待测试的应用安装在其他终端中。当需要进行UI测试时,通常需要建立测试平台与待测试的应用之间的通信连接,以通过测试平台对待测试的应用进行UI测试。
在本说明书中,将安装测试平台的终端作为第一终端,将安装待测试的应用的终端作为第二终端,以测试平台与待测试的应用安装在不同终端中,由安装测试平台的第一终端执行UI测试的流程进行说明。该第一终端以及第二终端具体可以是个人电脑、平板电脑、服务器等设备,本说明书不做限制,可根据需要设置。
具体的,该第一终端可先建立与该第二终端之间的通信连接,该终端之间的通信连接可以是通过数据线建立的有线通信连接,也可以是通过蓝牙、无线高保真(WirelessFidelity,WiFi)等建立的无线通信连接,本说明书对此不做限制,可根据需要设置。
之后,该测试平台可接收该第二终端中安装的待测试的应用发送的通信连接请求,并根据接收到的该通信连接请求,与该待测试的应用建立通信连接。当测试平台与该待测试的应用建立通信连接后,该测试平台可获取应用运行时界面中展示的UI内容,以进行后续UI测试。图2为测试平台与待测试的应用的连接架构示意图,图2中的电脑图标表示安装有测试平台的个人电脑,手机图标表示安装有待测试的应用的手机设备,虚线框表示待测试的应用在手机中显示的UI,实线框表示测试平台在个人电脑中展示的界面。当通过个人电脑与手机之间的连接,建立测试平台与该待测试的应用之间的通信连接后,该测试平台的展示界面中可同步显示该待测试的应用的UI。
S102:所述第一终端根据监测到的用户对所述测试平台的操作,从已存储的各测试用例中,获取用于用户界面测试的测试用例。
在本说明书实施例中,在建立该测试平台与待测试的应用之间的通信连接后,测试人员(使用测试平台进行UI测试的用户)可确定进行UI测试的测试用例,以进行UI测试。
具体的,该第一终端可根据监测到的用户对该测试平台的操作,从已存储的各测试用例中确定当前测试所需的测试用例,并获取用于UI测试的该测试用例,以通过运行测试用例中包含的测试脚本,执行对UI进行测试的测试事件。需要说明的是,测试用例通常是预先存储在测试平台所在的终端中的,以便在需要进行测试时,测试人员可选择所需的测试用例进行UI测试。
其中,测试用例包括:触发业务逻辑的操作流程、测试脚本以及预期结果等测试信息。测试脚本可为测试人员预先根据业务流程或者业务逻辑在执行时需要执行的业务步骤,编写的模拟用户在UI中的按业务步骤进行操作,触发该测试用例中业务逻辑实现过程的测试代码。
S104:所述第一终端通过运行获取的测试脚本中的测试事件,确定所述测试事件针对的界面元素的元素标识,作为第一标识。
通常来说,测试用例中包含的触发业务逻辑的操作流程,是通过多次用户操作实现的,例如,用户点击第一界面中的A界面元素,应用跳转至第二界面,用户再点击第二界面中的B界面元素,应用跳转至第三界面……等等。因此,在本说明书中,该测试用例中的测试脚本可包含多个测试事件,每个测试事件对应一步用户操作,也就是说测试事件是用户操作所触发的对界面元素操作的事件。当然,在进行UI测试时无需“用户”来操作触发,而是由测试平台依次执行测试脚本中的各测试事件,实现“用户”的操作。
在本说明书实施例中,测试脚本中至少包含一个测试事件,为方便描述,后续以测试脚本中包含一个测试事件进行说明。而该第一终端在执行测试事件时,通过测试平台需要确定被执行的对象,也就是确定待测试的应用当前展示UI中的各页面元素中,哪一个是需要执行测试事件的对象,并通过后续步骤执行该测试事件。
具体的,该第一终端可根据获取到的测试用例,确定测试用例中包含的测试脚本,并通过运行该测试脚本中的测试事件,确定测试脚本中包含的测试事件的执行对象的标识,即,界面元素的元素标识,作为第一标识。其中,该元素标识用于在该待测试的应用当前展示的UI中唯一标识一个界面元素。
其中,测试事件针对的界面元素的第一标识可由测试人员通过预先训练的元素识别模型确定,并编写在测试脚本中。具体的,将该待测试的应用的UI设计图输入预先训练的元素识别模型的语义分割分支模型中,确定该UI设计图对应的UI中各界面元素的元素区域以及各界面元素的元素类型。之后确定各界面元素的元素区域的图像,再将确定出的各界面元素的元素区域的图像输入预先训练的元素识别模型的光学字符识别(OpticalCharacter Recognition,OCR)分支模型中,确定各界面元素的元素区域中的文本内容作为各界面元素的元素内容。当然,若该应用已开发完成,也可将该应用在终端中的UI的图像输入预先训练的元素识别模型,本说明书对此不做限制,可根据需要设置。
进一步地,由于UI中界面元素的元素内容或图像内容可能存在动态变化。例如:UI中展示定位信息的界面元素的元素内容会随着终端位置的不同而变化,UI中可动态变化的图标中展示的图像会随时间变化(如,滚动横幅)。
由于动态变化的界面元素的元素内容可能发生变化,因此若仍以界面元素的元素类型以及元素内容作为第一标识来表示动态变化的界面元素,则在不同终端中或终端处于不同位置时,确定出的动态变化的界面元素的第一标识不完全相同,无法唯一表征UI中的界面元素。又由于通常动态变化的界面元素在UI中是唯一的,例如:UI中的定位地址、横幅bannar位展示的图像等。其对应的元素类型也是唯一的,且不会随着动态变化发生改变,因此在本说明书中可将UI中动态变化的界面元素作为指定界面元素,在根据元素识别模型的输出结果确定界面元素的第一标识之前,还需针对每个界面元素,判断该界面元素是否为指定界面元素,若是,则将该界面元素的元素类型作为该界面元素的第一标识,否则,将该界面元素的元素内容以及元素类型作为界面元素的第一标识。
在图3所示的UI设计图中,指定界面元素有“定位”、“搜索”以及“横幅bannar位”等,则指定界面元素的第一标识仅包含界面元素的元素类型,即界面元素“定位”的第一标识为该界面元素的元素类型定位,界面元素“搜索”的第一标识为该界面元素的元素类型搜索,界面元素“横幅bannar位”的第一标识为该界面元素的元素类型横幅bannar位。对于该UI设计图中的其他非指定界面元素来说,则该非指定界面元素的第一标识包含界面元素的元素类型以及元素内容。如图3中,打车图标对应的界面元素的元素类型为金刚区,元素内容为打车,则可确定该界面元素的第一标识为“金刚区-打车”。餐厅图像对应的界面元素的元素类型为瓷片区,元素内容为XX餐厅,则可确定该界面元素的第一标识为“瓷片区-XX餐厅”。首页图标对应的界面元素的元素类型为底栏,元素内容为首页,则可确定该界面元素的第一标识为“底栏-首页”。
当然,对于UI中可唯一以元素类型标识的界面元素,也可将其作为指定界面元素,例如,图3中的界面元素“为你推荐”以及“更多>”等。在本说明书中指定界面元素可由测试人员根据需要设置,本说明书对此不做限制。
S106:所述第一终端通过与所述第二终端的通信连接,获取所述第二终端中运行的所述待测试的应用当前展示的用户界面,并确定所述当前展示的用户界面的图像。
在本说明书实施例中,通过步骤S104的描述可确定,该测试事件包含的第一标识,是将包含界面元素的UI设计图输入元素识别模型后,元素识别模型输出的界面元素的元素标识,因此在进行UI测试时,要想根据第一标识确定测试事件是对UI中哪个界面元素执行,需要确定当前展示的UI中各界面元素的图像,以通过相同的方法将该当前展示的UI的图像输入同一元素识别模型中确定元素标识。于是,可以先获取待测试的应用当前展示的UI的图像。
具体的,当测试平台与待测试的应用建立通信连接后,如图2所示,该第一终端可根据与该第二终端的通信连接,获取该第二终端中运行的待测试的应用当前展示的UI,并确定当前展示的UI的图像,以通过后续对该图像进行处理,确定该图像对应的UI中的各界面元素的元素标识。
S108:所述第一终端将所述图像输入预先训练的元素识别模型,确定所述元素识别模型输出的用户界面中各界面元素的识别结果。
S110:所述第一终端根据所述识别结果,确定所述用户界面中各界面元素的元素标识,作为第二标识,以及根据所述识别结果确定所述用户界面中各界面元素的坐标。
在本说明书实时例中,由于步骤S104确定出的第一标识是通过将UI设计图输入元素识别模型中确定的,因此在确定测试事件需要对UI中哪个界面元素执行时,也可将待测试的应用当前展示的UI的图像输入同样的元素识别模型,确定该UI中各界面元素的第二标识,以便后续步骤进行元素标识的匹配。
具体的,该第一终端可先将获取到的当前展示的UI的图像作为输入,输入预先训练的元素识别模型的语义分割分支模型中,确定该UI中各界面元素的元素区域以及各界面元素的元素类型。
之后确定各界面元素的元素区域的图像。
然后将确定出的各界面元素的元素区域的图像分别输入预先训练的元素识别模型的OCR分支模型中,确定各界面元素的元素区域中的文本内容作为各界面元素的元素内容。并且,由于后续需要对UI中界面元素所在位置进行操作,因此还需确定该UI中各界面元素的元素区域中心位置作为界面元素在UI中的位置。
最后根据该界面元素的元素区域中心位置、各界面元素的元素类型以及各元素区域的元素内容,确定该UI的图像的识别结果。
进一步地,由于在步骤S104中确定界面元素的第一标识时,对于UI界面中的指定界面元素,其第一标识中仅包含元素类型,因此在确定UI界面中各界面元素的第二标识时,也需对应地确定UI界面中指定界面元素的第二标识中仅包含元素类型,以便后续进行元素标识的匹配。因此在本说明书中,在确定出该元素识别模型的识别结果后,针对该UI中的每个界面元素,还需判断该界面元素是否为指定界面元素,若是,则将识别结果中该界面元素的元素类型作为该界面元素的第二标识,否则,将识别结果中该界面元素的元素内容以及元素类型作为界面元素的第二标识。
更进一步地,根据该识别结果,还需将界面元素的元素区域中心位置的坐标作为界面元素的坐标,以当后续对该测试事件针对的界面元素执行操作时,可在该UI中对该界面元素的坐标所在位置执行操作。
S112:所述第一终端将所述第一标识与各第二标识进行匹配,从各第二标识中确定与所述第一标识匹配的第二标识,确定所述匹配的第二标识对应的界面元素。
在本说明书实施例中,当确定出测试脚本中该测试事件针对的界面元素的第一标识,以及当前展示的UI中各界面元素的第二标识后,便可进行元素标识的匹配,以确定该测试事件需要对该UI中的哪个界面元素执行。
具体的,该第一终端可先将该第一标识中的元素类型与各第二标识中的元素类型分别进行匹配,从各第二标识中确定与该第一标识的元素类型匹配的各第二标识,之后再将该第一标识中的元素内容与匹配得到的各第二标识的元素内容分别进行匹配,从匹配得到的各第二标识中确定与该第一标识的元素内容匹配的第二标识,并确定该第二标识对应的界面元素。
当然,也可先进行元素内容的匹配再进行元素类型的匹配,本说明书匹配的先后顺序不做限制,具体可根据需要设置。
S114:所述第一终端根据确定出的各界面元素的坐标,确定匹配得到的界面元素的坐标,并根据确定出的坐标执行所述测试事件,以根据所述测试事件的执行结果确定测试结果。
当通过上述步骤S112确定出匹配得到的界面元素后,可对该UI中匹配得到的界面元素进行操作,并确定测试结果。
具体的,首先,该第一终端可根据步骤S110确定出的各界面元素的坐标,确定匹配得到的界面元素的坐标,在当前展示的UI中该坐标所在的位置,执行对应该测试事件的操作,例如:针对测试脚本中“点击图标_美食”这一测试事件,测试平台匹配到元素标识为“图标_美食”的界面元素在该UI中的坐标为“256,738”,则可对该UI中坐标为“256,738”的位置执行点击操作。
之后,该第一终端可确定在该UI中对应坐标位置,执行对应该测试事件的操作后的待测UI,并判断该待测UI与该测试用例中预期结果包含的执行该测试事件后,应用展示的标准UI是否相同,若该待测UI与该标准UI相同,则说明该应用中实现该测试用例中业务逻辑的UI不存在错误。若该待测UI与该标准UI不同,则说明实现该测试用例中业务逻辑的UI中存在错误,测试平台可在平台界面中展示错误信息,以提示测试人员根据测试结果进行应用完善。
目前,通常基于元素属性匹配的方法,确定该测试事件针对的是UI中的哪个界面元素执行。具体的,在运行测试脚本执行该测试事件时,测试平台可将该测试事件针对的界面元素的元素属性与该UI中的各界面元素的元素属性,进行元素属性的匹配,确定匹配到的界面元素,并在UI中对确定出的界面元素执行对应该测试事件的操作。其中,界面元素的元素属性是在应用开发时对UI中各界面元素设置的属性,例如:元素路径等。
但是,基于元素属性进行元素定位时,若后续开发过程中对UI布局进行更改,则会导致UI中界面元素的元素属性发生改变,则再基于元素属性匹配的方法进行元素定位时,则需要对应更改测试脚本中界面元素的元素属性,测试人员工作量较大。
为避免应用的UI布局改变,导致元素属性改变,测试脚本不可用的问题。因此在本说明实施例中,通过对UI的图像进行图像识别的方法,确定该UI中各界面元素的元素标识,进而通过元素标识匹配的方法,确定该测试事件是对UI中的哪个界面元素执行操作。通过图像识别的方法,当应用的UI布局发生改变,但界面元素仍存在于该UI中,且界面元素在UI中显示的图像未发生改变时,则通过对界面元素的图像进行图像识别确定出的界面元素的元素标识不会发生改变,因此通过元素标识匹配的方法,仍可确定该测试事件针对的UI中的哪个界面元素。
基于图1所示的UI测试方法,在进行UI测试时,第一终端可先建立自身安装的测试平台与第二终端安装的待测试的应用的通信连接,并根据监测到的用户操作,获取用于UI测试的测试用例,之后在运行该测试用例中的测试脚本时,根据该测试脚本中的测试事件,确定该测试事件针对的界面元素的第一标识,并获取待测试的应用当前展示的UI的图像,以通过预先训练的元素识别模型,确定该UI中各界面元素的第二标识以及各界面元素的坐标,该第一标识与该第二标识均包含元素类型以及元素内容。然后通过匹配该第一标识与各第二标识,确定与该第一标识匹配的第二标识对应的界面元素,最后在UI中该匹配得到的界面元素的坐标的位置,执行对应该测试事件的操作,并根据执行结果确定测试结果。通过图像识别的方法确定UI中的各界面元素的元素标识,并通过元素标识匹配的方法进行元素定位,避免了由于UI布局更改,导致元素属性发生变化进而产生的测试出错,极大提高了测试用例的适用性。
此外,在本说明书实施例中,当测试脚本中包含多个测试事件时,安装测试平台的终端可依次针对该测试脚本中的每个测试事件,确定该测试事件针对的界面元素的元素标识,作为第一标识。
之后由于执行测试事件可能会导致UI发生变化,例如:用户点击第一界面中的A界面元素,应用跳转至第二界面。而当UI发生变化时,UI中包含的各界面元素也可能产生变化,因此需要重新确定待测试的应用当前展示的UI中包含的各界面元素的元素标识,使后续测试事件可以正常执行,因此该终端还需判断当前展示的UI与执行上一测试事件时展示的UI是否相同。
若当前展示的UI与执行上一测试事件时展示的UI相同,则说明当前UI未发生改变,因此可直接根据已经得到的各界面元素的第二标识,将该第一标识与已经得到的各界面元素的各第二标识进行匹配。
若当前展示的UI与执行上一测试事件时展示的UI不相同,则说明当前UI发生改变,UI中包含的各界面元素也可能改变,因此需要重新获取该应用当前展示的UI的图像,并将重新确定的图像输入预先训练的元素识别模型,重新确定该UI中各界面元素的识别结果,重新确定该UI中各界面元素的各第二标识,以根据该第一标识与重新确定出的各第二标识进行匹配。
例如:假设测试用例中的业务逻辑为对“美食”点击后,进行界面跳转,在跳转后的界面中输入“麻辣烫”进行搜索。该测试用例的测试脚本中包含的多个测试事件分别为:
点击 图标_美食
输入 文本_麻辣烫
可分别确定各测试事件有:点击事件以及输入事件,各测试事件针对的界面元素的第一标识分别为:“图标_美食”以及“文本_麻辣烫”,其中,“图标”“文本”为界面元素的元素类型,“美食”“麻辣烫”为界面元素的元素内容。
则在运行测试脚本时,针对点击事件,可先确定该点击事件针对的界面元素的第一标识为“图标_美食”,之后将图4所示的左图输入预先训练的元素识别模型中,可确定各界面元素的第二标识:“图标_美食”以及“控件_滚动条”,以及各界面元素的坐标,再之后将该第一标识与各第二标识进行匹配,可确定匹配得到的界面元素,则可对该匹配得到的界面元素的坐标的位置进行点击。
之后执行输入事件时,可先确定该输入事件针对的界面元素的第一标识为“文本_麻辣烫”,由于当前展示的UI与执行点击事件时展示的UI不同,因此需要重新将图4所示的右图输入预先训练的元素识别模型中,可确定各界面元素的第二标识:“文本_麻辣烫”、“图标_搜索”以及“控件_滚动条”,以及各界面元素的坐标,再之后将该第一标识与各第二标识进行匹配,可确定匹配得到的界面元素,则在该匹配得到的界面元素的坐标的位置输入“麻辣烫”。
更进一步地,当同一UI中存在相同的界面元素时,为了唯一标识UI中各相同的界面元素,通常在编写测试脚本时,会在各相同的界面元素的元素标识中添加一个次序标识,可按照该相同的界面元素在各相同界面元素中从上到下、从左到右的规则的展示次序,确定该相同的界面元素的次序标识。例如:图5为手机中待测试的应用展示的UI,该待测试的应用为下载手机壁纸的应用,该UI中各正方形表示各不同的手机壁纸图像,当用户点击对应的下载按键时,可下载对应的手机壁纸。当对该待测试的应用当前展示的UI进行测试时,由于该UI中包含4个相同的“下载”按键,因此可按照各“下载”按键的展示次序,依次确定各“下载”按键的次序标识,并添加至各“下载”按键的元素标识中,因此可确定各“下载”按键的元素标识依次为:按键_下载1、按键_下载2、按键_下载3以及按键_下载4。
因此在本说明书步骤S110中确定当前展示的UI中各界面元素的第二标识时,若当前展示的UI中存在多个相同的界面元素,为了能通过元素标识匹配进行唯一定位该界面元素。在本说明书实时例中,可针对该当前展示的UI中的每个相同的界面元素,根据该相同的界面元素的坐标,按照从上到下、从左到右的规则确定该界面元素在UI中的展示次序,之后根据确定出的各相同的界面元素的展示次序,重新确定各相同的界面元素的元素标识,作为第二标识。其中,相同的界面元素指:元素类型以及元素内容均相同的界面元素。
此外,在本说明书中,该UI测试方法可由第一终端执行,则对应在该终端中安装有进行图像处理的工具,以执行上述步骤S106-步骤S110。或者也可由该第一终端外连一进行图像处理的服务器,则上述步骤S106-步骤S110可由该外连服务器执行。当然,该UI测试方法也可由测试平台的服务器执行,则可通过个人电脑显示该测试平台的界面,进而与待测试的应用进行通信连接。当该测试平台的服务器为分布式服务器时,则可由运行测试脚本的第一服务器执行上述步骤S100-步骤S104,可由进行图像处理的第二服务器执行上述步骤S106-步骤S110,之后该第一服务器和第二服务器可将分别确定出的第一标识以及各第二标识发送至执行匹配以及对应测试事件操作的第三服务器,以使该第三服务器可执行上述步骤S112-步骤S114。
基于图1所示的UI测试方法中的测试平台具体可以采用Appium、Macaca等测试平台,该测试脚本也可采用不同的程序编写语言实现,本说明书对此不做限制,可根据需要设置。其中,由于本说明书提供的UI测试方法,通过元素标识匹配的方法进行元素定位。根据UI以及预先训练的元素识别模型,确定出的UI中各界面元素的第二标识,该第二标识是以自然语言表示的元素类型以及元素内容中的至少一种。因此基于本说明书提供的UI测试方法编写测试脚本时,为方便测试人员进行编写与维护,可采用自然语言编写测试脚本,则在确定测试脚本中测试事件针对的界面元素的元素标识时,确定出的第一标识也用自然语言表示,方便后续进行第一标识与第二标识的匹配。
在本说明书步骤S104以及步骤S108中使用的元素识别模型可采用以下方法分别对语义分割分支模型以及光学字符识别分支模型进行训练:
具体的,首先获取若干已标注的UI的图像,作为第一训练图像,该标注信息包括:UI的图像中的各界面元素的元素区域、元素区域的中心位置以及各界面元素的元素类型,之后针对每个第一训练图像,将该第一训练图像输入待训练的语义分割分支模型,确定该待训练的语义分割分支模型输出的训练结果,该训练结果包括:界面元素的元素类型、元素区域的图像以及元素区域的中心位置,以最小化该训练结果与标注信息的差异为优化目标,调整该语义分割分支模型中的模型参数。
之后确定通过训练完成的语义分割分支模型输出的各元素区域的图像,并对各元素区域进行元素内容标注,该元素内容标注为该元素区域中包含的文字内容。将已进行文字标注的各元素区域的图像作为第二训练图像,输入待训练的OCR分支模型中,并确定该OCR分支模型输出的识别内容,以最小化该识别内容与标注的元素内容的差异为优化目标,调整该OCR分支模型中的模型参数。
另外,在本说明书步骤S104以及步骤S108中,在通过预先训练的元素识别模型分别确定指定界面元素的第一标识以及第二标识时,无需确定指定界面元素的元素内容。因此在步骤S104中,可将该待测试的应用的UI设计图输入预先训练的元素识别模型的语义分割分支模型中,确定该UI设计图对应的UI中各界面元素的元素区域以及各界面元素的元素类型后,针对该UI设计图中的每个界面元素,判断该界面元素是否为指定界面元素,若是,则直接输出该界面元素的元素区域以及元素类型,不再进行元素内容的识别。若否,则确定该界面元素的元素区域的图像,并将该图像输入预先训练的元素识别模型的OCR分支模型中,确定该界面元素的元素区域中的文本内容作为该界面元素的元素内容。则在确定第一标识时,各界面元素中指定界面元素的第一标识为界面元素的元素类型,各界面元素中非指定界面元素的第一标识为界面元素的元素类型以及元素内容。
同理,在本说明书步骤S108中,该第一终端也可先将获取到的当前展示的UI的图像作为输入,输入预先训练的元素识别模型的语义分割分支模型中,确定该UI中各界面元素的元素区域以及各界面元素的元素类型,之后针对该UI中的每个界面元素,判断该界面元素是否为指定界面元素,若是,则直接输出该界面元素的元素区域以及元素类型,不再进行元素内容的识别。若否,则确定该界面元素的元素区域的图像,并将该图像输入预先训练的元素识别模型的OCR分支模型中,确定该界面元素的元素区域中的文本内容作为该界面元素的元素内容。则在确定第二标识时,各界面元素中指定界面元素的第二标识为界面元素的元素类型,各界面元素中非指定界面元素的第二标识为界面元素的元素类型以及元素内容。
当然,在本说明书步骤S104中,也可由测试人员人为确定各界面元素的元素类型以及元素内容,以根据该元素类型以及元素内容确定各界面元素的第一标识。
目前,还存在另一种基于图像匹配的方式进行元素定位。具体的,安装测试平台的终端可录制测试人员执行该测试用例包含的业务流程的操作,并在测试人员每次对UI操作时,对距离操作位置最近的界面元素进行截图,生成包含界面元素截图的测试脚本。在运行测试脚本时,对测试脚本中包含的截图与UI进行图像局部匹配,确定UI中与该截图匹配的局部区域,再将该局部区域的中心位置,作为需要模拟用户操作的操作位置,并对确定出的操作位置模拟执行对应的用户操作。
但是由于不同终端上UI显示的分辨率、尺寸都有可能不同,导致测试脚本中的截图与实际参与测试UI中界面元素的图像存在差异,使得在运行测试脚本时确定出的操作位置容易出现偏差,导致测试结果置信度低。
但基于本说明书提供的UI测试方法,当该UI处于不同的终端中时,通过实时对终端中的UI的图像进行识别,以确定该UI中各界面元素的元素标识以及坐标,避免了由于不同终端分辨率、尺寸的差异,导致确定出的坐标存在误差,进而在运行测试脚本时的操作位置不准确,产生测试出错的问题。
进一步地,基于本说明书提供的UI测试方法,由于不同终端的屏幕显示比例以及分辨率等存在差异,导致同一页面在不同终端中展示时,常展示为不同的版式,且各终端中展示的UI中的内容不同。若测试人员编写测试脚本时,确定第一标识所使用的UI设计图或终端中待测试的应用的UI的图像,与进行UI测试时的终端的UI的图像尺寸不一致,即,确定第一标识的UI的图像与确定第二标识的UI的图像中包含的内容不完全相同,则在匹配第一标识与各第二标识时,若未确定出相匹配的第二标识,则可执行一固定操作,例如:滑动、缩放等操作。之后再重新确定各界面元素的第二标识,并与第一标识进行匹配。
如图6所示,假设针对该待测试的应用中某一长页面进行UI测试,该长页面分别在平板电脑和手机中显示为“界面1”“界面2”两个不同的样式。图6左侧为生成测试用例时,平板电脑中展示的UI,该平板电脑UI中展示有对应“界面1”虚线部分的页面内容,该测试用例中执行测试事件的操作对象为平板电脑中展示的UI中的界面元素M,可根据该平板电脑展示的UI的图像,确定该界面元素M的第一标识。图6中间为进行UI测试时,手机展示的UI,该手机UI中展示有对应“界面2”虚线部分的页面内容,由于手机与平板电脑的显示比例、分辨率存在差异,各终端中UI显示的页面内容也不完全相同,界面元素M并未完全展示在该手机当前的UI中,因此根据中间手机展示的UI的图像,进行界面元素的识别,难以准确的确定界面元素M的元素标识(即,与第一标识匹配的第二标识),导致后续进行标识匹配时,难以确定与第一标识匹配的第二标识,也就是无法在中间手机展示的UI中确定界面元素的坐标。于是安装测试平台的终端可在确定不存在与第一标识匹配的第二标识时,先对手机UI执行向上滑动的固定操作,如图6右侧所示,上滑之后手机UI中展示有界面元素M,因此可再重新确定上滑后手机UI中各界面元素的第二标识,并与界面元素M的第一标识进行匹配,以确定对该手机UI中哪个界面元素执行该测试用例中的测试事件。
基于图1所示的用户界面测试方法,本说明书实施例还对应提供一种用户界面测试装置的结构示意图,如图7所示。
图7为本说明书实施例提供的一种用户界面测试装置的结构示意图,所述装置包括:
通信连接模块200,建立自身安装的测试平台与第二终端中安装的待测试的应用的通信连接;
测试用例获取模块202,根据监测到的用户对所述测试平台的操作,从已存储的各测试用例中,获取用于用户界面测试的测试用例,所述测试用例中包含测试脚本;
元素标识确定模块204,通过运行获取的测试脚本中的测试事件,确定所述测试事件针对的界面元素的元素标识,作为第一标识;
图像获取模块206,通过与所述第二终端的通信连接,获取所述第二终端中运行的所述待测试的应用当前展示的用户界面,并确定所述当前展示的用户界面的图像;
识别结果确定模块208,将所述图像输入预先训练的元素识别模型,确定元素识别模型输出的用户界面中各界面元素的识别结果,所述界面元素的识别结果包含界面元素的元素区域中心位置、界面元素的元素类型以及界面元素的元素内容;
第二标识确定模块210,根据所述识别结果,确定所述用户界面中各界面元素的元素标识,作为第二标识,以及根据所述识别结果确定所述用户界面中各界面元素的坐标,所述元素标识至少包括元素类型以及元素内容中的一种;
匹配模块212,将所述第一标识与各第二标识进行匹配,从各第二标识中确定与所述第一标识匹配的第二标识,确定所述匹配的第二标识对应的界面元素;
执行模块214,根据确定出的各界面元素的坐标,确定匹配得到的界面元素的坐标,并根据确定出的坐标执行所述测试事件,以根据所述测试事件的执行结果确定测试结果。
可选地,所述用户界面测试装置还包括多事件模块216,所述多事件模块216具体用于,当所述测试脚本中包含多个测试事件时,依次针对所述测试脚本中的每个测试事件,确定该测试事件针对的界面元素的元素标识,作为第一标识,判断当前展示的用户界面与执行上一测试事件时展示的用户界面是否相同,若是,则确定已经得到的各界面元素的第二标识,以进行所述第一标识与各第二标识的匹配,若否,则重新获取所述应用当前展示的用户界面的图像,并将所述图像输入预先训练的元素识别模型,重新确定所述元素识别模型输出的用户界面中各界面元素的识别结果,重新确定所述用户界面中各界面元素的各第二标识,以根据所述第一标识与重新确定出的各第二标识进行匹配。
可选地,所述预先训练的元素识别模型至少包括:语义分割分支模型以及光学字符识别分支模型,所述识别结果确定模块208具体用于,所述第一终端将所述图像输入所述语义分割分支模型中,确定所述语义分割分支模型输出的用户界面中各界面元素的元素区域以及各界面元素的元素类型,将确定出的所述用户界面中各界面元素的元素区域的图像输入所述光学字符识别分支模型中,确定所述光学字符识别分支模型输出的用户界面中各界面元素的元素内容,根据所述图像中各界面元素的元素区域中心位置、各界面元素的元素类型以及各界面元素的元素内容,确定识别结果。
可选地,所述识别结果确定模块208具体用于,针对所述用户界面中每个界面元素,根据所述识别结果中该界面元素的元素区域中心位置,确定所述中心位置在所述用户界面中的坐标,作为该界面元素的坐标。
可选地,所述匹配模块212具体用于,所述第一终端将所述第一标识中的元素类型与各第二标识中的元素类型进行匹配,从各第二标识中确定与所述第一标识的元素类型匹配的各第二标识,将所述第一标识中的元素内容与匹配得到的各第二标识的元素内容进行匹配,从匹配得到的各第二标识中确定与所述第一标识的元素内容匹配的第二标识,确定所述匹配的第二标识对应的界面元素。
可选地,所述元素标识确定模块204以及所述匹配模块212还用于,当所述当前展示的用户界面中存在多个相同的界面元素时,针对所述当前展示的用户界面中的每个相同的界面元素,根据所述相同的界面元素的坐标,确定该界面元素在所述用户界面中的展示次序,根据确定出的各相同的界面元素的展示次序,重新确定各相同的界面元素的元素标识,其中,元素类型以及元素内容均相同的界面元素为相同的界面元素。
可选地,所述测试用例还包含执行所述测试事件后,所述应用展示的标准用户界面,所述执行模块214具体用于,根据确定出的坐标,在所述当前展示的用户界面中确定对应所述坐标的位置,并在确定出的坐标的位置执行对应所述测试事件的操作,确定执行对应所述测试事件的操作后的待测用户界面,当所述待测用户界面与所述标准用户界面不同时,确定所述用户界面存在错误,并展示错误信息。
可选地,所述元素标识确定模块204具体用于,确定所述测试事件针对的界面元素所在的用户界面,将所述用户界面的图像输入预先训练的元素识别模型,确定所述用户界面中各界面元素的识别结果,并根据所述识别结果,确定所述用户界面中各界面元素的元素标识,从所述用户界面中各界面元素的元素标识中确定所述测试事件针对的界面元素的元素标识,作为第一标识。
本说明书实施例还提供了一种计算机可读存储介质,该存储介质存储有计算机程序,计算机程序可用于执行上述图1提供的用户界面测试方法。
基于图1所示的用户界面测试方法,本说明书实施例还提出了图8所示的电子设备的示意结构图。如图8,在硬件层面,该电子设备包括处理器、内部总线、网络接口、内存以及非易失性存储器,当然还可能包括其他业务所需要的硬件。处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,以实现上述图1所示的用户界面测试方法。
当然,除了软件实现方式之外,本说明书并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本说明书时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本说明书的实施例可提供为方法、系统或计算机程序产品。因此,本说明书可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本说明书可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本说明书的实施例而已,并不用于限制本说明书。对于本领域技术人员来说,本说明书可以有各种更改和变化。凡在本说明书的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本说明书的权利要求范围之内。
Claims (11)
1.一种用户界面测试方法,其特征在于,包括:
第一终端建立自身安装的测试平台与第二终端中安装的待测试的应用的通信连接;
所述第一终端根据监测到的用户对所述测试平台的操作,从已存储的各测试用例中,获取用于用户界面测试的测试用例,所述测试用例中包含测试脚本;
所述第一终端通过运行获取的测试脚本中的测试事件,确定所述测试事件针对的界面元素的元素标识,作为第一标识;
所述第一终端通过与所述第二终端的通信连接,获取所述第二终端中运行的所述待测试的应用当前展示的用户界面,并确定所述当前展示的用户界面的图像;
所述第一终端将所述图像输入预先训练的元素识别模型,确定所述元素识别模型输出的用户界面中各界面元素的识别结果,所述界面元素的识别结果包含界面元素的元素区域中心位置、界面元素的元素类型以及界面元素的元素内容;
所述第一终端根据所述识别结果,确定所述用户界面中各界面元素的元素标识,作为第二标识,以及根据所述识别结果确定所述用户界面中各界面元素的坐标,所述元素标识至少包括元素类型以及元素内容中的一种;
所述第一终端将所述第一标识与各第二标识进行匹配,从各第二标识中确定与所述第一标识匹配的第二标识,确定所述匹配的第二标识对应的界面元素;
所述第一终端根据确定出的各界面元素的坐标,确定匹配得到的界面元素的坐标,并根据确定出的坐标执行所述测试事件,以根据所述测试事件的执行结果确定测试结果。
2.如权利要求1所述的方法,其特征在于,所述方法还包括:
当所述测试脚本中包含多个测试事件时,依次针对所述测试脚本中的每个测试事件,确定该测试事件针对的界面元素的元素标识,作为第一标识;
判断当前展示的用户界面与执行上一测试事件时展示的用户界面是否相同;
若是,则确定已经得到的各界面元素的第二标识,以进行所述第一标识与各第二标识的匹配;
若否,则重新获取所述应用当前展示的用户界面的图像,并将所述图像输入预先训练的元素识别模型,重新确定所述元素识别模型输出的用户界面中各界面元素的识别结果,重新确定所述用户界面中各界面元素的各第二标识,以根据所述第一标识与重新确定出的各第二标识进行匹配。
3.如权利要求1所述的方法,其特征在于,所述预先训练的元素识别模型至少包括:语义分割分支模型以及光学字符识别分支模型;
所述第一终端将所述图像输入预先训练的元素识别模型,确定所述元素识别模型输出的用户界面中各界面元素的识别结果,具体包括:
所述第一终端将所述图像输入所述语义分割分支模型中,确定所述语义分割分支模型输出的用户界面中各界面元素的元素区域以及各界面元素的元素类型;
将确定出的所述用户界面中各界面元素的元素区域的图像输入所述光学字符识别分支模型中,确定所述光学字符识别分支模型输出的用户界面中各界面元素的元素内容;
根据所述图像中各界面元素的元素区域中心位置、各界面元素的元素类型以及各界面元素的元素内容,确定识别结果。
4.如权利要求3所述的方法,其特征在于,根据所述识别结果确定所述用户界面中各界面元素的坐标,具体包括:
针对所述用户界面中每个界面元素,根据所述识别结果中该界面元素的元素区域中心位置,确定所述中心位置在所述用户界面中的坐标,作为该界面元素的坐标。
5.如权利要求1所述的方法,其特征在于,所述第一终端将所述第一标识与各第二标识进行匹配,从各第二标识中确定与所述第一标识匹配的第二标识,确定所述匹配的第二标识对应的界面元素,具体包括:
所述第一终端将所述第一标识中的元素类型与各第二标识中的元素类型进行匹配,从各第二标识中确定与所述第一标识的元素类型匹配的各第二标识;
将所述第一标识中的元素内容与匹配得到的各第二标识的元素内容进行匹配,从匹配得到的各第二标识中确定与所述第一标识的元素内容匹配的第二标识,确定所述匹配的第二标识对应的界面元素。
6.如权利要求1所述的方法,其特征在于,所述方法还包括:
当所述当前展示的用户界面中存在多个相同的界面元素时,针对所述当前展示的用户界面中的每个相同的界面元素,根据所述相同的界面元素的坐标,确定该界面元素在所述用户界面中的展示次序;
根据确定出的各相同的界面元素的展示次序,重新确定各相同的界面元素的元素标识;
其中,元素类型以及元素内容均相同的界面元素为相同的界面元素。
7.如权利要求1所述的方法,其特征在于,所述测试用例还包含执行所述测试事件后,所述应用展示的标准用户界面;
根据确定出的坐标执行所述测试事件,以根据所述测试事件的执行结果确定测试结果,具体包括:
根据确定出的坐标,在所述当前展示的用户界面中确定对应所述坐标的位置,并在确定出的坐标的位置执行对应所述测试事件的操作;
确定执行对应所述测试事件的操作后的待测用户界面;
当所述待测用户界面与所述标准用户界面不同时,确定所述用户界面存在错误,并展示错误信息。
8.如权利要求1所述的方法,其特征在于,第一标识采用以下方法确定:
确定所述测试事件针对的界面元素所在的用户界面;
将所述用户界面的图像输入预先训练的元素识别模型,确定所述用户界面中各界面元素的识别结果,并根据所述识别结果,确定所述用户界面中各界面元素的元素标识;
从所述用户界面中各界面元素的元素标识中确定所述测试事件针对的界面元素的元素标识,作为第一标识。
9.一种用户界面测试装置,其特征在于,包括:
通信连接模块,建立自身安装的测试平台与第二终端中安装的待测试的应用的通信连接;
测试用例获取模块,根据监测到的用户对所述测试平台的操作,从已存储的各测试用例中,获取用于用户界面测试的测试用例,所述测试用例中包含测试脚本;
元素标识确定模块,通过运行获取的测试脚本中的测试事件,确定所述测试事件针对的界面元素的元素标识,作为第一标识;
图像获取模块,通过与所述第二终端的通信连接,获取所述第二终端中运行的所述待测试的应用当前展示的用户界面,并确定所述当前展示的用户界面的图像;
识别结果确定模块,将所述图像输入预先训练的元素识别模型,确定所述元素识别模型输出的用户界面中各界面元素的识别结果,所述界面元素的识别结果包含界面元素的元素区域中心位置、界面元素的元素类型以及界面元素的元素内容;
第二标识确定模块,根据所述识别结果,确定所述用户界面中各界面元素的元素标识,作为第二标识,以及根据所述识别结果确定所述用户界面中各界面元素的坐标,所述元素标识至少包括元素类型以及元素内容中的一种;
匹配模块,将所述第一标识与各第二标识进行匹配,从各第二标识中确定与所述第一标识匹配的第二标识,确定所述匹配的第二标识对应的界面元素;
执行模块,根据确定出的各界面元素的坐标,确定匹配得到的界面元素的坐标,并根据确定出的坐标执行所述测试事件,以根据所述测试事件的执行结果确定测试结果。
10.一种计算机可读存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述权利要求1-8任一所述的方法。
11.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现上述权利要求1-8任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010646102.6A CN111881019B (zh) | 2020-07-07 | 2020-07-07 | 一种用户界面测试方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010646102.6A CN111881019B (zh) | 2020-07-07 | 2020-07-07 | 一种用户界面测试方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111881019A true CN111881019A (zh) | 2020-11-03 |
CN111881019B CN111881019B (zh) | 2024-03-01 |
Family
ID=73150366
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010646102.6A Active CN111881019B (zh) | 2020-07-07 | 2020-07-07 | 一种用户界面测试方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111881019B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112383661A (zh) * | 2020-11-20 | 2021-02-19 | 北京达佳互联信息技术有限公司 | 移动端自动化测试方法、装置、电子设备及存储介质 |
CN112433942A (zh) * | 2020-11-24 | 2021-03-02 | 北京云测信息技术有限公司 | 基于人工智能模型的软件自动化测试方法、装置和系统 |
CN112835667A (zh) * | 2021-02-04 | 2021-05-25 | 深圳市广和通无线股份有限公司 | 一种界面元素定位方法、设备及存储介质 |
CN113254338A (zh) * | 2021-05-25 | 2021-08-13 | 深圳前海微众银行股份有限公司 | 测试用例生成方法、装置及设备 |
CN113377671A (zh) * | 2021-06-29 | 2021-09-10 | 山东派盟网络科技有限公司 | 一种群控方法、装置以及设备 |
CN113821453A (zh) * | 2021-11-25 | 2021-12-21 | 深圳市明源云链互联网科技有限公司 | 用户界面测试方法、装置、终端及计算机可读存储介质 |
CN114942890A (zh) * | 2022-07-13 | 2022-08-26 | 杭州安恒信息技术股份有限公司 | 一种用户界面测试方法、装置、设备及介质 |
CN115982018A (zh) * | 2022-12-21 | 2023-04-18 | 北京水木羽林科技有限公司 | 一种基于ocr的ui测试方法、系统、计算机设备和存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110008110A (zh) * | 2019-01-28 | 2019-07-12 | 阿里巴巴集团控股有限公司 | 用户界面的测试方法及装置 |
CN110297758A (zh) * | 2019-05-20 | 2019-10-01 | 深圳壹账通智能科技有限公司 | 用户界面自动化测试方法、装置及计算机可读存储介质 |
US20200117577A1 (en) * | 2018-10-15 | 2020-04-16 | Sap Se | Scalable ai framework for test automation |
-
2020
- 2020-07-07 CN CN202010646102.6A patent/CN111881019B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200117577A1 (en) * | 2018-10-15 | 2020-04-16 | Sap Se | Scalable ai framework for test automation |
CN110008110A (zh) * | 2019-01-28 | 2019-07-12 | 阿里巴巴集团控股有限公司 | 用户界面的测试方法及装置 |
CN110297758A (zh) * | 2019-05-20 | 2019-10-01 | 深圳壹账通智能科技有限公司 | 用户界面自动化测试方法、装置及计算机可读存储介质 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112383661A (zh) * | 2020-11-20 | 2021-02-19 | 北京达佳互联信息技术有限公司 | 移动端自动化测试方法、装置、电子设备及存储介质 |
CN112433942A (zh) * | 2020-11-24 | 2021-03-02 | 北京云测信息技术有限公司 | 基于人工智能模型的软件自动化测试方法、装置和系统 |
CN112835667A (zh) * | 2021-02-04 | 2021-05-25 | 深圳市广和通无线股份有限公司 | 一种界面元素定位方法、设备及存储介质 |
CN113254338A (zh) * | 2021-05-25 | 2021-08-13 | 深圳前海微众银行股份有限公司 | 测试用例生成方法、装置及设备 |
CN113377671A (zh) * | 2021-06-29 | 2021-09-10 | 山东派盟网络科技有限公司 | 一种群控方法、装置以及设备 |
CN113821453A (zh) * | 2021-11-25 | 2021-12-21 | 深圳市明源云链互联网科技有限公司 | 用户界面测试方法、装置、终端及计算机可读存储介质 |
CN114942890A (zh) * | 2022-07-13 | 2022-08-26 | 杭州安恒信息技术股份有限公司 | 一种用户界面测试方法、装置、设备及介质 |
CN114942890B (zh) * | 2022-07-13 | 2024-05-07 | 杭州安恒信息技术股份有限公司 | 一种用户界面测试方法、装置、设备及介质 |
CN115982018A (zh) * | 2022-12-21 | 2023-04-18 | 北京水木羽林科技有限公司 | 一种基于ocr的ui测试方法、系统、计算机设备和存储介质 |
CN115982018B (zh) * | 2022-12-21 | 2024-03-29 | 北京水木羽林科技有限公司 | 一种基于ocr的ui测试方法、系统、计算机设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111881019B (zh) | 2024-03-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111881019B (zh) | 一种用户界面测试方法及装置 | |
US9983892B2 (en) | Deep linking to mobile application states through programmatic replay of user interface events | |
CN107679113B (zh) | 轻应用的获取方法、设备及电子设备 | |
CN104572042A (zh) | 移动终端设备的跨平台中间件装置及其实现方法 | |
US10747510B1 (en) | Application runtime modification | |
CN107832052B (zh) | 展示预览页面的方法、装置和存储介质以及电子设备 | |
KR20140061002A (ko) | 모바일 어플리케이션을 통한 바탕화면에 바로가기 설치 방법 및 그 시스템 | |
CN110795910B (zh) | 一种文本信息处理方法、装置、服务器及存储介质 | |
CN111068328A (zh) | 游戏广告配置表格的生成方法、终端设备及介质 | |
CN111796821A (zh) | 一种页面更新的方法及装置 | |
CN108255509B (zh) | 应用部署方法、装置、设备及可读存储介质 | |
CN112433730A (zh) | 代码检测规则的生成方法、装置和电子设备 | |
CN110020370B (zh) | 在客户端应用中实现动画的方法、装置及动画脚本的框架 | |
JP2008176160A (ja) | 地図データ処理方法及び装置 | |
CN110955449B (zh) | 客户端的灰度发布方法及装置 | |
CN112035117A (zh) | 页面展示系统、方法及装置 | |
CN108037914B (zh) | 一种安卓原生系统结合js开发的方法及装置 | |
CN111142990A (zh) | 一种微信小程序页面展示方法、装置、及存储介质 | |
CN116431467A (zh) | 页面测试方法、装置、设备及介质 | |
CN112181408A (zh) | 在应用程序前端页面显示视图列表的方法和装置 | |
US20140304690A1 (en) | Systems and Methods for Outputting an Application to Another Environment | |
CN111338961B (zh) | 应用调试方法及装置、电子设备及存储介质 | |
CN112214404A (zh) | 移动应用的测试方法、装置、存储介质及电子设备 | |
CN110704742B (zh) | 一种特征提取方法及装置 | |
Lončar et al. | Mobile application for finding ATMs |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |