Web页面测试方法和装置与流程

文档序号:13031076阅读:218来源:国知局
Web页面测试方法和装置与流程

本申请涉及软件测试领域,尤其涉及一种web页面测试方法和装置。



背景技术:

树形菜单是web页面中的一种常见结构,是为了方便查找每个节点而采用的导航菜单。在树形菜单中,用户可以通过展开或折叠父节点,显示或隐藏其下属的子节点,并可以通过点击子节点,进入对应的web页面。

如图1所示,为树形菜单的一种示例。在图1所示的树形菜单中,treenode2-1-1为子节点,通过点击该子节点可以进入对应的web页面,treenode2-1为treenode2-1-1的一级父节点,treenode2为treenode2-1-1的二级父节点,treeroot1为树状菜单的根节点,也可以视为treenode2-1-1的三级父节点。通常,树形菜单的根节点默认处于展开状态。图1所示的树形菜单为四级树形菜单。

在对包含树形菜单的web页面进行测试时,可以通过编写测试脚本,模拟用户的手动操作,例如:展开父节点、点击子节点等。如果需要对某个子节点对应的web页面进行测试,则可以对该子节点执行点击操作,以进入对应的web页面,后续可以对该web页面进行测试。然而,如果该子节点处于隐藏状态,就会导致点击失败,从而导致测试失败。



技术实现要素:

有鉴于此,本申请提供一种web页面测试方法和装置。具体地,本申请是通过如下技术方案实现的:

第一方面,本申请提供一种web页面测试方法,所述方法包括:

接收到测试指令,所述测试指令中携带被测节点名称;

基于树形菜单确定被测节点的i级父节点,并判断所述i级父节点是否处于展开状态;其中,i是大于0的自然数,初始值为1;

当所述i级父节点处于展开状态时,对小于i级的父节点执行展开操作,以显示被测节点,并对所述被测节点对应的web页面进行测试;

当所述i级父节点处于折叠状态时,判断所述被测节点的i+1级父节点是否处于展开状态。

第二方面,本申请提供一种web页面测试装置,所述装置包括:

接收单元,用于接收到测试指令,所述测试指令中携带被测节点名称;

第一判断单元,用于基于树形菜单确定被测节点的i级父节点,并判断所述i级父节点是否处于展开状态;其中,i是大于0的自然数,初始值为1;

第一展开单元,用于当所述i级父节点处于展开状态时,对小于i级的父节点执行展开操作,以显示被测节点,并对所述被测节点对应的web页面进行测试;

所述第一判断单元还用于当所述i级父节点处于折叠状态时,判断所述被测节点的i+1级父节点是否处于展开状态。

分析上述技术方案可知,本申请技术方案无需对被测节点和被测节点的各级父节点进行定位,也无需针对不同的节点编写不同的操作函数以执行对应的操作,因此减少了测试脚本的代码量,进而降低了测试脚本的错误概率和维护成本,也提高了web页面的测试效率。

附图说明

图1是树形菜单的一种示例;

图2是本申请一示例性实施例示出的一种web页面测试方法的流程图;

图3是本申请一示例性实施例示出的另一种web页面测试方法的流程图;

图4是本申请一示例性实施例示出的一种web页面测试装置所在设备的硬件结构图;

图5是本申请一示例性实施例示出的一种web页面测试装置的框图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。

在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

相关技术中,如果用户需要对树形菜单中的某个子节点对应的web页面进行测试,则可以先手动在该树形菜单中找到该子节点以及该子节点的各级父节点,再利用元素定位工具对该子节点及其各级父节点进行定位,最后在测试脚本中编写操作函数对该子节点的各级父节点进行展开状态/折叠状态的判断,并对其中处于折叠状态的父节点执行展开操作,以及在展开该子节点的各级父节点以显示该子节点后,对该子节点执行点击操作,从而可以进入对应的web页面进行测试。

采用这样的方式,如果需要频繁进入不同的子节点对应的web页面进行测试,则需要对大量子节点及其父节点进行定位,同时,由于针对不同的节点所编写的操作函数不同,因此还需要编写大量的操作函数,导致测试脚本的代码量增加,进而提高了测试脚本的错误概率和维护成本,也降低了web页面的测试效率。

请参考图2,为本申请一示例性实施例示出的一种web页面测试方法的流程图,该方法可以应用于终端设备、服务器等测试设备中,包括如下步骤:

步骤201:接收到测试指令,所述测试指令中携带被测节点名称。

步骤202:基于树形菜单确定被测节点的i级父节点,并判断所述i级父节点是否处于展开状态;其中,i是大于0的自然数,初始值为1。

步骤203:当所述i级父节点处于展开状态时,对小于i级的父节点执行展开操作,以显示被测节点,并对所述被测节点对应的web页面进行测试。

步骤204:当所述i级父节点处于折叠状态时,判断所述被测节点的i+1级父节点是否处于展开状态。

在本实施例中,对于包含树形菜单的主web页面而言,如果用户想要进入该树形菜单中的某个子节点对应的节点web页面进行测试,则可以通过测试设备提供的测试页面输入测试指令,以指定被测节点名称。其中,被测节点名称即为用户想要测试的节点web页面在该树形菜单中对应的子节点的节点名称。

继续以图1所示的树形菜单为例,假设点击子节点treenode2-1-1可以进入web页面1。如果用户想要对web页面1进行测试,则可以通过测试设备提供的测试页面,输入包括被测节点名称treenode2-1-1的测试指令。

在本实施例中,在接收到用户输入的测试指令后,即可获取其中的被测节点名称。后续,可以查找上述树形菜单中的所有子节点,并将节点名称与该被测节点名称相同的子节点确定为被测节点。通常,对于基于html(hypertextmarkuplanguage,超文本标记语言)的主web页面而言,其树形菜单中的所有子节点具有相似的class属性或name属性。因此,可以遍历该树形菜单中的所有节点,并根据class属性或name属性等节点属性查找出其中的子节点,同时可以判断各子节点的节点名称是否为上述被测节点名称。当某一子节点的节点名称为该被测节点名称时,即可将该子节点确定为被测节点。

在确定出被测节点后,可以基于上述树形菜单确定该被测节点的各级父节点,例如:在采用javascript语言编写的测试脚本中,可以利用“parentnode”获取树形菜单中某个节点的直接父节点,那么对于该被测节点而言,可以先获取其直接父节点作为该被测节点的一级父节点;再获取该一级父节点的直接父节点作为该被测节点的二级父节点;以此类推,即可获取该被测节点的各级父节点。

在本实施例中,首先可以确定上述被测节点的一级父节点,并判断该一级父节点是否处于展开状态。具体地,在各节点的节点属性中,保存有该节点的展开标识。当该展开标识为展开时,则说明该节点处于展开状态;而当该展开标识为折叠时,则说明该节点处于折叠状态。基于此,可以对该一级父节点的节点属性进行检测,以判断其中的展开标识是否为展开。

基于上述判断结果,如果上述一级父节点的展开标识为展开,则说明此时该一级父节点处于展开状态。当该一级父节点处于展开状态时,上述被测节点处于显示状态。因此,可以通过运行测试脚本,模拟对该被测节点执行点击操作,以进入该被测节点对应的web页面进行测试。

如果上述一级父节点的展开标识为折叠,则说明此时该一级父节点处于折叠状态。在这种情况下,可以继续确定上述被测节点的二级父节点,并判断该二级父节点是否处于展开状态。

基于上述判断结果,如果上述二级父节点的展开标识为展开,则说明此时该二级父节点处于展开状态。因此,此时只需对该被测节点的一级父节点执行展开操作,例如:通过运行测试脚本,模拟点击该一级父节点对应的展开按钮,以显示出被测节点。后续,也可以通过运行测试脚本,模拟对该被测节点执行点击操作,以进入该被测节点对应的web页面进行测试。

如果上述二级父节点的展开标识为折叠,则说明此时该二级父节点处于折叠状态。在这种情况下,可以继续确定上述被测节点的三级父节点,并判断该三级父节点是否处于展开状态。

基于上述判断结果,如果上述三级父节点的展开标识为展开,则说明此时该三级父节点处于展开状态,进一步地,说明上述被测节点的三级及以上父节点也都处于展开状态。此时可以对该被测节点的小于三级的父节点执行展开操作。具体地,可以按照父节点级别从高到低的顺序,依次对该被测节点的小于三级的父节点执行展开操作,即:先对该被测节点的二级父节点执行展开操作,再对该被测节点的一级父节点执行展开操作,这样即可使该被测节点的各级父节点均处于展开状态,以显示该被测节点。后续,也可以通过运行测试脚本,模拟对该被测节点执行点击操作,以进入该被测节点对应的web页面进行测试。

如果上述三级父节点的展开标识为折叠,则说明此时该三级父节点处于折叠状态。在这种情况下,可以继续确定上述被测节点的四级父节点,并判断该四级父节点是否处于展开状态。

以此类推,直至判断出上述被测节点的i级父节点处于展开状态,即可按照父节点级别从大到小的顺序,依次对该被测节点的小于i级的父节点执行展开操作,这样即可使该被测节点的各级父节点均处于展开状态,以显示该被测节点。后续,也可以通过运行测试脚本,模拟对该被测节点执行点击操作,以进入该被测节点对应的web页面进行测试。

树形菜单的根节点通常处于展开状态,即在上述被测节点的除根节点外的所有父节点均处于折叠状态时,也可以在判断出该根节点处于展开状态时,按照父节点级别从大到小的顺序,依次对被测节点的除根节点外的所有父节点执行展开操作,以显示该被测节点,并对该被测节点对应的web页面进行测试。但在某些特殊情况下,树形菜单的根节点可能处于折叠状态,为了避免在判断出根节点处于折叠状态时,仍进行非必要的进一步判断,可以先判断上述树形菜单的根节点是否处于展开状态。如果是,则可以继续基于该树形菜单确定被测节点的各级父节点,并判断其各级父节点是否处于展开状态;否则,可以先对该树形菜单的根节点执行展开操作,再基于该树形菜单确定被测节点的各级父节点,并判断其各级父节点是否处于展开状态。

在另一个例子中,也可以在基于上述树形菜单确定上述被测节点的i级父节点后,先判断该父节点是否为该树形菜单的根节点。如果该父节点不为该树形菜单的根节点,则在判断出该父节点处于折叠状态时,可以进行进一步判断,即判断该被测节点的i+1级父节点是否处于展开状态;如果该父节点为该树形菜单的根节点,则在判断出该根节点处于折叠状态时,无需进行进一步判断,而仅需对该被测节点的包括该根节点在内的所有父节点执行展开操作,以显示该被测节点,并对该被测节点对应的web页面进行测试。

请参考图3所示的web测试方法的流程图,继续以图1所示的树形菜单为例,在接收到包括被测节点名称treenode2-1-1的测试指令后,可以确定被测节点为treenode2-1-1。后续,可以基于该树形菜单,确定treenode2-1-1的一级父节点为treenode2-1,并判断treenode2-1是否处于展开状态。

如果treenode2-1处于展开状态,则可以对treenode2-1-1执行点击操作,以进入web页面1进行测试。

如果treenode2-1处于折叠状态,则可以进一步确定treenode2-1-1的二级父节点为treenode2,并判断treenode2是否处于展开状态。

如果treenode2处于展开状态,则可以先对treenode2-1执行展开操作,再对treenode2-1-1执行点击操作,以进入web页面1进行测试。

如果treenode2处于折叠状态,则可以进一步确定treenode2-1-1的三级父节点为treeroot1,并判断treeroot1是否处于展开状态。由于该树形菜单为四级树形菜单,因此可以确定子节点treenode2-1-1的三级父节点treeroot1即为该树形菜单的根节点。

通常,树形菜单的根节点默认处于展开状态,即treeroot1默认处于展开状态,因此可以按照父节点级别从大到小的顺序,依次对treenode2-1-1的二级父节点和一级父节点执行展开操作,即先对treenode2执行展开操作,再对treenode2-1执行展开操作,最后可以对treenode2-1-1执行点击操作,以进入web页面1进行测试。

但如果treeroot1处于折叠状态,由于treeroot1已是该树形菜单的根节点,因此无需进行进一步判断,仅需按照父节点级别从大到小的顺序,依次对treenode2-1-1的各级父节点执行展开操作,即先对treeroot1执行展开操作,再对treenode2执行展开操作,然后对treenode2-1执行展开操作,最后可以对treenode2-1-1执行点击操作,以进入web页面1进行测试。

当然,也可以在确定被测节点为treenode2-1-1后,先判断该树形菜单的根节点treeroot1是否处于展开状态。如果是,则可以继续确定treenode2-1-1的一级父节点为treenode2-1,并判断treenode2-1是否处于展开状态;否则,则可以先对treeroot1执行展开操作,再继续确定treenode2-1-1的一级父节点为treenode2-1,并判断treenode2-1是否处于展开状态。

由上述实施例可见,本申请技术方案无需对被测节点和被测节点的各级父节点进行定位,也无需针对不同的节点编写不同的操作函数以执行对应的操作,因此减少了测试脚本的代码量,进而降低了测试脚本的错误概率和维护成本,也提高了web页面的测试效率。

与前述web页面测试方法的实施例相对应,本申请还提供了web页面测试装置的实施例。

本申请web页面测试装置的实施例可以应用在终端设备、服务器等测试设备上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在测试设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图4所示,为本申请web页面测试装置所在测试设备的一种硬件结构图,除了图4所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的测试设备通常根据该web页面测试的实际功能,还可以包括其他硬件,对此不再赘述。

请参考图5,为本申请一示例性实施例示出的一种web页面测试装置的框图。该装置500可以应用在图4所示的测试设备上,包括:

接收单元501,用于接收到测试指令,所述测试指令中携带被测节点名称;

第一判断单元502,用于基于树形菜单确定被测节点的i级父节点,并判断所述i级父节点是否处于展开状态;其中,i是大于0的自然数,初始值为1;

第一展开单元503,用于当所述i级父节点处于展开状态时,对小于i级的父节点执行展开操作,以显示被测节点,并对所述被测节点对应的web页面进行测试;

所述第一判断单元502还可以用于当所述i级父节点处于折叠状态时,判断所述被测节点的i+1级父节点是否处于展开状态。

在一个可选的实施例中,所述第一判断单元502可以包括:

节点查找子单元5021,用于基于节点属性,查找所述树形菜单中的所有子节点;

第一确定子单元5022,用于将节点名称与所述被测节点名称相同的子节点确定为所述被测节点;

第二确定子单元5023,用于基于所述树形菜单确定所述被测节点的i级父节点。

在另一个可选的实施例中,所述第一判断单元502可以包括:

标识判断子单元5024,用于判断所述i级父节点的展开标识是否为展开;其中,所述展开标识保存在所述i级父节点的节点属性中;

第三确定子单元5025,用于当所述展开标识为展开时,确定所述i级父节点处于展开状态;

所述第三确定子单元5025还可以用于当所述展开标识为折叠时,确定所述i级父节点处于折叠状态。

在另一个可选的实施例中,所述第一展开单元503可以包括:

顺序展开子单元5031,用于按照父节点级别从高到低的顺序,依次对所述小于i级的父节点执行展开操作。

在另一个可选的实施例中,所述装置500还可以包括:

第二判断单元504,用于在基于树形菜单确定被测节点的i级父节点,并判断所述i级父节点是否处于展开状态之前,判断所述树形菜单的根节点是否处于展开状态;

所述第一判断单元502可以用于当所述根节点处于展开状态时,基于所述树形菜单确定被测节点的i级父节点,并判断所述i级父节点是否处于展开状态;

所述第一判断单元502还可以用于当所述根节点处于折叠状态时,对所述根节点执行展开操作,并基于所述树形菜单确定被测节点的i级父节点,再判断所述i级父节点是否处于展开状态。

上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。

对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1