CN110275834B - 用户界面自动化测试系统及方法 - Google Patents
用户界面自动化测试系统及方法 Download PDFInfo
- Publication number
- CN110275834B CN110275834B CN201910554246.6A CN201910554246A CN110275834B CN 110275834 B CN110275834 B CN 110275834B CN 201910554246 A CN201910554246 A CN 201910554246A CN 110275834 B CN110275834 B CN 110275834B
- Authority
- CN
- China
- Prior art keywords
- information
- page
- playback
- image
- script
- 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
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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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)
- Debugging And Monitoring (AREA)
Abstract
本发明提供了一种用户界面自动化测试系统及方法。所述系统包括:录制装置、存储装置及回放装置;所述录制装置录制并分析交易页面上的图像元素及测试操作,得到图像元素信息及操作脚本信息;所述存储装置存储所述图像元素信息及所述操作脚本信息;所述回放装置从所述存储装置中获取所述图像元素信息及所述操作脚本信息,根据所述图像元素信息及所述操作脚本信息,对所述交易页面进行自动交互回放,以实现交易页面的自动化测试。本发明采用UI元素的图像属性的录制和回放的方式,实现跨平台跨终端使用,不依赖于其显示设备或者操作系统以及页面主题,不依赖于UI实现技术,从而大幅降低自动化测试的成本,提高自动化测试效率。
Description
技术领域
本发明涉及计算机软件测试技术领域,尤指一种用户界面自动化测试系统及方法。
背景技术
自动化测试能一次录制、多次运行,尤其适用于回归和快速迭代、重复验证等场景。目前,基于用户界面UI(User Interface)的端到端的自动化测试技术,需要定位页面元素才能实现交互(点击、输入等)操作。页面元素定位,如业界Selenium自动化工具,通常方式是获取元素的关键属性(元素坐标、元素ID、元素XPath路径等)的方式,但存在一定的弊端:元素坐标的方式,一旦屏幕或者页面发生变化,很容易出现找不到元素的情况;元素ID或者XPath路径的方式,与UI的程序实现有较大的关联性,但目前软件应用界面实际缺乏统一标准,因此元素ID和XPath路径也没有标准化甚至可能缺失。另外对于非浏览器页面的UI,实现技术更是五花八门,导致元素定位非常困难,部分UI甚至没有技术方法可以实现元素定位。另一种方式是采用图像匹配,如麻省理工大学的Sikuli自动化工具,是基于图像识别的元素定位,但其弊端是即使是同一个交易的同一套程序,在不同分辨率的显示器上,或者说在不同的操作系统上,或者由于浏览器的主题不同时,由于图像不完全一致,导致定位不准确。
因此目前大部分基于UI的自动化测试的方法,由于元素定位困难或者不准确,因此根据程序变化或适配页面,需要持续维护和变更自动化脚本,导致基于UI的自动化测试的成本普遍很高,测试效率较低。
发明内容
为了解决目前用户界面自动化测试成本高、测试效率低等问题,本发明实施例提供一种用户界面自动化测试系统,所述系统包括:录制装置、存储装置及回放装置;
所述录制装置录制并分析交易页面上的图像元素及测试操作,得到图像元素信息及操作脚本信息;
所述存储装置存储所述图像元素信息及所述操作脚本信息;
所述回放装置从所述存储装置中获取所述图像元素信息及所述操作脚本信息,根据所述图像元素信息及所述操作脚本信息,对所述交易页面进行自动交互回放,以实现交易页面的自动化测试。
可选的,在本发明一实施例中,所述录制装置包括:录制分析器及脚本生成器;所述录制分析器录制所述交易页面的图像属性信息及测试操作的关键元素图像信息;所述脚本生成器记录所述关键元素图像信息及对应的测试操作,生成所述操作脚本信息。
可选的,在本发明一实施例中,所述录制分析器包括:第一预处理模块、第一元素分割模块及元素解析模块;所述第一预处理模块对所述交易页面进行预处理,以去除干扰信息;所述第一元素分割模块通过扫描预处理后的交易页面得到图像属性信息,所述图像属性信息包括像素信息,根据所述像素信息对预处理后的交易页面进行分割,得到分割完成的元素;所述元素解析模块解析分割完成的元素,得到测试操作的关键元素图像信息。
可选的,在本发明一实施例中,所述第一预处理模块通过去无关信息、边缘补全及标准化的方式对所述交易页面进行预处理,以去除干扰信息。
可选的,在本发明一实施例中,所述操作脚本信息包括元素信息ID、动作信息ID、动作类别及动作操作。
可选的,在本发明一实施例中,所述存储装置包括:元素记录器及脚本记录器;所述元素记录器存储所述图像元素信息;所述脚本记录器存储所述操作脚本信息。
可选的,在本发明一实施例中,所述回放装置包括:回放匹配器、脚本解析器及回放交互器;所述回放匹配器对用户交互页面的图像元素信息与从所述存储装置中获取的所述图像元素信息进行匹配,匹配通过后,对所述用户交互页面的元素进行定位;所述脚本解析器解析从所述存储装置中获取的所述操作脚本信息,生成可识别的操作描述;所述回放交互器根据可识别的操作描述,在完成元素定位的所述用户交互页面上进行自动交互回放。
可选的,在本发明一实施例中,所述回放匹配器包括:第二预处理模块、第二元素分割模块、学习训练模块及模式匹配模块;所述第二预处理模块对所述用户交互页面进行预处理,以去除干扰信息;所述第二元素分割模块通过扫描预处理后的用户交互页面得到图像属性信息,所述用户交互页面的图像属性信息包括像素信息,根据所述像素信息对预处理后的用户交互页面进行分割,得到分割完成的用户交互页面的元素;所述学习训练模块对从所述存储装置中获取的所述图像元素信息进行自动学习,在自动交互回放完成后,将对应的从所述存储装置中获取的所述图像元素信息记录于样本库中;所述模式匹配模块对所述用户交互页面的图像元素信息与从所述存储装置中获取的所述图像元素信息进行匹配,若匹配结果为相同或差异度小于预设阈值,则匹配通过。
可选的,在本发明一实施例中,所述第二预处理模块通过去无关信息、边缘补全及标准化的方式对所述用户交互页面进行预处理,以去除干扰信息。
本发明实施例还提供一种用户界面自动化测试方法,所述的方法利用所述的用户界面自动化测试系统,实现对用户界面的自动化测试。
本发明采用UI元素的图像属性的录制和回放的方式,实现跨平台跨终端使用,不依赖于其显示设备或者操作系统以及页面主题,不依赖于UI实现技术,从而大幅降低自动化测试的成本,提高自动化测试效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例一种用户界面自动化测试系统的结构示意图;
图2为本发明实施例中录制分析器的结构示意图;
图3为本发明实施例中回放匹配器的结构示意图;
图4为本发明一具体实施例中的用户名页面示意图;
图5为本发明一具体实施例中的登陆页面示意图;
图6为本发明实施例中录制分析方法的流程图;
图7为本发明实施例中匹配回放方法的流程图。
具体实施方式
本发明实施例提供一种用户界面自动化测试系统及方法。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示为本发明实施例一种用户界面自动化测试系统的结构示意图,图中所示系统包括:录制装置1、存储装置2及回放装置3;
所述录制装置1录制并分析交易页面上的图像元素及测试操作,得到图像元素信息及操作脚本信息;录制装置用于对交易页面交互过程中,交易页面的相关图像元素和测试人员的动作操作进行的录制分析,分别生成结构化的图像元素信息和测试操作脚本信息。
所述存储装置2存储所述图像元素信息及所述操作脚本信息;存储装置用于记录图像元素信息和测试操作脚本信息。
所述回放装置3从所述存储装置2中获取所述图像元素信息及所述操作脚本信息,根据所述图像元素信息及所述操作脚本信息,对所述交易页面进行自动交互回放,以实现交易页面的自动化测试。回放装置用于根据图像元素信息和测试操作脚本信息,在交易页面上模拟测试人员的动作操作,进行自动化交互回放,由此在回放过程结束后,就完成了用户界面交互过程的自动化测试过程。
作为本发明的一个实施例,所述录制装置包括:录制分析器及脚本生成器;所述录制分析器录制所述交易页面的图像属性信息及测试操作的关键元素图像信息;所述脚本生成器记录所述关键元素图像信息及对应的测试操作,生成所述操作脚本信息。
在本实施例中,所述录制分析器包括:第一预处理模块、第一元素分割模块及元素解析模块;所述第一预处理模块对所述交易页面进行预处理,以去除干扰信息;所述第一元素分割模块通过扫描预处理后的交易页面得到图像属性信息,所述图像属性信息包括像素信息,根据所述像素信息对预处理后的交易页面进行分割,得到分割完成的元素;所述元素解析模块解析分割完成的元素,得到测试操作的关键元素图像信息。
在本实施例中,所述第一预处理模块通过去无关信息、边缘补全及标准化的方式对所述交易页面进行预处理,以去除干扰信息。
在本实施例中,所述操作脚本信息包括元素信息ID、动作信息ID、动作类别及动作操作。
作为本发明的一个实施例,所述存储装置包括:元素记录器及脚本记录器;所述元素记录器存储所述图像元素信息;所述脚本记录器存储所述操作脚本信息。
作为本发明的一个实施例,所述回放装置包括:回放匹配器、脚本解析器及回放交互器;所述回放匹配器对用户交互页面的图像元素信息与从所述存储装置中获取的所述图像元素信息进行匹配,匹配通过后,对所述用户交互页面的元素进行定位;所述脚本解析器解析从所述存储装置中获取的所述操作脚本信息,生成可识别的操作描述;所述回放交互器根据可识别的操作描述,在完成元素定位的所述用户交互页面上进行自动交互回放。
在本实施例中,所述回放匹配器包括:第二预处理模块、第二元素分割模块、学习训练模块及模式匹配模块;所述第二预处理模块对所述用户交互页面进行预处理,以去除干扰信息;所述第二元素分割模块通过扫描预处理后的用户交互页面得到图像属性信息,所述用户交互页面的图像属性信息包括像素信息,根据所述像素信息对预处理后的用户交互页面进行分割,得到分割完成的用户交互页面的元素;所述学习训练模块对从所述存储装置中获取的所述图像元素信息进行自动学习,在自动交互回放完成后,将对应的从所述存储装置中获取的所述图像元素信息记录于样本库中;所述模式匹配模块对所述用户交互页面的图像元素信息与从所述存储装置中获取的所述图像元素信息进行匹配,若匹配结果为相同或差异度小于预设阈值,则匹配通过。
在本实施例中,所述第二预处理模块通过去无关信息、边缘补全及标准化的方式对所述用户交互页面进行预处理,以去除干扰信息。
在本发明一具体实施例中,如图1所示,该系统可以安装在传统Windows系统,也可以是各类Linux系统,或者移动智能终端(如智能手机或者Pad)。所述系统包括三个装置:
录制装置1,负责在录制状态下,对测试页面交互过程中,交易页面的相关图像元素和测试人员的动作操作进行的录制分析,分别生成结构化的图像元素信息和动作操作脚本信息。此录制装置1包括录制分析器11和脚本生成器12。
存储装置2,则负责记录图像元素信息和动作操作脚本信息,将其序列化并存储。此存储装置2包括元素记录器21和脚本记录器22。
回放装置3,负责在回放状态下,根据图像元素信息和动作操作脚本信息,在交易页面上模拟测试人员的动作操作,进行自动化交互回放。此回放装置3包括回放匹配器31、脚本解析器32和回放交互器33。
上述三个装置,具有交互关系,具体为:录制装置的录制分析器11将录制分析完成的图像元素信息数据交付给存储装置的元素记录器21,由后者记录保存,而回放装置的回放匹配器31则从元素记录器21中获取相关元素信息数据;录制装置的脚本生成器12将生成的动作操作脚本信息交付给脚本记录器22,由后者记录保存,而回放装置的脚本解析器32则从脚本记录器22获取相关动作操作脚本数据。如图1所示箭头信息流。
所述录制分析器11,录制状态下,负责对测试页面交互过程中相关图像元素信息数据的录制分析,包括:录制分析当前交易页面的整体信息、通用图像属性信息(像素、颜色集合等);录制分析当前交易页面的当前操作的关键元素的图像信息(像素、颜色集合等)。
所述录制分析器11,如图2所示为录制分析器的结构示意图,其包含预处理模块111(即第一预处理模块)、元素分割模块112(即第一元素分割模块)、元素解析模块113。
所述预处理模块111,录制状态下,对UI页面(即交易页面)元素进行预处理,使用去无关信息、边缘补全、标准化等手段,去掉干扰信息,提升识别率。
所述元素分割模块112,录制状态下,对预处理后的UI元素进行逐行扫描,获取像素信息,并根据像素信息对页面元素进行区域切割管理。
所述元素分割模块112,结合交易页面一般各元素显示区域较分明,识别度较高的特性,采用“区域生长”的技术进行处理,即将具有相似性质的像素集合起来构成区域。具体为:先对每个需要分割的区域找一个种子像素作为生长的起点;然后将种子像素周围领域中与种子像素有相同或相似性质的像素(根据某种事先确定的生长或相似准则来判定)合并到种子像素所在的区域中;将这些新像素当作新的种子像素继续进行上面的过程,直到再没有满足条件的像素可被包括进来。如此完成一个区域的生成。
以图4所示的简单页面为例,首先预处理,会去掉无用的边框线条,然后经过切割,将生成两个区域,包括文本提示“请填写您的用户名和密码”,以及标签为“用户名:”的文本输入框。
所述元素解析模块113,录制状态下,对已经分割好的元素集合,做进一步的解析,从而提取出关键的元素信息值,并使其成为结构化的数据。其数据结构最少包括如表1所示:
表1
元素信息ID | 操作系统 | 分辨率 | UI控件类别 | 控件元素信息值 | 补充信息 |
其中,操作系统包括:Windows,IOS,Andrio,Linux及其版本号等;
分辨率包括:800×600,1024×768等;
UI控件类别系本系统及方法预先定义如下,可涵盖目前业界常用UI页面的元素,如表2所示:
表2
Button | 按钮 | 如“确认”、“取消”按钮等 |
Lable+Text | 文本输入框 | 如在标签“账号”后面的输入框 |
Lable+TextSelect | 选择框 | 如在标签“地区”后面的下拉选择框 |
RadioSelect | 单选框 | 如账号属性“信用卡”或“借记卡”的单选 |
CheckboxSelect | 多选框 | 可同时勾选多个选项的多选 |
DateTimeSelect | 日期时间 | 选择输入日期时间 |
MenuSelect | 菜单项 | 菜单选择 |
Label | 文本提示 | 纯文本提示信息,无需交互 |
所述脚本生成器12,录制状态下,记录当前交易页面元素及其对应的动作操作信息(包括鼠标单击click、鼠标双击doubleclick、键盘输入type等),生成动作操作脚本信息数据。其数据结构最少包括如表3所示:
表3
元素信息ID | 动作信息ID | UI动作类别 | 动作操作 | 补充信息 |
其中UI动作类别可包括键盘、鼠标、触屏等。不同的UI动作类别,其下各对应不同的动作操作。以触屏此UI动作类别为例,可包括上拉、下拉,左拉,右拉、单击、双击、拉框等不同的动作操作。示例如表4所示:
表4
UI动作类别 | 动作操作 |
键盘 | 输入...... |
鼠标 | 左键单击、左键双击、右键单击、滑轮滚动...... |
触屏 | 上拉、下拉,左拉,右拉、单击、双击、拉框...... |
所述元素记录器21,负责记录录制分析完成的图像元素信息数据。
所述脚本记录器22,负责记录录制生成的动作操作脚本数据。
所述回放匹配器31,回放状态下,负责对当前自动化测试过程中,每个页面及元素,与之前记录的页面属性进行匹配,若发现属性相同(或者属性差异度小于一定阈值),则进行页面和元素的定位。
所述回放匹配器31,如图3所示,图3是回放匹配器的结构示意图,其包含预处理模块311、元素分割模块312、学习训练模块313、模式匹配模块314。
预处理模块311,回放状态下,对UI页面元素进行预处理,使用去无关信息、边缘补全、标准化等手段,去掉干扰信息,提升识别率。
元素分割模块312,回放状态下,对预处理后的UI元素进行逐行扫描,获取特征值,并将特征值归类聚合成特定的元素进行切割管理。
学习训练模块313,回放状态下,对采集的样本进行“训练”和自动学习,以适应不同的设备和分辨率、界面风格所造成的识别误差。以Windows系统为例,某次回放是在800×600的分辨率下进行,则回放成功后,自动将本次回放的所有要素信息均记录在样本库中,那么下一次回放时,若是在Windows系统且800×600的分辨率,则优先适配之前已有样本库;同理其余1024×768等分辨率或者其它系统均类似记录学习。
模式匹配模块314,回放状态下,使用模式识别方法,对当前自动化测试过程中,每个页面及元素,与之前记录的页面属性进行匹配,若发现属性相同(或者属性差异度小于一定预设值的阈值),则匹配成功。
所述脚本解析器32,回放状态下,负责解析动作操作脚本信息数据,形成可识别的动作操作描述。
所述回放交互器33,负责根据图像元素信息数据和动作操作脚本数据,在测试的页面上模拟测试人员的手工操作进行自动化回放交互,即在对应的页面上对匹配的元素自动执行对应的动作操作(包括鼠标单击click、鼠标双击doubleclick、键盘输入type等)。
本发明有以下优势:1、由于录制过程中,仅需要有屏幕显示,即可完成UI图象的属性的记录,因为不依赖于UI程序的具体实现,无论是浏览器页面,还是各种独立的程序应用,只要有屏幕交互,均可以完成交易过程的所有页面交互的录制,并生成自动化测试脚本,用于后续的自动化测试,从而有效的提高了自动化测试的效益。2、本发明充分考虑到了在手工录制过程当中,所录制的UI元素不够理想,从而影响识别的情况。如有多余的边框阴影,文本内容距离处于元素图形的边缘位置等不利因素。通过去边、补齐等手段,进行了弥补。3、为提高UI的识别率,本发明使用了标准化的预处理手段,将不同设备,不同界面风格条件下所录制的UI元素进行标准化处理。如图像拉伸、灰度化、等。使得在不同设备上录制的UI都能在公共的服务器上进行识别回放。4、本发明预先定义了交易元素类别,通过提取关键的信息值,将图像元素信息和动作操作脚本均生成为结构化的数据,同时引入大数据机器学习平台,在平台中已经分门别类,预学习大量的按钮、文本输入框等等图片信息,在本系统的录制和回放阶段均不断进行学习,让机器能自动识别交互信息,且随着不断的训练,其成功率也不断提升。从而大幅提升自动化脚本的可用性,需提升UI的识别率,特别是交互结果UI的识别率。5、为了提升OCR识别成功率,本方法进行了进一步的有效的OCR预处理,解决OCR文本识别的准确率和效率。从而在脚本的录制和回放过程中,能有效识别交易页面的交互的文本信息,从而使脚本更具通用性,也更便于编写自动化测试案例的断言,如在页面结果上返回的经过后台服务器计算所得的手续费的具体数值,可以用来做转账交易的校验。
本发明采用UI元素的图像属性的录制和回放的方式,实现跨平台跨终端使用,不依赖于其显示设备或者操作系统以及页面主题,不依赖于UI实现技术,从而大幅降低自动化测试的成本,提高自动化测试效率。
本发明实施例还提供一种用户界面自动化测试方法,所述的方法利用所述的用户界面自动化测试系统,实现对用户界面的自动化测试。
在本实施例中,如图6所示为录制分析方法,流程如下:
步骤S101:启动UI页面录制装置,启动需要录制自动化测试脚本的应用程序的UI用户交互页面,开始录制分析。在UI页面上手动操作所有需要录制的用户交互步骤,包括下拉框选择、输入框输入、按钮点击等各种操作,从UI页面发起端到端的业务流程测试,并同步进行录制分析。
步骤S102:录制分析器11的预处理模块111,对UI页面元素进行预处理,使用去无关信息、边缘补全、标准化等手段,去掉干扰信息,提升识别率。
步骤S103:录制分析器11的元素分割模块112,对预处理后的UI元素进行逐行扫描,获取特征值,并将特征值归类聚合成特定的元素进行切割管理。
步骤S104:录制分析器11的元素解析模块113,对已经分割好的元素集合提取出关键的元素信息值,成为结构化的页面元素信息数据,并由存储装置的元素记录器21记录。
在步骤S104元素解析中,又包含如下几个子步骤:
(1)元素解析模块113中,使用预定义UI控件类别。本系统及方法已经预先定义UI控件类别,包括按钮、文本输入框等,可涵盖目前业界常用UI页面的元素。
(2)元素解析模块113中引入大数据机器学习平台。在平台中已经分门别类,预学习大量的按钮、文本输入框等等图片信息,同时在本系统的录制阶段不断进行学习。
(3)元素解析模块113中,对于当前操作的分割完成的元素,调用机器学习平台API,判断其所属种类,通过相似度计算,取其最大相似度,当相似度大于预定的阀值时,则判断为属于该列别(如按钮),将当前操作的元素定义为属于按钮。并将本次学习元素纳入到大数据学习信息中。
(4)元素解析模块113中,对于当前操作的分割完成的元素(如按钮),调用OCR识别,获取到此元素上的文本,如按钮上的“确认”,或者文本输入框前面的标签“金额”。
(5)元素解析模块113中,为了提升OCR识别成功率,本方法进行了进一步的有效的OCR预处理:首先基于灰度直方图统计方法计算自适应阈值,然后采用二值法,将文本与有色背景分离,生成白底黑字,接着使用去边框算法,消除边框对识别的干扰,将处理后的简单“白底黑字”图,输入tesseract等OCR模块,使用预先训练好的字库,识别得到的文本。
步骤S105:脚本生成器12,记录当前交易页面元素及其对应的动作操作信息,生成结构化的页面动作操作脚本信息数据,并由存储装置的脚本记录器22记录。具体为记录当前操作的输入,包括鼠标单击click,鼠标双击doubleclick,或者键盘输入type及其具体的输入值,并根据当前操作的元素,生成其对应的自然语言描述的自动化测试语句示例如下:
文本输入框(“金额”).type(“100”);
步骤S106:上述S102-S105步骤不断循环,直至录制动作结束,将上述页面元素信息及对应的信息数据和页面操作信息数据,均各自被对应的存储装置的元素记录器和脚本记录器将其记录保存下来,并翻译形成以类自然语言形式的完整的基于交易界面的自动化测试脚本。以一个最简单的用户登录的交易为例,其脚本包括:
文本输入框(“用户名”).type(“100103”);
文本输入框(“密码”).type(“111111”);
按钮(“登录”).click();
在本实施例中,如图7所示为匹配回放方法,流程如下:
步骤S301:启动UI页面回放装置,选择并启动要测试的自动化脚本,在对应的应用程序的UI用户交互页面上,开始自动化回放测试。此步骤会载入已经在存储装置中记录的页面元素信息和动作操作脚本信息。
下列,从步骤S302到S305步骤,针对页面元素信息进行回放分析。
步骤S302:回放匹配器31的预处理模块311,对UI页面元素进行预处理,使用去无关信息、边缘补全、标准化等手段,去掉干扰信息,提升识别率。
步骤S303:回放匹配器31的元素分割模块312,对预处理后的UI元素进行逐行扫描,获取特征值,并将特征值归类聚合成特定的元素进行切割管理。
步骤S304:回放匹配器31的学习训练模块313,对采集的样本进行“训练”和自动学习,以适应不同的设备的操作系统、分辨率、界面风格等造成的识别误差。
步骤S305:回放匹配器31的模式匹配模块314,对当前自动化测试过程中,每个页面及元素,与之前记录的页面属性进行匹配,若发现属性相同(或者属性差异度小于一定预设的阈值),则匹配成功。
步骤S306:回放装置的脚本解析器32,对动作操作脚本信息进行解析。
步骤S307:回放装置的回放交互器33,根据动作操作脚本信息,对匹配的页面和元素自动执行相关操作(包括click、type等各种键盘鼠标的动作)。
此步骤S307,回放装置的回放交互器33,首先在UI页面上获取到匹配成功元素进行定位,然后对于已经定位的元素获取关联的操作动作,并根据动作信息在UI界面上执行交互。
具体的,以分析回放按钮(“登录”).click()这一语句为例:
(1)回放装置的回放交互器33,使用本发明预定义好的UI控件类别。本系统及方法已经预先定义UI控件类别,包括按钮、文本输入框等,可涵盖目前业界常用UI页面的元素。
(2)回放装置的回放交互器33,引入大数据机器学习平台。在平台中已经分门别类,预学习大量的按钮、文本输入框等等图片信息,同时在本系统的学习阶段不断进行学习。
(3)回放装置的回放交互器33,对于当前页面,对切割完成的每个元素,调用机器学习平台API,判断其所属种类,通过相似度计算,取其最大相似度,当相似度大于预定的阀值时,则判断为属于该类别(如按钮、文本输入框等),将页面所有元素都归类为预先定义好的控件类别,因此可以获得当前页面中所有按钮的元素集合A1。
(4)回放装置的回放交互器33,根据语句按钮(“登录”),知道当前要操作的元素的属于按钮类别,因此将当前要所做的元素(如button)与对应类别的当前页面所有按钮的元素集合A1进行模式匹配,通过相似度计算,当相似度大于预定的阀值时,则将当前页面的元素纳入候选集合A1-2中。其中A1-2是A1的子集,且A1-2按照匹配度从大到小排序。
(5)回放装置的回放交互器33,对A1-2集合中的元素,进行OCR识别,获取到所有按钮上的文本,可能包括“确认”、“取消”、“密码重置”等,对此文本与语句的参数“登录”进行匹配,首选第一个匹配成功的即可定位为当前要操作的登录按钮。
(6)回放装置的回放交互器33,为了提升OCR识别成功率,本方法进行了有效的OCR预处理以提高精度和效率。
(7)回放装置的回放交互器33,将本次回放过程中的学习元素纳入到大数据学习信息中。
步骤S308:上述S302至S307步骤不断循环,直至回放动作全部结束。
在本发明一具体实施例中,如图5所示为一个平台系统的登录页面,以其为例,下面详述具体的步骤流程。
在脚本录制阶段:
步骤S101:启动UI录制装置,启动IE页面并输入此平台系统的地址,在页面上对手工的操作(输入用户名100103、输入密码111111、点击登录按钮)进行录制。
步骤S102:对UI页面元素进行预处理,对此页面上的无用的边框阴影等去除,去掉干扰信息,提升识别率。
步骤S103:切割成用户名输入区域、密码输入区域、登录按钮区域等。
步骤S104:生成结构化的页面元素信息。以用户名输入为例,其对应的脚本信息数据结构如表5所示:
表5
元素信息ID | 操作系统 | 分辨率 | UI控件类别 | 控件元素信息值 | 补充信息 |
元素信息ID1 | Windows7 | 1024*768 | 文本输入框 | 具体元素信息值 | 用户名 |
步骤S105:生成结构化的页面动作操作脚本信息。以用户名输入为例,其对应的元素信息数据结构如表6所示:
表6
元素信息ID | 动作信息ID | UI动作类别 | 动作操作 | 补充信息 |
元素信息ID1 | 动作信息ID1 | 键盘 | 输入 | “100103”输入值 |
步骤S106:上述步骤不断循环,形成完整的登录页面的自动化测试脚本,其类自然语言形式示例如下:
文本输入框(“用户名”).type(“100103”);
文本输入框(“密码”).type(“111111”);
按钮(“登录”).click();
在脚本回放阶段,以输入用户名的操作为例:
步骤S301:启动UI回放装置,选择并启动上述自动化脚本,获取到自动化交易对应的结构化的页面元素信息和动作操作信息,在上述平台系统的登录页面上进行回放的自动化测试。
步骤S302:对回放的交易页面的UI页面元素进行预处理,对此页面上的无用的边框阴影等去除,去掉干扰信息,提升识别率。
步骤S303:对页面元素切割成用户名输入区域、密码输入区域、登录按钮区域等。
步骤S304:对页面元素进行学习训练,将识别成功的控件及其对应的所有要素信息记录机器学习平台的样本库中。
步骤S305:在当前的页面上,对结构化的页面信息元素,进行属性匹配,当属性相同(或者属性差异度小于一定预设值的阈值),则匹配成功。以用户名输入为例,则匹配到当前要操作的是标签为“用户名”后面的文本输入框。
步骤S306:对动作操作脚本信息进行解析,对应用户名的输入框的操作解析为键盘输入100103的值。
步骤S307:根据脚本信息,对匹配的元素,即标签为“用户名”后面的文本输入框,在上面模拟键盘输入100103的值,完成此步的UI交互自动操作。
如此重复循环,完成整个用户登录的交互动作,对此页面流程的自动化测试执行完毕。
本发明采用UI元素的图像属性的录制和回放的方式,实现跨平台跨终端使用,不依赖于其显示设备或者操作系统以及页面主题,不依赖于UI实现技术,从而大幅降低自动化测试的成本,提高自动化测试效率。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读取存储介质中,比如ROM/RAM、磁碟、光盘等。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种用户界面自动化测试系统,其特征在于,所述系统包括:录制装置、存储装置及回放装置;
所述录制装置录制并分析交易页面上的图像元素及测试操作,得到图像元素信息及操作脚本信息;
所述存储装置存储所述图像元素信息及所述操作脚本信息;
所述回放装置从所述存储装置中获取所述图像元素信息及所述操作脚本信息,根据所述图像元素信息及所述操作脚本信息,对所述交易页面进行自动交互回放,以实现交易页面的自动化测试;
其中,所述回放装置包括:回放匹配器、脚本解析器及回放交互器;
所述回放匹配器对用户交互页面的图像元素信息与从所述存储装置中获取的所述图像元素信息进行匹配,匹配通过后,对所述用户交互页面的元素进行定位;
所述脚本解析器解析从所述存储装置中获取的所述操作脚本信息,生成可识别的操作描述;
所述回放交互器根据可识别的操作描述,在完成元素定位的所述用户交互页面上进行自动交互回放;
其中,所述回放匹配器包括:第二预处理模块、第二元素分割模块、学习训练模块及模式匹配模块;
所述第二预处理模块对所述用户交互页面进行预处理,以去除干扰信息;
所述第二元素分割模块通过扫描预处理后的用户交互页面得到图像属性信息,所述用户交互页面的图像属性信息包括像素信息,根据所述像素信息对预处理后的用户交互页面进行分割,得到分割完成的用户交互页面的元素;
所述学习训练模块对从所述存储装置中获取的所述图像元素信息进行自动学习,在自动交互回放完成后,将对应的从所述存储装置中获取的所述图像元素信息记录于样本库中;
所述模式匹配模块对所述用户交互页面的图像元素信息与从所述存储装置中获取的所述图像元素信息进行匹配,若匹配结果为相同或差异度小于预设阈值,则匹配通过。
2.根据权利要求1所述的系统,其特征在于,所述录制装置包括:录制分析器及脚本生成器;
所述录制分析器录制所述交易页面的图像属性信息及测试操作的关键元素图像信息;
所述脚本生成器记录所述关键元素图像信息及对应的测试操作,生成所述操作脚本信息。
3.根据权利要求2所述的系统,其特征在于,所述录制分析器包括:第一预处理模块、第一元素分割模块及元素解析模块;
所述第一预处理模块对所述交易页面进行预处理,以去除干扰信息;
所述第一元素分割模块通过扫描预处理后的交易页面得到图像属性信息,所述图像属性信息包括像素信息,根据所述像素信息对预处理后的交易页面进行分割,得到分割完成的元素;
所述元素解析模块解析分割完成的元素,得到测试操作的关键元素图像信息。
4.根据权利要求3所述的系统,其特征在于,所述第一预处理模块通过去无关信息、边缘补全及标准化的方式对所述交易页面进行预处理,以去除干扰信息。
5.根据权利要求3所述的系统,其特征在于,所述操作脚本信息包括元素信息ID、动作信息ID、动作类别及动作操作。
6.根据权利要求1所述的系统,其特征在于,所述存储装置包括:元素记录器及脚本记录器;
所述元素记录器存储所述图像元素信息;
所述脚本记录器存储所述操作脚本信息。
7.根据权利要求1所述的系统,其特征在于,所述第二预处理模块通过去无关信息、边缘补全及标准化的方式对所述用户交互页面进行预处理,以去除干扰信息。
8.一种用户界面自动化测试方法,其特征在于,所述的方法利用权利要求1-7中任一权利要求所述的用户界面自动化测试系统,实现对用户界面的自动化测试。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910554246.6A CN110275834B (zh) | 2019-06-25 | 2019-06-25 | 用户界面自动化测试系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910554246.6A CN110275834B (zh) | 2019-06-25 | 2019-06-25 | 用户界面自动化测试系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110275834A CN110275834A (zh) | 2019-09-24 |
CN110275834B true CN110275834B (zh) | 2023-07-25 |
Family
ID=67962316
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910554246.6A Active CN110275834B (zh) | 2019-06-25 | 2019-06-25 | 用户界面自动化测试系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110275834B (zh) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112579431A (zh) * | 2019-09-30 | 2021-03-30 | 南京大学 | 一种基于图像识别的跨平台脚本录制与回放方法 |
CN110780965B (zh) * | 2019-10-24 | 2023-10-20 | 深圳前海微众银行股份有限公司 | 基于视觉的流程自动化方法、设备及可读存储介质 |
CN111522749B (zh) * | 2020-04-26 | 2023-04-11 | 北京三快在线科技有限公司 | 页面测试方法、装置、可读存储介质及电子设备 |
CN111679974A (zh) * | 2020-05-26 | 2020-09-18 | 泰康保险集团股份有限公司 | 一种应用程序的测试方法及装置 |
CN111767228B (zh) * | 2020-06-30 | 2024-02-06 | 深圳赛安特技术服务有限公司 | 基于人工智能的界面测试方法、装置、设备和介质 |
CN112100075B (zh) * | 2020-09-24 | 2024-03-15 | 腾讯科技(深圳)有限公司 | 一种用户界面回放方法、装置、设备及存储介质 |
CN112084117B (zh) * | 2020-09-27 | 2023-08-08 | 网易(杭州)网络有限公司 | 一种测试方法和装置 |
CN112463601A (zh) * | 2020-11-24 | 2021-03-09 | 中信银行股份有限公司 | 一种ui自动测试方法和系统 |
CN112597021A (zh) * | 2020-12-24 | 2021-04-02 | 中国农业银行股份有限公司 | 基于联动打印机的银行柜面交易自动化测试方法及装置 |
CN112667517A (zh) * | 2021-01-07 | 2021-04-16 | 卫宁健康科技集团股份有限公司 | 自动化测试脚本的获取方法、装置、设备及存储介质 |
CN112817866A (zh) * | 2021-02-25 | 2021-05-18 | 北京百家科技集团有限公司 | 录制回放方法、装置、系统、计算机设备以及存储介质 |
CN113127348B (zh) * | 2021-04-19 | 2021-10-15 | 广州掌动智能科技有限公司 | 软件的自动测试脚本录制方法、系统和存储介质 |
CN113392007B (zh) * | 2021-06-17 | 2023-09-08 | 网易(杭州)网络有限公司 | 一种兼容性测试的方法及装置 |
CN113641587A (zh) * | 2021-08-26 | 2021-11-12 | 北京字跳网络技术有限公司 | 操作界面的测试方法、装置、终端和存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104951393A (zh) * | 2014-03-25 | 2015-09-30 | 中国电信股份有限公司 | 测试方法和测试装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10409712B2 (en) * | 2016-12-30 | 2019-09-10 | Accenture Global Solutions Limited | Device based visual test automation |
-
2019
- 2019-06-25 CN CN201910554246.6A patent/CN110275834B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104951393A (zh) * | 2014-03-25 | 2015-09-30 | 中国电信股份有限公司 | 测试方法和测试装置 |
Also Published As
Publication number | Publication date |
---|---|
CN110275834A (zh) | 2019-09-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110275834B (zh) | 用户界面自动化测试系统及方法 | |
CN108763068B (zh) | 一种基于机器学习的自动化测试方法及终端 | |
CN109828906B (zh) | Ui自动化测试方法、装置、电子设备及存储介质 | |
US11348331B2 (en) | Information processing apparatus and non-transitory computer readable medium | |
CN112308069A (zh) | 一种软件界面的点击测试方法、装置、设备及存储介质 | |
US20040081346A1 (en) | Non-intrusive testing system and method | |
Cheng et al. | Apply computer vision in GUI automation for industrial applications | |
Sun et al. | Ui components recognition system based on image understanding | |
CN112633341A (zh) | 一种界面测试方法、装置、计算机设备和存储介质 | |
CN112083992A (zh) | Ui自动化测试方法 | |
CN110659193B (zh) | 测试系统 | |
CN111401465A (zh) | 训练样本优化方法、装置、设备及存储介质 | |
CN116185812A (zh) | 一种软件系统功能自动化测试方法、装置及介质 | |
CN115631374A (zh) | 控件操作方法、控件检测模型的训练方法、装置和设备 | |
CN113205046A (zh) | 题册识别方法、系统、装置及介质 | |
CN113515280A (zh) | 页面代码生成方法、装置 | |
CN113762223B (zh) | 题目拆分模型训练方法、题目拆分方法及相关装置 | |
CN114860604B (zh) | 自动识别动态验证码的自动测试方法、系统和存储介质 | |
US20230282013A1 (en) | Automated key-value pair extraction | |
CN117667647A (zh) | 用户界面自动测试方法、装置、电子设备及存储介质 | |
CN114511868A (zh) | 一种针打的士票的识别方法、装置、设备和介质 | |
CN117437652A (zh) | 测试脚本生成方法、装置和设备 | |
CN117234643A (zh) | 操作录制和回放的方法和装置 | |
CN116909561A (zh) | 基于深度学习生成前端页面代码的方法及系统 | |
CN112906684A (zh) | 一种h5页面随机密码键盘的自动化测试方法 |
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 |