CN111767214B - 软件ui的自动化测试方法及装置 - Google Patents

软件ui的自动化测试方法及装置 Download PDF

Info

Publication number
CN111767214B
CN111767214B CN202010578349.9A CN202010578349A CN111767214B CN 111767214 B CN111767214 B CN 111767214B CN 202010578349 A CN202010578349 A CN 202010578349A CN 111767214 B CN111767214 B CN 111767214B
Authority
CN
China
Prior art keywords
instruction
screen
document
position information
generating
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
Application number
CN202010578349.9A
Other languages
English (en)
Other versions
CN111767214A (zh
Inventor
区伟
周展鹏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Industrial and Commercial Bank of China Ltd ICBC
Original Assignee
Industrial and Commercial Bank of China Ltd ICBC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Industrial and Commercial Bank of China Ltd ICBC filed Critical Industrial and Commercial Bank of China Ltd ICBC
Priority to CN202010578349.9A priority Critical patent/CN111767214B/zh
Publication of CN111767214A publication Critical patent/CN111767214A/zh
Application granted granted Critical
Publication of CN111767214B publication Critical patent/CN111767214B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy 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)
  • User Interface Of Digital Computer (AREA)

Abstract

本发明提供了一种软件UI的自动化测试方法及装置,所述方法包含:获取操作文档,根据所述操作文档通过语义解释器生成文字搜索指令;根据所述文字搜索指令遍历电脑屏幕并通过预存的方位词库文档检索获得对应的屏幕位置信息,根据所述屏幕位置信息通过预设搜索递进长度于所述电脑屏幕上截取获得图片信息;识别所述图片信息中的目标文字,将所述目标文字与所述文字搜索指令内文字内容比对,根据比对结果生成目标位置信息;根据所述目标位置信息和所述文字搜索指令生成执行指令,通过所述执行指令对所述操作文档指定的软件执行对应操作获得测试结果。

Description

软件UI的自动化测试方法及装置
技术领域
本发明涉及PC软件自动化测试领域,尤指一种软件UI的自动化测试方法及装置。
背景技术
自动化测试一般指的是软件测试的自动化,是个从常规的人工驱动软件测试转为机器执行测试的过程。通常情况下,在设计了测试用例并通过评审后,由测试人员根据测试用例中描述的过程逐步执行测试,得到实际结果与期望结果进行比较。
当前常规的PC软件UI自动化测试的步骤如下:测试人员设计操作步骤,确定界面的操作控件并将控件在显示屏幕上截图并保存在特定路径。测试人员编写测试脚本程序,程序流程的主要步骤为驱动图像识别设备在显示屏幕上查找刚才截取的控件图标。根据图标的查找结果,程序操纵鼠标与键盘对软件界面进行操作,从而实现模拟用户与机器交互行为。
但这一常规的测试模式存在以下缺陷而操作维护成本较高的情况:测试环境操作系统的显示设置发生变动时,例如修改分辨率,图像识别设备通常无法识别新设置下控件图标。如要运行程序需要在新的显示设置下重新截取控件图标。测试环境更换操作系统时,即时显示设置一致,但在不同系统上软件界面显示存在差别,这种情况下图像识别设备也无法识别新设置下控件图标。如要运行程序需要在新的操作系统下重新截取控件图标。软件界面发生变更时,例如增加了控件操作步骤或控件设计变动时,原先截图的图标即不可使用,需要重新截取并替换原图标或新增控件图标后才可继续使用。当测试对象系统处理逻辑复杂分支多的时候,可能需要编写大量的测试脚本。导致脚本编写,程序编译,后期维护的人力成本偏高。
发明内容
本发明目的在于提供一种软件UI的自动化测试方法及装置代替测试人员完成自动化UI测试,在软件界面发生变更时、操作版本变更时等非本质性变更,无需测试人员编写,编译和维护测试代码,予以自适应完成自动化测试。
为达上述目的,本发明所提供的软件UI的自动化测试方法,所述方法包含:获取操作文档,根据所述操作文档通过语义解释器生成文字搜索指令;根据所述文字搜索指令遍历电脑屏幕并通过预存的方位词库文档检索获得对应的屏幕位置信息,根据所述屏幕位置信息通过预设搜索递进长度于所述电脑屏幕上截取获得图片信息;识别所述图片信息中的目标文字,将所述目标文字与所述文字搜索指令内文字内容比对,根据比对结果生成目标位置信息;根据所述目标位置信息和所述文字搜索指令生成执行指令,通过所述执行指令对所述操作文档指定的软件执行对应操作获得测试结果。
在上述的软件UI的自动化测试方法中,优选的,根据所述操作文档通过语义解释器生成文字搜索指令包含:根据预存的方位词库文档和预存的操作词库文档通过语义解释器分析所述操作文档获得操作词语和方位词语;根据所述操作词语、所述方位词语和所述操作文档中对应的输入值生成文字搜索指令。
在上述的软件UI的自动化测试方法中,优选的,根据所述文字搜索指令遍历电脑屏幕并通过预存的方位词库文档检索获得对应的屏幕位置信息包含:根据所述方位词语及遍历电脑屏幕获得的显示尺寸于预存的方位词库文档中获得对应的坐标参考值;根据所述坐标参考值获得屏幕位置信息。
在上述的软件UI的自动化测试方法中,优选的,根据所述屏幕位置信息通过预设搜索递进长度于所述电脑屏幕上截取获得图片信息包含:根据所述预设搜索递进长度获得递进长度取值,根据所述递进长度取值和所述屏幕位置信息生成屏幕截取范围;根据所述屏幕截取范围于所述电脑屏幕上截取获得图片信息。
在上述的软件UI的自动化测试方法中,优选的,识别所述图片信息中的目标文字,将所述目标文字与所述文字搜索指令内文字内容比对还包含:当比对结果不一致时,根据所述预设搜索递进长度调整所述递进长度取值,并重新生成屏幕截取范围;利用重新生成的屏幕截取范围于所述电脑屏幕上截取图片信息并识别目标文字;当所述预设搜索递进长度内所有递进长度取值下生成的屏幕截取范围均无法截取获得比对结果一致的目标文字时,生成提示信号。
在上述的软件UI的自动化测试方法中,优选的,通过所述文字搜索指令于预存数据库中获得对应的执行指令包含:根据所述文字搜索指令中的操作词语的操作类型于预存数据库中获得对应的操作指令函数;根据所述文字搜索指令和所述目标位置信息的中心坐标值生成执行指令。
本发明还提供一种软件UI的自动化测试装置,所述装置包含语义解释模块、数据处理模块和指令执行模块;所述语义解释模块用于获取操作文档,根据所述操作文档通过语义解释器生成文字搜索指令;所述数据处理模块用于根据所述文字搜索指令遍历电脑屏幕并通过预存的方位词库文档检索获得对应的屏幕位置信息,根据所述屏幕位置信息通过预设搜索递进长度于所述电脑屏幕上截取获得图片信息;以及,识别所述图片信息中的目标文字,将所述目标文字与所述文字搜索指令内文字内容比对,根据比对结果生成目标位置信息;所述指令执行模块用于根据所述目标位置信息和所述文字搜索指令生成执行指令,通过所述执行指令对所述操作文档指定的软件执行对应操作获得测试结果。
在上述软件UI的自动化测试装置中,优选的,所述语义解释模块包含:根据预存的方位词库文档和预存的操作词库文档通过语义解释器分析所述操作文档获得操作词语和方位词语;根据所述操作词语、所述方位词语和所述操作文档中对应的输入值生成文字搜索指令。
在上述软件UI的自动化测试装置中,优选的,所述数据处理模块包含位置确定单元,所述位置确定单元用于根据所述方位词语及遍历电脑屏幕获得的显示尺寸于预存的方位词库文档中获得对应的坐标参考值;根据所述坐标参考值获得屏幕位置信息。
在上述软件UI的自动化测试装置中,优选的,所述数据处理模块包含图像采集单元,所述图像采集单元用于根据所述预设搜索递进长度获得递进长度取值,根据所述递进长度取值和所述屏幕位置信息生成屏幕截取范围;根据所述屏幕截取范围于所述电脑屏幕上截取获得图片信息。
在上述软件UI的自动化测试装置中,优选的,所述数据处理模块还包含预警器,所述预警器用于当比对结果不一致时,通过图像采集单元根据所述预设搜索递进长度调整所述递进长度取值,并重新生成屏幕截取范围;利用重新生成的屏幕截取范围于所述电脑屏幕上截取图片信息并识别目标文字;当所述预设搜索递进长度内所有递进长度取值下生成的屏幕截取范围均无法截取获得比对结果一致的目标文字时,生成提示信号。
在上述软件UI的自动化测试装置中,优选的,所述指令执行模块包含:根据所述文字搜索指令中的操作词语的操作类型于预存数据库中获得对应的操作指令函数;根据所述文字搜索指令和所述目标位置信息的中心坐标值生成执行指令。
本发明还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述方法。
本发明还提供一种计算机可读存储介质,,所述计算机可读存储介质存储有执行上述方法的计算机程序。
本发明的有益技术效果在于:1、可自适应各版本操作系统使用。2、无需测试人员事先进行图像处理,可自适应搜索UI控件。3、提供一套通用的指令执行程序,无需测试人员编写,编译及维护测试代码;只需要测试人员通过记事本等文件一次性的描述下测试步骤,执行程序即可自动识别用户意图并驱动测试。4、软件界面发生非本质性的变更时可自适应刷新测试指令。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,并不构成对本发明的限定。在附图中:
图1为本发明一实施例所提供的软件UI的自动化测试方法的流程示意图;
图2A为本发明一实施例所提供的软件UI的自动化测试装置的工作原理示意图;
图2B为本发明一实施例所提供的软件UI的自动化测试装置的工作流程示意图;
图3为本发明一实施例所提供的语义解释模块的工作流程示意图;
图4为本发明一实施例所提供的数据处理模块的工作流程示意图;
图5为本发明一实施例所提供的指令执行模块的工作流程示意图;
图6为本发明一实施例所提供的自动更新模块的工作流程示意图;
图7为本发明一实施例所提供的预警模块的工作流程示意图;
图8为本发明一实施例所提供的电子设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合实施例和附图,对本发明做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。
请参考图1所示,本发明所提供的软件UI的自动化测试方法,所述方法包含:
S101获取操作文档,根据所述操作文档通过语义解释器生成文字搜索指令;
S102根据所述文字搜索指令遍历电脑屏幕并通过预存的方位词库文档检索获得对应的屏幕位置信息,根据所述屏幕位置信息通过预设搜索递进长度于所述电脑屏幕上截取获得图片信息;
S103识别所述图片信息中的目标文字,将所述目标文字与所述文字搜索指令内文字内容比对,根据比对结果生成目标位置信息;
S104根据所述目标位置信息和所述文字搜索指令生成执行指令,通过所述执行指令对所述操作文档指定的软件执行对应操作获得测试结果。
在上述实施例中,根据所述操作文档通过语义解释器生成文字搜索指令包含:根据预存的方位词库文档和预存的操作词库文档通过语义解释器分析所述操作文档获得操作词语和方位词语;根据所述操作词语、所述方位词语和所述操作文档中对应的输入值生成文字搜索指令;其中因所述文字搜索指令包含所述方位词语,因此实际工作中,所述文字搜索指令可含有屏幕搜索范围的。具体的,该语义解释器可采用现有的语义分析模型或其他语法分析算法构件,本发明对此不作进一步限定;所述语义解释器作用在于将用户写入的操作文档转译为文字搜索指令,如将测试员编辑的操作步骤翻译成一系列的软件界面文字搜索指令,并保存到一个文字搜索指令表即文字搜索指令;实际工作中具体流程如下:
一、当获得操作文档后,测试步骤描述过程进行预定语法约束,该描述内容用于表示操作的类别,主要分为三大类:
1、鼠标操作类:
鼠标操作类的语法为:[方位]-鼠标动作-控件,[]表时非必要项,控件用引号或括号等可识别的符号进行描述。例如以下语句都表示在界面上查找并点击[开始]按钮,方位描述非必须的,但配上可以更精确的定位文字所在屏幕上的坐标并减少搜索范围。
左上方点击[开始];
西北方双击[开始];
左边单击[开始];
点击[开始];
2、键盘操作类:
键盘操作类的语法为:[方位]-控件-方位-操作动作-输入值,[]表时非必要项,控件与值用引号或括号等可识别的符号进行描述。例如以下语句都可以表示在界面上输入金额100:
[金额]后输入[100];
左边[金额]后输入[100];
3、结果校验类:
结果校验类的语法为:[方位]-[控件]-动作-信息,[]表时非必要项,控件和信息用引号或括号等可识别的符号进行描述。例如以下语句都可以表示在界面上显示信息[交易成功]:
弹出[交易成功];
显示[交易成功];
中部显示[交易成功];
下部[结果]显示[交易成功];
为便于定义上述操作的类别,在本发明的上述实施例中进一步提供了操作词库文件,用于存储用户可能输入的操作词语,即预存的操作词库文档,其结构如下表1所示:
表1
同时,为确定操作的位置,本发明所提供的预存的方位词库文档可用于存储用户可能输入的方位词语及数据搜索范围,其结构如下表2所示:
表2
基于上述词库文档,还可将所述操作词语、所述方位词语和所述操作文档中对应的输入值生成文字搜索指令调整为指令表格式以便于后续动态存储经语义解释器翻译后的文字搜索指令,其结构如下表3所示:
假设屏幕分辨率为800×600,用户输入某投资交易软件挂单的操作步骤如下:
左上方点击[开始];
[价格]后输入[10.50];
[数量]后输入[100];
点击[买入];
弹出[下单成功];
表3
因系统UI在一定时期内通常是稳定的,只有当UI发生变更时才需要修改操作描述进行文字修正;避免每次执行时都进行一次语义解释及大量刷新文字搜索指令表记录,而造成不必要的资源消耗。在本发明一实施例中,在本发明所提供的软件UI的自动化测试方法中还包含遍历比对环节,亦即,步骤S101中根据所述操作文档通过语义解释器生成文字搜索指令时,可检索已存储内容中是否有相同的文字搜索指令,如有即可直接调用已有的文字搜索指令直接使用,而无需进行上述重新生成的环节;其中,检索环节可通过文件名予以确定各文字搜索指令的标识,例如:
系统新增一个退出功能,语义解释器启动后,读取操作描述信息文件,假设文件命名为<<退出.txt>>,解释器获取文件名“退出”后,开始检索文字搜索指令表中功能名称是“退出”的记录,当检索出记录则说明退出非新增功能,系统自动跳过语义解释这一步骤,只有当检索不到记录时则说明退出功能为新增功能,这时候才需要读取<<退出.txt>>内具体的操作步骤进行语义解释并新增文字搜索指令表的记录。
当系统功能改变时,假设原有的退出功能是一键退出无需确认的,而最新的版本增加了“确定”按钮,这表示UI操作步骤发生变动,原有步骤不再适用,需要修正操作描述,增加一句“点击[确定]”;然后使用启动语义解释器,送入更新退出功能的参数,解释器先自动删除原有“退出”记录,重新生成新的“退出”记录。具体方式见后续实施例中自动更新交易指令的原理描述及语句解释模块的描述,在此就不再详细举例说明。
在本发明一实施例中,根据所述文字搜索指令遍历电脑屏幕并通过预存的方位词库文档检索获得对应的屏幕位置信息包含:根据所述方位词语及遍历电脑屏幕获得的显示尺寸于预存的方位词库文档中获得对应的坐标参考值;根据所述坐标参考值获得屏幕位置信息。因电脑界面上文字内容的大小并非一致的,因此,上述根据所述屏幕位置信息通过预设搜索递进长度于所述电脑屏幕上截取获得图片信息还可包含:根据所述预设搜索递进长度获得递进长度取值,根据所述递进长度取值和所述屏幕位置信息生成屏幕截取范围;根据所述屏幕截取范围于所述电脑屏幕上截取获得图片信息。当比对结果不一致时,根据所述预设搜索递进长度调整所述递进长度取值,并重新生成屏幕截取范围;利用重新生成的屏幕截取范围于所述电脑屏幕上截取图片信息并识别目标文字;当所述预设搜索递进长度内所有递进长度取值下生成的屏幕截取范围均无法截取获得比对结果一致的目标文字时,生成提示信号。
具体的,因语义解释器生成了文字搜索指令后,需要在整个电脑屏幕范围内进行文字搜索,通过确定文字所在的坐标作为后续交易指令执行的模拟屏幕操作依据。如是人工操作,由于人眼视觉可以直接确定控件的具体为止,对于系统自动操作没有了人眼视觉辅助的情况下本发明采用屏幕遍历的方式进行搜索,系统先读取文字搜索指令表取出相关功能的文字搜索指令,接着根据如GUI自动化技术等图像分析技术设置一个屏幕文字搜索器,予以搜索屏幕上展现的文字。屏幕文字搜索器可由一个OCR文字识别服务与一个自动截图程序组成;其中自动截图程序可以根据设置的参数在屏幕的某一个区域进行截图,OCR文字识别服务可以根据用户输入的图像识别出图像上包含了的所有字符(包括各类文字或符号),文字搜索器根据文字搜索指令的顺序通过GUI自动化技术启动应用程序,根据文字搜索指令中的搜索坐标在显示屏幕上调起自动截图程序在程序界面上按10*10,10*20,20*10,20*20.......等方框对屏幕搜索范围内的部分遍历进行截图,并将截图后的图标送入OCR文字识别服务,OCR文字识别服务对送入的图标进行文字扫描,提取出图标中所有的文字,直至提取出的文字仅包含文字搜索指令中的文字或搜索不到目标文字;最后记录下方块即目标位置信息所在的中心坐标,并结合文字搜索指令合并生成最终交易指令保存到交易指令表。
为便于理解坐标遍历搜索过程的具体实施流程,以下以具体实例为例对上述流程做详细说明,本领域相关技术人员当可知,该流程并不对本发明做任何限定:
假设屏幕分辨率是800×600,在屏幕的左上方有汉字词语“开始”,通过以下定位“开始”所在的坐标。
1.因为明确指示了是左上方,所以经过语义解释后写入文字搜索指令表中记录的“搜索起点X坐标”的值应该是0,“搜索起点Y坐标”的值应该是0,“搜索终点X坐标”的值是400,“搜索终点Y坐标”的值是300,故整个屏幕最大搜索范围是从(0,0)到(400,300)。
2.根据屏幕最大搜索范围的大小与搜索文字的长短与字体大小设置一个合适的搜索递进长度,X轴与Y轴方向上各设置一个。假设搜索的文字“开始”长度短,则可给X轴上设置一个较小的搜索递进长度10。Y轴上根据软件界面整体的显示字体风格也设置一个适当的搜索递进长度,假设X轴上搜索两个汉字,长度为10,Y轴上只需要容纳一个汉字的高度,可将Y轴递进长度设定为10/2,即5。
3.将屏幕左上方顶端的坐标设置为(0,0),X轴数值向右递增,Y轴值向下递增,通过自动截屏程序截取屏幕上(0,0)至(10,5)这个区域的图像送入OCR文字识别服务。
如果OCR文字识别服务从图像中识别出文字“开始”且不存在其他文字,则将“开始”的坐标认定为这个区域中心坐标(5,2)或(5,3)。
如果OCR文字识别服务从图像中识别没有识别出文字“开始”,则根据搜索递进长度将搜索范围向X轴与Y轴发散进行变化从(10,0)到(20,5)或(0,5)到(10,10),重新截图送入OCR文字识别服务进行识别直到识别出文字“开始”且不存在其他文字或X轴递进到400且Y轴递进到300也没有找到目标。
如果可识别出“开始”且又包含了其他文字,这个则将屏幕400×300的搜索范围缩小为当前这个截取的屏幕区域,同时将X轴的搜索递进长度按压缩比例设置为一个小于10的值(例如递进长度压缩为原来的20%变为2),Y轴的搜索递进长度可不做压缩或极小比例的压缩,从这个区域的左上顶点开始按照新的搜索递进长度重新开始搜索,直到找出有且仅包含“开始”的那个区域,将该区域的中心坐标认定为“开始”的所在坐标。
如果可识别出了部分汉字,则表明可能需要暂时在原搜索区域的基础上在X轴上扩大搜索的范围。例如从(0,0)至(10,5)这个区域搜索到了“开”而没找到“始”,则将屏幕搜索范围扩大一个递进长度,从(0,0)到(20,5)直到完全包含“开始”为止。
上述实施例与步骤S101中的语义解释器同理,常规情况下步骤S102和步骤S103在整个测试周期内也仅需执行一次即可,只有在UI变更导致执行异常时,才需要重新执行指令刷新,由此避免每次执行时都进行一次遍历屏幕的控件坐标定位与执行指令生成而造成不必要的开销。区别于语义解释器的是其在任何情况下都无需人工介入,首次启动时在语义解释器处理完毕后调用触发,步骤S104处理异常时可通过调用自动更新逻辑来进行启动,其中所述自动更新逻辑将在后续实施例中说明。
在本发明一实施例中,通过所述文字搜索指令于预存数据库中获得对应的执行指令包含:根据所述文字搜索指令中的操作词语的操作类型于预存数据库中获得对应的操作指令函数;根据所述文字搜索指令和所述目标位置信息的中心坐标值生成执行指令;或,根据所述文字搜索指令和所述目标位置信息的中心坐标值生成执行指令。在实际工作中,第一种方式可根据预设指令表,根据预设指令表中对应的操作类型提取相应的操作指令函数,利用该操作指令函数和目标位置信息生成执行指令;而第二种方式则为所述执行指令结构可存入一交易指令表中,通过依序执行交易指令表完成对应操作,所述交易指令表如下所示:
假设屏幕分辨率为800×600,用户输入某投资交易软件挂单的操作步骤如下:
左上方点击[开始];
[价格]后输入[10.50];
[数量]后输入[100];
点击[买入];
弹出[下单成功];
经文字搜索及数据处理后:
[开始]中心坐标位于(20,20);
[价格]中心坐标位于(50,150),输入场在[价格]后,(100,150)起可输入文字;
[数量]中心坐标位于(50,2000),输入场在[价格]后,(100,200)起可输入文字;
[买入]中心坐标位于(200,250);
[下单成功]在(100,100)到(200,200)的范围内;
将“点击”用指令执行的函数名“Click”表示,“输入”用指令执行的函数名“Type”表示,“弹出”用指令执行的函数名“Check”表示,写入交易指令表,如下表4所示:
表4
在该实施例中,因文字搜索指令已转换为执行指令,为此实际工作中还可构建指令执行器来避免用户因系统细分功能的差异而需要编制大量测试脚本耗费工作量的目的;具体的,可将所述执行指令存入一交易指令表中如上述表4,通过启动指令执行器,按交易指令表的顺序执行通过GUI自动化技术模拟用户交易,交易指令完整执行一次即代表完成一次交易场景的自动化测试;可以说通常情况下除首次启动或UI变更等特殊情况外,指令执行器是测试系统执行期间唯一启动的装置。
在本发明一实施例中,当UI变更等特殊情况发生时,交易指令可能会因为控件坐标变更的原因出现异常状况;此时需要执行自动更新逻辑,亦即重新进行一次文字搜索和数据处理更新一次交易指令表,如软件的变更属于控件布局调整等小变动,即可再次执行步骤S102和步骤S103进行指令更新后即可使用,当交易指令自动更新后仍旧执行失败时启动,可生成告警信息,予以给用户发送失败提示。
本发明还提供一种软件UI的自动化测试装置,所述装置包含语义解释模块、数据处理模块和指令执行模块;所述语义解释模块用于获取操作文档,根据所述操作文档通过语义解释器生成文字搜索指令;所述数据处理模块用于根据所述文字搜索指令遍历电脑屏幕并通过预存的方位词库文档检索获得对应的屏幕位置信息,根据所述屏幕位置信息通过预设搜索递进长度于所述电脑屏幕上截取获得图片信息;以及,识别所述图片信息中的目标文字,将所述目标文字与所述文字搜索指令内文字内容比对,根据比对结果生成目标位置信息;所述指令执行模块用于根据所述目标位置信息和所述文字搜索指令生成执行指令,通过所述执行指令对所述操作文档指定的软件执行对应操作获得测试结果。其中,所述指令执行模块包含:根据所述文字搜索指令中的操作词语的操作类型于预存数据库中获得对应的操作指令函数;根据所述文字搜索指令和所述目标位置信息的中心坐标值生成执行指令。
在上述实施例中,所述语义解释模块包含:根据预存的方位词库文档和预存的操作词库文档通过语义解释器分析所述操作文档获得操作词语和方位词语;根据所述操作词语、所述方位词语和所述操作文档中对应的输入值生成文字搜索指令。其中,所述文字搜索指令的具体实现方式已在前述实施例中详细说明,在此就不再复述。
在本发明一实施例中,所述数据处理模块包含位置确定单元,所述位置确定单元用于根据所述方位词语及遍历电脑屏幕获得的显示尺寸于预存的方位词库文档中获得对应的坐标参考值;根据所述坐标参考值获得屏幕位置信息。进一步的,所述数据处理模块包含图像采集单元,所述图像采集单元用于根据所述预设搜索递进长度获得递进长度取值,根据所述递进长度取值和所述屏幕位置信息生成屏幕截取范围;根据所述屏幕截取范围于所述电脑屏幕上截取获得图片信息。
所述数据处理模块还可包含预警器,所述预警器用于当比对结果不一致时,通过图像采集单元根据所述预设搜索递进长度调整所述递进长度取值,并重新生成屏幕截取范围;利用重新生成的屏幕截取范围于所述电脑屏幕上截取图片信息并识别目标文字;当所述预设搜索递进长度内所有递进长度取值下生成的屏幕截取范围均无法截取获得比对结果一致的目标文字时,生成提示信号。具体,请参考图2A所示,实际工作中,语义解释器翻译用户操作变为文字搜索指令,数据处理器读取文字搜索指令,根据指令调起GUI文字搜索设备与GUI自动处理设备并驱动其搜索控件文字并定位坐标并返回,数据处理器收到返回的坐标定位后生成执行指令并传给指令执行器;指令执行器根据指令执行结果输出正常测试的执行结果或进行指令更新或向用户预警。该过程可参考图2B所示,流程如下:S201用户录入信息通过语义解释模式翻译成文字搜索指令。S202数据处理模块根据文字搜索指令定位控件坐标后生成执行指令。S203指令执行模块根据执行指令逐条执行,如执行失败则进入步骤S204,否则认为执行成功。S204自动更新模块会重复一次步骤S202与步骤S203,如步骤S203执行失败则进行步骤S205,否则认为执行成功。S205预警模块给用户发送执行失败信息。
具体的,在上述实施例中,所述语义解释模块在实际工作中的工作流程可参考图3所示:
S301判断是否人工介入启动,如果是人工介入启动则直接读取对应的操作步骤文本文件后进入S303,否则进入S302。
S302获取全量的操作文本文件名,根据文件名逐一检索文字搜索指令表。如果检索出记录则跳过不处理,否则取对应的操作步骤文本文件后进入S303。
S303系统读取操作词库文件与方位词库文件,找出所有的操作词语,与方位词语。
S304系统读取用户输入的操作步骤,查找用户输入中是否包含且唯一包含一个操作词语,根据匹配的操作词确定该步骤的性质是鼠标操作类或键盘操作类又或是结果校验类。
S305根据确定后的语句性质与语法规则检索步骤中是否包含方位词语。如果含有方位词则根据屏幕的大小与词库中的坐标参照值确定文字搜索的范围。
S306根据特殊符号([]或”等等)找到语句中的操作对象。
S307根据前面获得的语句性质,搜索范围,操作对象生成文字搜索指令。
S308返回至S304,逐行生成并存储对应的文字搜索指令。
在本发明一实施例中,所述数据处理模块在实际工作中的工作流程可参考图4所示:
S401系统预置一个搜索递进长度,例如X轴与Y轴方向均为20。
S402系统自行启动测试对象软件。
S403系统读取文字搜索指令与搜索递进长度。
S404根据文字搜索指令中的起点XY坐标(假设是0,0)与搜索递进长度20。搜索(0,0)至(20,20)这个方块中是否包含搜索指令中的操作对象文字。如果不包含操作对象则按递进长度位移方框或按递进长度扩大方框继续搜索,直至搜索到操作对象或搜索范围遍历完毕也无法找到对象为止。
S405如果S403中搜索到操作对象则记录下方框所在位置的中心坐标后进入S407。
S406如果S403中搜索不到操作对象则清除所有已生成的文字搜索指令,并给用户返回错误信息后结束退出。
S407根据语句性质,操作对象的中心坐标与值生成并存储为交易执行指令。
S408系统根据交易执行指令自行驱动鼠标或键盘操作测试对象软件进入下一操作界面。
S409返回至S403,逐行生成并存储对应的交易执行指令。
在本发明一实施例中,所述指令执行模块在实际工作中的工作流程可参考图5所示:
S501系统按序号读取交易执行指令表取出需要自动执行的交易指令。
S502系统自行启动测试对象软件。
S503系统根据交易执行指令自行驱动鼠标或键盘操作测试对象软件。如果逐条指令均正常执行完毕则正常退出,否则进入S504。
S504启动自动更新模块。
上述自动更新模块所执行操作与前述的自动更新逻辑类似,如图6所示:
S601启动数据处理模块,将数据模块的步骤完整执行一次,生成新的交易执行指令;如果指令生成过程出现异常则进入S602。
S602将异常信息传入并唤醒预警模块。
请参考图7所示,关于所述预警模块在本发明一实施例中还可包含:
S701系统预置一个目标电子邮箱。
S702当该模块被自动更新模块唤醒后,将传入的异常信息通过邮件形式发送至目标邮箱。
本发明的有益技术效果在于:1、可自适应各版本操作系统使用。2、无需测试人员事先进行图像处理,可自适应搜索UI控件。3、提供一套通用的指令执行程序,无需测试人员编写,编译及维护测试代码;只需要测试人员通过记事本等文件一次性的描述下测试步骤,执行程序即可自动识别用户意图并驱动测试。4、软件界面发生非本质性的变更时可自适应刷新测试指令。
本发明还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述方法。
本发明还提供一种计算机可读存储介质,,所述计算机可读存储介质存储有执行上述方法的计算机程序。
如图8所示,该电子设备600还可以包括:通信模块110、输入单元120、音频处理单元130、显示器160、电源170。值得注意的是,电子设备600也并不是必须要包括图8中所示的所有部件;此外,电子设备600还可以包括图8中没有示出的部件,可以参考现有技术。
如图8所示,中央处理器100有时也称为控制器或操作控件,可以包括微处理器或其他处理器装置和/或逻辑装置,该中央处理器100接收输入并控制电子设备600的各个部件的操作。
其中,存储器140,例如可以是缓存器、闪存、硬驱、可移动介质、易失性存储器、非易失性存储器或其它合适装置中的一种或更多种。可储存上述与失败有关的信息,此外还可存储执行有关信息的程序。并且中央处理器100可执行该存储器140存储的该程序,以实现信息存储或处理等。
输入单元120向中央处理器100提供输入。该输入单元120例如为按键或触摸输入装置。电源170用于向电子设备600提供电力。显示器160用于进行图像和文字等显示对象的显示。该显示器例如可为LCD显示器,但并不限于此。
该存储器140可以是固态存储器,例如,只读存储器(ROM)、随机存取存储器(RAM)、SIM卡等。还可以是这样的存储器,其即使在断电时也保存信息,可被选择性地擦除且设有更多数据,该存储器的示例有时被称为EPROM等。存储器140还可以是某种其它类型的装置。存储器140包括缓冲存储器141(有时被称为缓冲器)。存储器140可以包括应用/功能存储部142,该应用/功能存储部142用于存储应用程序和功能程序或用于通过中央处理器100执行电子设备600的操作的流程。
存储器140还可以包括数据存储部143,该数据存储部143用于存储数据,例如联系人、数字数据、图片、声音和/或任何其他由电子设备使用的数据。存储器140的驱动程序存储部144可以包括电子设备的用于通信功能和/或用于执行电子设备的其他功能(如消息传送应用、通讯录应用等)的各种驱动程序。
通信模块110即为经由天线111发送和接收信号的发送机/接收机110。通信模块(发送机/接收机)110耦合到中央处理器100,以提供输入信号和接收输出信号,这可以和常规移动通信终端的情况相同。
基于不同的通信技术,在同一电子设备中,可以设置有多个通信模块110,如蜂窝网络模块、蓝牙模块和/或无线局域网模块等。通信模块(发送机/接收机)110还经由音频处理器130耦合到扬声器131和麦克风132,以经由扬声器131提供音频输出,并接收来自麦克风132的音频输入,从而实现通常的电信功能。音频处理器130可以包括任何合适的缓冲器、解码器、放大器等。另外,音频处理器130还耦合到中央处理器100,从而使得可以通过麦克风132能够在本机上录音,且使得可以通过扬声器131来播放本机上存储的声音。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种软件UI的自动化测试方法,其特征在于,所述方法包含:
获取操作文档,根据所述操作文档通过语义解释器生成文字搜索指令;
根据所述文字搜索指令遍历电脑屏幕并通过预存的方位词库文档检索获得对应的屏幕位置信息,根据所述屏幕位置信息通过预设搜索递进长度于所述电脑屏幕上截取获得图片信息;
识别所述图片信息中的目标文字,将所述目标文字与所述文字搜索指令内文字内容比对,根据比对结果生成目标位置信息;
根据所述目标位置信息和所述文字搜索指令生成执行指令,通过所述执行指令对所述操作文档指定的软件执行对应操作获得测试结果;
根据所述操作文档通过语义解释器生成文字搜索指令包含:
根据预存的方位词库文档和预存的操作词库文档通过语义解释器分析所述操作文档获得操作词语和方位词语;根据所述操作词语、所述方位词语和所述操作文档中对应的输入值生成文字搜索指令;
根据所述文字搜索指令遍历电脑屏幕并通过预存的方位词库文档检索获得对应的屏幕位置信息包含:根据所述方位词语及遍历电脑屏幕获得的显示尺寸于预存的方位词库文档中获得对应的坐标参考值;根据所述坐标参考值获得屏幕位置信息。
2.根据权利要求1所述的软件UI的自动化测试方法,其特征在于,根据所述屏幕位置信息通过预设搜索递进长度于所述电脑屏幕上截取获得图片信息包含:
根据所述预设搜索递进长度获得递进长度取值,根据所述递进长度取值和所述屏幕位置信息生成屏幕截取范围;
根据所述屏幕截取范围于所述电脑屏幕上截取获得图片信息。
3.根据权利要求2所述的软件UI的自动化测试方法,其特征在于,识别所述图片信息中的目标文字,将所述目标文字与所述文字搜索指令内文字内容比对还包含:
当比对结果不一致时,根据所述预设搜索递进长度调整所述递进长度取值,并重新生成屏幕截取范围;
利用重新生成的屏幕截取范围于所述电脑屏幕上截取图片信息并识别目标文字;
当所述预设搜索递进长度内所有递进长度取值下生成的屏幕截取范围均无法截取获得比对结果一致的目标文字时,生成提示信号。
4.根据权利要求1所述的软件UI的自动化测试方法,其特征在于,根据所述目标位置信息和所述文字搜索指令生成执行指令包含:
根据所述文字搜索指令中的操作词语的操作类型于预存数据库中获得对应的操作指令函数;
根据所述文字搜索指令和所述目标位置信息的中心坐标值生成执行指令。
5.一种软件UI的自动化测试装置,其特征在于,所述装置包含语义解释模块、数据处理模块和指令执行模块;
所述语义解释模块用于获取操作文档,根据所述操作文档通过语义解释器生成文字搜索指令;
所述数据处理模块用于根据所述文字搜索指令遍历电脑屏幕并通过预存的方位词库文档检索获得对应的屏幕位置信息,根据所述屏幕位置信息通过预设搜索递进长度于所述电脑屏幕上截取获得图片信息;以及,识别所述图片信息中的目标文字,将所述目标文字与所述文字搜索指令内文字内容比对,根据比对结果生成目标位置信息;
所述指令执行模块用于根据所述目标位置信息和所述文字搜索指令生成执行指令,通过所述执行指令对所述操作文档指定的软件执行对应操作获得测试结果;
所述语义解释模块包含:根据预存的方位词库文档和预存的操作词库文档通过语义解释器分析所述操作文档获得操作词语和方位词语;根据所述操作词语、所述方位词语和所述操作文档中对应的输入值生成文字搜索指令;
所述数据处理模块包含位置确定单元,所述位置确定单元用于根据所述方位词语及遍历电脑屏幕获得的显示尺寸于预存的方位词库文档中获得对应的坐标参考值;根据所述坐标参考值获得屏幕位置信息。
6.根据权利要求5所述的软件UI的自动化测试装置,其特征在于,所述数据处理模块包含图像采集单元,所述图像采集单元用于根据所述预设搜索递进长度获得递进长度取值,根据所述递进长度取值和所述屏幕位置信息生成屏幕截取范围;根据所述屏幕截取范围于所述电脑屏幕上截取获得图片信息。
7.根据权利要求6所述的软件UI的自动化测试装置,其特征在于,所述数据处理模块还包含预警器,所述预警器用于当比对结果不一致时,通过图像采集单元根据所述预设搜索递进长度调整所述递进长度取值,并重新生成屏幕截取范围;利用重新生成的屏幕截取范围于所述电脑屏幕上截取图片信息并识别目标文字;当所述预设搜索递进长度内所有递进长度取值下生成的屏幕截取范围均无法截取获得比对结果一致的目标文字时,生成提示信号。
8.根据权利要求5所述的软件UI的自动化测试装置,其特征在于,所述指令执行模块包含:根据所述文字搜索指令中的操作词语的操作类型于预存数据库中获得对应的操作指令函数;根据所述文字搜索指令和所述目标位置信息的中心坐标值生成执行指令。
9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至4任一所述方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1至4任一项所述的软件UI的自动化测试方法。
CN202010578349.9A 2020-06-23 2020-06-23 软件ui的自动化测试方法及装置 Active CN111767214B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010578349.9A CN111767214B (zh) 2020-06-23 2020-06-23 软件ui的自动化测试方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010578349.9A CN111767214B (zh) 2020-06-23 2020-06-23 软件ui的自动化测试方法及装置

Publications (2)

Publication Number Publication Date
CN111767214A CN111767214A (zh) 2020-10-13
CN111767214B true CN111767214B (zh) 2023-08-11

Family

ID=72721645

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010578349.9A Active CN111767214B (zh) 2020-06-23 2020-06-23 软件ui的自动化测试方法及装置

Country Status (1)

Country Link
CN (1) CN111767214B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112506778A (zh) * 2020-12-10 2021-03-16 北京云测信息技术有限公司 Web用户界面自动化测试方法、装置、设备和存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103942212A (zh) * 2013-01-21 2014-07-23 腾讯科技(深圳)有限公司 一种用户界面的文字检测方法及装置
CN109857645A (zh) * 2019-01-02 2019-06-07 广州云测信息技术有限公司 一种针对应用程序的自动化测试方法及装置
CN110879777A (zh) * 2019-10-12 2020-03-13 平安普惠企业管理有限公司 应用界面的控件测试方法、装置、计算机设备及存储介质

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103942212A (zh) * 2013-01-21 2014-07-23 腾讯科技(深圳)有限公司 一种用户界面的文字检测方法及装置
CN109857645A (zh) * 2019-01-02 2019-06-07 广州云测信息技术有限公司 一种针对应用程序的自动化测试方法及装置
CN110879777A (zh) * 2019-10-12 2020-03-13 平安普惠企业管理有限公司 应用界面的控件测试方法、装置、计算机设备及存储介质

Also Published As

Publication number Publication date
CN111767214A (zh) 2020-10-13

Similar Documents

Publication Publication Date Title
CN110164435A (zh) 语音识别方法、装置、设备及计算机可读存储介质
CN108762743B (zh) 一种数据表操作代码生成方法及装置
US11126938B2 (en) Targeted data element detection for crowd sourced projects with machine learning
CN109360550A (zh) 语音交互系统的测试方法、装置、设备和存储介质
US20160370959A1 (en) Method and device for updating input method system, computer storage medium, and device
CN112597065B (zh) 页面测试方法和装置
CN109324956B (zh) 系统测试方法、设备及计算机可读存储介质
CN111767214B (zh) 软件ui的自动化测试方法及装置
CN110275938B (zh) 基于非结构化文档的知识提取方法及系统
US10929159B2 (en) Automation tool
CN105550114A (zh) 自动化测试方法、装置和移动终端
CN113591491B (zh) 语音翻译文本校正系统、方法、装置及设备
JP2013077159A (ja) テスト自動化システム
KR101563494B1 (ko) 파일 변경에 따른 실시간 소스코드 보안 약점 탐지 장치 및 방법
CN111460235A (zh) 图谱数据的处理方法、装置、设备及存储介质
US20240045904A1 (en) System and method of providing search and replace functionality for videos
CN116150029A (zh) 一种贷款系统逾期跑批自动化测试方法及装置
CN113076262B (zh) 网页自动化测试方法及装置
CN111782521B (zh) 一种打印自动化测试方法及装置
CN108959006A (zh) 一种硬件检测方法及其工具
CN113535970A (zh) 信息处理方法和装置、电子设备以及计算机可读存储介质
CN112685328B (zh) 一种图形界面测试方法、装置及存储介质
US11741302B1 (en) Automated artificial intelligence driven readability scoring techniques
CN113064588B (zh) 命令编排方法、装置及计算机可读介质
CN108304430B (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
GR01 Patent grant
GR01 Patent grant