CN115687075A - 页面测试脚本的纠错方法及装置 - Google Patents
页面测试脚本的纠错方法及装置 Download PDFInfo
- Publication number
- CN115687075A CN115687075A CN202210971288.1A CN202210971288A CN115687075A CN 115687075 A CN115687075 A CN 115687075A CN 202210971288 A CN202210971288 A CN 202210971288A CN 115687075 A CN115687075 A CN 115687075A
- Authority
- CN
- China
- Prior art keywords
- page
- control object
- target control
- test script
- information
- 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
Images
Landscapes
- Stored Programmes (AREA)
- Debugging And Monitoring (AREA)
Abstract
本公开提供了一种页面测试脚本的纠错方法,涉及软件测试领域,可以应用于金融科技领域。该方法包括:根据页面测试语句执行结果和控件元素属性集合确定目标控件对象集合;当确定测试页面的文档对象模型信息中不存在目标控件对象的唯一标识属性时,根据目标控件对象的定位方式和属性信息在测试页面的文档对象模型信息中识别第一目标控件对象,以生成第一页面测试脚本修改信息;当确定测试页面的文档对象模型信息中存在目标控件对象的唯一标识属性时,根据目标控件对象所在框架信息生成第二页面测试脚本修改信息;根据页面测试脚本修改信息对所述页面测试脚本进行修改,以生成目标测试脚本。本公开还提供了一种页面测试脚本的纠错装置、设备、存储介质和程序产品。
Description
技术领域
本公开涉及自动化测试技术领域,具体涉及页面测试技术领域,更具体地涉及一种页面测试脚本的纠错方法、装置、设备、存储介质和程序产品。
背景技术
在B/S类应用系统在进行自动化测试的过程中,当前最常用的自动化测试技术方案通常有三种,一种是基于浏览器控件对象属性识别模式(如selenium、UFT等),第二种是基于控件图像特征识别如OCR等识别模式,第三种是基于鼠标和键盘的有序化固定操作指令及顺序模式。由于金融行业中交易类型通常流程比较长,页面所展示的控件要素多,且金融类业务需要大量的数字金额核对校验,在当前自动化测试技术方案中,第二种OCR图像识别的模式,因受技术限制,无法达到100%的识别准确性,容易产生金额核对错误的问题;第三种当界面显示顺序变化或者是其中某一步操作失效时,后续的所有自动化测试脚本执行均失败,不能规模化应用,所以当前金融类行业中,针对B/S架构类应用系统在进行自动化测试的过程中,主要优先使用第一种基于浏览器控件对象属性识别的模式。
在使用第一种基于界面浏览器控件对象属性识别的模式进行自动化测试应用的工作方式下,因自动化测试框架使用自动化测试脚本中定义的控件属性Xpath等进行控件的识别和操作,当被测应用系统页面对象控件属性发生局部修改时,当前的自动化测试框架不具备智能纠错能力,故因为原先脚本中定义的控件属性在当前浏览器页面的DOM树结构中不存在,自动化测试脚本执行时直接报对象不存在错误,导致自动化测试脚本执行失败,因为有时候虽然部分控件属性的修改调整但对应浏览器界面视觉上看无变化,测试人员从浏览器界面中看不出来,导致测试人员认为自动化测试脚本执行不稳定,而且这类在修改前后前台浏览器展示无差异的版本修改,从人的视觉用户感知层面是无法区分的,但每次页面调整后都需要修改自动化测试脚本,也带来了大量的自动化测试脚本的保鲜维护量。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
鉴于上述问题,本公开提供了提高自动化测试框架的智能化水平的页面测试脚本的纠错方法、装置、设备、介质和程序产品。
根据本公开的第一个方面,提供了一种页面测试脚本的纠错方法,所述方法包括:
根据页面测试语句执行结果和控件元素属性集合确定目标控件对象集合,其中,所述控件元素属性集合是根据测试页面的文档对象模型信息预先建立的,所述目标控件对象集合包括至少一个测试脚本无法识别的目标控件对象;
当确定所述测试页面的文档对象模型信息中不存在所述目标控件对象的唯一标识属性时,确定所述目标控件对象的定位方式和属性信息;
根据所述目标控件对象的定位方式和所述属性信息在所述测试页面的文档对象模型信息中识别第一目标控件对象,以生成第一页面测试脚本修改信息;
当确定所述测试页面的文档对象模型信息中存在所述目标控件对象的唯一标识属性时,根据所述目标控件对象所在框架信息生成第二页面测试脚本修改信息;
根据所述第一页面测试脚本修改信息和所述第二页面测试脚本修改信息对所述页面测试脚本进行修改,以生成目标测试脚本。
根据本公开的实施例,所述根据所述目标控件对象的定位方式和所述属性信息在所述测试页面的文档对象模型信息中识别第一目标控件对象,以生成第一页面测试脚本修改信息包括:
当确定所述目标控件对象的定位方式为文本定位时,根据所述目标控件对象的标签信息在所述测试页面的文档对象模型信息中识别所述第一目标控件对象,以生成第一页面测试脚本修改信息;
当确定所述目标控件对象的定位方式为非文本定位时,根据所述目标控件对象的文本属性在所述测试页面的文档对象模型信息中识别所述第一目标控件对象,以生成第一页面测试脚本修改信息。
根据本公开的实施例,所述根据所述目标控件对象的标签信息在所述测试页面的文档对象模型信息中识别所述第一目标控件对象,以生成第一页面测试脚本修改信息包括:
在测试页面的文档对象模型结构树中确定所述目标控件对象对应语句前的最近的可识别控件元素节点;
从所述最近的可识别控件元素节点开始遍历与所述根据所述目标控件对象的标签信息相同类型的目标标签;
根据脚本语句注释的控件名称与所述目标标签的文本匹配度确定第一目标控件对象;以及
根据所述第一目标控件对象的属性信息生成第一目标执行语句;以及
根据执行成功的第一目标执行语句生成第一页面测试脚本修改信息。
根据本公开的实施例,所述根据所述目标控件对象的文本属性在所述测试页面的文档对象模型信息中识别所述第一目标控件对象,以生成第一页面测试脚本修改信息包括:
根据所述目标控件对象的value值和/或底层模板属性值确定目标节点;
将与已定义的控件类型一致的目标节点作为第一目标控件对象;以及
根据所述目标节点的属性信息生成第二目标执行语句;以及
根据执行成功的第二目标执行语句生成第一页面测试脚本修改信息。
根据本公开的实施例,所述根据所述目标控件对象所在框架信息生成第二页面测试脚本修改信息包括:
当确定所述目标控件对象的框架名与所述测试页面的文档对象模型信息的框架名一致时,在所述目标控件对象执行语句前增加等待时间的语句;
当确定所述目标控件对象的框架名与所述测试页面的文档对象模型信息的框架名不一致时,查找标签类型为浮动框架标签的节点作为所述目标控件对象的父节点;
根据所述父节点的name或id值生成框架名的跳转处理语句。
根据本公开的实施例,还包括:
根据所述第一页面测试脚本修改信息和所述第二页面测试脚本修改信息生成测试脚本变更日志。
根据本公开的实施例,所述目标控件对象集合包括控件类型、控件所在框架名、唯一标识属性、value值、底层模板属性值和识别状态。
本公开的第二方面提供了一种页面测试脚本的纠错装置,所述装置包括:
第一确定模块,用于根据页面测试语句执行结果和控件元素属性集合确定目标控件对象集合,其中,所述控件元素属性集合是根据测试页面的文档对象模型信息预先建立的,所述目标控件对象集合包括至少一个测试脚本无法识别的目标控件对象;
第二确定模块,用于当确定所述测试页面的文档对象模型信息中不存在所述目标控件对象的唯一标识属性时,确定所述目标控件对象的定位方式和属性信息;
第一生成模块,用于根据所述目标控件对象的定位方式和所述属性信息在所述测试页面的文档对象模型信息中识别所述第一目标控件对象,以生成第一页面测试脚本修改信息;
第二生成模块,用于当确定所述测试页面的文档对象模型信息中存在所述目标控件对象的唯一标识属性时,根据所述目标控件对象所在框架信息生成第二页面测试脚本修改信息;
目标测试脚本生成模块,用于根据所述第一页面测试脚本修改信息和所述第二页面测试脚本修改信息对所述页面测试脚本进行修改,以生成目标测试脚本。
根据本公开的实施例,第一生成模块包括:
第一生成子模块,用于当确定所述目标控件对象的定位方式为文本定位时,根据所述目标控件对象的标签信息在所述测试页面的文档对象模型信息中识别所述第一目标控件对象,以生成第一页面测试脚本修改信息;
第二生成子模块,用于当确定所述目标控件对象的定位方式为非文本定位时,根据所述目标控件对象的文本属性在所述测试页面的文档对象模型信息中识别所述第一目标控件对象,以生成第一页面测试脚本修改信息。
根据本公开的实施例,第一生成子模块包括:
第一确定单元,用于在测试页面的文档对象模型结构树中确定所述目标控件对象对应语句前的最近的可识别控件元素节点;
遍历单元,用于从所述最近的可识别控件元素节点开始遍历与所述根据所述目标控件对象的标签信息相同类型的目标标签;
第二确定单元,用于根据脚本语句注释的控件名称与所述目标标签的文本匹配度确定第一目标控件对象;
第一生成单元,用于根据所述第一目标控件对象的属性信息生成第一目标执行语句;以及
第二生成单元,用于根据执行成功的第一目标执行语句生成第一页面测试脚本修改信息。
根据本公开的实施例,第二生成子模块包括:
第三确定单元,用于根据所述目标控件对象的value值和/或底层模板属性值确定目标节点;
第四确定单元,用于将与已定义的控件类型一致的目标节点作为第一目标控件对象;
第三生成单元,用于根据所述目标节点的属性信息生成第二目标执行语句;以及
第四生成单元,用于根据执行成功的第二目标执行语句生成第一页面测试脚本修改信息。
根据本公开的实施例,第二生成模块包括:
第一确定子模块,用于当确定所述目标控件对象的框架名与所述测试页面的文档对象模型信息的框架名一致时,在所述目标控件对象执行语句前增加等待时间的语句;
第二确定子模块,用于当确定所述目标控件对象的框架名与所述测试页面的文档对象模型信息的框架名不一致时,查找标签类型为浮动框架标签的节点作为所述目标控件对象的父节点;
第三生成子模块,用于根据所述父节点的name或id值生成框架名的跳转处理语句。
根据本公开的实施例,该装置还包括:
第三生成模块,用于根据所述第一页面测试脚本修改信息和所述第二页面测试脚本修改信息生成测试脚本变更日志。
本公开的第三方面提供了一种电子设备,包括:一个或多个处理器;存储器,用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得一个或多个处理器执行上述页面测试脚本的纠错方法。
本公开的第四方面还提供了一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器执行上述页面测试脚本的纠错方法。
本公开的第五方面还提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述页面测试脚本的纠错方法。
通过本公开的实施例提供的一种页面测试脚本的纠错方法,根据页面测试语句执行结果和控件元素属性集合确定目标控件对象集合,当确定测试页面的文档对象模型信息中不存在所述目标控件对象的唯一标识属性时,根据所述目标控件对象的定位方式和所述属性信息在所述测试页面的文档对象模型信息中识别第一目标控件对象,以生成第一页面测试脚本修改信息;当确定所述测试页面的文档对象模型信息中存在所述目标控件对象的唯一标识属性时,根据所述目标控件对象所在框架信息生成第二页面测试脚本修改信息;根据所述第一页面测试脚本修改信息和所述第二页面测试脚本修改信息对所述页面测试脚本进行修改,以生成目标测试脚本。相比于相关技术,本公开实施例提供的方法在自动化测试脚本执行的过程中,自动寻找修改后的控件新属性特征,并且依据控件识别结果自动调整对原自动化测试脚本进行保鲜。减少测试人员对自动化测试脚本的保鲜维护工作量,提高测试工作自动化水平。
附图说明
通过以下参照附图对本公开实施例的描述,本公开的上述内容以及其他目的、特征和优点将更为清楚,在附图中:
图1示意性示出了根据本公开实施例的页面测试脚本的纠错方法、装置、设备、介质和程序产品的应用场景图;
图2示意性示出了根据本公开实施例提供的一种页面测试脚本的纠错方法的流程图;
图3a示意性示出了根据本公开实施例提供的第一页面测试脚本修改信息的生成方法的流程图之一;
图3b示意性示出了根据本公开实施例提供的第一页面测试脚本修改信息的生成方法的流程图之二;
图3c示意性示出了根据本公开实施例提供的第一页面测试脚本修改信息的生成方法的流程图之三;
图4示意性示出了根据本公开实施例提供的第二页面测试脚本修改信息的生成方法的流程图;
图5示意性示出了根据本公开实施例的一种页面测试脚本的纠错装置的结构框图;以及
图6示意性示出了根据本公开实施例的适于实现页面测试脚本的纠错方法的电子设备的方框图。
具体实施方式
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。
首先对本公开实施例出现的术语进行解释:
文档对象模型:DOM(Document Object Model,文档对象模型),是用来呈现以及与任意HTML或XML文档交互的API(Application Program Interface,应用程序接口)。DOM是载入到浏览器中的文档模型,以节点树的形式表现文档,每个节点代表文档的构成部分(例如:页面元素、字符串或注释等等)。
DOM树:文档树模型,将文档映射成树形结构,通过节点对象对其处理,处理的结果可加入到当前的页面。
节点:构成网页最基本的组成部分,网页中所有内容在文档树中都是节点(标签、属性、文本、注释等),使用node表示。
在软件研发过程中,自动化测试技术已经作为一个非常常见的测试模式被越来越多的大型企业引入,并且通过分层自动化测试的理念,对单元测试、接口测试、集成测试及验收测试中,分别使用不同的自动化测试工具及技术,来实现每个测试阶段的质量守护目标。
随着互联网信息技术的发展,B/S架构下的的WEB类系统应用以其部署维护方便,对客户端的安装操作要求低等特点,在大型金融企业中所占比例越来越高,越来越多的系统及平台都通过B/S架构进行研发,对于B/S类应用系统的自动化测试工具及方案也越来越受到重视。
在B/S类应用系统在进行自动化测试的过程中,当前最常用的自动化测试技术方案通常有三种,一种是基于浏览器控件对象属性识别模式(如selenium、UFT等),第二种是基于控件图像特征识别如OCR等识别模式,第三种是基于鼠标和键盘的有序化固定操作指令及顺序模式。
因为金融行业中交易类型通常流程比较长,页面所展示的控件要素多,且金融类业务需要大量的数字金额核对校验,在当前自动化测试技术方案中,第二种OCR图像识别的模式,因受技术限制,无法达到100%的识别准确性,容易产生金额核对错误的问题;第三种当界面显示顺序变化或者是其中某一步操作失效时,后续的所有自动化测试脚本执行均失败,不能规模化应用,所以当前金融类行业中,针对B/S架构类应用系统在进行自动化测试的过程中,主要优先使用第一种基于浏览器控件对象属性识别的模式,在遇到界面控件属性无法失败的部分特殊场景下,才会尝试使用第二种或者第三中自动化测试工具。
在使用第一种基于界面浏览器控件对象属性识别的模式进行自动化测试应用的工作方式下,因自动化测试框架使用自动化测试脚本中定义的控件属性Xpath等进行控件的识别和操作,当被测应用系统页面对象控件属性发生局部修改时,当前的自动化测试框架不具备智能纠错能力,故因为原先脚本中定义的控件属性在当前浏览器页面的DOM树结构中不存在,自动化测试脚本执行时直接报对象不存在错误,导致自动化测试脚本执行失败,因为有时候虽然部分控件属性的修改调整但对应浏览器界面视觉上看无变化,测试人员从浏览器界面中看不出来,导致测试人员认为自动化测试脚本执行不稳定,而且这类在修改前后前台浏览器展示无差异的版本修改,从人的视觉用户感知层面是无法区分的,但每次页面调整后都需要修改自动化测试脚本,也带来了大量的自动化测试脚本的保鲜维护量。
基于上述技术问题,本公开的实施例提供了一种页面测试脚本的纠错方法,所述方法包括:根据页面测试语句执行结果和控件元素属性集合确定目标控件对象集合,其中,所述控件元素属性集合是根据测试页面的文档对象模型信息预先建立的,所述目标控件对象集合包括至少一个测试脚本无法识别的目标控件对象;当确定所述测试页面的文档对象模型信息中不存在所述目标控件对象的唯一标识属性时,确定所述目标控件对象的定位方式和属性信息;根据所述目标控件对象的定位方式和所述属性信息在所述测试页面的文档对象模型信息中识别第一目标控件对象,以生成第一页面测试脚本修改信息;当确定所述测试页面的文档对象模型信息中存在所述目标控件对象的唯一标识属性时,根据所述目标控件对象所在框架信息生成第二页面测试脚本修改信息;根据所述第一页面测试脚本修改信息和所述第二页面测试脚本修改信息对所述页面测试脚本进行修改,以生成目标测试脚本。
图1示意性示出了根据本公开实施例的页面测试脚本的纠错方法、装置、设备、介质和程序产品的应用场景图。
如图1所示,根据该实施例的应用场景100可以包括页面测试脚本自动化测试场景。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。
终端设备101、102、103可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器105可以是为页面测试脚本管理服务器,针对用户通过应用服务器发起的页面测试请求,例如响应于用户利用终端设备101、102、103所发出的测试请求,该页面测试脚本管理服务器根据接收到的页面测试请求,运行页面测试脚本,根据页面测试语句执行结果对页面测试脚本进行纠错操作,生成新的测试脚本。
需要说明的是,本公开实施例所提供的页面测试脚本的纠错方法一般可以由服务器105执行。相应地,本公开实施例所提供的页面测试脚本的纠错装置一般可以设置于服务器105中。本公开实施例所提供的页面测试脚本的纠错方法也可以由不同于服务器105且能够与终端设备101、102、103和/或服务器105通信的服务器或服务器集群执行。相应地,本公开实施例所提供的页面测试脚本的纠错装置也可以设置于不同于服务器105且能够与终端设备101、102、103和/或服务器105通信的服务器或服务器集群中。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
需要说明的是,本公开实施例确定的页面测试脚本的纠错方法和装置可用于自动化测试技术领域,也可用于金融技术领域,还可用于除金融领域之外的任意领域,本公开实施例确定的页面测试脚本的纠错方法和装置的应用领域不做限定。
以下将基于图1描述的场景,通过图2~图4本公开实施例的页面测试脚本的纠错方法进行详细描述。
图2示意性示出了根据本公开实施例提供的一种页面测试脚本的纠错方法的流程图。如图2所示,该实施例的页面测试脚本的纠错方法包括操作S210~操作S250,该方法可以由服务器或其他计算设备执行。
在操作S210,根据页面测试语句执行结果和控件元素属性集合确定目标控件对象集合。
根据本公开的实施例,所述控件元素属性集合是根据测试页面的文档对象模型信息预先建立的,所述目标控件对象集合包括至少一个测试脚本无法识别的目标控件对象。
一个示例中,自动化测试框架采用PO(Page Object)模式,以应用上不同页面为单位,获取该页面上所有控件元素属性的集合,控件元素属性包括控件类型(input、button、label等)、控件所在框架名frame、唯一标识属性(name或id或xpath)、value值、底层模板值innertext等。在自动化测试框架中,针对当前浏览器页面中回放自动化测试语句执行结果,根据预先建立的控件元素属性集合,形成当前应用界面中能够正确识别到的页面控件对象的语句集合,以及无法识别到对应页面控件对象的语句集合,如下表1所示:
表1目标控件对象集合
目标控件对象集合包括至少一个测试脚本无法识别的目标控件对象,具体包括控件类型、控件所在框架名、唯一标识属性、value值、底层模板属性值和识别状态,根据识别状态确定该控件对象是否能被测试脚本识别。在进行页面测试的过程中,由于页面控件属性发生调整或测试人员在编写代码时误输入,同时对应测试脚本未进行相应调整,则导致原测试脚本无法识别到该控件,进而导致测试脚本报错,根据测试脚本语句执行情况获取当前无法识别控件对象信息。对于无法识别的控件对象即目标控件对象,通过对浏览器页面DOM结构进行分析,对目标控件对象进行重新定位,首先根据目标控件对象的唯一标识属性进行判断,若所述测试页面的文档对象模型信息中不存在所述目标控件对象的唯一标识属性,则执行操作S220和操作S230;所述测试页面的文档对象模型信息中存在所述目标控件对象的唯一标识属性,则执行操作S240。
在操作S220,当确定所述测试页面的文档对象模型信息中不存在所述目标控件对象的唯一标识属性时,确定所述目标控件对象的定位方式和属性信息。
在操作S230,根据所述目标控件对象的定位方式和所述属性信息在所述测试页面的文档对象模型信息中识别第一目标控件对象,以生成第一页面测试脚本修改信息。
一个示例中,当所述测试页面的文档对象模型信息中不存在所述目标控件对象的唯一标识属性时,则表征当前目标控件对象的属性确实出现问题,需要进行纠错,首先确定目标控件在测试页面的DOM结构树中的具体位置,在根据重定位后的控件属性信息生成第一页面测试脚本修改信息,后期根据该修改信息对测试脚本执行语句进行修改替换,从而实现测试脚本的纠错,在本公开实施例,根据目标控件对象的定位方式的不同,识别目标控件的方法不同,具体识别第一目标控件对象的方法可参见图3a~图3c的操作步骤,在此不再赘述。
在操作S240,当确定所述测试页面的文档对象模型信息中存在所述目标控件对象的唯一标识属性时,根据所述目标控件对象所在框架信息生成第二页面测试脚本修改信息。
一个示例中,当所述测试页面的文档对象模型信息中存在所述目标控件对象的唯一标识属性时,首先判断目标控件对象所在框架名与表1中框架名是否一致,若目标控件对象所在框架名与表1中框架名一致,则表征有可能存在页面加载或响应较慢的情况;若目标控件对象所在框架名与表1中框架名不一致,则重新查找当前目标控件对象的浮动框架标签的节点,根据该节点信息生成框架名跳转处理语句生成第二页面测试脚本修改信息,第二页面测试脚本修改信息的生成方法可参见图4所示的S241~操作S243。
在操作S250,根据所述第一页面测试脚本修改信息和所述第二页面测试脚本修改信息对所述页面测试脚本进行修改,以生成目标测试脚本。
一个示例中,经过上述纠错生成第一页面测试脚本修改信息和第二页面测试脚本修改信息,根据第一页面测试脚本修改信息和第二页面测试脚本修改信息对页面测试脚本进行修改,例如可以是控件name或id属性的修改,可以是xpath路径的替换,生成新的测试脚本,即目标测试脚本。
可拓展的,为了便于测试人员对测试脚本的控制,在操作S250之后还包括操作S310,在操作S310,根据所述第一页面测试脚本修改信息和所述第二页面测试脚本修改信息生成测试脚本变更日志。对自动化测试脚本智能纠错前替换的语句及替换后的语句对应关系和变更信息进行记录,便于测试人员进行查阅跟踪。
通过本公开的实施例提供的一种页面测试脚本的纠错方法,在自动化测试脚本执行的过程中,自动寻找修改后的控件新属性特征,并且依据控件识别结果自动调整对原自动化测试脚本进行保鲜。减少测试人员对自动化测试脚本的保鲜维护工作量,提高测试工作自动化水平。
下面将结合图3a~图3c介绍第一页面测试脚本修改信息的确定过程,图3a示意性示出了根据本公开实施例提供的第一页面测试脚本修改信息的生成方法的流程图之一,图3b示意性示出了根据本公开实施例提供的第一页面测试脚本修改信息的生成方法的流程图之二,图3c示意性示出了根据本公开实施例提供的第一页面测试脚本修改信息的生成方法的流程图之三,如图3a所示,操作S230包括操作S231~操作S232。
在操作S231,当确定所述目标控件对象的定位方式为文本定位时,根据所述目标控件对象的标签信息在所述测试页面的文档对象模型信息中识别所述第一目标控件对象,以生成第一页面测试脚本修改信息。
如图3b所示,操作S231包括操作S2311~操作S2315。
在操作S2311,在测试页面的文档对象模型结构树中确定所述目标控件对象对应语句前的最近的可识别控件元素节点。
在操作S2312,从所述最近的可识别控件元素节点开始遍历与所述根据所述目标控件对象的标签信息相同类型的目标标签。
在操作S2313,根据脚本语句注释的控件名称与所述目标标签的文本匹配度确定第一目标控件对象。
在操作S2314,根据所述第一目标控件对象的属性信息生成第一目标执行语句。
在操作S2315,根据执行成功的第一目标执行语句生成第一页面测试脚本修改信息。
一个示例中,若语句中元素的定位方式使用的是文本方式的话(例如使用linkText、partialLinkText或xpath中包含text()),则优先遍历相同的标签类型进行查找。在遍历标签时,首先找到自动化脚本中当前执行失败语句前的最近一个可识别元素。在DOM树中,从可识别元素节点后进行遍历。
可选的,如果是根据是linkText、partialLinkText方式定位的话,则遍历最近一个可识别元素后的a标签,结合脚本语句注释的控件名称,逐一判断a标签和注释的控件名称的文本匹配度,找出匹配度最高的a标签,获取其属性代替原先自动化脚本中的属性。其中文本匹配度是指根据事先定义好的一些配置内容进行匹配,例如预先定义好的内容有:确定、确认;新增、增加;删除、移除等。如果原先通过“确定”文本定位的元素无法找到的话,则在重新遍历元素后,找到符合的元素的文本内容有为“确认”的,则用文本内容为“确认”的元素代替文本内容为“确定”的元素;如在事先定义好的字典值中无法找到,则判断查找到的标签的文本内容和备注中标注的控件名称的文本重合度,取文本重合度最高的元素属性替换当前的元素属性。
可选的,如果使用的是xpath中的text()方法,则获取xpath路径中绝对路径开始的标签类型,则获取最近一个可识别元素后的该标签类型的所有节点,结合脚本语句注释的控件名称,逐一判断节点文本和注释的控件名称的文本匹配度,找出匹配度最高的节点,获取其xpath属性代替原先自动化脚本中的属性。
可拓展的,当页面存在多个重名的目标对象时,对原始的DOM结构树进行分析,寻找目标控件的能够成功识别到的最近的上一个和下一个控件,选取这两个dom结构的中间内容作为分析目标,按照上述的方法寻找形成新的xpath路径。当经过上述处理后仍然存在重名控件时,看当前未能够正确识别控件的语句中是否也有重名的控件,如果脚本中未识别到的控件有重名的且数量与对应的dom结构中同名控件数量一致时,按照脚本中控件的对应顺序,从上到下遍历DOM树,按照先后顺序形成重名控件的xpath属性替换对应关系,并进行新的xpath值替换。
根据上述识别到的第一目标控件对象的属性生成第一目标执行语句,重新执行自动化测试语句代码,若第一目标控件对象执行通过,则表征本次纠错成功,进行下一个控件的识别纠错。
在操作S232,当确定所述目标控件对象的定位方式为非文本定位时,根据所述目标控件对象的文本属性在所述测试页面的文档对象模型信息中识别所述第一目标控件对象,以生成第一页面测试脚本修改信息。
如图3c所示,操作S232包括操作S2321~操作S2324。
在操作S2321,根据所述目标控件对象的value值和/或底层模板属性值确定目标节点。
在操作S2322,将与已定义的控件类型一致的目标节点作为第一目标控件对象。
在操作S2323,根据所述目标节点的属性信息生成第二目标执行语句。
在操作S2324,根据执行成功的第二目标执行语句生成第一页面测试脚本修改信息。
一个示例中,若语句中元素的定位方式使用的是非文本方式(例如使用控件name、id属性、以及xpath中的相对路径不包含text()方法的其他方法),则根据该控件的文本属性在DOM中来查找对应的节点及父节点来进行纠错。具体的,依据属性集合中该节点对应的value值或底层模板值,以及脚本语句注释的控件名称,对DOM结构树进行分析,首先定位value值或底层模板值所在节点,判断节点类型是否和已定义的控件类型是否一致,如不一致的话则逐级获取父节点,直到某一级父节点类型和已知的控件类型一致,然后判断该父节点是否存在唯一的name或id属性,如果存在的话,使用name或id属性作为唯一标识;若不存在的话,则获取父节点的xpath路径替换自动化脚本中原有的xpath路径,并且重新执行相应的自动化测试语句代码,即第二目标执行语句,当前控件执行通过后,生成第一页面测试脚本修改信息,进行下一个控件的智能识别纠错。
图4示意性示出了根据本公开实施例提供的第二页面测试脚本修改信息的生成方法的流程图,如图4所示,操作S240包括操作S241~操作S243。
在操作S241,当确定所述目标控件对象的框架名与所述测试页面的文档对象模型信息的框架名一致时,在所述目标控件对象执行语句前增加等待时间的语句。在操作S242,当确定所述目标控件对象的框架名与所述测试页面的文档对象模型信息的框架名不一致时,查找标签类型为浮动框架标签的节点作为所述目标控件对象的父节点。在操作S243,根据所述父节点的name或id值生成框架名的跳转处理语句。
一个示例中,在测试页面的文档对象模型信息(页面DOM)中查看唯一标识属性及属性值是否存在,若存在,判断元素所在框架名与上表中的框架名是否一致,如果一致的话,则有可能存在页面加载或响应较慢的情况,则在自动化脚本中该元素执行语句前自动增加等待时间的语句;如果框架名不一致,则获取当前元素所在的框架名,具体方法为查找当前元素父节点,找到第一个标签类型为浮动框架标签的节点,获取其name或id值,同时在脚本中自动增加框架名的跳转处理语句以解决控件元素无法识别的问题。
基于上述页面测试脚本的纠错方法,本公开还提供了一种页面测试脚本的纠错装置。以下将结合图5对该装置进行详细描述。
图5示意性示出了根据本公开实施例的一种页面测试脚本的纠错装置的结构框图。
如图5所示,该实施例的页面测试脚本的纠错装置500包括第一确定模块510、第二确定模块520、第一生成模块530、第二生成模块540和目标测试脚本生成模块550。
第一确定模块510用于根据页面测试语句执行结果和控件元素属性集合确定目标控件对象集合,其中,所述控件元素属性集合是根据测试页面的文档对象模型信息预先建立的,所述目标控件对象集合包括至少一个测试脚本无法识别的目标控件对象。在一实施例中,第一确定模块510可以用于执行前文描述的操作S210,在此不再赘述。
第二确定模块520用于当确定所述测试页面的文档对象模型信息中不存在所述目标控件对象的唯一标识属性时,确定所述目标控件对象的定位方式和属性信息。在一实施例中,第二确定模块520可以用于执行前文描述的操作S220,在此不再赘述。
第一生成模块530用于根据所述目标控件对象的定位方式和所述属性信息在所述测试页面的文档对象模型信息中识别所述第一目标控件对象,以生成第一页面测试脚本修改信息。在一实施例中,第一生成模块530可以用于执行前文描述的操作S230,在此不再赘述。
第二生成模块540用于当确定所述测试页面的文档对象模型信息中存在所述目标控件对象的唯一标识属性时,根据所述目标控件对象所在框架信息生成第二页面测试脚本修改信息。在一实施例中,第二生成模块540可以用于执行前文描述的操作S240,在此不再赘述。
目标测试脚本生成模块550用于根据所述第一页面测试脚本修改信息和所述第二页面测试脚本修改信息对所述页面测试脚本进行修改,以生成目标测试脚本。在一实施例中,目标测试脚本生成模块550可以用于执行前文描述的操作S250,在此不再赘述。
根据本公开的实施例,第一生成模块530包括第一生成子模块和第二生成子模块。
第一生成子模块用于当确定所述目标控件对象的定位方式为文本定位时,根据所述目标控件对象的标签信息在所述测试页面的文档对象模型信息中识别所述第一目标控件对象,以生成第一页面测试脚本修改信息。在一实施例中,第一生成子模块可以用于执行前文描述的操作S231,在此不再赘述。
第二生成子模块用于当确定所述目标控件对象的定位方式为非文本定位时,根据所述目标控件对象的文本属性在所述测试页面的文档对象模型信息中识别所述第一目标控件对象,以生成第一页面测试脚本修改信息。在一实施例中,识别子模块可以用于执行前文描述的操作S222,在此不再赘述。
根据本公开的实施例,第一生成子模块包括:第一确定单元、遍历单元、第二确定单元、第一生成单元和第二生成单元。
第一确定单元用于在测试页面的文档对象模型结构树中确定所述目标控件对象对应语句前的最近的可识别控件元素节点。在一实施例中,第一确定单元可以用于执行前文描述的操作S2311,在此不再赘述。
遍历单元,用于从所述最近的可识别控件元素节点开始遍历与所述根据所述目标控件对象的标签信息相同类型的目标标签。在一实施例中,遍历单元可以用于执行前文描述的操作S2312,在此不再赘述。
第二确定单元,用于根据脚本语句注释的控件名称与所述目标标签的文本匹配度确定第一目标控件对象。在一实施例中,遍历单元可以用于执行前文描述的操作S2312,在此不再赘述。
第一生成单元,用于根据所述第一目标控件对象的属性信息生成第一目标执行语句。在一实施例中,第一生成单元可以用于执行前文描述的操作S2313此不再赘述。
第二生成单元,用于根据执行成功的第一目标执行语句生成第一页面测试脚本修改信息。在一实施例中,遍历单元可以用于执行前文描述的操作S2314,在此不再赘述。
根据本公开的实施例,第二生成子模块包括第三确定单元、第四确定单元、第三生成单元和第四生成单元。
第三确定单元,用于根据所述目标控件对象的value值和/或底层模板属性值确定目标节点。在一实施例中,第三确定单元可以用于执行前文描述的操作S2321,在此不再赘述。
第四确定单元,用于将与已定义的控件类型一致的目标节点作为第一目标控件对象。在一实施例中,第四确定单元可以用于执行前文描述的操作S2322,在此不再赘述。
第三生成单元,用于根据所述目标节点的属性信息生成第二目标执行语句。在一实施例中,第三生成单元可以用于执行前文描述的操作S2323,在此不再赘述。
第四生成单元,用于根据执行成功的第二目标执行语句生成第一页面测试脚本修改信息。在一实施例中,第四生成单元可以用于执行前文描述的操作S2324,在此不再赘述。
根据本公开的实施例,第二生成模块540包括第一确定子模块、第二确定子模块和第三生成子模块。
第一确定子模块,用于当确定所述目标控件对象的框架名与所述测试页面的文档对象模型信息的框架名一致时,在所述目标控件对象执行语句前增加等待时间的语句。在一实施例中,第一确定子模块可以用于执行前文描述的操作S241,在此不再赘述。
第二确定子模块,用于当确定所述目标控件对象的框架名与所述测试页面的文档对象模型信息的框架名不一致时,查找标签类型为浮动框架标签的节点作为所述目标控件对象的父节点。在一实施例中,第二确定子模块可以用于执行前文描述的操作S242,在此不再赘述。
第三生成子模块,用于根据所述父节点的name或id值生成框架名的跳转处理语句。在一实施例中,第三生成子模块可以用于执行前文描述的操作S243,在此不再赘述。
根据本公开的实施例,该装置还包括:第三生成模块。
第三生成模块,用于根据所述第一页面测试脚本修改信息和所述第二页面测试脚本修改信息生成测试脚本变更日志。在一实施例中,第三生成子模块可以用于执行前文描述的操作S310,在此不再赘述。
根据本公开的实施例,第一确定模块510、第二确定模块520、第一生成模块530、第二生成模块540和目标测试脚本生成模块550中的任意多个模块可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本公开的实施例,第一确定模块510、第二确定模块520、第一生成模块530、第二生成模块540和目标测试脚本生成模块550中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,第一确定模块510、第二确定模块520、第一生成模块530、第二生成模块540和目标测试脚本生成模块550中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
图6示意性示出了根据本公开实施例的适于实现页面测试脚本的纠错方法的电子设备的方框图。
如图6所示,根据本公开实施例的电子设备900包括处理器901,其可以根据存储在只读存储器(ROM)902中的程序或者从存储部分908加载到随机访问存储器(RAM)903中的程序而执行各种适当的动作和处理。处理器901例如可以包括通用微处理器(例如CPU)、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC))等等。处理器901还可以包括用于缓存用途的板载存储器。处理器901可以包括用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
在RAM 903中,存储有电子设备900操作所需的各种程序和数据。处理器901、ROM902以及RAM 903通过总线904彼此相连。处理器901通过执行ROM 902和/或RAM 903中的程序来执行根据本公开实施例的方法流程的各种操作。需要注意,所述程序也可以存储在除ROM 902和RAM 903以外的一个或多个存储器中。处理器901也可以通过执行存储在所述一个或多个存储器中的程序来执行根据本公开实施例的方法流程的各种操作。
根据本公开的实施例,电子设备900还可以包括输入/输出(I/O)接口905,输入/输出(I/O)接口905也连接至总线904。电子设备900还可以包括连接至I/O接口905的以下部件中的一项或多项:包括键盘、鼠标等的输入部分906;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分907;包括硬盘等的存储部分908;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分909。通信部分909经由诸如因特网的网络执行通信处理。驱动器910也根据需要连接至I/O接口905。可拆卸介质911,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器910上,以便于从其上读出的计算机程序根据需要被安装入存储部分908。
本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的页面测试脚本的纠错方法。
根据本公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质,例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。例如,根据本公开的实施例,计算机可读存储介质可以包括上文描述的ROM 902和/或RAM 903和/或ROM 902和RAM 903以外的一个或多个存储器。
本公开的实施例还包括一种计算机程序产品,其包括计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。当计算机程序产品在计算机系统中运行时,该程序代码用于使计算机系统实现本公开实施例所提供的页面测试脚本的纠错方法。
在该计算机程序被处理器901执行时执行本公开实施例的系统/装置中限定的上述功能。根据本公开的实施例,上文描述的系统、装置、模块、单元等可以通过计算机程序模块来实现。
在一种实施例中,该计算机程序可以依托于光存储器件、磁存储器件等有形存储介质。在另一种实施例中,该计算机程序也可以在网络介质上以信号的形式进行传输、分发,并通过通信部分909被下载和安装,和/或从可拆卸介质911被安装。该计算机程序包含的程序代码可以用任何适当的网络介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
在这样的实施例中,该计算机程序可以通过通信部分909从网络上被下载和安装,和/或从可拆卸介质911被安装。在该计算机程序被处理器901执行时,执行本公开实施例的系统中限定的上述功能。根据本公开的实施例,上文描述的系统、设备、装置、模块、单元等可以通过计算机程序模块来实现。
根据本公开的实施例,可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例提供的计算机程序的程序代码,具体地,可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。程序设计语言包括但不限于诸如Java,C++,python,“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合或/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。
以上对本公开的实施例进行了描述。但是,这些实施例仅仅是为了说明的目的,而并非为了限制本公开的范围。尽管在以上分别描述了各实施例,但是这并不意味着各个实施例中的措施不能有利地结合使用。本公开的范围由所附权利要求及其等同物限定。不脱离本公开的范围,本领域技术人员可以做出多种替代和修改,这些替代和修改都应落在本公开的范围之内。
Claims (11)
1.一种页面测试脚本的纠错方法,其特征在于,所述方法包括:
根据页面测试语句执行结果和控件元素属性集合确定目标控件对象集合,其中,所述控件元素属性集合是根据测试页面的文档对象模型信息预先建立的,所述目标控件对象集合包括至少一个测试脚本无法识别的目标控件对象;
当确定所述测试页面的文档对象模型信息中不存在所述目标控件对象的唯一标识属性时,确定所述目标控件对象的定位方式和属性信息;
根据所述目标控件对象的定位方式和所述属性信息在所述测试页面的文档对象模型信息中识别第一目标控件对象,以生成第一页面测试脚本修改信息;
当确定所述测试页面的文档对象模型信息中存在所述目标控件对象的唯一标识属性时,根据所述目标控件对象所在框架信息生成第二页面测试脚本修改信息;以及
根据所述第一页面测试脚本修改信息和所述第二页面测试脚本修改信息对所述页面测试脚本进行修改,以生成目标测试脚本。
2.根据权利要求1所述的方法,其特征在于,所述根据所述目标控件对象的定位方式和所述属性信息在所述测试页面的文档对象模型信息中识别第一目标控件对象,以生成第一页面测试脚本修改信息包括:
当确定所述目标控件对象的定位方式为文本定位时,根据所述目标控件对象的标签信息在所述测试页面的文档对象模型信息中识别所述第一目标控件对象,以生成第一页面测试脚本修改信息;以及
当确定所述目标控件对象的定位方式为非文本定位时,根据所述目标控件对象的文本属性在所述测试页面的文档对象模型信息中识别所述第一目标控件对象,以生成第一页面测试脚本修改信息。
3.根据权利要求2所述的方法,其特征在于,所述根据所述目标控件对象的标签信息在所述测试页面的文档对象模型信息中识别所述第一目标控件对象,以生成第一页面测试脚本修改信息包括:
在测试页面的文档对象模型结构树中确定所述目标控件对象对应语句前的最近的可识别控件元素节点;
从所述最近的可识别控件元素节点开始遍历与所述根据所述目标控件对象的标签信息相同类型的目标标签;
根据脚本语句注释的控件名称与所述目标标签的文本匹配度确定第一目标控件对象;
根据所述第一目标控件对象的属性信息生成第一目标执行语句;以及
根据执行成功的第一目标执行语句生成第一页面测试脚本修改信息。
4.根据权利要求2所述的方法,其特征在于,所述根据所述目标控件对象的文本属性在所述测试页面的文档对象模型信息中识别所述第一目标控件对象,以生成第一页面测试脚本修改信息包括:
根据所述目标控件对象的value值和/或底层模板属性值确定目标节点;
将与已定义的控件类型一致的目标节点作为第一目标控件对象;
根据所述目标节点的属性信息生成第二目标执行语句;以及
根据执行成功的第二目标执行语句生成第一页面测试脚本修改信息。
5.根据权利要求1所述的方法,其特征在于,所述根据所述目标控件对象所在框架信息生成第二页面测试脚本修改信息包括:
当确定所述目标控件对象的框架名与所述测试页面的文档对象模型信息的框架名一致时,在所述目标控件对象执行语句前增加等待时间的语句;
当确定所述目标控件对象的框架名与所述测试页面的文档对象模型信息的框架名不一致时,查找标签类型为浮动框架标签的节点作为所述目标控件对象的父节点;以及
根据所述父节点的name或id值生成框架名的跳转处理语句。
6.根据权利要求1所述的方法,其特征在于,还包括:
根据所述第一页面测试脚本修改信息和所述第二页面测试脚本修改信息生成测试脚本变更日志。
7.根据权利要求1至6中任一项所述的方法,其特征在于,所述目标控件对象集合包括控件类型、控件所在框架名、唯一标识属性、value值、底层模板属性值和识别状态。
8.一种页面测试脚本的纠错装置,其特征在于,所述装置包括:
第一确定模块,用于根据页面测试语句执行结果和控件元素属性集合确定目标控件对象集合,其中,所述控件元素属性集合是根据测试页面的文档对象模型信息预先建立的,所述目标控件对象集合包括至少一个测试脚本无法识别的目标控件对象;
第二确定模块,用于当确定所述测试页面的文档对象模型信息中不存在所述目标控件对象的唯一标识属性时,确定所述目标控件对象的定位方式和属性信息;
第一生成模块,用于根据所述目标控件对象的定位方式和所述属性信息在所述测试页面的文档对象模型信息中识别所述第一目标控件对象,以生成第一页面测试脚本修改信息;
第二生成模块,用于当确定所述测试页面的文档对象模型信息中存在所述目标控件对象的唯一标识属性时,根据所述目标控件对象所在框架信息生成第二页面测试脚本修改信息;
目标测试脚本生成模块,用于根据所述第一页面测试脚本修改信息和所述第二页面测试脚本修改信息对所述页面测试脚本进行修改,以生成目标测试脚本。
9.一种电子设备,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器执行根据权利要求1~7中任一项所述的页面测试脚本的纠错方法。
10.一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器执行根据权利要求1~7中任一项所述的页面测试脚本的纠错方法。
11.一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现根据权利要求1~7中任一项所述的页面测试脚本的纠错方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210971288.1A CN115687075A (zh) | 2022-08-12 | 2022-08-12 | 页面测试脚本的纠错方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210971288.1A CN115687075A (zh) | 2022-08-12 | 2022-08-12 | 页面测试脚本的纠错方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115687075A true CN115687075A (zh) | 2023-02-03 |
Family
ID=85061424
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210971288.1A Pending CN115687075A (zh) | 2022-08-12 | 2022-08-12 | 页面测试脚本的纠错方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115687075A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115952103A (zh) * | 2023-03-10 | 2023-04-11 | 北京全路通信信号研究设计院集团有限公司 | 一种测试脚本编辑方法、装置、介质以及电子设备 |
-
2022
- 2022-08-12 CN CN202210971288.1A patent/CN115687075A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115952103A (zh) * | 2023-03-10 | 2023-04-11 | 北京全路通信信号研究设计院集团有限公司 | 一种测试脚本编辑方法、装置、介质以及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110427487B (zh) | 一种数据标注方法、装置及存储介质 | |
US10621211B2 (en) | Language tag management on international data storage | |
CN113326247A (zh) | 云端数据的迁移方法、装置及电子设备 | |
CN111552463A (zh) | 一种页面跳转方法、装置、计算机设备及存储介质 | |
CN113515271A (zh) | 服务代码生成方法、装置、电子设备及可读存储介质 | |
CN110716804A (zh) | 无用资源的自动删除方法、装置、存储介质及电子设备 | |
CN115080433A (zh) | 基于流量回放的测试方法及装置 | |
CN115687075A (zh) | 页面测试脚本的纠错方法及装置 | |
CN113050987B (zh) | 一种接口文档的生成方法、装置、存储介质及电子设备 | |
US10489728B1 (en) | Generating and publishing a problem ticket | |
CN113032256B (zh) | 自动化测试方法、装置、计算机系统和可读存储介质 | |
CN116382703B (zh) | 软件包生成方法、代码开发方法及装置、电子设备和介质 | |
US11281901B2 (en) | Document extraction system and method | |
CN113392014B (zh) | 测试用例生成方法、装置、电子设备和介质 | |
CN115794858A (zh) | 查询语句处理方法、装置、设备及存储介质 | |
CN114707961A (zh) | 基于审批流配置的待审批任务执行方法、装置、设备、介质和程序产品 | |
US20220100964A1 (en) | Deep learning based document splitter | |
JP2013037580A (ja) | 情報処理装置 | |
US20210049008A1 (en) | Identifying implicit dependencies between code artifacts | |
CN116560819B (zh) | 基于rpa的批量自动化操作方法、系统、设备及储存介质 | |
CN112860259B (zh) | 界面处理方法、装置、电子设备、存储介质 | |
US10268674B2 (en) | Linguistic intelligence using language validator | |
CN117807038A (zh) | 文件生成方法、装置、设备和介质 | |
CN114625667A (zh) | 页面测试方法、装置、设备、存储介质和程序产品 | |
CN117609042A (zh) | 基于MyBatis框架的接口映射文件测试方法、装置和设备 |
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 |