一种Web自动化测试方法和装置制造方法

文档序号:6523516阅读:169来源:国知局
一种Web自动化测试方法和装置制造方法
【专利摘要】一种Web自动化测试方法和装置,用于被测对象驱动测试过程中,包括以下步骤及其对应的模块:步骤1:首先对被测的HTML文档进行扫描,收集所有可被操作的页面元素;步骤2:预置各类型元素的动作集;步骤3:执行动作,为元素动作集提供保障;步骤4:设计测试用例操作步骤,为测试动作序列提供依据;步骤5:按照测试用例中编写的顺序排列元素,通过元素动作集对应动作,实现用例序列的发生,按照用例完成所有的动作序列;步骤6:检查所有的元素是否都发起过动作。该方案保证web自动化测试覆盖功能点的全面性,同时也解决了自动化测试代码冗余,复用性不高的技术问题。
【专利说明】一种Web自动化测试方法和装置
[0001]【技术领域】
本发明涉及自动化测试领域,尤其涉及一种被测对象驱动测试过程的Web自动化测试方法和装置。
[0002]【背景技术】
在目前常见的客户关系管理(CRM)系统中,系统对象一般以档案和单据为主,档案和单据从操作界面上,可见的部分包括字段和按钮。字段一般对应各种不同的数据类型,而按钮则对应着各种不同的动作。而字段和按钮,正是Web自动化测试进行自动化操作时针对的操作对象。
[0003]这些操作对象被调用之后,给出一系列的响应,被执行操作的发起者监听到,进而给出判断,操作是否成功。这样很容易忽略一个问题,就是系统的档案和单据不是所有的功能都被通过自动化执行。如果动作发起者仅仅对系统对象的部分功能进行了操作,就认为测试工作完成了,那么漏测的部分,如何保证其功能的可用性?
并且,一般的自动化测试进行过程中,都是流式进行。通过录入脚本,或者编写测试脚本,然后顺序执行脚本动作。这样获得的脚本,虽然获得方法简单,但是复用性不高,不能适应多档案,多单据的场景,并且脚本逻辑中也存在大量冗余。目前常见的Web自动化测试框架,以执行操作动作为基础,实际上是一组操作动作的集合,虽然这个过程中,可以通过执行循环语句,将某种执行动作复杂化,但是并没有改变以执行动作为驱动的根本实质,被测对象永远是被动的。本文的目的,就是为了改变被测对象被动的局面,由被动变为主动。
[0004]为了保证web自动化测试覆盖功能点的全面性,同时也为了解决自动化测试代码冗余,复用性不高的特点,本文提出了 一种以被测对象为动作发生的主体,并把被测对象的模块化,每个模块包括字段集,按钮集以及页签集,以被测对象发出动作,并兼顾测试动作序列的Web自动化测试方法。
[0005]本发明的目的就是针对现有技术上的不足,提供一种被测对象驱动测试过程的Web自动化测试方法和装置。实现的覆盖功能点的全面性,同时也解决了自动化测试代码冗余,复用性不高的目的。
[0006]
【发明内容】

本公开涉及一种按照功能模块或者功能节点划分被测对象,并将被测对象封装成可供访问的类,提供给具体操作进行数据存取和方法调用,并最终实现被测对象的模块化。适用于各种客户关系管理(CRM)系统中,多单据,多档案的应用场景。
[0007]本发明通过如下技术方案实现:
一种Web自动化测试方法,用于被测对象驱动测试过程中,其特征在于,包括以下步
骤:
步骤1:对被测的HTML文档进行扫描,收集所有可被操作的页面元素;
步骤2:预置各类型元素的动作集;
步骤3:执行动作,为元素动作集提供保障;
步骤4:设计测试用例操作步骤,为测试动作序列提供依据; 步骤5:按照测试用例中编写的顺序排列元素,通过元素动作集对应动作,实现用例序列的发生,按照用例完成所有的动作序列;
步骤6:检查所有的元素是否都发起过动作。
[0008]一种Web自动化测试装置,用于被测对象驱动测试,包括以下模块:
页面元素收集模块,用于对被测的HTML文档进行扫描,收集所有可被操作的页面元
素;
元素动作集预置模块,用于预置各类型元素的动作集;
动作集实现模块,用于执行动作,为元素动作集提供保障;
测试用例设计模块,用于设计测试用例操作步骤,为测试动作序列提供依据;
测试用例执行模块,用于按照测试用例中编写的顺序排列元素,通过元素动作集对应动作,实现用例序列的发生,按照用例完成所有的动作序列;
检查模块,用于检查所有的元素是否都发起过动作。
[0009]本发明还提供了:
在本发明的一个实施例中,所述被操作的页面元素分成字段,按钮,页签三部分。所述字段包括文本输入、下拉框选择、链接和日期时间中的至少一种,所述按钮分为新增、修改、删除和刷新中的至少一种,所述页签包含各种字段和按钮。
[0010]在本发明的一个实施例中,将常见的页面元素对应操作提前预置,所述对应操作包括文本框对应键盘输入操作以及链接型字段对应单击鼠标操作。
[0011 ] 在本发明的一个实施例中,所述测试用例被配置以使每一步都能被执行。
[0012]在本发明的一个实施例中,当所有动作序列执行完毕后并且没有报错时,返回检查元素中字段、按钮和页签是否发出动作,并且检查整个过程是否有没有涵盖到的元素,据此重新调整操作序列。
[0013]【专利附图】

【附图说明】
图1是根据本发明提供的web自动化测试的工作流程图;
图2是根据本发明提供的元素模型表;
图3是根据本发明提供的字段元素动作集合图;
图4是根据本发明提供的页签元素动作集合图;
图5是根据本发明提供的按钮元素动作集合图;
图6是根据本发明提供的预置动作序列存储模型图。
【具体实施方式】
[0014]下面结合附图和实施例对本发明的技术方案作进一步的说明。
[0015]为了实现上述目标,本发明提出了 一种以被测对象驱动测试过程的Web自动化测试方法,具体的工作流程图如下附图1所示。
[0016]具体实现方法在下面的步骤中详细阐述。
[0017]步骤1:首先对被测的HTML文档进行扫描,收集所有可被操作的页面元素。一般将可被操作的页面元素分成字段,按钮,页签三部分,而字段又包括各种类型,包括文本输入,下拉框选择,链接,日期时间等,按钮则按照功能分为新增,修改,删除,刷新等,页签上又包含各种字段和按钮。[0018]参照附图2,则将元素按类型分配得出各种元素抽象模型。
[0019]以一个HTML文档为例:
<html>
〈head〉
<title>XX 档案〈/title〉
〈/head〉
〈body〉
〈field〉
<input>XX 名称〈/input〉
<a herf="http://localhost:8080">XX 链接 </a>
<select>
<option> 年 </option>
<option> 月 </option>
<option> 日 </option>
</select>
〈/field〉
<button>
〈button—add> 新增〈/button—add>
〈button—del〉删除〈/button—del〉
〈button—refresh〉刷新〈/button—refresh〉
〈button—save> 保存〈/button—save>
</button>
〈tab〉
〈tab—item>
〈field〉...〈/field〉
<button>...</button>
〈/tab—item>
〈/tab〉
〈/body〉
</html>
扫描上面的HTML文档,通过标签,我们可以得到了 XX档案中所包含的所有可操作的元素。扫描到filed区域,此区域为字段区,继续扫描下级节点,包含一个输入框(input标签),链接(a标签),下拉框(select配合option标签)。扫描到button区域,此区域为按钮区,包含三个按钮,新增(button—add标签),删除(button—del标签),刷新(button—refresh标签)。扫描到tab区域,此区域为页签区域,包含一个页签,而一个页签下包含一个字段区域和一个按钮区域,一个字段区域包含若干字段,同时一个按钮区域包含若干按钮。将扫描后的XX档案中各个字段,各个按钮,页签等元素存放到一个树形结构中,并且为每一个元素配置一个标志位,初始化为0,当该元素发出动作后将标志位置I。此时,这些被扫描到元素就作为动作的发起者。并且,每种形式的元素,可执行的动作可以通过元素动作集获得。
[0020]步骤2:预置各类型元素的动作集。
[0021]一般说来,字段类的元素,如果是文本框,就会对应键盘输入这样的操作,而链接型字段的又对应单击鼠标操作,由此,可将常见的页面元素对应操作提前预置。
[0022]预置对应关系参考附图3所示字段元素动作集合图、附图4所示页签元素动作集合图以及图5所示的按钮元素动作集合图。
[0023]步骤3:执行动作,为元素动作集提供保障。
[0024]上一步骤中的各种动作,例如click, type等操作的实现,在此步骤中完成。
[0025]一般的web自动化开源工具,会提供一些最基本的动作方式。但是仅仅这些基本的动作方式是满足不了真实环境下,多平台多浏览器的实际情况。因此,需要对其进行二次开发,我们便得到了一系列的动作集合。
[0026]步骤4:设计测试用例操作步骤,为测试动作序列提供依据。
[0027]这一步骤就是编写的测试用例,测试用例的写作方式不做过多的赘述,但是,由于这些测试用例作为测试动作序列的依据,因而,编写这些用例的时候就要注意,一定要做到每一步都可执行。
[0028]步骤5:按照测试用例中编写的顺序排列元素,元素通过元素动作集对应动作,实现用例序列的发生。按照用例完成所有的动作序列。
[0029]根据本发明的动作序列存储模型附图6所示的预置动作序列存储模型图。
[0030]步骤6:检查所有的元素是否都发起过动作。
[0031]所有动作序列执行完毕后,并且没有报错,要返回检查元素中字段、按钮、页签是发出动作,那么就要检查整个过程,是否有没有涵盖到的元素(未发出动作的元素标志位为初始化的0),重新调整操作序列。
[0032]相比于现有技术,本发明具有如下有益效果:
本方法将被测对象中的元素加以扫描,并通过预置的元素动作集为元素提供动作依据,所有的动作发起者都是被测对象,改变了之前一直是动作找元素的状态。并且增加了元素是否被操作过的标志位,能够帮忙判断一个模块上是否所有的元素都能够进行正确的操作。没有遗漏,没有操作错误。并且模块化之后,当进行动作序列组合的时候,能够完全对照文本形式的测试用例进行自动化用例的编写,使得抽象的工作变得更为具体。
[0033]此外,模块化的被测对象,在开发人员进行版本迁移或者升级后,依然可以进行复用。减少了二次开发自动化测试代码的工作量,有助于提高测试人员的工作效率。
[0034]最后说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的宗旨和范围,其均应涵盖在本发明的权利要求范围当中。
【权利要求】
1.一种Web自动化测试方法,用于被测对象驱动测试过程中,其特征在于,包括以下步骤: 步骤1:对被测的HTML文档进行扫描,收集所有可被操作的页面元素; 步骤2:预置各类型元素的动作集; 步骤3:执行动作,为元素动作集提供保障; 步骤4:设计测试用例操作步骤,为测试动作序列提供依据; 步骤5:按照测试用例中编写的顺序排列元素,通过元素动作集对应动作,实现用例序列的发生,按照用例完成所有的动作序列; 步骤6:检查所有的元素是否都发起过动作。
2.根据权利要求1所述的一种Web自动化测试方法,其特征在于,所述被操作的页面元素分成字段,按钮,页签三部分。
3.根据权利要求2所述的一种Web自动化测试方法,其特征在于,所述字段包括文本输入、下拉框选择、链接和日期时间中的至少一种,所述按钮分为新增、修改、删除和刷新中的至少一种,所述页签包含各种字段和按钮。
4.根据权利要求1所述的一种Web自动化测试方法,其特征在于,所述步骤2进一步包括将常见的页面元素对应操作提前预置,所述对应操作包括文本框对应键盘输入操作以及链接型字段对应单击鼠标操作。
5.根据权利要求1-4任一个所述的一种Web自动化测试方法,其特征在于,所述测试用例被配置以使每一步都能被执行。
6.根据权利要求1所述的一种Web自动化测试方法,其特征在于,所述步骤6进一步包括:当所有动作序列执行完毕后并且没有报错时,返回检查元素中字段、按钮和页签是否发出动作,并且检查整个过程是否有没有涵盖到的元素,据此重新调整操作序列。
7.—种Web自动化测试装置,用于被测对象驱动测试,其特征在于,包括以下模块: 页面元素收集模块,用于对被测的HTML文档进行扫描,收集所有可被操作的页面元素; 元素动作集预置模块,用于预置各类型元素的动作集; 动作集实现模块,用于执行动作,为元素动作集提供保障; 测试用例设计模块,用于设计测试用例操作步骤,为测试动作序列提供依据; 测试用例执行模块,用于按照测试用例中编写的顺序排列元素,通过元素动作集对应动作,实现用例序列的发生,按照用例完成所有的动作序列; 检查模块,用于检查所有的元素是否都发起过动作。
8.根据权利要求7所述的一种Web自动化测试装置,其特征在于,所述被操作的页面元素分成字段,按钮,页签三部分。`
9.根据权利要求8所述的一种Web自动化测试装置,其特征在于,所述字段包括文本输入、下拉框选择、链接和日期时间中的至少一种,所述按钮分为新增、修改、删除和刷新中的至少一种,所述页签包含各种字段和按钮。
10.根据权利要求7所述的一种Web自动化测试装置,其特征在于,所述元素动作集预置模块进一步将常见的页面元素对应操作提前预置,所述对应操作包括文本框对应键盘输入操作以及链接型字段对应单击鼠标操作。
11.根据权利要求7-10任一个所述的一种Web自动化测试装置,其特征在于,所述测试用例被配置以使每一步都能被执行。
12.根据权利要求7所述的一种Web自动化测试装置,其特征在于,所述检查模块进一步执行:当所有动作序列执行完毕后并且没有报错时,返回检查元素中字段、按钮和页签是否发出动作,并且检查整个过程是否有没有涵盖到的元素,据此重新调整操作序列。
【文档编号】G06F11/36GK103631719SQ201310681522
【公开日】2014年3月12日 申请日期:2013年12月12日 优先权日:2013年12月12日
【发明者】姜思慧 申请人:用友软件股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1