CN107861868A - 一种提取自动化测试对象的方法及系统 - Google Patents

一种提取自动化测试对象的方法及系统 Download PDF

Info

Publication number
CN107861868A
CN107861868A CN201711043397.2A CN201711043397A CN107861868A CN 107861868 A CN107861868 A CN 107861868A CN 201711043397 A CN201711043397 A CN 201711043397A CN 107861868 A CN107861868 A CN 107861868A
Authority
CN
China
Prior art keywords
object element
child node
node
extracting
source code
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
CN201711043397.2A
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.)
Zhengzhou Yunhai Information Technology Co Ltd
Original Assignee
Zhengzhou Yunhai Information Technology Co Ltd
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 Zhengzhou Yunhai Information Technology Co Ltd filed Critical Zhengzhou Yunhai Information Technology Co Ltd
Priority to CN201711043397.2A priority Critical patent/CN107861868A/zh
Publication of CN107861868A publication Critical patent/CN107861868A/zh
Pending legal-status Critical Current

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/3684Test management for test design, e.g. generating new test cases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/14Tree-structured documents

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

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

Description

一种提取自动化测试对象的方法及系统
技术领域
本发明属于软件自动化测试领域,具体涉及一种提取自动化测试对象的方法及系统。
背景技术
现阶段自动化测试比较盛行,测试人员在编写测试脚本时,总是免不了先去定位页面元素。现在的自动化测试工具有很多,例如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,依次定位根节点及包含目标元素的各级子节点作为当前节点;
目标子节点获取模块4,用于遍历当前节点的子节点查找目标元素,依次取包含目标元素的子节点作为目标子节点;
目标元素判断模块5,用于判断目标子节点是否为目标元素;
目标元素定位模块6,用于根据目标元素的属性序号id、名称name以及类型type定位目标元素。
本发明的实施例是说明性的,而非限定性的,上述实施例只是帮助理解本发明,因此本发明不限于具体实施方式中所述的实施例,凡是由本领域技术人员根据本发明的技术方案得出的其他的具体实施方式,同样属于本发明保护的范围。

Claims (10)

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文件以及css文件。
6.一种提取自动化测试对象的系统,其特征在于,包括:
源代码获取模块,用于获取页面文件的源代码文件;
树形结构获取模块,用于获取源代码中所有页面元素组成的树形结构;
当前节点定位模块,依次定位根节点及包含目标元素的各级子节点作为当前节点;
目标子节点获取模块,用于遍历当前节点的子节点查找目标元素,依次取包含目标元素的子节点作为目标子节点;
目标元素判断模块,用于判断目标子节点是否为目标元素;
目标元素定位模块,用于根据目标元素的属性定位目标元素。
7.如权利要求6所述的一种提取自动化测试对象的系统,其特征在于,目标元素的属性包括序号id、名称name以及类型type。
8.如权利要求6所述的一种提取自动化测试对象的系统,其特征在于,页面文件由打包工具对源代码文件加样式打包生成。
9.如权利要求8所述的一种提取自动化测试对象的系统,其特征在于,打包工具包括webpack。
10.如权利要求9所述的一种提取自动化测试对象的系统,其特征在于,页面文件包括html文件、js文件以及css文件。
CN201711043397.2A 2017-10-31 2017-10-31 一种提取自动化测试对象的方法及系统 Pending CN107861868A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711043397.2A CN107861868A (zh) 2017-10-31 2017-10-31 一种提取自动化测试对象的方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711043397.2A CN107861868A (zh) 2017-10-31 2017-10-31 一种提取自动化测试对象的方法及系统

Publications (1)

Publication Number Publication Date
CN107861868A true CN107861868A (zh) 2018-03-30

Family

ID=61697974

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711043397.2A Pending CN107861868A (zh) 2017-10-31 2017-10-31 一种提取自动化测试对象的方法及系统

Country Status (1)

Country Link
CN (1) CN107861868A (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109558321A (zh) * 2018-11-29 2019-04-02 北京远特科技股份有限公司 Android设备测试方法及装置
CN109740100A (zh) * 2019-01-03 2019-05-10 北京字节跳动网络技术有限公司 一种网页节点嗅探方法、装置、设备和储存介质
CN109815455A (zh) * 2019-02-02 2019-05-28 天津字节跳动科技有限公司 项目文件处理方法和装置
CN110413520A (zh) * 2019-07-22 2019-11-05 深圳证券交易所 页面测试中获取控件的方法、服务器及可读存储介质
CN110532458A (zh) * 2019-08-29 2019-12-03 深圳前海达闼云端智能科技有限公司 一种查找方式的确定方法、确定装置、服务器及存储介质
CN110908894A (zh) * 2019-10-11 2020-03-24 苏宁云计算有限公司 一种基于vuex的可视化报表工具自动化测试方法及装置
CN111552627A (zh) * 2020-03-16 2020-08-18 平安科技(深圳)有限公司 用户界面测试方法、装置、存储介质及计算机设备
CN112579951A (zh) * 2019-09-30 2021-03-30 北京国双科技有限公司 页面元素选取方法、装置、存储介质及设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102779172A (zh) * 2012-06-25 2012-11-14 北京奇虎科技有限公司 一种网页中非正文文本的识别系统及方法
CN104572934A (zh) * 2014-12-29 2015-04-29 西安交通大学 一种基于dom的网页关键内容抽取方法
US9430583B1 (en) * 2011-06-10 2016-08-30 Salesforce.Com, Inc. Extracting a portion of a document, such as a web page

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9430583B1 (en) * 2011-06-10 2016-08-30 Salesforce.Com, Inc. Extracting a portion of a document, such as a web page
CN102779172A (zh) * 2012-06-25 2012-11-14 北京奇虎科技有限公司 一种网页中非正文文本的识别系统及方法
CN104572934A (zh) * 2014-12-29 2015-04-29 西安交通大学 一种基于dom的网页关键内容抽取方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
BLINKSTAR824: "第10章 DOM (六)", 《HTTPS://BLOG.CSDN.NET/BLINKSTAR824/ARTICLE/DETAILS/7356821/》 *
MOZILLA: "Web API Interfaces", 《HTTPS://WEB.ARCHIVE.ORG/WEB/20150324230652/HTTPS://DEVELOPER.MOZILLA.ORG/EN-US/DOCS/WEB/API/NODE/CONTAINS》 *

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109558321A (zh) * 2018-11-29 2019-04-02 北京远特科技股份有限公司 Android设备测试方法及装置
CN109558321B (zh) * 2018-11-29 2022-03-18 北京远特科技股份有限公司 Android设备测试方法及装置
CN109740100B (zh) * 2019-01-03 2022-02-22 北京字节跳动网络技术有限公司 一种网页节点嗅探方法、装置、设备和储存介质
CN109740100A (zh) * 2019-01-03 2019-05-10 北京字节跳动网络技术有限公司 一种网页节点嗅探方法、装置、设备和储存介质
CN109815455A (zh) * 2019-02-02 2019-05-28 天津字节跳动科技有限公司 项目文件处理方法和装置
CN109815455B (zh) * 2019-02-02 2023-05-05 天津字节跳动科技有限公司 项目文件处理方法和装置
CN110413520A (zh) * 2019-07-22 2019-11-05 深圳证券交易所 页面测试中获取控件的方法、服务器及可读存储介质
CN110532458B (zh) * 2019-08-29 2022-04-19 深圳前海达闼云端智能科技有限公司 一种查找方式的确定方法、确定装置、服务器及存储介质
CN110532458A (zh) * 2019-08-29 2019-12-03 深圳前海达闼云端智能科技有限公司 一种查找方式的确定方法、确定装置、服务器及存储介质
CN112579951A (zh) * 2019-09-30 2021-03-30 北京国双科技有限公司 页面元素选取方法、装置、存储介质及设备
CN110908894A (zh) * 2019-10-11 2020-03-24 苏宁云计算有限公司 一种基于vuex的可视化报表工具自动化测试方法及装置
CN110908894B (zh) * 2019-10-11 2022-04-05 苏宁云计算有限公司 一种基于vuex的可视化报表工具自动化测试方法及装置
WO2021184725A1 (zh) * 2020-03-16 2021-09-23 平安科技(深圳)有限公司 用户界面测试方法、装置、存储介质及计算机设备
CN111552627A (zh) * 2020-03-16 2020-08-18 平安科技(深圳)有限公司 用户界面测试方法、装置、存储介质及计算机设备

Similar Documents

Publication Publication Date Title
CN107861868A (zh) 一种提取自动化测试对象的方法及系统
CN103559234B (zh) RESTful Web服务的自动化语义标注系统和方法
CN104331446B (zh) 一种基于内存映射的海量数据预处理方法
CN1786965B (zh) 一种新闻网页正文信息的提取方法
CN104866580A (zh) 一种数据库变更对现有业务影响的快速侦测方法
CN102231134A (zh) 基于静态分析的冗余代码缺陷检测方法
CN105095091B (zh) 一种基于倒排索引技术的软件缺陷代码文件定位方法
CN104407872A (zh) 代码克隆的检测方法
CN103488560B (zh) 一种用于网页测试的测试目标处理方法和装置
CN116011088B (zh) 基于ifc扩展的装配式桥梁工程的碳排放计算方法与装置
CN103530429A (zh) 一种网页正文抽取的方法
CN109344355A (zh) 针对网页变化的自动回归检测与块匹配自适应方法和装置
CN105426305A (zh) 一种控件属性解析系统及方法
CN105426350A (zh) Scd文件中提取电压等级、间隔及ied信息的方法
CN110347390A (zh) 一种快速生成web页面的方法、存储介质、设备及系统
CN104317845A (zh) 一种深度网络数据自动抽取方法及系统
CN105630678B (zh) 一种智能电能表软件的可靠性检测仪及其检测方法
CN104866425A (zh) 一种数据库压力测试的方法
CN102087629A (zh) 一种基于Agent嵌入式软件的不变量测试方法与工具
CN105468521A (zh) 一种基于子图搜索的指针相关语义错误定位方法
CN103412942B (zh) 一种基于云计算技术的电压暂降数据分析方法
CN108631297A (zh) 大型受端电网轨迹灵敏度批处理计算方法
CN104750812A (zh) 一种基于网页标签分析的数据自动采集方法
CN103455307B (zh) 对命令行输出的信息进行处理的方法和装置
CN103886078A (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
RJ01 Rejection of invention patent application after publication

Application publication date: 20180330

RJ01 Rejection of invention patent application after publication