CN117667647A - 用户界面自动测试方法、装置、电子设备及存储介质 - Google Patents
用户界面自动测试方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN117667647A CN117667647A CN202211027012.4A CN202211027012A CN117667647A CN 117667647 A CN117667647 A CN 117667647A CN 202211027012 A CN202211027012 A CN 202211027012A CN 117667647 A CN117667647 A CN 117667647A
- Authority
- CN
- China
- Prior art keywords
- user interface
- tested
- test case
- interface test
- image
- 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.)
- Pending
Links
- 238000010998 test method Methods 0.000 title claims abstract description 24
- 238000012360 testing method Methods 0.000 claims abstract description 416
- 238000013515 script Methods 0.000 claims abstract description 50
- 238000000034 method Methods 0.000 claims abstract description 31
- 238000004422 calculation algorithm Methods 0.000 claims description 37
- 230000006399 behavior Effects 0.000 claims description 25
- 238000004590 computer program Methods 0.000 claims description 14
- 230000003287 optical effect Effects 0.000 claims description 7
- 238000012545 processing Methods 0.000 claims description 6
- 230000009466 transformation Effects 0.000 claims description 6
- 230000008569 process Effects 0.000 description 11
- 238000012423 maintenance Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 7
- 238000004891 communication Methods 0.000 description 6
- 238000003058 natural language processing Methods 0.000 description 6
- 238000012015 optical character recognition Methods 0.000 description 6
- 238000011161 development Methods 0.000 description 5
- 230000018109 developmental process Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 230000011218 segmentation Effects 0.000 description 4
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000013522 software testing Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Landscapes
- User Interface Of Digital Computer (AREA)
Abstract
本公开提供一种用户界面自动测试方法、装置、电子设备及存储介质,其中,所述方法包括:确定待测试用户界面,其中,待测试用户界面包括待测试控件;对待测试用户界面进行用例编写,得到用户界面测试用例,其中,用户界面测试用例为具有自然语言形式的测试用例;基于用户界面测试用例,确定待测试控件在待测试用户界面中的控件位置;基于控件位置生成脚本命令,并基于脚本命令的执行结果得到用户界面测试用例的测试结果,并基于测试结果生成待测试用户界面的测试报告。通过本公开降低了测试用例的编写成本且提高了可读性。
Description
技术领域
本公开涉及软件测试技术领域,尤其涉及一种用户界面自动测试方法、装置、电子设备及存储介质。
背景技术
软件自动化测试可以把人为驱动的测试行为转化为机器进行执行,以此节省人力、时间或硬件资源,提高测试效率。
相关技术可知,往往通过开发语言编写测试用例脚本来执行用户界面的自动化测试。
然而,通过开发语言编写测试用例脚本对用户界面进行测试,需要测试团队的代码开发能力较高,并且测试用例脚本开发时间较长,导致了用户界面测试成本较高。
发明内容
本公开提供一种用户界面自动测试方法、装置、电子设备及存储介质,用以解决现有技术中在对用户界面进行自动化测试过程中存在的测试用例脚本编写成本高的缺陷,降低了测试用例的编写成本且提高了可读性。
本公开提供一种用户界面自动测试方法,所述方法包括:确定待测试用户界面,其中,所述待测试用户界面包括待测试控件;对所述待测试用户界面进行用例编写,得到用户界面测试用例,其中,所述用户界面测试用例为具有自然语言形式的测试用例;基于所述用户界面测试用例,确定与所述用户界面测试用例对应的待测试控件在所述待测试用户界面中的控件位置;基于所述控件位置,生成所述用户界面测试用例的脚本命令,并基于所述脚本命令的执行结果得到所述用户界面测试用例的测试结果;基于所述用户界面测试用例的测试结果,生成所述待测试用户界面的测试报告。
根据本公开提供的一种用户界面自动测试方法,所述待测试用户界面包括文字形式待测试用户界面,所述用户界面测试用例包括第一用户界面测试用例;所述对所述待测试用户界面进行用例编写,得到用户界面测试用例,具体包括:对所述文字形式待测试用户界面进行用例编写,得到所述第一用户界面测试用例,其中,所述第一用户界面测试用例为具有所述文字形式待测试用户界面展示的特征文字的用户界面测试用例;所述基于所述用户界面测试用例,确定与所述用户界面测试用例对应的待测试控件在所述待测试用户界面中的控件位置,具体包括:基于所述第一用户界面测试用例中的特征文字,通过光学字符识别算法在所述文字形式待测试用户界面中识别出与所述特征文字对应的识别文字;基于所述识别文字在所述文字形式待测试用户界面中的位置,确定与所述用户界面测试用例对应的待测试控件在所述待测试用户界面中的控件位置。
根据本公开提供的一种用户界面自动测试方法,所述待测试用户界面包括图像形式待测试用户界面,所述用户界面测试用例包括第二用户界面测试用例;所述对所述待测试用户界面进行用例编写,得到用户界面测试用例,具体包括:对所述图像形式待测试用户界面进行用例编写,得到所述第二用户界面测试用例,其中,所述第二用户界面测试用例为具有基准图像的用户界面测试用例,所述基准图像为所述图像形式待测试用户界面的预设区域的图像;所述基于所述用户界面测试用例,确定与所述用户界面测试用例对应的待测试控件在所述待测试用户界面中的控件位置,具体包括:基于所述第二用户界面测试用例中的基准图像,通过图像对比算法在所述图像形式待测试用户界面中识别出与所述基准图像对应的识别图像;基于所述识别图像在所述图像形式待测试用户界面中的位置,确定与所述用户界面测试用例对应的待测试控件在所述待测试用户界面中的控件位置。
根据本公开提供的一种用户界面自动测试方法,所述图像对比算法包括尺度不变特征变换算法;所述基于所述第二用户界面测试用例中的基准图像,通过图像对比算法在所述图像形式待测试用户界面中识别出与所述基准图像对应的识别图像,具体包括:基于所述尺度不变特征变换算法,分别提取所述基准图像的第一特征点和所述图像形式待测试用户界面的第二特征点,并基于所述第一特征点和所述第二特征点对比,在所述图像形式待测试用户界面中识别出与所述基准图像对应的识别图像。
根据本公开提供的一种用户界面自动测试方法,所述基于所述控件位置,生成所述用户界面测试用例的脚本命令,具体包括:对所述用户界面测试用例进行解析,得到与所述用户界面测试用例匹配的操作对象和所述操作对象的操作行为;基于所述控件位置、所述操作对象以及所述操作对象的操作行为,生成所述用户界面测试用例的脚本命令。
本公开还提供一种用户界面自动测试装置,所述装置包括:确定模块,用于确定待测试用户界面,其中,所述待测试用户界面包括待测试控件;编写模块,用于对所述待测试用户界面进行用例编写,得到用户界面测试用例,其中,所述用户界面测试用例为具有自然语言形式的测试用例;定位模块,用于基于所述用户界面测试用例,确定与所述用户界面测试用例对应的待测试控件在所述待测试用户界面中的控件位置;处理模块,用于基于所述控件位置,生成所述用户界面测试用例的脚本命令,并基于所述脚本命令的执行结果得到所述用户界面测试用例的测试结果;生成模块,用于基于所述用户界面测试用例的测试结果,生成所述待测试用户界面的测试报告。
根据本公开提供的一种用户界面自动测试装置,所述待测试用户界面包括文字形式待测试用户界面,所述用户界面测试用例包括第一用户界面测试用例;所述编写模块采用以下方式对所述待测试用户界面进行用例编写,得到用户界面测试用例:对所述文字形式待测试用户界面进行用例编写,得到所述第一用户界面测试用例,其中,所述第一用户界面测试用例为具有所述文字形式待测试用户界面展示的特征文字的用户界面测试用例;所述定位模块采用以下方式基于所述用户界面测试用例,确定与所述用户界面测试用例对应的待测试控件在所述待测试用户界面中的控件位置:基于所述第一用户界面测试用例中的特征文字,通过光学字符识别算法在所述文字形式待测试用户界面中识别出与所述特征文字对应的识别文字;基于所述识别文字在所述文字形式待测试用户界面中的位置,确定与所述用户界面测试用例对应的待测试控件在所述待测试用户界面中的控件位置。
本公开还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述的用户界面自动测试方法。
本公开还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述的用户界面自动测试方法。
本公开还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述的用户界面自动测试方法。
本公开提供的用户界面自动测试方法、装置、电子设备及存储介质,通过对待测试用户界面进行用例编写,可以得到具有自然语言形式的用户界面测试用例,降低了测试用例的编写成本,提高了可读性。再基于用户界面测试用例确定待测试控件在待测试用户界面中的控件位置,获取控件位置后通过对应的脚本执行操作,并基于操作结果生成待测试用户界面的测试报告。通过本公开在确保对待测试用户界面进行自动测试的前提下,降低了测试用例的编写成本和后期维护成本,并且提高了测试用例的可读性。
附图说明
为了更清楚地说明本公开或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本公开提供的用户界面自动测试方法的流程示意图之一;
图2是本公开提供的基于控件位置,生成用户界面测试用例的脚本命令的流程示意图;
图3是本公开提供的用户界面测试用例解析的流程示意图;
图4是本公开提供的用户界面自动测试方法的流程示意图之二;
图5是本公开提供的用户界面自动测试方法的流程示意图之三;
图6是本公开提供的用户界面自动测试方法的流程示意图之四;
图7是本公开提供的用户界面自动测试装置的结构示意图;
图8是本公开提供的电子设备的结构示意图。
具体实施方式
为使本公开的目的、技术方案和优点更加清楚,下面将结合本公开中的附图,对本公开中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
用户界面(User Interface,又称UI)是系统和用户之间进行交互和信息交换的媒介,它实现信息的内部形式与人类可以接受形式之间的转换。
相关技术可知,用户界面的自动化测试系统框架可以由基础设施、基础技术栈、业务层、前端、插入层和展示层构成。与本公开提供的用户界面自动测试方法对应的系统框架至少需要在基础技术栈中增加光学字符识别和图像识别等技术。
本公开提供的用户界面自动测试方法,结合图像识别、图像对比、自然语言识别等技术,可以降低测试用例的编写成本和后期维护成本,并且测试用例的可读性较好。
为了进一步介绍本公开提供的用户界面自动测试方法,下面将结合图1进行说明。
图1是本公开提供的用户界面自动测试方法的流程示意图之一。
在本公开一示例性实施例中,结合图1可知,用户界面自动测试方法可以包括步骤110至步骤150,下面将分别介绍各步骤。
在步骤110中,确定待测试用户界面,其中,待测试用户界面包括待测试控件。
在一种实施例中,待测试用户界面与待测试控件具有对应关系。在一示例中,待测试用户界面可以是账户登录界面,对应的待测试控件可以是控制账号进行登录的控件。可以理解的是,待测试用户界面还可以是关于其他操作的界面,在本实施例中,不对待测试用户界面作具体限定。
在步骤120中,对待测试用户界面进行用例编写,得到用户界面测试用例,其中,用户界面测试用例为具有自然语言形式的测试用例。
在一种实施例中,可以采用自然语言形式,而非传统脚本语言形式编写关于待测试用户界面的测试用例。其中,自然语言形式的测试用例可以包括文字形式的测试用例和图像形式的测试用例。
继续以用户登录界面为例,用户界面测试用例可以是:在用户名处输入张三,在密码处输入123456,点击登录。在应用过程中,可以根据用户界面测试用例确定对应的待测试控件在待测试用户界面中的控件位置,待获取控件位置后,可以通过对应的脚本执行操作即可完成测试。在本实施例中,编写自然语言形式的测试用例可以降低测试用例的编写成本,对测试团队的代码开发能力要求较低,提高了测试效率。并且由于测试用例的编写成本较低,也便于后期维护,降低后期维护成本。
在步骤130中,基于用户界面测试用例,确定与用户界面测试用例对应的待测试控件在待测试用户界面中的控件位置。
在一种实施例中,可以基于用户界面测试用例,可以把对应的目标对象转化为页面像素位置,实现对待测试控件的定位。进一步的,在获取待测试控件的控件位置后,可以生成用户界面测试用例的脚本命令,并基于脚本命令的执行结果得到用户界面测试用例的测试结果。
在步骤140中,基于控件位置,生成用户界面测试用例的脚本命令,并基于脚本命令的执行结果得到用户界面测试用例的测试结果。
在一种实施例中,结合图2可知,基于控件位置,生成用户界面测试用例的脚本命令的过程可以包括步骤210和步骤220,下面将分别介绍各步骤。
在步骤210中,对用户界面测试用例进行解析,得到与用户界面测试用例匹配的操作对象和操作对象的操作行为。
在步骤220中,基于控件位置、操作对象以及操作对象的操作行为,生成用户界面测试用例的脚本命令。
在一种实施例中,可以对用户界面测试用例进行解析,得到操作对象和操作对象的操作行为。例如,对于用户界面测试用例为在用户名称输入张三,其中,“用户名”可以理解为是操作对象,“输入张三”可以理解为是操作对象的操作行为。对于用户界面测试用例为点击登录按钮,其中,“登录按钮”可以理解为是操作对象,“点击”可以理解为是操作对象的操作行为。
在一种实施例中,可以通过自然语言处理(Natural Language Processing,又称NLP)分词算法将用户界面测试用例进行解析,得到与用户界面测试用例匹配的操作对象和操作对象的操作行为。在一示例中,可以将操作对象和操作对象的操作行为分别存储到数据库中,以方便后续生成脚本命令时进行取用。
进一步的,可以根据控件位置、操作对象以及操作对象的操作行为,生成用户界面测试用例的脚本命令。
在一种实施例中,可以从数据库中读取关于用户界面测试用例的用例信息。其中,用例信息至少可以包括操作对象以及操作对象的操作行为。在应用过程中,可以基于与用户界面测试用例对应的待测试控件在待测试用户界面中的控件位置、操作对象以及操作对象的操作行为,通过appium框架生成执行的脚本命令,并基于脚本命令执行用户界面测试用例。
图3是本公开提供的用户界面测试用例解析的流程示意图。
下面将结合图3对用户界面测试用例解析的过程进行说明。
在本公开一示例性实施例中,结合图3可知,用户界面测试用例解析可以包括步骤310至步骤340,下面将分别介绍各步骤。
在步骤310中,获取前端传递的用户界面测试用例。
在一种实施例中,可以获取前端传递到后端服务器的用户界面测试用例。其中,用户界面测试用例可以为自然语言形式的测试用例。
在步骤320中,利用NLP分词算法对用户界面测试用例进行解析。
在步骤330中,获取用户界面测试用例的操作类型和控件类型。
在步骤340中,将操作类型和控件类型存储至数据库。
其中,用户界面测试用例的操作类型可以对应操作对象的操作行为,控件类型可以对应操作对象。在一种实施例中,可以利用NLP分词算法对用户界面测试用例进行解析,得到与用户界面测试用例匹配的操作对象和操作对象的操作行为。在一示例中,可以将操作对象和操作对象的操作行为分别存储到后端数据库中,以方便后续生成脚本命令时进行取用。
在步骤150中,基于用户界面测试用例的测试结果,生成待测试用户界面的测试报告。
在一种实施例中,待测试用户界面可以对应有多个用户界面测试用例,即在对待测试用户界面进行测试工作时,需要依靠多个用户界面测试用例方可完成。在应用过程中,可以将各个用户界面测试用例的测试结果进行整合,从而得到关于待测试用户界面的测试报告。通过本实施例,在确保对待测试用户界面进行自动测试的前提下,降低了测试用例的编写成本和后期维护成本,并且测试用例的可读性较好。
本公开提供的用户界面自动测试方法,通过对待测试用户界面进行用例编写,可以得到具有自然语言形式的用户界面测试用例,降低了测试用例的编写成本,提高了可读性。再基于用户界面测试用例确定待测试控件在待测试用户界面中的控件位置,获取控件位置后通过对应的脚本执行操作,并基于操作结果生成待测试用户界面的测试报告。通过本公开在确保对待测试用户界面进行自动测试的前提下,降低了测试用例的编写成本和后期维护成本,提高了测试用例的可读性。
在应用过程中,待测试用户界面可以包括文字形式待测试用户界面,例如账户登录界面,还可以包括图像形式待测试用户界面,例如图像广告展示页面。为了准确定位待测试控件在待测试用户界面中的控件位置,进而提高测试准确度和测试效率,针对不同的待测试用户界面,需要采用不同的方式定位控件位置。
下面给将结合图4对文字形式待测试用户界面确定控件位置,并基于控件位置完成用户界面自动测试的过程进行说明。
图4是本公开提供的用户界面自动测试方法的流程示意图之二。
在本公开一示例性实施例中,待测试用户界面可以包括文字形式待测试用户界面,用户界面测试用例可以包括第一用户界面测试用例,其中,第一用户界面测试用例为具有文字形式待测试用户界面展示的特征文字的用户界面测试用例。结合图4可知,用户界面自动测试方法可以包括步骤410至步骤460,其中,步骤410与步骤110、步骤450至步骤460与步骤140至步骤150相同或相似,其具体实施方式和有益效果请参照前文描述,在本实施例中不再赘述,下面将分别介绍步骤420至步骤440。
在步骤420中,对文字形式待测试用户界面进行用例编写,得到第一用户界面测试用例,其中,第一用户界面测试用例为具有文字形式待测试用户界面展示的特征文字的用户界面测试用例。
在一种实施例中,为了实现页面友好提示的效果,可以在web前端设置关于编写用户界面测试用例的语法规则,即可以设置关于操作对象的操作行为的可选项(例如点击、拖拽、上移、下移等)。在一示例中,可以在web前端根据页面提示输入用户界面测试用例。在应用过程中,对于文字形式待测试用户界面,其编写后的用户界面测试用例为具有文字形式待测试用户界面展示的特征文字的第一用户界面测试用例。其中,特征文字可以理解为是关于文字形式待测试用户界面的关键文字,基于该关键文字可以定位到与用户界面测试用例对应的待测试控件在待测试用户界面中的控件位置。
在又一示例中,可以直接输入被测系统前端页面(对应待测试用户界面)展示的文字,以得到第一用户界面测试用例。
在步骤430中,基于第一用户界面测试用例中的特征文字,通过光学字符识别算法在文字形式待测试用户界面中识别出与特征文字对应的识别文字。
在步骤440中,基于识别文字在文字形式待测试用户界面中的位置,确定与用户界面测试用例对应的待测试控件在待测试用户界面中的控件位置。
在一种实施例中,可以通过光学字符识别算法在文字形式待测试用户界面中识别出与特征文字对应的识别文字,并确定出识别文字的中心点位置。进一步的,可以基于识别文字在文字形式待测试用户界面中的位置(对应识别文字的中心点位置),确定与第一用户界面测试用例对应的待测试控件在文字形式待测试用户界面中的控件位置。进一步的,可以基于控件位置、操作对象以及操作对象的操作行为,通过appium框架生成执行的脚本命令,并基于脚本命令执行用户界面测试用例。在本实施例中,通过光学字符识别算法扩展了控件的定位方式,为准确获取控件位置,进而实现对待测试用户界面进行自动测试打下基础。
下面给将结合图5对图像形式待测试用户界面确定控件位置,并基于控件位置完成用户界面自动测试的过程进行说明。
图5是本公开提供的用户界面自动测试方法的流程示意图之三。
在本公开一示例性实施例中,待测试用户界面可以包括图像形式待测试用户界面,用户界面测试用例可以包括第二用户界面测试用例,其中,第二用户界面测试用例为具有基准图像的用户界面测试用例,其中,基准图像为图像形式待测试用户界面的预设区域的图像。
结合图5可知,用户界面自动测试方法可以包括步骤510至步骤560,其中,步骤510与步骤110、步骤550至步骤560与步骤140至步骤150相同或相似,其具体实施方式和有益效果请参照前文描述,在本实施例中不再赘述,下面将分别介绍步骤520至步骤540。
在步骤520中,对图像形式待测试用户界面进行用例编写,得到第二用户界面测试用例,其中,第二用户界面测试用例为具有基准图像的用户界面测试用例,基准图像为图像形式待测试用户界面的预设区域的图像。
在一种实施例中,可以准备基准图像,其中,基准图像可以是图像形式待测试用户界面的预设区域的图像。需要说明的是,预设区域可以根据实际情况进行调整,在本实施例中,不对预设区域作具体限定。在一示例中,可以在被测系统前端页面(对应待测试用户界面)的圈定区域截图保存,以得到基准图像。进一步的,可以基于基准图像得到第二用户界面测试用例。
在步骤530中,基于第二用户界面测试用例中的基准图像,通过图像对比算法在图像形式待测试用户界面中识别出与基准图像对应的识别图像。
在一种实施例中,基于第二用户界面测试用例中的基准图像,通过图像对比算法在图像形式待测试用户界面中识别出与基准图像对应的识别图像可以采用以下方式确定:
基于尺度不变特征变换算法,分别提取基准图像的第一特征点和图像形式待测试用户界面的第二特征点,并基于第一特征点和第二特征点对比,在图像形式待测试用户界面中识别出与基准图像对应的识别图像。
在一种实施例中,由于页面在不同浏览器或终端上分辨率或图像大小不一致,因此可以利用尺度不变特征变换算法提取图像特征点,从而可以提升图像匹配效果。在应用过程中,可以通过特征点对比匹配找到基准图像在图像形式待测试用户界面中位置。
在步骤540中,基于识别图像在图像形式待测试用户界面中的位置,确定与用户界面测试用例对应的待测试控件在待测试用户界面中的控件位置。
在一种实施例中,可以基于尺度不变特征变换算法,分别提取基准图像和图像形式待测试用户界面的特征点,并基于特征点对比,在图像形式待测试用户界面中识别出与基准图像对应的识别图像。进一步的,再基于识别图像在图像形式待测试用户界面中的位置,确定与用户界面测试用例对应的待测试控件在待测试用户界面中的控件位置。进一步的,可以基于控件位置、操作对象以及操作对象的操作行为,通过appium框架生成执行的脚本命令,并基于脚本命令执行用户界面测试用例。在本实施例中,通过图像匹配(对应尺度不变特征变换算法)扩展了控件的定位方式,为准确获取控件位置,进而实现对待测试用户界面进行自动测试打下基础。
为了进一步介绍本公开提供的用户界面自动测试方法,下面将结合图6进行说明。
图6是本公开提供的用户界面自动测试方法的流程示意图之四。
在本公开一示例性实施例中,结合图6可知,用户界面自动测试方法可以包括步骤610至步骤690,下面将分别介绍各步骤。
在步骤610中,获取用户界面测试用例。
在一种实施例中,可以获取前端传递到后端服务器的用户界面测试用例。其中,用户界面测试用例为用自然语言形式的测试用例。
在步骤620中,匹配与用户界面测试用例对应的控件操作类型。
在步骤630中,获取与用户界面测试用例对应的控件定位方式。
在一种实施例中,可以通过NLP分词算法将用户界面测试用例进行解析,得到与用户界面测试用例匹配的操作对象和操作对象的操作行为(对应匹配控件操作类型)。
在一示例中,由于待测试用户界面可以包括文字形式待测试用户界面和图像形式待测试用户界面,对应的用户界面测试用例可以包括第一用户界面测试用例和第二用户界面测试用例。其中,基于不同的用户界面测试用例确定待测试控件在待测试用户界面中的控件位置的定位方式并不相同。
在步骤640中,判断控件定位方式。
在步骤650中,若控件定位方式为文字定位,则基于OCR算法在待测试用户界面中进行文字识别,得到控件定位结果。
在步骤660中,若控件定位方式为图像定位,则基于Sift算法在待测试用户界面中进行图像匹配,得到控件定位结果。
在步骤670中,基于控件定位结果,确定控件位置。
在一示例中,若用户界面测试用例为第一用户界面测试用例,则可以通过光学字符识别算法在文字形式待测试用户界面中识别出与特征文字对应的识别文字,并确定出识别文字的中心点位置(对应控件定位结果)。进一步的,可以基于识别文字在文字形式待测试用户界面中的位置(对应识别文字的中心点位置),确定与第一用户界面测试用例对应的待测试控件在文字形式待测试用户界面中的控件位置。
在又一示例中,若用户界面测试用例为第二用户界面测试用例,则可以基于尺度不变特征变换算法,分别提取基准图像和图像形式待测试用户界面的特征点,并基于特征点对比,在图像形式待测试用户界面中识别出与基准图像对应的识别图像(对应控件定位结果)。进一步的,再基于识别图像在图像形式待测试用户界面中的位置,确定与用户界面测试用例对应的待测试控件在待测试用户界面中的控件位置。
在步骤680中,基于控件位置,生成执行对象。
在步骤690中,基于执行对象,在指定的执行机上执行命令。
在一种实施例中,可以基于控件位置、操作对象以及操作对象的操作行为,通过appium框架生成执行的脚本命令(对应执行对象),并基于脚本命令执行用户界面测试用例,得到用户界面测试用例的测试结果。进一步的,可以基于用户界面测试用例的测试结果,生成待测试用户界面的测试报告。通过本实施例,在确保对待测试用户界面进行自动测试的前提下,降低了测试用例的编写成本和后期维护成本,并且测试用例的可读性较好。
根据上述描述可知,本公开提供的用户界面自动测试方法,通过对待测试用户界面进行用例编写,可以得到具有自然语言形式的用户界面测试用例,降低了测试用例的编写成本,提高了可读性。再基于用户界面测试用例确定待测试控件在待测试用户界面中的控件位置,获取控件位置后通过对应的脚本执行操作,并基于操作结果生成待测试用户界面的测试报告。通过本公开在确保对待测试用户界面进行自动测试的前提下,降低了测试用例的编写成本和后期维护成本,提高了测试用例的可读性。
基于相同的构思,本公开还提供一种用户界面自动测试装置。
下面对本公开提供的用户界面自动测试装置进行描述,下文描述的用户界面自动测试装置与上文描述的用户界面自动测试方法可相互对应参照。
图7是本公开提供的用户界面自动测试装置的结构示意图。
在本公开一示例性实施例中,结合图7可知,用户界面自动测试装置可以包括确定模块710、编写模块720、定位模块730、处理模块740以及生成模块750,下面将分别介绍各模块。
确定模块710可以被配置为用于确定待测试用户界面,其中,待测试用户界面包括待测试控件。
编写模块720可以被配置为用于对待测试用户界面进行用例编写,得到用户界面测试用例,其中,用户界面测试用例为具有自然语言形式的测试用例。
定位模块730可以被配置为用于基于用户界面测试用例,确定与用户界面测试用例对应的待测试控件在待测试用户界面中的控件位置。
处理模块740可以被配置为用于基于控件位置,生成用户界面测试用例的脚本命令,并基于脚本命令的执行结果得到用户界面测试用例的测试结果。
生成模块750可以被配置为用于基于用户界面测试用例的测试结果,生成待测试用户界面的测试报告。
在本公开一示例性实施例中,待测试用户界面可以包括文字形式待测试用户界面,用户界面测试用例可以包括第一用户界面测试用例。
编写模块720可以采用以下方式对待测试用户界面进行用例编写,得到用户界面测试用例:对文字形式待测试用户界面进行用例编写,得到第一用户界面测试用例,其中,第一用户界面测试用例为具有文字形式待测试用户界面展示的特征文字的用户界面测试用例。
定位模块730可以采用以下方式基于用户界面测试用例,确定与用户界面测试用例对应的待测试控件在待测试用户界面中的控件位置:基于第一用户界面测试用例中的特征文字,通过光学字符识别算法在文字形式待测试用户界面中识别出与特征文字对应的识别文字;基于识别文字在文字形式待测试用户界面中的位置,确定与用户界面测试用例对应的待测试控件在待测试用户界面中的控件位置。
在本公开一示例性实施例中,待测试用户界面可以包括图像形式待测试用户界面,用户界面测试用例可以包括第二用户界面测试用例。
编写模块720可以采用以下方式对待测试用户界面进行用例编写,得到用户界面测试用例:对图像形式待测试用户界面进行用例编写,得到第二用户界面测试用例,其中,第二用户界面测试用例为具有基准图像的用户界面测试用例,基准图像为图像形式待测试用户界面的预设区域的图像。
定位模块730可以采用以下方式基于用户界面测试用例,确定与用户界面测试用例对应的待测试控件在待测试用户界面中的控件位置:基于第二用户界面测试用例中的基准图像,通过图像对比算法在图像形式待测试用户界面中识别出与基准图像对应的识别图像;基于识别图像在图像形式待测试用户界面中的位置,确定与用户界面测试用例对应的待测试控件在待测试用户界面中的控件位置。
在本公开一示例性实施例中,图像对比算法可以包括尺度不变特征变换算法。
定位模块730可以采用以下方式基于第二用户界面测试用例中的基准图像,通过图像对比算法在图像形式待测试用户界面中识别出与基准图像对应的识别图像:基于尺度不变特征变换算法,分别提取基准图像的第一特征点和图像形式待测试用户界面的第二特征点,并基于第一特征点和第二特征点对比,在图像形式待测试用户界面中识别出与基准图像对应的识别图像。
在本公开一示例性实施例中,处理模块740可以采用以下方式基于控件位置,生成用户界面测试用例的脚本命令:对用户界面测试用例进行解析,得到与用户界面测试用例匹配的操作对象和操作对象的操作行为;基于控件位置、操作对象以及操作对象的操作行为,生成用户界面测试用例的脚本命令。
图8示例了一种电子设备的实体结构示意图,如图8所示,该电子设备可以包括:处理器(processor)810、通信接口(Communications Interface)820、存储器(memory)830和通信总线840,其中,处理器810,通信接口820,存储器830通过通信总线840完成相互间的通信。处理器810可以调用存储器830中的逻辑指令,以执行用户界面自动测试方法,该方法包括:确定待测试用户界面,其中,所述待测试用户界面包括待测试控件;对待测试用户界面进行用例编写,得到用户界面测试用例,其中,用户界面测试用例为具有自然语言形式的测试用例;基于用户界面测试用例,确定与用户界面测试用例对应的待测试控件在待测试用户界面中的控件位置;基于控件位置,生成用户界面测试用例的脚本命令,并基于脚本命令的执行结果得到用户界面测试用例的测试结果;基于用户界面测试用例的测试结果,生成待测试用户界面的测试报告。
此外,上述的存储器830中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本公开还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,计算机程序可存储在非暂态计算机可读存储介质上,所述计算机程序被处理器执行时,计算机能够执行上述各方法所提供的用户界面自动测试方法,该方法包括:确定待测试用户界面,其中,所述待测试用户界面包括待测试控件;对待测试用户界面进行用例编写,得到用户界面测试用例,其中,用户界面测试用例为具有自然语言形式的测试用例;基于用户界面测试用例,确定与用户界面测试用例对应的待测试控件在待测试用户界面中的控件位置;基于控件位置,生成用户界面测试用例的脚本命令,并基于脚本命令的执行结果得到用户界面测试用例的测试结果;基于用户界面测试用例的测试结果,生成待测试用户界面的测试报告。
又一方面,本公开还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各方法提供的用户界面自动测试方法,该方法包括:确定待测试用户界面,其中,所述待测试用户界面包括待测试控件;对待测试用户界面进行用例编写,得到用户界面测试用例,其中,用户界面测试用例为具有自然语言形式的测试用例;基于用户界面测试用例,确定与用户界面测试用例对应的待测试控件在待测试用户界面中的控件位置;基于控件位置,生成用户界面测试用例的脚本命令,并基于脚本命令的执行结果得到用户界面测试用例的测试结果;基于用户界面测试用例的测试结果,生成待测试用户界面的测试报告。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
进一步可以理解的是,本公开实施例中尽管在附图中以特定的顺序描述操作,但是不应将其理解为要求按照所示的特定顺序或是串行顺序来执行这些操作,或是要求执行全部所示的操作以得到期望的结果。在特定环境中,多任务和并行处理可能是有利的。
最后应说明的是:以上实施例仅用以说明本公开的技术方案,而非对其限制;尽管参照前述实施例对本公开进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本公开各实施例技术方案的精神和范围。
Claims (10)
1.一种用户界面自动测试方法,其特征在于,所述方法包括:
确定待测试用户界面,其中,所述待测试用户界面包括待测试控件;
对所述待测试用户界面进行用例编写,得到用户界面测试用例,其中,所述用户界面测试用例为具有自然语言形式的测试用例;
基于所述用户界面测试用例,确定与所述用户界面测试用例对应的待测试控件在所述待测试用户界面中的控件位置;
基于所述控件位置,生成所述用户界面测试用例的脚本命令,并基于所述脚本命令的执行结果得到所述用户界面测试用例的测试结果;
基于所述用户界面测试用例的测试结果,生成所述待测试用户界面的测试报告。
2.根据权利要求1所述的用户界面自动测试方法,其特征在于,所述待测试用户界面包括文字形式待测试用户界面,所述用户界面测试用例包括第一用户界面测试用例;
所述对所述待测试用户界面进行用例编写,得到用户界面测试用例,具体包括:
对所述文字形式待测试用户界面进行用例编写,得到所述第一用户界面测试用例,其中,所述第一用户界面测试用例为具有所述文字形式待测试用户界面展示的特征文字的用户界面测试用例;
所述基于所述用户界面测试用例,确定与所述用户界面测试用例对应的待测试控件在所述待测试用户界面中的控件位置,具体包括:
基于所述第一用户界面测试用例中的特征文字,通过光学字符识别算法在所述文字形式待测试用户界面中识别出与所述特征文字对应的识别文字;
基于所述识别文字在所述文字形式待测试用户界面中的位置,确定与所述用户界面测试用例对应的待测试控件在所述待测试用户界面中的控件位置。
3.根据权利要求1所述的用户界面自动测试方法,其特征在于,所述待测试用户界面包括图像形式待测试用户界面,所述用户界面测试用例包括第二用户界面测试用例;
所述对所述待测试用户界面进行用例编写,得到用户界面测试用例,具体包括:
对所述图像形式待测试用户界面进行用例编写,得到所述第二用户界面测试用例,其中,所述第二用户界面测试用例为具有基准图像的用户界面测试用例,所述基准图像为所述图像形式待测试用户界面的预设区域的图像;
所述基于所述用户界面测试用例,确定与所述用户界面测试用例对应的待测试控件在所述待测试用户界面中的控件位置,具体包括:
基于所述第二用户界面测试用例中的基准图像,通过图像对比算法在所述图像形式待测试用户界面中识别出与所述基准图像对应的识别图像;
基于所述识别图像在所述图像形式待测试用户界面中的位置,确定与所述用户界面测试用例对应的待测试控件在所述待测试用户界面中的控件位置。
4.根据权利要求3所述的用户界面自动测试方法,其特征在于,所述图像对比算法包括尺度不变特征变换算法;
所述基于所述第二用户界面测试用例中的基准图像,通过图像对比算法在所述图像形式待测试用户界面中识别出与所述基准图像对应的识别图像,具体包括:
基于所述尺度不变特征变换算法,分别提取所述基准图像的第一特征点和所述图像形式待测试用户界面的第二特征点,并基于所述第一特征点和所述第二特征点对比,在所述图像形式待测试用户界面中识别出与所述基准图像对应的识别图像。
5.根据权利要求1所述的用户界面自动测试方法,其特征在于,所述基于所述控件位置,生成所述用户界面测试用例的脚本命令,具体包括:
对所述用户界面测试用例进行解析,得到与所述用户界面测试用例匹配的操作对象和所述操作对象的操作行为;
基于所述控件位置、所述操作对象以及所述操作对象的操作行为,生成所述用户界面测试用例的脚本命令。
6.一种用户界面自动测试装置,其特征在于,所述装置包括:
确定模块,用于确定待测试用户界面,其中,所述待测试用户界面包括待测试控件;
编写模块,用于对所述待测试用户界面进行用例编写,得到用户界面测试用例,其中,所述用户界面测试用例为具有自然语言形式的测试用例;
定位模块,用于基于所述用户界面测试用例,确定与所述用户界面测试用例对应的待测试控件在所述待测试用户界面中的控件位置;
处理模块,用于基于所述控件位置,生成所述用户界面测试用例的脚本命令,并基于所述脚本命令的执行结果得到所述用户界面测试用例的测试结果;
生成模块,用于基于所述用户界面测试用例的测试结果,生成所述待测试用户界面的测试报告。
7.根据权利要求6所述的用户界面自动测试装置,其特征在于,所述待测试用户界面包括文字形式待测试用户界面,所述用户界面测试用例包括第一用户界面测试用例;
所述编写模块采用以下方式对所述待测试用户界面进行用例编写,得到用户界面测试用例:对所述文字形式待测试用户界面进行用例编写,得到所述第一用户界面测试用例,其中,所述第一用户界面测试用例为具有所述文字形式待测试用户界面展示的特征文字的用户界面测试用例;
所述定位模块采用以下方式基于所述用户界面测试用例,确定与所述用户界面测试用例对应的待测试控件在所述待测试用户界面中的控件位置:基于所述第一用户界面测试用例中的特征文字,通过光学字符识别算法在所述文字形式待测试用户界面中识别出与所述特征文字对应的识别文字;基于所述识别文字在所述文字形式待测试用户界面中的位置,确定与所述用户界面测试用例对应的待测试控件在所述待测试用户界面中的控件位置。
8.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至5任一项所述的用户界面自动测试方法。
9.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述的用户界面自动测试方法。
10.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述的用户界面自动测试方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211027012.4A CN117667647A (zh) | 2022-08-25 | 2022-08-25 | 用户界面自动测试方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211027012.4A CN117667647A (zh) | 2022-08-25 | 2022-08-25 | 用户界面自动测试方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117667647A true CN117667647A (zh) | 2024-03-08 |
Family
ID=90064712
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211027012.4A Pending CN117667647A (zh) | 2022-08-25 | 2022-08-25 | 用户界面自动测试方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117667647A (zh) |
-
2022
- 2022-08-25 CN CN202211027012.4A patent/CN117667647A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110275834B (zh) | 用户界面自动化测试系统及方法 | |
US10650231B2 (en) | Method, device and server for recognizing characters of claim document, and storage medium | |
CN110704633A (zh) | 命名实体识别方法、装置、计算机设备及存储介质 | |
KR101917843B1 (ko) | 어플리케이션 ui 자동 생성 방법 및 장치 | |
CN110363222B (zh) | 用于模型训练的图片标注方法、装置、计算机设备及存储介质 | |
CN112381092A (zh) | 跟踪方法、装置及计算机可读存储介质 | |
CN112835807B (zh) | 界面识别方法、装置、电子设备和存储介质 | |
CN112633268A (zh) | 一种基于国产化平台的ocr识别方法及其识别系统 | |
US20230048495A1 (en) | Method and platform of generating document, electronic device and storage medium | |
CN111401465A (zh) | 训练样本优化方法、装置、设备及存储介质 | |
CN117667647A (zh) | 用户界面自动测试方法、装置、电子设备及存储介质 | |
CN115905016A (zh) | 一种BIOS Setup搜索功能测试方法、装置、电子设备及存储介质 | |
CN112989256B (zh) | 识别响应信息中web指纹的方法和装置 | |
CN113849415A (zh) | 控件测试方法、装置、存储介质及电子设备 | |
CN111931465B (zh) | 基于用户操作自动生成用户手册的方法及系统 | |
CN114064010A (zh) | 前端代码生成方法、装置、系统及存储介质 | |
CN114625872A (zh) | 基于全局指针的风险审核方法、系统、设备及存储介质 | |
CN114125342A (zh) | 一种应急操作记录方法及装置 | |
CN110083807B (zh) | 合同的修改影响自动预测方法、装置、介质及电子设备 | |
CN113034182A (zh) | 自动积分方法、系统、服务器和存储介质 | |
CN112559377A (zh) | 一种首次测试用例的生成方法和装置 | |
CN112329854B (zh) | 广告素材图片裁剪校验方法、装置 | |
CN114116512A (zh) | 测试方法、装置、电子设备和存储介质 | |
CN117591243A (zh) | 虚拟机故障检测方法、装置、终端设备以及存储介质 | |
CN115174725A (zh) | 一种基于控件匹配的自动化测试与应用流畅度测试方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |