CN106294107A - 生成网页页面的测试用例的方法和装置 - Google Patents
生成网页页面的测试用例的方法和装置 Download PDFInfo
- Publication number
- CN106294107A CN106294107A CN201510280320.1A CN201510280320A CN106294107A CN 106294107 A CN106294107 A CN 106294107A CN 201510280320 A CN201510280320 A CN 201510280320A CN 106294107 A CN106294107 A CN 106294107A
- Authority
- CN
- China
- Prior art keywords
- node
- webpage
- standalone module
- feature
- 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
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及生成网页页面的测试用例的方法和装置。该方法包括:基于待测试网页页面的文档对象模型DOM树提取网页页面所包括的独立模块的特征;根据所提取的特征,基于预先存储的分类模型将独立模块分类为预设类别;以及根据独立模块被分类的预设类别,利用预设的测试用例模板来生成独立模块的测试用例。根据本发明的方法和装置,将页面模块和测试用例联系在一起,通过分析页面模块的分类,可以自动生成测试用例,从而大大提高了工作效率。
Description
技术领域
本发明涉及网页页面测试领域,更具体地涉及一种生成网页页面的测试用例的方法和装置。
背景技术
随着适配手机、平板电脑、PC等的网页应用程序的快速发展,开发人员和测试人员在应用测试上花费的时间和精力越来越多。不同的系统,不同的浏览器,不同的屏幕分辨率等导致了很大的困难。测试人员需要为每个系统编写独立的测试用例,这些测试用例很难用到其他系统上。
在测试用例的生成中,存在如下问题。目前对于每一个待测的系统,测试人员必须手写很多测试用例,这是非常耗时和不便的。而且这些测试用例并不能重新应用在新的工程中,对于一个新的工程,测试人员必须重新编写用例。这类工作也是非常耗时的。
因此,需要一种能够辅助测试人员自动或者更智能地生成网页页面的测试用例的方法和装置。
发明内容
在下文中给出关于本发明的简要概述,以便提供关于本发明的某些方面的基本理解。应当理解,这个概述并不是关于本发明的穷举性概述。它并不是意图确定本发明的关键或重要部分,也不是意图限定本发明的范围。其目的仅仅是以简化的形式给出某些概念,以此作为稍后论述的更详细描述的前序。
本发明的一个主要目的在于,提供了一种生成网页页面的测试用例的方法,包括:基于网页页面的文档对象模型DOM树提取特征;根据所提取的特征,基于预先存储的分类模型将网页页面分类为预设类别;以及根据网页页面被分类的预设类别,利用预设的测试用例模板来生成网页页面的测试用例。
根据本发明的一个方面,提供一种生成网页页面的测试用例的装置,包括:特征提取单元,被配置为基于待测试网页页面的文档对象模型DOM树提取网页页面所包括的独立模块的特征;分类单元,被配置为根据所提取的特征,基于预先存储的分类模型将独立模块分类为预设类别;以及测试用例生成单元,被配置为根据独立模块被分类的预设类别,利用预设的测试用例模板来生成独立模块的测试用例。
另外,本发明的实施例还提供了用于实现上述方法的计算机程序。
此外,本发明的实施例还提供了至少计算机可读介质形式的计算机程序产品,其上记录有用于实现上述方法的计算机程序代码。
通过以下结合附图对本发明的最佳实施例的详细说明,本发明的这些以及其他优点将更加明显。
附图说明
参照下面结合附图对本发明实施例的说明,会更加容易地理解本发明的以上和其它目的、特点和优点。附图中的部件只是为了示出本发明的原理。在附图中,相同的或类似的技术特征或部件将采用相同或类似的附图标记来表示。
图1示出了根据本发明的一个实施例的生成网页页面的测试用例的总体框架图;
图2示出了根据本发明的一个实施例的生成网页页面的测试用例的方法200的示例性过程的流程图;
图3示出了训练得到分类模型的一种示例性过程的流程图;
图4示出了根据本发明的一个实施例进行训练、分类及生成测试用例的示意图;
图5示出了根据本发明的另一个实施例的生成网页页面的测试用例的方法500的示例性过程的流程图;
图6是示出根据本发明的一个实施例的生成网页页面的测试用例的装置600的示例性配置的框图;
图7是示出根据本发明的另一个实施例的生成网页页面的测试用例的装置700的示例性配置的框图;
图8是示出用于生成分类模型的分类模型训练单元800的示例性配置的框图;以及
图9是示出可以用于实施本发明的生成网页页面的测试用例的方法和装置的计算设备的示例性结构图。
具体实施方式
下面参照附图来说明本发明的实施例。在本发明的一个附图或一种实施方式中描述的元素和特征可以与一个或更多个其它附图或实施方式中示出的元素和特征相结合。应当注意,为了清楚的目的,附图和说明中省略了与本发明无关的、本领域普通技术人员已知的部件和处理的表示和描述。
本发明提出了一种能够辅助测试人员自动或者更智能地生成网页页面的测试用例的方法和装置。在本发明,认为对于类似的页面模块,测试用例也会是类似的。当前的网页应用越来越复杂,一个页面可能包含很多模块,每个模块负责一个独立的功能。可以着眼于这些独立的功能模块,自动生成对应的测试用例,每个测试用例对应于一个单一的模块。通过分析页面模块的分类,可以自动生成测试用例,从而大大提高了工作效率。例如:大多数的登录模块都是类似的,可以根据这个类似的特性,使用预设的测试脚本模板去对应登录模块,对于待测的登录模块,自动生成可用的测试脚本。
下面结合附图详细说明根据本发明的实施例的生成网页页面的测试用例的方法和装置。
图1示出了根据本发明的一个实施例的生成网页页面的测试用例的总体框架图。
在本发明中,认为每个网页页面都包含一个或多个部分,比如导航条、广告栏、主题内容等等。每个部分可以看作一个独立模块,独立模块是页面中负责一个独立功能的模块。通常在一个测试用例中,只测试一个独立模块。如果要测试不同的独立模块,通常使用不同的测试用例。否则的话,测试用例会出现混乱,造成很大的维护成本。通过分析网页页面和测试用例,发明人认为如果可以分割页面,并且发现分割得到的独立模块的类别,就可以自动化的针对固定的模块类别,进行自动化的生成测试用例。发明人发现,能够被认为是属于同一个独立模块的页面内容,都有着相似的特征。比如,在同一个独立模块中的控件,通常在同一个区域中,或者有类似的CSS(级联样式表)样式。这是因为设计人员在设计页面的时候,通常会把完成独立功能的控件放在一起并且设置类似的样式。所以可以利用这个特性,来分割页面,然后针对每个分割得到的独立模块进行自动化地生成对应的测试用例。
图2示出了根据本发明的一个实施例的生成网页页面的测试用例的方法200的示例性过程的流程图。
图2示出的实施例是在页面包含多个独立模块的情况下,生成网页页面的测试用例的方法的流程图。
对于包含多个独立模块的页面,首先要对页面进行分割,在步骤S202中,将网页页面分割为多个独立模块。
具体地,根据网页页面的DOM树的节点的特征设定多个规则,根据这些规则可以对节点执行不进行分割、进行分割或调整相邻节点之间的关联度的操作。本发明使用迭代式的规则匹配方法进行页面分割。也就是说,对于页面的DOM树的全部节点,使用例如先序遍历方式对节点进行规则匹配,即将每个节点与多个规则依次进行匹配来执行不对节点进行分割、对节点进行分割或者调整相邻节点之间的关联度的操作。对节点的分割也即对相应的页面模块进行分割,在下文中,对节点进行分割与对页面模块进行分割表示的是相同的意思。
在一个示例中,可以设置一个WoB值(即相邻节点之间的关联度)作为表示两个被分割的模块之间的连接强度。每两个被分割开的模块都有其对应的WoB值。这个值需要预设一个默认值,比如5。有些规则会改变这个WoB值,每轮规则匹配结束时,查看每个WoB值是否小于一个预设的阈值,如果小于这个阈值,那么对应的模块将会被合并。重复这个迭代操作,直到所有的WoB值都不再变化或者页面模块不再发生变化或者达到预设的迭代次数。从而实现将网页页面分割为多个独立模块。
网页页面都有自己的DOM树结构,DOM树包含了一系列的标签比如html,body,div等等,这些标签组成一个树形结构。
根据HTML5标准,把DOM树的标签节点分成以下几个类别:
1)非断行节点:不会导致断行的标签。比如FONT,B,I等标签。
2)断行节点:会导致断行的标签,比如BR,HR等标签。
3)有效节点:显示在页面上的节点,对应的不显示的节点为非有效节点。
4)文本节点:节点只包含文字。
根据以上所述的节点的特征,可以设定分别用于不对节点进行分割、对节点进行分割或调整相邻节点之间的关联度的多个规则。
其中,不对节点进行分割的规则可以包括:
如果节点不是文本节点并且其没有有效节点,则该节点不被分割并且该节点的子节点也不被分割;
如果节点只包含一个有效节点并且该节点不是文本节点,则该节点不被分割,然后进入该节点的子节点进行规则匹配;
如果节点的子节点都是文本节点,则该节点不被分割;
如果节点仅包含相同样式的内容列表,则该节点不被分割;以及
如果节点的部分子节点具有类似的级联样式表样式,则这些子节点不被分割。
对节点进行分割的规则可以包括:
如果节点包含<HR>,则该节点被分割;以及
如果节点的两个子节点之间的距离大于该两个子节点中的较小子节点的长度或宽度的预定比例,则该节点被分割。
调整相邻节点之间的关联度的规则可以包括:
如果节点的子节点之一是断行节点,则分割该节点,并基于两个模块之间的距离将关联度设置为第一预定值;
如果节点中有两块内容的背景颜色不同,则分割该节点,基于两块内容之间的距离将关联度设置为第二预定值,其中第二预定值小于等于第一预定值;
如果节点中存在表单,则将表单所分割的模块的关联度都减去预定差数;
如果所有子节点具有相同的级联样式表样式,则将子节点的关联度减去预定差数。
在步骤S202中,对DOM树的每个节点都进行规则匹配,直到迭代式的规则匹配操作完成后,可以得到网页页面分割的多个独立模块,并且用于下一步的操作中。
接下来,在步骤S204中,基于网页页面的文档对象模型DOM树提取网页页面所包括的独立模块的特征。
在一个示例中,设置了以下7类独立模块的特征。
特征 | 描述 |
特征1 | 超链接与文本句子的比值 |
特征2 | 表单控件和超链接的比值 |
特征3 | 是否存在提交按钮 |
特征4 | 是否存在表单 |
特征5 | 列表子节点的数量 |
特征6 | 节点文本的平均长度 |
特征7 | 超链接和图像的比值 |
特征8 | 是否存在提交的JavaScript脚本 |
特征9 | 表单控件和文字数量的比值 |
特征1表示超链接和文本句子的比值,定义句子通过句号,叹号和问号进行分割。特征2表示表单控件和超链接的比值。特征3表示这个模块中是否存在提交按钮,如果存在提交按钮,那么这个模块更可能是包含用户交互的应用类。特征4表示是否存在表单。特征5表示列表中的节点数量,如果有足够的节点数量,那么其更可能是一个列表模块。特征6表示节点文本的平均长度。特征7表示超链接和图像数量的比值。特征8表示是否存在用于提交表单的JS代码。特征9表示表单控件和文字数量的比值。
提取独立模块的特征的具体方法将在下文中说明。
在步骤S206中,根据所提取的特征,基于预先存储的分类模型将独立模块分类为预设类别。
这里的分类模型可以通过训练来得到。
图3示出了训练得到分类模型的一种示例性过程的流程图。
首先,在步骤S302中,获得一个训练数据集来进行训练。训练数据集包括多个网页页面,其中每个网页页面标注有所包括的独立模块和各独立模块所对应的类别。
在一个示例中,可以将页面模块分为三个大类,每个大类中分别包含若干小类。
1)列表类。这类模块包含一个元素的列表,这些元素包含相似或者相同的样式,并且其内容也是相似的,比如新闻标题列表。列表类可以细分为以下几个小类:
a)带超链接的纯文本列表
b)带超链接和图片的纯文本列表
c)图片列表
d)纯文本列表
2)文本模块。这类模块包含文本,比如新闻报告的正文模块。这类模块可以细分为以下几个小类:
a)纯文本
b)纯文本带评论
3)应用模块。这类模块包含单一信息,比如当地天气预报,日程管理模块等等。这类模块可以细分为如下两个小类:
a)包含用户交互的应用
b)没有用户交互的应用。
简单来说,可以将页面模块分为1)带超链接的纯文本列表、2)带超链接和图片的纯文本列表、3)图片列表、4)纯文本列表、5)纯文本、6)纯文本带评论、7)包含用户交互的应用、8)没有用户交互的应用这八个类别。
在训练数据集中包含每个独立模块对应这个八个类别中的哪个类别的信息。
接下来,在步骤S304中,基于训练数据集中的多个网页页面的DOM树提取各个独立模块的特征。
然后,在步骤S306中,基于所提取的各个独立模块的特征以及各独立模块所对应的类别进行训练得到分类模型。
具体地,可以收集一个独立模块关于以上所述9类特征的所有特征值,然后将这些特征值都放在一个向量中,作为该模块的特征向量。将特征向量和已经标注好的该模块的类别信息传入训练流程中进行训练,来得到分类模型。
在一个示例中,可以通过训练生成用于分类的决策树,来确定不同特征在决策树中所处的位置。
在一个示例中,可以使用信息增益的方法进行训练,来得到最终的决策树,即步骤S206中的分类模型。
该分类模型可以预先存储在系统中,用于对待分类的独立模块进行分类。
本领域技术人员可以理解,对于步骤S204中提取待测试网页页面的独立模块的特征,可以采用与训练分类模型中所采用的提取独立模块的特征的同样的方法来提取。
在一个示例中,提取待测试的独立模块的所有特征值,组成该独立模块的特征向量,将该特征向量放入预先得到的决策树模型中,就可以确定该独立模块的分类结果,即该独立模块属于哪个预设类别。
最后,在步骤S208中,根据独立模块被分类的预设类别,利用预设的测试用例模板来生成独立模块的测试用例。
在一个示例中,针对以上所述的八种页面类别,预先设定八种相应的测试用例模板,使用这些测试用例模板,可以对不同的类别自动化地生成相应的测试用例。
由于对于相同种类的模块来说,都有着相同或类似的测试操作,把这些操作抽象汇总起来,就能够建立对应的测试用例模板。
下面给出对于各个类别的一些简单示例:
对于列表类的带超链接和图片的纯文本列表类别的模块来说,可能需要下列测试操作:
·判断超链接和图片是否有异常(链接是否有效,图片是否显示等)
·依次点击所有超链接和图片并截图
·判断每个列表项的格式是否一致
·等
对于文本类的纯文本带评论类别的模块来说,可能需要下列测试操作:
·判断文字显示是否有异常(段落格式是否一致,字体等是否一致等)
·判断评论是否有异常(格式是否一致等)
·判断页面中是否有图片无法显示
·等
对于应用类的包含用户交互的应用的模块来说,可能需要下列测试操作:
·判断各个按钮(以及其他可点击的组件)是否可用
·判断模块中的各个超链接是否无效
·记录每个点击事件的结果
·等
对于新的需要测试的页面块,可以直接套用相应的模板,直接生成测试用例。生成测试用例时,需要用到以下两方面的信息:
第一是页面模块的DOM树结构,即HTML源代码,例如通过HTML源码,可以获得所有超链接所指向的地址,以及所有图片的地址,通过这些地址,就能够判断超链接是否失效,或者图片是否能正确显示。
第二是页面模块在显示屏上的视觉信息,通过对这方面信息的采集,可以用来判断组件的样式是否显示正确,比如图片是否显示不一致(有大有小,或者出现偏移)。
图4示出了根据本发明的一个实施例进行训练、分类及生成测试用例的示意图。
在图4的上半部分,是决策树的训练过程,下半部分是对待测模块进行分类,然后根据分类结果生成测试用例的过程。
在训练阶段,对于带有标注的训练数据集,基于DOM树来提取特征,得到特征向量,从而训练得到决策树。
在分类阶段,对于待测试的模块,基于DOM书来提取特征,得到特征向量,将该特征向量放入预先得到的决策树模型中,得到分类结果。
最后,根据分类结果,选择测试用例模板来生成测试用例。
图5示出了根据本发明的另一个实施例的生成网页页面的测试用例的方法500的示例性过程的流程图。
图5中的实施例是在页面只包含一个独立模块(例如登录模块)的情况下生成网页页面的测试用例的方法。在这种情况下,不需要对页面进行分割的步骤。
首先,在步骤S504中,基于待测试网页页面的文档对象模型DOM树提取网页页面所包括的独立模块的特征。
接着,在步骤S506中,根据所提取的特征,基于预先存储的分类模型将独立模块分类为预设类别。
最后,在步骤S508中,根据独立模块被分类的预设类别,利用预设的测试用例模板来生成独立模块的测试用例。
本领域技术人员可以理解,图5中的生成网页页面的测试用例的方法500与图2中的生成网页页面的测试用例的方法200相比,不需要对页面进行分割的步骤S202,而图5中的步骤S504、S506和S508与图1中的步骤S204、S206和S208类似,在此不做详细说明。
图6是示出根据本发明的一个实施例的生成网页页面的测试用例的装置600的示例性配置的框图。
如图6所示,生成网页页面的测试用例的装置600包括分割单元602、特征提取单元604、分类单元606和测试用例生成单元608。
其中,分割单元602被配置为将网页页面分割为多个独立模块。
特征提取单元604被配置为基于待测试网页页面的文档对象模型DOM树提取网页页面所包括的独立模块的特征。
分类单元606被配置为根据所提取的特征,基于预先存储的分类模型将独立模块分类为预设类别。
测试用例生成单元608被配置为根据独立模块被分类的预设类别,利用预设的测试用例模板来生成独立模块的测试用例。
图7是示出根据本发明的另一个实施例的生成网页页面的测试用例的装置700的示例性配置的框图。
如图7所示,生成网页页面的测试用例的装置700包括特征提取单元704、分类单元706和测试用例生成单元708。换句话说,图7所示的生成网页页面的测试用例的装置700与图6所示的生成网页页面的测试用例的装置600相比少了分割单元602。图7中的实施例是在页面只包含一个独立模块的情况下生成网页页面的测试用例的装置。
图7中的特征提取单元704、分类单元706和测试用例生成单元708与图6中的特征提取单元604、分类单元606和测试用例生成单元608类似,在此不再赘述。
图8是示出用于生成在根据本发明的实施例的生成网页页面的测试用例的装置600和700中所利用的分类模型的分类模型训练单元800的示例性配置的框图。
如图8所示,分类模型训练单元800包括训练数据集获得子单元802、特征提取子单元804和分类模型训练子单元806。
其中,训练数据集获得子单元802被配置为获得训练数据集,训练数据集包括多个网页页面,其中每个网页页面标注有所包括的独立模块、以及各独立模块所对应的类别。
特征提取子单元804被配置为基于训练数据集中的多个网页页面的DOM树提取各个独立模块的特征。
分类模型训练子单元806被配置为基于所提取的各个独立模块的特征以及各独立模块所对应的类别进行训练得到分类模型。
关于生成网页页面的测试用例的装置600和700以及分类模型训练单元800的各个部分的操作和功能的细节可以参照结合图1-5描述的本发明的生成网页页面的测试用例的方法的实施例,这里不再详细描述。
在此需要说明的是,图6-8所示的装置及其组成单元的结构仅仅是示例性的,本领域技术人员可以根据需要对图6-8所示的结构框图进行修改。
本发明提出一种能够辅助测试人员自动或者更智能地生成网页页面的测试用例的方法和装置。根据本发明的方法和装置,将页面模块和测试用例联系在一起,通过分析页面模块的分类,可以自动生成测试用例,从而大大提高了工作效率。
以上结合具体实施例描述了本发明的基本原理,但是,需要指出的是,对本领域的普通技术人员而言,能够理解本发明的方法和装置的全部或者任何步骤或者部件,可以在任何计算装置(包括处理器、存储介质等)或者计算装置的网络中,以硬件、固件、软件或者它们的组合加以实现,这是本领域普通技术人员在阅读了本发明的说明的情况下运用他们的基本编程技能就能实现的。
因此,本发明的目的还可以通过在任何计算装置上运行一个程序或者一组程序来实现。所述计算装置可以是公知的通用装置。因此,本发明的目的也可以仅仅通过提供包含实现所述方法或者装置的程序代码的程序产品来实现。也就是说,这样的程序产品也构成本发明,并且存储有这样的程序产品的存储介质也构成本发明。显然,所述存储介质可以是任何公知的存储介质或者将来所开发出来的任何存储介质。
在通过软件和/或固件实现本发明的实施例的情况下,从存储介质或网络向具有专用硬件结构的计算机,例如图9所示的通用计算机900安装构成该软件的程序,该计算机在安装有各种程序时,能够执行各种功能等等。
在图9中,中央处理单元(CPU)501根据只读存储器(ROM)902中存储的程序或从存储部分908加载到随机存取存储器(RAM)903的程序执行各种处理。在RAM 903中,也根据需要存储当CPU 901执行各种处理等等时所需的数据。CPU 901、ROM 902和RAM 903经由总线904彼此链路。输入/输出接口905也链路到总线904。
下述部件链路到输入/输出接口905:输入部分906(包括键盘、鼠标等等)、输出部分907(包括显示器,比如阴极射线管(CRT)、液晶显示器(LCD)等,和扬声器等)、存储部分908(包括硬盘等)、通信部分909(包括网络接口卡比如LAN卡、调制解调器等)。通信部分909经由网络比如因特网执行通信处理。根据需要,驱动器910也可链路到输入/输出接口905。可拆卸介质911比如磁盘、光盘、磁光盘、半导体存储器等等根据需要被安装在驱动器910上,使得从中读出的计算机程序根据需要被安装到存储部分908中。
在通过软件实现上述系列处理的情况下,从网络比如因特网或存储介质比如可拆卸介质911安装构成软件的程序。
本领域的技术人员应当理解,这种存储介质不局限于图9所示的其中存储有程序、与设备相分离地分发以向用户提供程序的可拆卸介质911。可拆卸介质911的例子包含磁盘(包含软盘(注册商标))、光盘(包含光盘只读存储器(CD-ROM)和数字通用盘(DVD))、磁光盘(包含迷你盘(MD)(注册商标))和半导体存储器。或者,存储介质可以是ROM 902、存储部分908中包含的硬盘等等,其中存有程序,并且与包含它们的设备一起被分发给用户。
本发明还提出一种存储有机器可读取的指令代码的程序产品。指令代码由机器读取并执行时,可执行上述根据本发明实施例的方法。
相应地,用于承载上述存储有机器可读取的指令代码的程序产品的存储介质也包括在本发明的公开中。存储介质包括但不限于软盘、光盘、磁光盘、存储卡、存储棒等。
本领域的普通技术人员应理解,在此所例举的是示例性的,本发明并不局限于此。
在本说明书中,“第一”、“第二”以及“第N个”等表述是为了将所描述的特征在文字上区分开,以清楚地描述本发明。因此,不应将其视为具有任何限定性的含义。
作为一个示例,上述方法的各个步骤以及上述设备的各个组成模块和/或单元可以实施为软件、固件、硬件或其组合,并作为相应设备中的一部分。上述装置中各个组成模块、单元通过软件、固件、硬件或其组合的方式进行配置时可使用的具体手段或方式为本领域技术人员所熟知,在此不再赘述。
作为一个示例,在通过软件或固件实现的情况下,可以从存储介质或网络向具有专用硬件结构的计算机(例如图9所示的通用计算机900)安装构成该软件的程序,该计算机在安装有各种程序时,能够执行各种功能等。
在上面对本发明具体实施例的描述中,针对一种实施方式描述和/或示出的特征可以以相同或类似的方式在一个或更多个其他实施方式中使用,与其他实施方式中的特征相组合,或替代其他实施方式中的特征。
应该强调,术语“包括/包含”在本文使用时指特征、要素、步骤或组件的存在,但并不排除一个或更多个其他特征、要素、步骤或组件的存在或附加。
此外,本发明的方法不限于按照说明书中描述的时间顺序来执行,也可以按照其他的时间顺序地、并行地或独立地执行。因此,本说明书中描述的方法的执行顺序不对本发明的技术范围构成限制。
本发明及其优点,但是应当理解在不超出由所附的权利要求所限定的本发明的精神和范围的情况下可以进行各种改变、替代和变换。而且,本发明的范围不仅限于说明书所描述的过程、设备、手段、方法和步骤的具体实施例。本领域内的普通技术人员从本发明的公开内容将容易理解,根据本发明可以使用执行与在此的相应实施例基本相同的功能或者获得与其基本相同的结果的、现有和将来要被开发的过程、设备、手段、方法或者步骤。因此,所附的权利要求旨在在它们的范围内包括这样的过程、设备、手段、方法或者步骤。
基于以上的说明,可知公开至少公开了以下技术方案:
附记1、一种生成网页页面的测试用例的方法,包括:
基于待测试网页页面的文档对象模型DOM树提取所述网页页面所包括的独立模块的特征;
根据所提取的特征,基于预先存储的分类模型将所述独立模块分类为预设类别;以及
根据所述独立模块被分类的预设类别,利用预设的测试用例模板来生成所述独立模块的测试用例。
附记2、根据附记1所述的方法,还包括:
将所述网页页面分割为多个独立模块。
附记3、根据附记2所述的方法,其中,将所述网页页面分割为多个独立模块进一步包括:
根据所述网页页面的DOM树的节点的特征来设定用于不对节点进行分割、对节点进行分割或调整相邻节点之间的关联度的多个规则;以及
对所述DOM树的全部节点进行遍历,将每个节点与所述多个规则依次进行匹配来执行不对节点进行分割、对节点进行分割或者调整相邻节点之间的关联度的操作,迭代匹配直到分割的页面模块不再改变、或者相邻节点之间的关联度不再改变或者达到预定的迭代次数。
附记4、根据附记3所述的方法,其中,所述节点的特征包括:非断行节点、断行节点、有效节点和文本节点。
附记5、根据附记3所述的方法,其中,不对节点进行分割的规则包括:
如果节点不是文本节点并且其没有有效节点,则该节点不被分割并且该节点的子节点也不被分割;
如果节点只包含一个有效节点并且该节点不是文本节点,则该节点不被分割,然后进入该节点的子节点进行规则匹配;
如果节点的子节点都是文本节点,则该节点不被分割;
如果节点仅包含相同样式的内容列表,则该节点不被分割;以及
如果节点的部分子节点具有类似的级联样式表样式,则这些子节点不被分割。
附记6、根据附记3所述的方法,其中,对节点进行分割的规则包括:
如果节点包含<HR>,则该节点被分割;以及
如果节点的两个子节点之间的距离大于该两个子节点中的较小子节点的长度或宽度的预定比例,则该节点被分割。
附记7、根据附记3所述的方法,其中,调整相邻节点之间的关联度的规则包括:
如果节点的子节点之一是断行节点,则分割该节点,并基于两个模块之间的距离将关联度设置为第一预定值;
如果节点中有两块内容的背景颜色不同,则分割该节点,基于两块内容之间的距离将关联度设置为第二预定值,其中第二预定值小于等于第一预定值;
如果节点中存在表单,则将所述表单所分割的模块的关联度都减去预定差数;
如果所有子节点具有相同的级联样式表样式,则将子节点的关联度减去预定差数。
附记8、根据附记1或2所述的方法,其中,所述分类模型通过以下步骤训练得到:
获得训练数据集,所述训练数据集包括多个网页页面,其中每个网页页面标注有所包括的独立模块、以及各独立模块所对应的类别;
基于所述训练数据集中的多个网页页面的DOM树提取各个独立模块的特征;以及
基于所提取的各个独立模块的特征以及各独立模块所对应的类别进行训练得到所述分类模型。
附记9、根据附记1或2所述的方法,其中,所述独立模块被分类的所述预设类别包括:
带有超链接的纯文本的列表、带有超链接和图像的文本的列表、图片列表、纯文本的列表、纯文本、带有评论的纯文本、带有用户交互的应用程序、以及没有用户交互的应用程序。
附记10、根据附记8所述的方法,其中,基于网页页面的DOM树所提取的独立模块的特征包括以下中的一项或多项:超链接与文本句子的比值、表单控件和超链接的比值、是否存在提交按钮、是否存在表单、列表子节点的数量、节点文本的平均长度、超链接和图像的比值、是否存在提交的JavaScript脚本、表单控件和文字数量的比值。
附记11、一种生成网页页面的测试用例的装置,包括:
特征提取单元,被配置为基于待测试网页页面的文档对象模型DOM树提取所述网页页面所包括的独立模块的特征;
分类单元,被配置为根据所提取的特征,基于预先存储的分类模型将所述独立模块分类为预设类别;以及
测试用例生成单元,被配置为根据所述独立模块被分类的预设类别,利用预设的测试用例模板来生成所述独立模块的测试用例。
附记12、根据附记11所述的装置,还包括
分割单元,被配置为将所述网页页面分割为多个独立模块。
附记13、根据附记12所述的装置,其中,所述分割单元进一步被配置为:
根据所述网页页面的DOM树的节点的特征来设定用于不对节点进行分割、对节点进行分割或调整相邻节点之间的关联度的多个规则;以及
对所述DOM树的全部节点进行遍历,将每个节点与所述多个规则依次进行匹配来执行不对节点进行分割、对节点进行分割或者调整相邻节点之间的关联度的操作,迭代匹配直到分割的页面模块不再改变、或者相邻节点之间的关联度不再改变或者达到预定的迭代次数。
附记14、根据附记13所述的装置,其中,所述节点的特征包括:非断行节点、断行节点、有效节点和文本节点。
附记15、根据附记13所述的装置,其中,不对节点进行分割的规则包括:
如果节点不是文本节点并且其没有有效节点,则该节点不被分割并且该节点的子节点也不被分割;
如果节点只包含一个有效节点并且该节点不是文本节点,则该节点不被分割,然后进入该节点的子节点进行规则匹配;
如果节点的子节点都是文本节点,则该节点不被分割;
如果节点仅包含相同样式的内容列表,则该节点不被分割;以及
如果节点的部分子节点具有类似的级联样式表样式,则这些子节点不被分割。
附记16、根据附记13所述的装置,其中,对节点进行分割的规则包括:
如果节点包含<HR>,则该节点被分割;以及
如果节点的两个子节点之间的距离大于该两个子节点中的较小子节点的长度或宽度的预定比例,则该节点被分割。
附记17、根据附记13所述的装置,其中,调整相邻节点之间的关联度的规则包括:
如果节点的子节点之一是断行节点,则分割该节点,并基于两个模块之间的距离将关联度设置为第一预定值;
如果节点中有两块内容的背景颜色不同,则分割该节点,基于两块内容之间的距离将关联度设置为第二预定值,其中第二预定值小于等于第一预定值;
如果节点中存在表单,则将所述表单所分割的模块的关联度都减去预定差数;
如果所有子节点具有相同的级联样式表样式,则将子节点的关联度减去预定差数。
附记18、根据附记11或12所述的装置,还包括:分类模型训练单元,所述分类模型训练单元包括:
训练数据集获得子单元,被配置为获得训练数据集,所述训练数据集包括多个网页页面,其中每个网页页面标注有所包括的独立模块、以及各独立模块所对应的类别;
特征提取子单元,被配置为基于所述训练数据集中的多个网页页面的DOM树提取各个独立模块的特征;以及
分类模型训练子单元,被配置为基于所提取的各个独立模块的特征以及各独立模块所对应的类别进行训练得到所述分类模型。
附记19、根据附记11或12所述的装置,其中,所述独立模块被分类的所述预设类别包括:
带有超链接的纯文本的列表、带有超链接和图像的文本的列表、图片列表、纯文本的列表、纯文本、带有评论的纯文本、带有用户交互的应用程序、以及没有用户交互的应用程序。
附记20、根据附记18所述的装置,其中,基于网页页面的DOM树所提取的独立模块的特征包括以下中的一项或多项:超链接与文本句子的比值、表单控件和超链接的比值、是否存在提交按钮、是否存在表单、列表子节点的数量、节点文本的平均长度、超链接和图像的比值、是否存在提交的JavaScript脚本、表单控件和文字数量的比值。
Claims (10)
1.一种生成网页页面的测试用例的方法,包括:
基于待测试网页页面的文档对象模型DOM树提取所述网页页面所包括的独立模块的特征;
根据所提取的特征,基于预先存储的分类模型将所述独立模块分类为预设类别;以及
根据所述独立模块被分类的预设类别,利用预设的测试用例模板来生成所述独立模块的测试用例。
2.根据权利要求1所述的方法,其中,还包括:
将所述网页页面分割为多个独立模块。
3.根据权利要求2所述的方法,其中,将所述网页页面分割为多个独立模块进一步包括:
根据所述网页页面的DOM树的节点的特征来设定用于不对节点进行分割、对节点进行分割或调整相邻节点之间的关联度的多个规则;以及
对所述DOM树的全部节点进行遍历,将每个节点与所述多个规则依次进行匹配来执行不对节点进行分割、对节点进行分割或者调整相邻节点之间的关联度的操作,迭代匹配直到分割的页面模块不再改变、或者相邻节点之间的关联度不再改变或者达到预定的迭代次数。
4.根据权利要求3所述的方法,其中,所述节点的特征包括:非断行节点、断行节点、有效节点和文本节点。
5.根据权利要求3所述的方法,其中,不对节点进行分割的规则包括:
如果节点不是文本节点并且其没有有效节点,则该节点不被分割并且该节点的子节点也不被分割;
如果节点只包含一个有效节点并且该节点不是文本节点,则该节点不被分割,然后进入该节点的子节点进行规则匹配;
如果节点的子节点都是文本节点,则该节点不被分割;
如果节点仅包含相同样式的内容列表,则该节点不被分割;以及
如果节点的部分子节点具有类似的级联样式表样式,则这些子节点不被分割。
6.根据权利要求3所述的方法,其中,对节点进行分割的规则包括:
如果节点包含<HR>,则该节点被分割;以及
如果节点的两个子节点之间的距离大于该两个子节点中的较小子节点的长度或宽度的预定比例,则该节点被分割。
7.根据权利要求3所述的方法,其中,调整相邻节点之间的关联度的规则包括:
如果节点的子节点之一是断行节点,则分割该节点,并基于两个模块之间的距离将关联度设置为第一预定值;
如果节点中有两块内容的背景颜色不同,则分割该节点,基于两块内容之间的距离将关联度设置为第二预定值,其中第二预定值小于等于第一预定值;
如果节点中存在表单,则将所述表单所分割的模块的关联度都减去预定差数;以及
如果所有子节点具有相同的级联样式表样式,则将子节点的关联度减去预定差数。
8.根据权利要求1或2所述的方法,其中,所述分类模型通过以下步骤训练得到:
获得训练数据集,所述训练数据集包括多个网页页面,其中每个网页页面标注有所包括的独立模块、以及各独立模块所对应的类别;
基于所述训练数据集中的多个网页页面的DOM树提取各个独立模块的特征;以及
基于所提取的各个独立模块的特征以及各独立模块所对应的类别进行训练得到所述分类模型。
9.根据权利要求1或2所述的方法,其中,所述独立模块被分类的所述预设类别包括:
带有超链接的纯文本的列表、带有超链接和图像的文本的列表、图片列表、纯文本的列表、纯文本、带有评论的纯文本、带有用户交互的应用程序、以及没有用户交互的应用程序。
10.一种生成网页页面的测试用例的装置,包括:
特征提取单元,被配置为基于待测试网页页面的文档对象模型DOM树提取所述网页页面所包括的独立模块的特征;
分类单元,被配置为根据所提取的特征,基于预先存储的分类模型将所述独立模块分类为预设类别;以及
测试用例生成单元,被配置为根据所述独立模块被分类的预设类别,利用预设的测试用例模板来生成所述独立模块的测试用例。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510280320.1A CN106294107A (zh) | 2015-05-27 | 2015-05-27 | 生成网页页面的测试用例的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510280320.1A CN106294107A (zh) | 2015-05-27 | 2015-05-27 | 生成网页页面的测试用例的方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106294107A true CN106294107A (zh) | 2017-01-04 |
Family
ID=57635358
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510280320.1A Pending CN106294107A (zh) | 2015-05-27 | 2015-05-27 | 生成网页页面的测试用例的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106294107A (zh) |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107391383A (zh) * | 2017-08-11 | 2017-11-24 | 上海巍擎信息技术有限责任公司 | 一种应用程序界面的测试方法和测试系统 |
CN107608877A (zh) * | 2017-08-11 | 2018-01-19 | 上海巍擎信息技术有限责任公司 | 一种基于机器学习的自动化应用程序界面测试方法和测试系统 |
CN108334441A (zh) * | 2017-01-19 | 2018-07-27 | 深圳市优朋普乐传媒发展有限公司 | 一种软件开发工具包的自动化测试方法和系统 |
CN108345979A (zh) * | 2017-01-23 | 2018-07-31 | 阿里巴巴集团控股有限公司 | 一种业务测试方法及装置 |
CN109542764A (zh) * | 2018-10-17 | 2019-03-29 | 平安健康保险股份有限公司 | 网页自动化测试方法、装置、计算机设备和存储介质 |
CN109960648A (zh) * | 2017-12-26 | 2019-07-02 | 北京奇虎科技有限公司 | 一种应用程序的测试方法、装置 |
CN110309059A (zh) * | 2019-05-24 | 2019-10-08 | 深圳壹账通智能科技有限公司 | Ui界面测试方法、系统、计算机设备和存储介质 |
CN110334014A (zh) * | 2019-06-12 | 2019-10-15 | 北京大米科技有限公司 | 用于用户界面自动化测试方法、系统、服务器及存储介质 |
CN110580215A (zh) * | 2018-06-08 | 2019-12-17 | 西安邮电大学 | 一种基于用户会话的Web测试用例约简优化方法 |
CN110851343A (zh) * | 2018-08-21 | 2020-02-28 | 北京京东尚科信息技术有限公司 | 一种基于决策树的测试方法和装置 |
CN111083007A (zh) * | 2019-11-21 | 2020-04-28 | 京信通信系统(中国)有限公司 | 测试方法、装置、计算机设备和存储介质 |
CN111427760A (zh) * | 2019-01-09 | 2020-07-17 | 阿里巴巴集团控股有限公司 | 页面测试方法、装置、设备及存储介质 |
CN111723259A (zh) * | 2020-06-29 | 2020-09-29 | 深圳壹账通智能科技有限公司 | 网页数据的监控方法、装置、终端设备及存储介质 |
CN111831533A (zh) * | 2019-04-15 | 2020-10-27 | 西安邮电大学 | 一种基于导航图的Web应用测试用例生成方法 |
CN112148579A (zh) * | 2019-06-26 | 2020-12-29 | 腾讯科技(深圳)有限公司 | 一种用户界面的测试方法和装置 |
CN112507186A (zh) * | 2020-11-27 | 2021-03-16 | 北京数立得科技有限公司 | 网页元素分类方法 |
CN114490315A (zh) * | 2021-12-16 | 2022-05-13 | 北京志凌海纳科技有限公司 | Web应用程序自动化测试方法和装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101251798A (zh) * | 2008-04-01 | 2008-08-27 | 中兴通讯股份有限公司 | 一种基于关系的测试用例生成方法 |
CN103176896A (zh) * | 2011-12-23 | 2013-06-26 | 阿里巴巴集团控股有限公司 | 一种测试用例的生成方法及装置 |
CN103186457A (zh) * | 2011-12-29 | 2013-07-03 | 阿里巴巴集团控股有限公司 | 一种自动生成测试用例的方法和装置 |
CN103530223A (zh) * | 2012-07-06 | 2014-01-22 | 百度在线网络技术(北京)有限公司 | 一种自动生成单元测试用例的方法及装置 |
CN104090844A (zh) * | 2014-07-18 | 2014-10-08 | 百度在线网络技术(北京)有限公司 | 网页自动化测试方法和装置 |
-
2015
- 2015-05-27 CN CN201510280320.1A patent/CN106294107A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101251798A (zh) * | 2008-04-01 | 2008-08-27 | 中兴通讯股份有限公司 | 一种基于关系的测试用例生成方法 |
CN103176896A (zh) * | 2011-12-23 | 2013-06-26 | 阿里巴巴集团控股有限公司 | 一种测试用例的生成方法及装置 |
CN103186457A (zh) * | 2011-12-29 | 2013-07-03 | 阿里巴巴集团控股有限公司 | 一种自动生成测试用例的方法和装置 |
CN103530223A (zh) * | 2012-07-06 | 2014-01-22 | 百度在线网络技术(北京)有限公司 | 一种自动生成单元测试用例的方法及装置 |
CN104090844A (zh) * | 2014-07-18 | 2014-10-08 | 百度在线网络技术(北京)有限公司 | 网页自动化测试方法和装置 |
Cited By (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108334441A (zh) * | 2017-01-19 | 2018-07-27 | 深圳市优朋普乐传媒发展有限公司 | 一种软件开发工具包的自动化测试方法和系统 |
CN108345979A (zh) * | 2017-01-23 | 2018-07-31 | 阿里巴巴集团控股有限公司 | 一种业务测试方法及装置 |
CN108345979B (zh) * | 2017-01-23 | 2021-07-09 | 阿里巴巴集团控股有限公司 | 一种业务测试方法及装置 |
CN107391383A (zh) * | 2017-08-11 | 2017-11-24 | 上海巍擎信息技术有限责任公司 | 一种应用程序界面的测试方法和测试系统 |
CN107608877A (zh) * | 2017-08-11 | 2018-01-19 | 上海巍擎信息技术有限责任公司 | 一种基于机器学习的自动化应用程序界面测试方法和测试系统 |
CN107608877B (zh) * | 2017-08-11 | 2021-04-09 | 上海巍擎信息技术有限责任公司 | 一种基于机器学习的自动化应用程序界面测试方法和测试系统 |
CN109960648A (zh) * | 2017-12-26 | 2019-07-02 | 北京奇虎科技有限公司 | 一种应用程序的测试方法、装置 |
CN110580215A (zh) * | 2018-06-08 | 2019-12-17 | 西安邮电大学 | 一种基于用户会话的Web测试用例约简优化方法 |
CN110580215B (zh) * | 2018-06-08 | 2022-10-25 | 西安邮电大学 | 一种基于用户会话的Web测试用例约简优化方法 |
CN110851343A (zh) * | 2018-08-21 | 2020-02-28 | 北京京东尚科信息技术有限公司 | 一种基于决策树的测试方法和装置 |
CN109542764A (zh) * | 2018-10-17 | 2019-03-29 | 平安健康保险股份有限公司 | 网页自动化测试方法、装置、计算机设备和存储介质 |
CN109542764B (zh) * | 2018-10-17 | 2023-08-18 | 平安健康保险股份有限公司 | 网页自动化测试方法、装置、计算机设备和存储介质 |
CN111427760B (zh) * | 2019-01-09 | 2024-05-28 | 阿里巴巴集团控股有限公司 | 页面测试方法、装置、设备及存储介质 |
CN111427760A (zh) * | 2019-01-09 | 2020-07-17 | 阿里巴巴集团控股有限公司 | 页面测试方法、装置、设备及存储介质 |
CN111831533A (zh) * | 2019-04-15 | 2020-10-27 | 西安邮电大学 | 一种基于导航图的Web应用测试用例生成方法 |
CN111831533B (zh) * | 2019-04-15 | 2022-09-27 | 西安邮电大学 | 一种基于导航图的Web应用测试用例生成方法 |
CN110309059A (zh) * | 2019-05-24 | 2019-10-08 | 深圳壹账通智能科技有限公司 | Ui界面测试方法、系统、计算机设备和存储介质 |
CN110334014A (zh) * | 2019-06-12 | 2019-10-15 | 北京大米科技有限公司 | 用于用户界面自动化测试方法、系统、服务器及存储介质 |
CN112148579A (zh) * | 2019-06-26 | 2020-12-29 | 腾讯科技(深圳)有限公司 | 一种用户界面的测试方法和装置 |
CN112148579B (zh) * | 2019-06-26 | 2023-10-03 | 腾讯科技(深圳)有限公司 | 一种用户界面的测试方法和装置 |
CN111083007A (zh) * | 2019-11-21 | 2020-04-28 | 京信通信系统(中国)有限公司 | 测试方法、装置、计算机设备和存储介质 |
CN111083007B (zh) * | 2019-11-21 | 2022-07-29 | 京信网络系统股份有限公司 | 测试方法、装置、计算机设备和存储介质 |
CN111723259A (zh) * | 2020-06-29 | 2020-09-29 | 深圳壹账通智能科技有限公司 | 网页数据的监控方法、装置、终端设备及存储介质 |
CN112507186A (zh) * | 2020-11-27 | 2021-03-16 | 北京数立得科技有限公司 | 网页元素分类方法 |
CN114490315B (zh) * | 2021-12-16 | 2022-09-13 | 北京志凌海纳科技有限公司 | Web应用程序自动化测试方法和装置 |
CN114490315A (zh) * | 2021-12-16 | 2022-05-13 | 北京志凌海纳科技有限公司 | Web应用程序自动化测试方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106294107A (zh) | 生成网页页面的测试用例的方法和装置 | |
CN110852065B (zh) | 一种文档审核方法、装置、系统、设备及存储介质 | |
US10706332B2 (en) | Analog circuit fault mode classification method | |
CN109299258B (zh) | 一种舆情事件检测方法、装置及设备 | |
CN111652232B (zh) | 票据识别方法及装置、电子设备和计算机可读存储介质 | |
CN110968695A (zh) | 基于弱监督技术主动学习的智能标注方法、装置及平台 | |
US20190325030A1 (en) | Translation synthesizer for analysis, amplification and remediation of linguistic data across a translation supply chain | |
CN109740159B (zh) | 用于命名实体识别的处理方法及装置 | |
JP7434867B2 (ja) | ウェブページから情報を抽出する方法、装置及び記憶媒体 | |
CN103679190A (zh) | 分类装置、分类方法以及电子设备 | |
CN109635260A (zh) | 用于生成文章模板的方法、装置、设备和存储介质 | |
CN111666766A (zh) | 数据处理方法、装置和设备 | |
CN109710725A (zh) | 一种基于文本分类的中文表格列标签恢复方法和系统 | |
CN104346408A (zh) | 一种对网络用户进行标注的方法与设备 | |
CN115562656A (zh) | 页面的生成方法、装置、存储介质及计算机设备 | |
Toomey | R for data science | |
US20100311020A1 (en) | Teaching material auto expanding method and learning material expanding system using the same, and machine readable medium thereof | |
CN114299196A (zh) | 海报自动生成方法及系统、存储介质、终端设备 | |
US20020178192A1 (en) | Data integrate system and data integrate method | |
CN102236658B (zh) | 网页内容提取方法和装置 | |
Rio et al. | Websites Quality: Does It Depend on the Application Domain? | |
CN116383155B (zh) | 一种基于eda验证仿真器的日志查询系统 | |
CN106095674A (zh) | 一种网站自动化测试方法和装置 | |
CN104123138A (zh) | 一种erp系统的快速构建方法 | |
KR20210097204A (ko) | 정보를 출력하는 방법 및 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20170104 |