CN114371986A - 用户界面测试用例更新方法、装置及存储介质 - Google Patents

用户界面测试用例更新方法、装置及存储介质 Download PDF

Info

Publication number
CN114371986A
CN114371986A CN202011119489.6A CN202011119489A CN114371986A CN 114371986 A CN114371986 A CN 114371986A CN 202011119489 A CN202011119489 A CN 202011119489A CN 114371986 A CN114371986 A CN 114371986A
Authority
CN
China
Prior art keywords
control
page
interaction
information
test case
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
Application number
CN202011119489.6A
Other languages
English (en)
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.)
China Mobile Communications Group Co Ltd
China Mobile Communications Ltd Research Institute
Original Assignee
China Mobile Communications Group Co Ltd
China Mobile Communications Ltd Research Institute
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 China Mobile Communications Group Co Ltd, China Mobile Communications Ltd Research Institute filed Critical China Mobile Communications Group Co Ltd
Priority to CN202011119489.6A priority Critical patent/CN114371986A/zh
Publication of CN114371986A publication Critical patent/CN114371986A/zh
Pending legal-status Critical Current

Links

Images

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/368Test management for test version control, e.g. updating test cases to a new software version

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)
  • Stored Programmes (AREA)

Abstract

本发明公开了一种用户界面测试用例更新方法、装置及存储介质。该方法包括:确定UI测试用例配置的页面控件信息匹配目标版本的软件产品配置的页面控件信息;基于第一交互信息和第二交互信息,更新UI测试用例的交互控制策略;其中,第一交互信息表征UI测试用例的页面层的第一交互控制策略;第二交互信息表征UI测试用例的用例层的第二交互控制策略。使得页面层的更新与用例层的更新可以分步执行,且仅需要维护第一交互信息及第二交互信息,即可快速实现UI测试用例的更新,利于提升UI测试用例的更新效率及简化用例更新的维护量。

Description

用户界面测试用例更新方法、装置及存储介质
技术领域
本发明涉及软件测试领域,尤其涉及一种用户界面(User Interface,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测试用例更新方法的流程示意图;
图2为本发明应用示例的基于POM的自动化测试框架的结构示意图;
图3为本发明应用示例的UI测试用例更新方法的流程示意图;
图4为本发明应用示例的基于SSIM的图像相似度算法获取页面控件差异信息的流程示意图;
图5为本发明应用示例的简单登陆页面更新前后的界面示意图;
图6为本发明应用示例页面控件库更新模块的更新策略的流程示意图;
图7为本发明应用示例页面控件库更新模块的更新策略的另一流程示意图;
图8为本发明应用示例交互更新的原理示意图;
图9为本发明实施例用户界面测试用例更新装置的结构示意图;
图10为本发明实施例用户界面测试用例更新设备的结构示意图。
具体实施方式
下面结合附图及实施例对本发明再作进一步详细的描述。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。
本发明实施例UI测试用例更新方法针对的软件产品可以包括但不限于:小程序(即不需要下载安装即可使用的应用)、Web应用(即通过浏览器访问的应用)、APP(即普通的应用)等。其中,Web应用新版本上线后,页面功能若有变化,需要对相应的UI测试用例进行更新;而APP、小程序等软件产品一般在线上都同时存在多个版本,也需要分版本维护UI测试用例。因此,都需要解决当线上版本(历史版本)更新到最新版本(目标版本)后UI测试用例的更新问题。
相关技术中,测试人员更新UI测试用例,往往需要完成以下三个步骤:
第一步,提取历史版本页面的所有控件,维护控件库;
由于非人工操作下,历史版本与目标版本控件变化不可知,为对比两者区别,需要首先通过程序获取历史版本页面的所有控件,比如,基于页面对象模式(Page ObjectModel,POM),按照页面标识分页面保存,构成历史版本的页面控件库。
第二步,将历史版本的页面控件库和目标版本的页面控件库进行对比,更新UI测试用例中有变化的控件;
对于每个页面,需要遍历该页面下的所有控件,判断控件是否有新增、修改或删除,针对每种情况,分别在UI测试代码中该页面对象下新增、修改或删除该控件元素属性。
第三步,更新UI测试用例中页面控件所关联的操作步骤。
在页面中有控件变化的前提下,除了需要对页面对象中的控件元素进行修改,还需要对控件上关联的操作步骤进行修改,以达到更新后的UI测试用例能够覆盖新产品交互功能测试的目的。
上述方案,由于仅针对页面控件和页面控件所关联的操作步骤两个层次进行讨论,难以满足基于POM的测试框架完成的UI测试用例的更新需求;此外,考虑到需要与历史版本进行对比,程序事先无法感知页面变动的精确范围,需提取页面全部控件供对比分析,然而,每个页面的元素往往很多,而且并非所有控件都为UI测试用例所使用,导致资源浪费;再次,更新UI测试用例时,需要对页面对象的方法进行筛选,确定更新所涉及的方法,然后修改具体程序代码,修改用例层方法也同理。虽然UI测试框架会封装页面控件操作公共方法,但是当页面方法众多,方法中所涉及的关键步骤众多,导致代码量大并且搜索困难,更新效率较低。
基于此,在本发明的各种实施例中,将UI测试用例的更新分解为页面控件信息、页面层的第一交互控制策略及用例层的第二交互控制策略的更新,由于UI测试用例的交互更新分解为基于第一交互信息的页面层的更新和基于第二交互信息的用例层的更新,使得页面层的更新与用例层的更新可以分步执行,且仅需要维护第一交互信息及第二交互信息,即可快速实现UI测试用例的更新,利于提升UI测试用例的更新效率及简化用例更新的维护量。
如图1所示,本发明实施例提供了一种UI测试用例更新方法,包括:
步骤101,确定UI测试用例配置的页面控件信息匹配目标版本的软件产品配置的页面控件信息;
步骤102,基于第一交互信息和第二交互信息,更新所述UI测试用例的交互控制策略。
这里,所述第一交互信息表征所述UI测试用例的页面层的第一交互控制策略;所述第二交互信息表征所述UI测试用例的用例层的第二交互控制策略。
可以理解的是,UI测试用例可以模拟用户操作,实现对软件产品的界面及功能进行检验。这里,目标版本可以是指相对于软件产品的线上版本存在更新的最新版本,通过设计相应的UI测试用例,可以完成对待上线的软件产品的UI测试,利于加快软件产品的上线。实际应用中,UI测试用例的数量可以为多个,从而构成软件产品的UI测试的测试用例库。
这里,页面层的第一交互控制策略可以理解为页面层对应的交互方法,比如,可以包括一系列操作步骤,每个操作步骤可以由页面控件调用页面基类中封装的页面操作接口完成。
这里,用例层的第二交互控制策略可以理解为用例层对应的交互方法,比如,可以包括一系列页面操作,还可以包括对测试用例结果进行校验的方法,即用例层的交互方法调用的对象不仅包括页面对象,还可以包括用例类的校验方法。
在一些实施例中,所述第一交互信息包括:页面方法标识及所述页面方法标识的第一配置信息,所述第一配置信息包括:用于区分控件的控件标识、用于指示控件的动作类型的控件操作及用于指示所述控件操作对应的参数的操作数;所述第二交互信息包括:测试用例标识及所述测试用例标识的第二配置信息,所述第二配置信息包括:用于区分测试用例调用的不同对象的对象标识、用于指示对象的操作行为的操作方法及用于指示所述操作方法对应的参数的关联参数。
相应地,步骤102中,所述基于第一交互信息和第二交互信息,更新所述UI测试用例的交互控制策略,包括以下至少之一:
确定所述第一交互信息存在更新,基于更新后的所述第一交互信息更新所述第一交互控制策略;
确定所述第二交互信息存在更新,基于更新后的所述第二交互信息更新所述第二交互控制策略。
如此,可以基于关键字式的第一交互信息和第二交互信息,实现UI测试用例的交互控制策略的更新。从而在交互发生更新时,测试人员无需处理冗长程序,只需对第一交互信息和第二交互信息进行更新,可以极大地提高测试人员更新UI自动化用例的效率。
示例性地,所述第一交互信息存储为第一表单,所述确定所述第一交互信息存在更新,基于更新后的所述第一交互信息更新所述第一交互控制策略,包括:
确定所述第一表单的属性值存在更新,解析更新后的所述第一表单的属性值,调用页面基类更新所述第一交互控制策略。这里,页面基类可以由UI自动化测试框架预先封装。
通过将第一交互信息中涉及的属性值以第一表单的方式存储,可以便于测试人员进行人机交互,从而快捷地修改页面层的交互控制策略。
示例性地,所述第二交互信息存储为第二表单,所述确定所述第二交互信息存在更新,基于更新后的所述第二交互信息更新所述第二交互控制策略,包括:
确定所述第二表单的属性值存在更新,解析更新后的所述第二表单的属性值,调用用例基类更新所述第二交互控制策略。这里,用例基类可以由UI自动化测试框架预先封装。
通过将第二交互信息中涉及的属性值以第二表单的方式存储,可以便于测试人员进行人机交互,从而快捷地修改用例层的交互控制策略。
在一些实施例中,步骤101中,所述确定UI测试用例配置的页面控件信息匹配目标版本的软件产品配置的页面控件信息,包括:
基于页面对象,获取UI测试用例对应的历史版本的软件产品的第一页面控件图像信息;
若所述页面对象不存在于目标版本的软件产品中,删除所述UI测试用例中所述页面对象的配置信息;
若所述页面对象存在于目标版本的软件产品中,获取所述目标版本的软件产品中相应于所述页面对象的第二页面控件图像信息;
比对所述第一页面控件图像信息和所述第二页面控件图像信息;
基于比对结果,更新所述UI测试用例中所述页面对象配置的页面控件信息。
如此,可以基于页面对象的第一页面控件图像信息和第二页面控件图像信息的比对结果,自动更新所述UI测试用例中所述页面对象配置的页面控件信息,基于图像识别技术对历史版本的页面对象和目标版本的页面对象进行对比,模拟手工测试人眼对页面的精确感知,无需遍历页面元素完成对比分析,并且对于图像识别的结果进行处理,可以自动更新UI测试用例中页面对象配置的页面控件信息。
可以理解的是,可以调用UI自动化测试框架中的截图接口,该截图接口获取历史版本的页面对象的第一页面控件图像信息和目标版本的页面对象的第二页面控件图像信息。比如,针对Web应用软件的Selenium、APP应用软件的Appium、UIAutomator等等。这些框架会封装相应平台的截图接口,如Selenium的save_screenshut接口等,因此,页面对象的截图操作可使用框架提供的公共API(Application Programming Interface,应用程序接口),兼容性良好。
这里,若所述页面对象不存在于目标版本的软件产品中,则表明该页面对象已在更新后的目标版本中被删除,则需要删除所述UI测试用例中所述页面对象的配置信息,比如删除该页面对象的所有控件截图,并UI用例工程中删除该页面层对象。
在一些实施例中,所述比对所述第一页面控件图像信息和所述第二页面控件图像信息,包括:
基于图像相似度算法确定所述第一页面控件图像信息与所述第二页面控件图像信息是否存在匹配;
若不匹配,则确定控件的差异类型及差异控件的控件图像;所述差异类型包括:控件删除、控件新增和控件修改,所述差异控件的控件图像包括:所述第二页面控件图像信息中相应于控件新增和/或控件修改的差异区域的图像。
这里,图像相似度算法可以包括但不限于:直方图方法、图像模板匹配、峰值信噪比(Peak Signal to Noise Ratio,PSNR)、感知哈希算法、SSIM(Structural SIMilarity,结构相似性)算法。
这里,差异类型可以基于第一页面控件图像信息和第二页面控件图像信息中不匹配区域的图像确定。
在一些实施例中,所述基于比对结果,更新所述UI测试用例中所述页面对象配置的页面控件信息,包括:
若所述差异类型为控件删除,则在所述页面对象配置的页面控件信息中删除该差异控件;
若所述差异类型为控件新增,则在所述页面对象配置的页面控件信息中新增该差异控件的控件图像;
若所述差异类型为控件修改,则基于该差异控件的控件图像更新所述页面对象配置的页面控件信息。
如此,基于图像相似度算法确定第一页面控件图像信息和第二页面控件图像信息是否匹配,并获取页面控件的差异,相比传统的控件遍历方案,更高效且节省存储资源,并且在图像对比完成之后引入图像差异区域处理,通过差异控件坐标对差异控件进行截图,可完美匹配基于控件图片匹配定位页面元素的UI测试框架。
下面结合应用示例对本发明实施例再作进一步详细的描述。
本应用示例的UI测试用例更新方法基于POM的自动化测试框架实现。
首先,对基于POM的自动化测试框架进行介绍。
如图2所示,软件产品的前端界面被抽象为一个个的页面对象(page 1、page2……page n),页面对象中维护页面的控件元素和与该页面关联的逻辑交互方法。测试用例层通过调用相关联的页面对象的方法完成UI测试用例的快速编写。采用此种模式能保证最小化代码重复单元,并且不同页面间相互独立,使得测试用例的扩展和维护也比较便捷。
可以以页面对象为单元分别维护页面控件库(widgets 1、widgets 2……widgetsn),以供页面交互方法调用。比如,页面控件库中分别存储了页面控件的截图,并且定义页面范畴内唯一的控件标识作为控件图片的文件名,同时,页面对象定义了页面逻辑交互单元的方法,可通过调用控件库中的控件辅以控件操作完成。通常意义下,UI自动化框架会封装页面基类(BasePage)以提供页面控件的常用操作类型,如点击、输入文本、滑动等动作。
此外,基于POM的自动化测试框架还维护多个UI测试用例(testcase 1、testcase2……testcase m),各UI测试用例调用页面对象及用例类的校验方法,实现UI自动化测试。UI自动化框架会封装用例基类(BaseCase)以提供生成测试用例的接口。
本应用示例中,在基于POM的自动化测试框架下,UI测试用例的更新可分解为页面层更新与用例层更新。页面层更新又可以分解为页面控件库与页面交互方法的更新。从需求角度出发,软件版本迭代导致UI自动化用例需要更新的原因主要有两个:页面更新和交互更新。本应用示例提出的UI自动化的更新策略将这两种变化类型映射为页面层控件库更新和页面层方法、用例层方法的更新。
图3示出了本应用示例的UI测试用例更新方法的流程示意图。
为了描述清晰,这里将历史版本的页面对象称为历史页面,将其对应的最新目标版本的页面对象称为目标页面。由于逻辑交互是基于页面控件完成的,因此,可以先处理页面更新,再处理交互更新。
当发生页面更新时,需要更新页面的控件库。系统首先获取历史页面标识以及截图,然后通过历史版本页面标识,在目标版本页面集合中搜索目标版本对应页面。若目标页面不存在,则说明新版本去除了该页面的功能,则需删除UI用例工程中对应的页面对象。若目标页面存在,则对目标页面进行截图,并将预设页面截图和目标页面截图采用图像对比算法进行匹配分析,若匹配,表明页面无变化,无需更新控件库;若不匹配,表明页面发生了控件变化,需要根据变化信息对页面控件库进行更新。
当发生交互更新时,需要完成UI用例工程中的页面层方法以及用例层方法的更新。页面交互在手工测试中对应基于控件的操作步骤,而控件常见的操作类型是已知的。因此,本应用示例定义了交互更新表单,辅以表单转换模块控制测试用例方法,交互更新仅需维护关键字样式的表单即可快速完成页面层方法与用例层方法的更新。
接下来,分别从页面更新和交互更新两方面进行详细阐述:
页面更新
本应用示例中,可以将页面更新分解为三个模块执行,三个模块分别为:图像采集模块、图像对比模块、页面控件库更新模块。下面分别对各模块进行介绍。
1)、图像采集模块
这里,图像采集模块可以调用UI自动化测试框架中的截图接口,获取历史页面的第一页面控件图像信息和目标页面的第二页面控件图像信息。比如,可通过在页面对象中调用截图接口完成页面控件的截图的采集,并将图像命名为页面标识。然后根据页面标识在目标版本的页面集合中搜索页面,若存在对应的目标页面,则将目标页面的截图进行存储,并将图像文件传递给图像对比模块。若不存在对应的目标页面,则直接跳转到页面控件库更新模块。
2)、图像对比模块
这里,图像对比模块主要完成历史页面图像和目标页面图像的匹配分析,若匹配,表明目标版本该页面无控件变化,无需进行页面层控件库的更新。若不匹配,则将输出的页面差异信息传递给页面控件库更新模块进行页面更新。
图像比对模块可以采取任何与软件系统相适应的图像对比算法。业界讨论度广的OpenCV的图像相似度算法有:直方图方法、图像模板匹配、峰值信噪比(Peak Signal toNoise Ratio,PSNR)、感知哈希算法、SSIM等算法。本应用示例中的图像对比模块输出的控件差异信息可以包含:控件差异类型以及控件截图。控件差异类型分为:控件新增、控件删除、控件修改。控件新增和控件修改两种情况下都需要对目标版本的差异控件进行截图存储。
如图4所示,示例性地,可以基于SSIM算法辅以scikit-image和imutils库完成页面图像相似度对比分析。可以理解的是,图像相似度算法并不局限于此算法,只要能达到差异性对比目标并且对比结果包含差异控件截图的方案,皆可采纳,本发明实施例对此不做限定。
参照图4,基于SSIM的图像相似度算法获取页面控件差异信息,包括:
步骤401,将历史页面图片和目标页面图片转换为灰度图像;
图像对比模块获取图像采集模块采集的同一页面对象的历史页面图片和目标页面图片,并对历史页面图片和目标页面图片进行灰度处理,防止因色彩值而导致的匹配失败问题。
步骤402,计算两个灰度图像之间的SSIM值;
这里,SSIM值的区间范围是[-1,1],其中,值为1表示匹配。
步骤403,判断SSIM值的绝对值是否小于1,若是,则执行步骤404;若否,则执行步骤408;
步骤404,获取控件差异类型;
这里,若SSIM值的绝对值小于1,说明图像不匹配,则历史页面图片和目标页面图片存在差异控件,获取控件差异类型,比如,基于历史页面图片和目标页面图片的差异信息,确定的控件差异类型可以为控件删除、控件新增或者控件修改。
步骤405,对图片差异区域进行阈值处理;
为了获取差异控件截图,需对目标页面图片的差异区域进行阈值处理,计算差异控件坐标值。
步骤406,根据差异区域的坐标值截取差异控件截图;
这里,根据差异区域的坐标值截取目标页面图片上的差异控件截图。
步骤407,输出比对结果;
这里,输出的比对结果可以包括:控件差异类型及差异控件截图。
步骤408,输出页面控件无差异的比对结果。
示例性地,图5描述了一个简单登陆页面的两个前端版本,V1版本和V2版本的区别是增加了register按钮,若通过图像对比模块的处理,输出的比对结果为:页面控件新增以及register按钮控件截图。
3)、页面控件库更新模块
本应用示例中,当目标版本删除页面或者目标版本局部修改了页面控件,图像比对模块会基于图像比对触发页面控件库更新模块更新页面控件库。
对于目标版本删除页面,如图6所示,页面控件库更新模块的更新策略包括:
步骤601,确定目标版本删除页面;
步骤602,删除该页面的所有控件截图;
步骤603,删除UI用例工程中该页面的页面层对象。
这里,页面控件库更新模块基于图像比对模块的比对结果,确定目标版本删除了页面,需要删除该页面所对应的控件截图库,同时,由于该页面的功能已经废弃,则页面层方法也无效,因此,可将UI用例工程中该页面对应的页面层对象删除即可。
对于目标版本局部修改了页面控件,如图7所示,页面控件库更新模块的更新策略包括:
步骤701,目标版本相比历史版本修改了页面控件;
页面控件库更新模块基于图像比对模块的比对结果,确定目标版本相比历史版本发生页面修改,也即目标图像和历史图像不匹配。
步骤702,判断控件是否为新增控件,若是,则执行步骤703;若否,则执行步骤704;
页面控件库更新模块确定控件差异类型为新增控件,则执行步骤703,如否,则执行步骤704。
步骤703,若页面新增控件,则需要将控件截图存储于该页面对应的控件库中;
这里,页面控件库更新模块将新增控件对应的控件截图存储至该页面对应的页面截图库中,且命名为控件标识。
步骤704,判断页面是否删除了控件,若是,则执行步骤705;若否,则执行步骤706;
步骤705,在页面截图库中删除对应的控件截图;
这里,若页面删除控件,则需要通过控件标识,也即控件图片名称,在页面对应的控件截图库中查找得到该控件截图,并删除控件截图。
步骤706,更新页面截图库中该控件的截图。
这里,若页面修改了控件,则需要更新控件截图库。通过控件标识在页面截图库中查找到该控件截图,用图像对比模块保存的最新控件截图更新原有截图。
交互更新
本应用示例中,当界面交互发生改变时,POM下的UI测试用例工程主要涉及页面层方法的更新(即前述的第一交互控制策略的更新)以及用例层方法的更新(即前述的第二交互控制策略的更新)。如图8所示,本应用示例中,引入页面层方法表单(即前述的第一表单)和用例层方法表单(即前述的第二表单),然后由表单转换模块调用页面基类和用例基类将表单映射为最新的页面层方法(Page Method)和用例层方法(testcase Method)。当版本交互更新时,仅需修改表单的属性值即可完成用例适配,简便直观且可读性强。
下面分别对页面层方法更新和用例层方法更新进行介绍:
1)、页面层方法更新
页面层方法对应页面的基本操作单元。通常情况下,页面层方法一般由一系列操作步骤构成,每个操作步骤由页面控件元素调用页面基类中封装的页面操作接口完成。当页面交互发生变化,若直接在代码中修改页面层方法中的各操作语句,可读性不强并且效率不高。因此,本应用示例中,考虑通过创建页面层方法更新表单,抽取页面层操作单元的四个关键指标:页面方法名称(功能)、控件名称、控件操作、操作数作为表单的属性列。然后,系统的表单转换模块通过解析页面层方法表单中的各功能模块的属性值,调用页面基类的控件操作公共接口,完成页面层方法的更新。
示例性地,表1描述了一个页面层方法表单实例。
表1
Figure BDA0002731518940000141
假设该页面V1版本仅提供登录功能,更新到V2版本,增加了修改密码功能,则基于本应用示例的更新策略,页面层方法的更新仅需在表单中增加modify_password功能的相关操作行即可。
在页面层方法表单中,页面层方法名称的属性值可设计为功能名称;控件名称为页面对象的截图库中控件的文件名,也是控件的唯一标识;控件操作指对前端控件的常用动作类型,如点击、滑动、输入文本等等;操作数指控件操作时需要传递给控件的参数,若控件操作无需传参,则置空。
可以理解的是,表单转换模块解析表单数据,通过调用页面基类操作接口,将表单映射为页面层方法,完成页面层方法的更新。
2)、用例层方法更新
测试层方法用来描述测试用例。测试方法通过调用页面层方法完成一系列页面操作,还需要对测试用例结果进行校验,因此,用例层方法调用的对象不仅包含页面对象,还包含用例类的校验方法等。对于用例层方法而言,测试用例名称、对象名称、方法、参数可作为关键指标,构成用例层方法表单的列属性。
表2描述了一个简单的用例层方法表单实例。
表2
Figure BDA0002731518940000151
对于用例testcase_login,首先调用homepage的switch_login_page方法跳转到注册页,然后,访问页面对象loginpage的login方法,并传递登录信息参数,完成登录操作,最后对登录功能进行校验,通过调用testcase的assert_login方法完成。
如图8所示,用例层方法表单确定后,表单转换模块对表单内容进行解析,按表单指令基于页面基类和用例基类完成模块调用,完成对测试用例方法层的更新。
如此,通过定义用例层方法表单和页面层方法表单,测试人员只需维护更新表单信息,无需修改冗长代码,利于提高测试用例更新效率。
为了实现本发明实施例的方法,本发明实施例还提供一种用户界面测试用例更新装置,该用户界面测试用例更新装置与上述用户界面测试用例更新方法对应,上述用户界面测试用例更新方法实施例中的各步骤也完全适用于本用户界面测试用例更新装置实施例。
如图9所示,该用户界面测试用例更新装置包括:页面控件更新模块901和交互更新模块902,其中,页面控件更新模块901用于确定用户界面UI测试用例配置的页面控件信息匹配目标版本的软件产品配置的页面控件信息;交互更新模块902用于基于第一交互信息和第二交互信息,更新所述UI测试用例的交互控制策略;所述第一交互信息表征所述UI测试用例的页面层的第一交互控制策略;所述第二交互信息表征所述UI测试用例的用例层的第二交互控制策略。
在一些实施例中,交互更新模块902具体用于以下至少之一:
确定所述第一交互信息存在更新,基于更新后的所述第一交互信息更新所述第一交互控制策略;
确定所述第二交互信息存在更新,基于更新后的所述第二交互信息更新所述第二交互控制策略;
其中,所述第一交互信息包括:页面方法标识及所述页面方法标识的第一配置信息,所述第一配置信息包括:用于区分控件的控件标识、用于指示控件的动作类型的控件操作及用于指示所述控件操作对应的参数的操作数;所述第二交互信息包括:测试用例标识及所述测试用例标识的第二配置信息,所述第二配置信息包括:用于区分测试用例调用的不同对象的对象标识、用于指示对象的操作行为的操作方法及用于指示所述操作方法对应的参数的关联参数。
在一些实施例中,所述第一交互信息存储为第一表单,交互更新模块902具体用于:
确定所述第一表单的属性值存在更新,解析更新后的所述第一表单的属性值,调用页面基类更新所述第一交互控制策略。
在一些实施例中,所述第二交互信息存储为第二表单,交互更新模块902具体用于:
确定所述第二表单的属性值存在更新,解析更新后的所述第二表单的属性值,调用用例基类更新所述第二交互控制策略。
在一些实施例中,页面控件更新模块901具体用于:
基于页面对象,获取UI测试用例对应的历史版本的软件产品的第一页面控件图像信息;
若所述页面对象不存在于目标版本的软件产品中,删除所述UI测试用例中所述页面对象的配置信息;
若所述页面对象存在于目标版本的软件产品中,获取所述目标版本的软件产品中相应于所述页面对象的第二页面控件图像信息;
比对所述第一页面控件图像信息和所述第二页面控件图像信息;
基于比对结果,更新所述UI测试用例中所述页面对象配置的页面控件信息。
在一些实施例中,页面控件更新模块901比对所述第一页面控件图像信息和所述第二页面控件图像信息,包括:
基于图像相似度算法确定所述第一页面控件图像信息与所述第二页面控件图像信息是否存在匹配;
若不匹配,则确定控件的差异类型及差异控件的控件图像;所述差异类型包括:控件删除、控件新增和控件修改,所述差异控件的控件图像包括:所述第二页面控件图像信息中相应于控件新增和/或控件修改的差异区域的图像。
在一些实施例中,页面控件更新模块901基于比对结果,更新所述UI测试用例中所述页面对象配置的页面控件信息,包括:
若所述差异类型为控件删除,则在所述页面对象配置的页面控件信息中删除该差异控件;
若所述差异类型为控件新增,则在所述页面对象配置的页面控件信息中新增该差异控件的控件图像;
若所述差异类型为控件修改,则基于该差异控件的控件图像更新所述页面对象配置的页面控件信息。
实际应用时,页面控件更新模块901模块及交互更新模块902,可以由用户界面测试用例更新装置中的处理器来实现。当然,处理器需要运行存储器中的计算机程序来实现它的功能。
需要说明的是:上述实施例提供的用户界面测试用例更新装置在进行用户界面测试用例更新时,仅以上述各程序模块的划分进行举例说明,实际应用中,可以根据需要而将上述处理分配由不同的程序模块完成,即将装置的内部结构划分成不同的程序模块,以完成以上描述的全部或者部分处理。另外,上述实施例提供的用户界面测试用例更新装置与用户界面测试用例更新方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
基于上述程序模块的硬件实现,且为了实现本发明实施例的方法,本发明实施例还提供一种用户界面测试用例更新设备。图10仅仅示出了该用户界面测试用例更新设备的示例性结构而非全部结构,根据需要可以实施图10示出的部分结构或全部结构。
如图10所示,本发明实施例提供的用户界面测试用例更新设备1000包括:至少一个处理器1001、存储器1002、用户接口1003和至少一个网络接口1004。用户界面测试用例更新设备1000中的各个组件通过总线系统1005耦合在一起。可以理解,总线系统1005用于实现这些组件之间的连接通信。总线系统1005除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图10中将各种总线都标为总线系统1005。
其中,用户接口1003可以包括显示器、键盘、鼠标、轨迹球、点击轮、按键、按钮、触感板或者触摸屏等。
本发明实施例中的存储器1002用于存储各种类型的数据以支持用户界面测试用例更新设备的操作。这些数据的示例包括:用于在用户界面测试用例更新设备上操作的任何计算机程序。
本发明实施例揭示的用户界面测试用例更新方法可以应用于处理器1001中,或者由处理器1001实现。处理器1001可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,用户界面测试用例更新方法的各步骤可以通过处理器1001中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器1001可以是通用处理器、数字信号处理器(DSP,Digital Signal Processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。处理器1001可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本发明实施例所公开的方法的步骤,可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于存储介质中,该存储介质位于存储器1002,处理器1001读取存储器1002中的信息,结合其硬件完成本发明实施例提供的用户界面测试用例更新方法的步骤。
在示例性实施例中,用户界面测试用例更新设备可以被一个或多个应用专用集成电路(ASIC,Application Specific Integrated Circuit)、DSP、可编程逻辑器件(PLD,Programmable Logic Device)、复杂可编程逻辑器件(CPLD,Complex Programmable LogicDevice)、FPGA、通用处理器、控制器、微控制器(MCU,Micro Controller Unit)、微处理器(Microprocessor)、或者其他电子元件实现,用于执行前述方法。
可以理解,存储器1002可以是易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(ROM,Read OnlyMemory)、可编程只读存储器(PROM,Programmable Read-Only Memory)、可擦除可编程只读存储器(EPROM,Erasable Programmable Read-Only Memory)、电可擦除可编程只读存储器(EEPROM,Electrically Erasable Programmable Read-Only Memory)、磁性随机存取存储器(FRAM,ferromagnetic random access memory)、快闪存储器(Flash Memory)、磁表面存储器、光盘、或只读光盘(CD-ROM,Compact Disc Read-Only Memory);磁表面存储器可以是磁盘存储器或磁带存储器。易失性存储器可以是随机存取存储器(RAM,Random AccessMemory),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(SRAM,Static Random Access Memory)、同步静态随机存取存储器(SSRAM,Synchronous Static Random Access Memory)、动态随机存取存储器(DRAM,Dynamic Random Access Memory)、同步动态随机存取存储器(SDRAM,SynchronousDynamic Random Access Memory)、双倍数据速率同步动态随机存取存储器(DDRSDRAM,Double Data Rate Synchronous Dynamic Random Access Memory)、增强型同步动态随机存取存储器(ESDRAM,Enhanced Synchronous Dynamic Random Access Memory)、同步连接动态随机存取存储器(SLDRAM,SyncLink Dynamic Random Access Memory)、直接内存总线随机存取存储器(DRRAM,Direct Rambus Random Access Memory)。本发明实施例描述的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
在示例性实施例中,本发明实施例还提供了一种存储介质,即计算机存储介质,具体可以是计算机可读存储介质,例如包括存储计算机程序的存储器1002,上述计算机程序可由用户界面测试用例更新设备的处理器1001执行,以完成本发明实施例方法所述的步骤。计算机可读存储介质可以是ROM、PROM、EPROM、EEPROM、Flash Memory、磁表面存储器、光盘、或CD-ROM等存储器。
需要说明的是:“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
另外,本发明实施例所记载的技术方案之间,在不冲突的情况下,可以任意组合。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

Claims (10)

1.一种用户界面测试用例更新方法,其特征在于,包括:
确定用户界面UI测试用例配置的页面控件信息匹配目标版本的软件产品配置的页面控件信息;
基于第一交互信息和第二交互信息,更新所述UI测试用例的交互控制策略;
其中,所述第一交互信息表征所述UI测试用例的页面层的第一交互控制策略;所述第二交互信息表征所述UI测试用例的用例层的第二交互控制策略。
2.根据权利要求1所述的方法,其特征在于,所述基于第一交互信息和第二交互信息,更新所述UI测试用例的交互控制策略,包括以下至少之一:
确定所述第一交互信息存在更新,基于更新后的所述第一交互信息更新所述第一交互控制策略;
确定所述第二交互信息存在更新,基于更新后的所述第二交互信息更新所述第二交互控制策略;
其中,所述第一交互信息包括:页面方法标识及所述页面方法标识的第一配置信息,所述第一配置信息包括:用于区分控件的控件标识、用于指示控件的动作类型的控件操作及用于指示所述控件操作对应的参数的操作数;所述第二交互信息包括:测试用例标识及所述测试用例标识的第二配置信息,所述第二配置信息包括:用于区分测试用例调用的不同对象的对象标识、用于指示对象的操作行为的操作方法及用于指示所述操作方法对应的参数的关联参数。
3.根据权利要求2所述的方法,其特征在于,所述第一交互信息存储为第一表单,所述确定所述第一交互信息存在更新,基于更新后的所述第一交互信息更新所述第一交互控制策略,包括:
确定所述第一表单的属性值存在更新,解析更新后的所述第一表单的属性值,调用页面基类更新所述第一交互控制策略。
4.根据权利要求2所述的方法,其特征在于,所述第二交互信息存储为第二表单,所述确定所述第二交互信息存在更新,基于更新后的所述第二交互信息更新所述第二交互控制策略,包括:
确定所述第二表单的属性值存在更新,解析更新后的所述第二表单的属性值,调用用例基类更新所述第二交互控制策略。
5.根据权利要求1所述的方法,其特征在于,所述确定UI测试用例配置的页面控件信息匹配目标版本的软件产品配置的页面控件信息,包括:
基于页面对象,获取UI测试用例对应的历史版本的软件产品的第一页面控件图像信息;
若所述页面对象不存在于目标版本的软件产品中,删除所述UI测试用例中所述页面对象的配置信息;
若所述页面对象存在于目标版本的软件产品中,获取所述目标版本的软件产品中相应于所述页面对象的第二页面控件图像信息;
比对所述第一页面控件图像信息和所述第二页面控件图像信息;
基于比对结果,更新所述UI测试用例中所述页面对象配置的页面控件信息。
6.根据权利要求5所述的方法,其特征在于,所述比对所述第一页面控件图像信息和所述第二页面控件图像信息,包括:
基于图像相似度算法确定所述第一页面控件图像信息与所述第二页面控件图像信息是否存在匹配;
若不匹配,则确定控件的差异类型及差异控件的控件图像;所述差异类型包括:控件删除、控件新增和控件修改,所述差异控件的控件图像包括:所述第二页面控件图像信息中相应于控件新增和/或控件修改的差异区域的图像。
7.根据权利要求6所述的方法,其特征在于,所述基于比对结果,更新所述UI测试用例中所述页面对象配置的页面控件信息,包括:
若所述差异类型为控件删除,则在所述页面对象配置的页面控件信息中删除该差异控件;
若所述差异类型为控件新增,则在所述页面对象配置的页面控件信息中新增该差异控件的控件图像;
若所述差异类型为控件修改,则基于该差异控件的控件图像更新所述页面对象配置的页面控件信息。
8.一种用户界面测试用例更新装置,其特征在于,包括:
页面控件更新模块,用于确定用户界面UI测试用例配置的页面控件信息匹配目标版本的软件产品配置的页面控件信息;
交互更新模块,用于基于第一交互信息和第二交互信息,更新所述UI测试用例的交互控制策略;
其中,所述第一交互信息表征所述UI测试用例的页面层的第一交互控制策略;所述第二交互信息表征所述UI测试用例的用例层的第二交互控制策略。
9.一种用户界面测试用例更新设备,其特征在于,包括:处理器和用于存储能够在处理器上运行的计算机程序的存储器,其中,
所述处理器,用于运行计算机程序时,执行权利要求1至7任一项所述方法的步骤。
10.一种存储介质,所述存储介质上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时,实现权利要求1至7任一项所述方法的步骤。
CN202011119489.6A 2020-10-19 2020-10-19 用户界面测试用例更新方法、装置及存储介质 Pending CN114371986A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011119489.6A CN114371986A (zh) 2020-10-19 2020-10-19 用户界面测试用例更新方法、装置及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011119489.6A CN114371986A (zh) 2020-10-19 2020-10-19 用户界面测试用例更新方法、装置及存储介质

Publications (1)

Publication Number Publication Date
CN114371986A true CN114371986A (zh) 2022-04-19

Family

ID=81138915

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011119489.6A Pending CN114371986A (zh) 2020-10-19 2020-10-19 用户界面测试用例更新方法、装置及存储介质

Country Status (1)

Country Link
CN (1) CN114371986A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117032757A (zh) * 2023-08-21 2023-11-10 镁佳(北京)科技有限公司 控件更新维护方法、系统、装置、计算机设备及存储介质

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117032757A (zh) * 2023-08-21 2023-11-10 镁佳(北京)科技有限公司 控件更新维护方法、系统、装置、计算机设备及存储介质

Similar Documents

Publication Publication Date Title
CN109542399B (zh) 软件开发方法、装置、终端设备及计算机可读存储介质
US10162611B2 (en) Method and apparatus for business rule extraction
WO2021017735A1 (zh) 一种智能合约的形式化验证方法、电子装置及存储介质
CN110008113B (zh) 一种测试方法、装置、电子设备
CN103678120B (zh) 基于建模的web应用自动化测试方法
US20190303269A1 (en) Methods and systems for testing visual aspects of a web page
CN108334585A (zh) 一种网页爬虫方法、装置以及电子设备
CN110427215A (zh) 一种应用于前端开发的程序版本差异展示方法及装置
CN111177621B (zh) 一种web页面开发方法、装置及系统
CN109710220B (zh) 关系型数据库查询方法、装置、设备及存储介质
CN111061475A (zh) 软件代码生成方法、装置、计算机设备和存储介质
CN117033249A (zh) 一种测试用例生成方法、装置、计算机设备及存储介质
CN114138244A (zh) 模型类文件自动生成方法、装置、存储介质及电子设备
CN113946366A (zh) 代码分析的方法、系统及计算设备
CN112015378A (zh) 骨架屏页面生成方法、装置、计算机设备和存储介质
CN112783494A (zh) 一种骨架屏自动生成方法、应用程序页面更新方法及装置
CN114297700B (zh) 动静态结合的移动应用隐私协议提取方法及相关设备
Swearngin et al. Genie: Input Retargeting on the Web through Command Reverse Engineering
CN114371986A (zh) 用户界面测试用例更新方法、装置及存储介质
CN114064114A (zh) 一种动态库生成方法及装置
CN117875288A (zh) 一种表单页面生成方法、装置及电子设备
CN107506299B (zh) 一种代码分析方法及终端设备
CN115481025A (zh) 自动化测试的脚本录制方法、装置、计算机设备及介质
CN115292196A (zh) 用户界面测试方法、装置、电子设备及可读存储介质
CN116340081A (zh) 一种基于硬件虚拟化的riscv内存访问违例检测方法及装置

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