一种提取自动化测试对象的方法及系统技术方案

技术编号:17596787 阅读:773 留言:0更新日期:2018-03-31 10:03
本发明专利技术提供一种提取自动化测试对象的方法及系统,方法:1.获取页面文件的源代码文件;2.获取源代码中所有元素组成的树形结构;3.取树形结构中的根节点作为当前节点;4.遍历当前节点的子节点查找目标元素,取包含目标元素的子节点为目标子节点;5.判断目标子节点是否为目标元素;6.若目标子节点是目标元素,则停止查找,进入8;7.若目标子节点不是目标元素,则取目标子节点作为当前节点,返回4;8.根据目标元素的属性定位目标元素。系统包括源代码获取模块、树形结构获取模块、当前节点定位模块、目标子节点获取模块、目标元素判断模块以及目标元素定位模块。本发明专利技术降低测试脚本的修改成本,提供测试脚本的复用率。

A method and system for extracting automated test objects

The present invention provides a method and system, automatic test method of object extraction: 1. access page file source code files; 2. for all elements in the source code tree structure consisting of 3.; take the root node in the tree structure as the current node; node to find the target element 4. traversal of the current node, the node contains the target element as the goal node; 5. to determine whether the target node is sub target elements; 6. if the target node is the target element, then stop the search, enter the 8; 7. if the target node is not the target element is the target sub node as the current node, return 4; 8. according to the attributes of the target element positioning target element the. The system includes source code acquisition module, tree structure acquisition module, current node localization module, target sub node acquisition module, target element judgment module and target element location module. The invention reduces the modification cost of the test scripts and provides the reuse rate of the test scripts.

【技术实现步骤摘要】
一种提取自动化测试对象的方法及系统
本专利技术属于软件自动化测试领域,具体涉及一种提取自动化测试对象的方法及系统。
技术介绍
现阶段自动化测试比较盛行,测试人员在编写测试脚本时,总是免不了先去定位页面元素。现在的自动化测试工具有很多,例如selenium,使用selenium的webdriver的findElement方法可以找到页面的某个元素,定位元素时有几种方式,可以通过元素id、name或者是xpath(页面中元素的路径),xpath定位方式我们经常使用。我们在使用xpath方式定位元素时,先点击F12进入浏览器的调试界面,通过FireBUG在页面上选中要定位的元素,进而使用xpath插件显示元素的xpath路径。虽然使用xpath定位元素很方便,但是存在一个问题,我们在定位元素时,是根据html上页面元素的id和样式去寻找这个元素。如果页面上样式发生改变,元素的xpath路径就会改变,测试人员就需要重新维护测试脚本。此为现有技术的不足,因此,针对现有技术中的上述缺陷,提供一种提取自动化测试对象的方法及系统,是非常有必要的。
技术实现思路
本专利技术的目的在于,针对上述自动化测试定位的元素随页面样式改变而改变的缺陷,提供一种提取自动化测试对象的方法及系统,以解决上述技术问题。为实现上述目的,本专利技术给出以下技术方案:一种提取自动化测试对象的方法,包括如下步骤:步骤1.获取页面文件的源代码文件;步骤2.获取源代码中所有页面元素组成的树形结构;步骤3.取树形结构中的根节点作为当前节点;步骤4.遍历当前节点的子节点查找目标元素,取包含目标元素的子节点为目标子节点;步骤5.判断目标子节点是否为目标元素;步骤6.若目标子节点是目标元素,则停止查找,进入步骤8;步骤7.若目标子节点不是目标元素,则取目标子节点作为当前节点,返回步骤4;步骤8.根据目标元素的属性定位目标元素。进一步地,目标元素的属性包括序号id、名称name以及类型type。进一步地,页面文件由打包工具对源代码文件加样式打包生成。进一步地,打包工具包括webpack。进一步地,页面文件包括html文件、js文件以及css文件。本专利技术还给出如下技术方案:一种提取自动化测试对象的系统,包括:源代码获取模块,用于获取页面文件的源代码文件;树形结构获取模块,用于获取源代码中所有页面元素组成的树形结构;当前节点定位模块,依次定位根节点及包含目标元素的各级子节点作为当前节点;目标子节点获取模块,用于遍历当前节点的子节点查找目标元素,依次取包含目标元素的子节点作为目标子节点;目标元素判断模块,用于判断目标子节点是否为目标元素;目标元素定位模块,用于根据目标元素的属性定位目标元素。进一步地,目标元素的属性包括序号id、名称name以及类型type。进一步地,页面文件由打包工具对源代码文件加样式打包生成。进一步地,打包工具包括webpack。进一步地,页面文件包括html文件、js文件以及css文件。本专利技术的有益效果在于:本专利技术不再从页面文件(如html文件)中提取测试对象,而是直接从研发人员编写的源代码中取元素,页面样式改变时,源代码不会改变,使用源代码定位元素可以降低测试脚本的修改成本,提供测试脚本的复用率。减少测试人员的工作量,提高工作效率。此外,本专利技术设计原理可靠,结构简单,具有非常广泛的应用前景。由此可见,本专利技术与现有技术相比,具有突出的实质性特点和显著的进步,其实施的有益效果也是显而易见的。附图说明图1为本专利技术的方法流程图;图2为本专利技术的系统示意图;图3为实施例的源代码文件的代码结构;其中,1.源代码获取模块;2.树形结构获取模块;3.当前节点定位模块;4.目标子节点获取模块;5.目标元素判断模块;6.目标元素定位模块。具体实施方式:为使得本专利技术的目的、特征、优点能够更加的明显和易懂,下面将结合本专利技术具体实施例中的附图,对本专利技术中的技术方案进行清楚、完整地描述。如图1所示,本专利技术提供一种提取自动化测试对象的方法,包括如下步骤:步骤1.获取页面文件的源代码文件;页面文件html文件、js文件以及css文件由打包工具webpack对源代码文件加样式打包生成;步骤2.获取源代码中所有页面元素组成的树形结构;步骤3.取树形结构中的根节点作为当前节点;步骤4.遍历当前节点的子节点查找目标元素,取包含目标元素的子节点为目标子节点;步骤5.判断目标子节点是否为目标元素;步骤6.若目标子节点是目标元素,则停止查找,进入步骤8;步骤7.若目标子节点不是目标元素,则取目标子节点作为当前节点,返回步骤4;步骤8.根据目标元素的属性序号id、名称name以及类型type定位目标元素。应用上述实施例的方法查找一个文本框元素(元素<input>),步骤如下:获取页面文件的源代码文件.vue文件,.vue文件就是研发人员编写的源代码文件;获取源代码中所有页面元素组成的树形结构,即查看.vue文件的代码结构,如图3所示;取树形结构中的最外层的根节点(根元素<template>)作为当前节点;遍历当前节点(根元素<template>)的子节点(两个<div>元素)查找目标元素,取包含目标元素(文本框元素即元素<input>)的子节点(左侧的元素<div>)为目标子节点;判断目标子节点(左侧的元素<div>)是否为目标元素(元素<input>);因为目标子节点(左侧的元素<div>)不是目标元素(元素<input>),所以取目标子节点(左侧的元素<div>)作为当前节点;遍历当前节点(左侧的元素<div>)的子节点(元素<input>,元素<lable>,元素<lable>)查找目标元素(元素<input>),取包含目标元素(元素<input>)的子节点(元素<input>)为目标子节点;判断目标子节点(元素<input>)是否为目标元素(元素<input>);因为目标子节点(元素<input>)是目标元素(元素<input>),所以停止查找,我们要找的路径就是/template/div/input,根据目标元素(元素<input>)的属性类型type定位目标元素。如图2所示,本专利技术还提供一种提取自动化测试对象的系统,包括:源代码获取模块1,用于获取页面文件的源代码文件;页面文件html文件、js文件以及css文件由打包工具webpack对源代码文件加样式打包生成;树形结构获取模块2,用于获取源代码中所有元素组成的树形结构;当前节点定位模块3,依次定位本文档来自技高网...
一种提取自动化测试对象的方法及系统

【技术保护点】
一种提取自动化测试对象的方法,其特征在于,包括如下步骤:步骤1.获取页面文件的源代码文件;步骤2.获取源代码中所有页面元素组成的树形结构;步骤3.取树形结构中的根节点作为当前节点;步骤4.遍历当前节点的子节点查找目标元素,取包含目标元素的子节点作为目标子节点;步骤5.判断目标子节点是否为目标元素;步骤6.若目标子节点是目标元素,则停止查找,进入步骤8;步骤7.若目标子节点不是目标元素,则取目标子节点作为当前节点,返回步骤4;步骤8.根据目标元素的属性定位目标元素。

【技术特征摘要】
1.一种提取自动化测试对象的方法,其特征在于,包括如下步骤:步骤1.获取页面文件的源代码文件;步骤2.获取源代码中所有页面元素组成的树形结构;步骤3.取树形结构中的根节点作为当前节点;步骤4.遍历当前节点的子节点查找目标元素,取包含目标元素的子节点作为目标子节点;步骤5.判断目标子节点是否为目标元素;步骤6.若目标子节点是目标元素,则停止查找,进入步骤8;步骤7.若目标子节点不是目标元素,则取目标子节点作为当前节点,返回步骤4;步骤8.根据目标元素的属性定位目标元素。2.如权利要求1所述的一种提取自动化测试对象的方法,其特征在于,目标元素的属性包括序号id、名称name以及类型type。3.如权利要求1所述的一种提取自动化测试对象的方法,其特征在于,页面文件由打包工具对源代码文件加样式打包生成。4.如权利要求3所述的一种提取自动化测试对象的方法,其特征在于,打包工具包括webpack。5.如权利要求3所述的一种提取自动化测试对象的方法,其特征在于,页面文件包括html文件、js文件...

【专利技术属性】
技术研发人员:李亚端
申请(专利权)人:郑州云海信息技术有限公司
类型:发明
国别省市:河南,41

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1