页面模型、用户界面自动化测试方法以及装置转让专利

申请号 : CN201511001546.X

文献号 : CN105608007B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 韦伟康艳

申请人 : 北京致远互联软件股份有限公司

摘要 :

本发明是有关于一种页面模型、用户界面自动化测试方法以及装置,其中的页面模型设置有属性和方法,且该页面模型包括:设置有属性及方法的第一集合和/或设置有属性及方法的第二集合;第一集合是通过对多个页面元素进行封装而形成的,第一集合的方法供页面模型的方法或者第二集合的方法调用;封装于第一集合中的每一个页面元素均设置有属性及方法,且每一个页面元素的方法均供第一集合的方法调用;第二集合是通过对多个第一集合进行封装而形成的,第二集合的方法供页面模型的方法调用;页面模型在被实例化且被调用时,通过执行其方法完成相应的页面功能。本发明提高了用户界面自动化测试的效率以及可维护性,降低了用户界面自动化测试的实现成本。

权利要求 :

1.一种用于用户界面自动化测试的基于面向对象的页面模型,其特征在于,所述页面模型设置有属性以及方法,且所述页面模型包括:设置有属性及方法的第一集合和/或设置有属性及方法的第二集合;

所述第一集合是通过对多个页面元素进行封装而形成的,所述第一集合的方法供页面模型的方法或者第二集合的方法调用;其中,被封装于第一集合中的页面元素包括:至少一个基于HTML基本元素的页面元素和/或至少一个基于自定义元素基类的页面元素;

封装于第一集合中的每一个页面元素均设置有属性以及方法,且每一个页面元素的方法均供第一集合的方法调用;

所述第二集合是通过对至少一个第一集合进行封装而形成的,所述第二集合的方法供页面模型的方法调用;

所述页面模型用于在其被实例化,且被调用时,被实例化的页面模型通过执行其方法完成相应的页面功能,以实现用户界面自动化测试。

2.如权利要求1所述的页面模型,其特征在于,所述基于自定义元素基类的页面元素包括:基于按钮元素基类的按钮元素和/或基于数据输入元素基类的数据输入元素。

3.如权利要求2所述的页面模型,其特征在于,所述基于数据输入元素基类的数据输入元素包括:一组基于HTML基本元素的页面元素。

4.如权利要求2所述的页面模型,其特征在于,所述基于数据输入元素基类的数据输入元素的属性中设置有:用于表示该数据输入元素中的提示文本元素为标识该数据输入元素的信息。

5.如权利要求2所述的页面模型,其特征在于,所述第一集合具体为:通过对基于按钮元素基类的按钮元素以及基于数据输入元素基类的数据输入元素进行封装而形成的数据输入区域组件;或者通过对基于HTML基本元素的页面元素进行封装而形成的表格组件;或者通过对基于HTML基本元素的页面元素和基于数据输入元素基类的数据输入元素进行封装而形成的表格组件;或者通过对多个基于HTML基本元素的页面元素进行封装而形成的树图组件;或者通过对多个基于HTML基本元素的页面元素进行封装而形成的页签组件;或者通过对多个基于HTML基本元素的页面元素进行封装而形成的图表组件。

6.一种用户界面自动化测试方法,其特征在于,所述方法包括下述步骤:确定被测试业务所对应的预定业务流程;

确定所述预定业务流程所涉及的各用户界面各自对应的页面模型,其中,所述页面模型为权利要求1-5中任一权利要求所述的页面模型;

根据被测试业务的各用户界面使相应的页面模型分别实例化;

根据测试用例调用相应的实例化后的页面模型,被调用的实例化后的页面模型通过执行其各自的方法完成相应的页面功能,以实现用户界面自动化测试。

7.如权利要求6所述的方法,其特征在于,所述预定业务流程为:针对被测试业务以及具有被测试业务的业务功能的其他业务而设置的通用业务流程。

8.一种用户界面自动化测试装置,其特征在于,所述装置包括:第一确定模块,适于确定被测试业务所对应的预定业务流程;

第二确定模块,适于确定所述预定业务流程所涉及的各用户界面各自对应的页面模型,其中,所述页面模型为权利要求1-5中任一权利要求所述的页面模型;

实例化模块,适于根据被测试业务的各用户界面使相应的页面模型分别实例化;

测试模块,适于根据测试用例调用相应的实例化后的页面模型,被调用的实例化后的页面模型通过执行其各自的方法完成相应的页面功能,以实现用户界面自动化测试。

9.如权利要求8所述的装置,其特征在于,所述预定业务流程为:针对被测试业务以及具有被测试业务的业务功能的其他业务而设置的通用业务流程。

说明书 :

页面模型、用户界面自动化测试方法以及装置

技术领域

[0001] 本发明涉及测试技术领域,特别是涉及一种用户界面自动化测试方法以及用户界面自动化测试装置。

背景技术

[0002] UI测试(User interface testing,用户界面测试)的测试目的之一在于确保被测试业务的用户界面可以为用户提供相应的访问或者浏览等功能。
[0003] 在UI测试的发展过程中,建立在面向对象基础上的基于页面模型的UI自动化测试技术被提出,由于该测试技术具有开发及维护难度低等特点,而在UI测试领域中得到了较为广泛的推广应用。
[0004] 现有的基于页面模型的UI自动化测试技术主要是将被测试业务所涉及的各HTML(Hyper Text Markup Language,超文本标记语言)页面抽象成属性和方法(如将HTML页面上的内容作为属性,将HTML页面的功能作为方法),从而将被测试业务的各HTML页面功能作为测试粒度来实现UI自动化测试。从页面模型的设置过程而言,该测试技术主要是利用HTML页面中所包含的所有HTML页面元素来设置页面模型,且所有的HTML页面元素通常来自于同一个基类(如来自于WebElement基类)。
[0005] 发明人在实现本发明过程中发现:由于现有的基于页面模型的UI自动化测试技术是利用页面中所包含的所有HTML页面元素来设置页面模型的,因此,为被测试业务设置页面模型的工作量与被测试业务所涉及的页面数量以及页面所包含的HTML页面元素的数量密切相关;在被测试业务所涉及的页面数量不多,且页面所包含的HTML页面元素数量也不多的情况下,为被测试业务设置页面模型的工作量较易被测试人员所接受;而在被测试业务所涉及的页面数量多且页面所包含的HTML页面元素数量多的情况下,为被测试业务设置页面模型的工作量会变得十分庞大,从而较难被测试人员所接受。另外,由于现有的基于页面模型的UI自动化测试技术是利用实际HTML页面中所包含的所有HTML页面元素来设置页面模型的,因此,设计出的页面模型通常具有较强的针对性,而其通用性较差,如针对某一被测试业务设计出的页面模型通常只能适用于该被测试业务中的UI测试过程中,通常不能适用于其他被测试业务的UI测试过程中。
[0006] 有鉴于现有的基于页面模型的UI自动化测试技术存在的问题,本发明人基于从事此类产品设计制造多年丰富的实务经验及专业知识,并配合学理的运用,积极加以研究创新,以期创设一种页面模型以及用户界面自动化测试方法和装置,能够解决现有的用户界面自动化测试技术所存在的问题,使其更具有实用性。经过不断的研究设计,并经过反复试作样品及改进后,终于创设出确具实用价值的本发明。

发明内容

[0007] 本发明的目的之一在于,克服现有的用户界面自动化测试技术存在的技术问题,而提供一种页面模型以及用户界面自动化测试方法和装置,所要解决的技术问题是,提高用户界面自动化测试的效率以及可维护性,降低用户界面自动化测试的实现成本。
[0008] 本发明的目的以及解决其技术问题可以采用以下的技术方案来实现。
[0009] 依据本发明提出的一种用于用户界面自动化测试的基于面向对象的页面模型,所述页面模型设置有属性以及方法,且所述页面模型包括:设置有属性及方法的第一集合和/或设置有属性及方法的第二集合;所述第一集合是通过对多个页面元素进行封装而形成的,所述第一集合的方法供页面模型的方法或者第二集合的方法调用;封装于第一集合中的每一个页面元素均设置有属性以及方法,且每一个页面元素的方法均供第一集合的方法调用;所述第二集合是通过对至少一个第一集合进行封装而形成的,所述第二集合的方法供页面模型的方法调用;所述页面模型用于在其被实例化,且被调用时,被实例化的页面模型通过执行其方法完成相应的页面功能,以实现用户界面自动化测试。
[0010] 依据本发明提出的一种用户界面自动化测试方法,该方法主要包括如下步骤:确定被测试业务所对应的预定业务流程;确定所述预定业务流程所涉及的各用户界面各自对应的页面模型,其中,所述页面模型为上述页面模型;根据被测试业务的各用户界面使相应的页面模型分别实例化;根据测试用例调用相应的实例化后的页面模型,被调用的实例化后的页面模型通过执行其各自的方法完成相应的页面功能,以实现用户界面自动化测试。
[0011] 依据本发明提出的一种用户界面自动化测试装置,设置于业务管理系统中,且该装置主要包括:第一确定模块,适于确定被测试业务所对应的预定业务流程;第二确定模块,适于确定所述预定业务流程所涉及的各用户界面各自对应的页面模型,其中,所述页面模型为上述页面模型;实例化模块,适于根据被测试业务的各用户界面使相应的页面模型分别实例化;测试模块,适于根据测试用例调用相应的实例化后的页面模型,被调用的实例化后的页面模型通过执行其各自的方法完成相应的页面功能,以实现用户界面自动化测试。
[0012] 借由上述技术方案,本发明的页面模型、用户界面自动化测试方法以及装置至少具有下列优点及有益效果:本发明通过对多个页面元素进行封装而形成第一集合,并通过对至少一个第一集合进行封装而形成第二集合,这样,各页面模型均可以通过第一集合和/或第二集合来设置,且通过修改第一集合和第二集合可以使包含有第一集合和第二集合的各页面模型均得到相应的修改,从而简化了页面模型的设置过程,避免了为被测试业务设置页面模型的工作量与被测试业务所涉及的页面数量和页面所包含的HTML页面元素的数量密切相关的现象;本发明通过为预定业务流程所涉及的各用户界面设置页面模型,在预定业务流程及其涉及的各用户界面具有较强通用性的情况下,该预定业务流程所涉及的各用户界面各自对应的页面模型也可以具有较强的通用性,使该预定业务流程及其所涉及的各用户界面各自对应的页面模型可以应用于具有相同业务功能的不同业务的用户界面自动化测试过程中,从而可以有效降低编写测试代码的工作量;由上述描述可知,本发明提供的技术方案提高了用户界面自动化测试的效率以及可维护性,降低了用户界面自动化测试的实现成本。
[0013] 综上所述,本发明在技术上具有显著的进步,并具有明显的积极技术效果,诚为一新颖、进步、实用的新设计。
[0014] 上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其他目的、特征和优点能够更明显易懂,以下特举较佳的实施例,详细说明如下。

附图说明

[0015] 图1是本发明实施例二的用户界面自动化测试方法的流程图;
[0016] 图2是本发明实施例三的用户界面自动化测试装置的示意图。

具体实施方式

[0017] 下面结合附图对本发明实施例的用户界面自动化测试方法和装置进行详细说明。
[0018] 实施例一、用于用户界面自动化测试的基于面向对象的页面模型。即本实施例中的页面模型是基于面向对象的原理而设置的,且本实施例中的页面模型主要适用于用户界面自动化测试过程中。
[0019] 本实施例中的页面模型设置有属性以及方法,其中,页面模型的属性是抽象出的页面模型所具有的特征,而页面模型的方法是抽象出的页面模型所执行的操作。本实施例中的页面模型主要用于在其被实例化后,该实例化后的页面模型可以被调用,如实例化后的页面模型被用户界面自动化测试程序所调用,且用户界面自动化测试程序可以根据具体测试需求来调用该实例化的页面模型的方法,被调用的实例化后的页面模型通过执行其方法可以完成相应的页面功能,所完成的页面功能有助于实现用户界面自动化测试。
[0020] 本实施例中的页面模型主要包括:至少一个设置有属性以及方法的第一集合(如通过对多个第一集合进行封装而形成页面模型);该页面模型也可以包括:至少一个设置有属性和方法的第二集合(如通过对多个第二集合进行封装而形成页面模型);亦或是该页面模块也可以包括:至少一个设置有属性和方法的第一集合以及至少一个设置有属性和方法的第二集合(如通过对多个第一集合和多个第二集合进行封装而形成页面模型)。
[0021] 作为示例,本实施例中的页面模型可以在上述所包括内容的基础上进一步包括:至少一个设置有属性及方法的页面元素,该页面元素可以为基于HTML基本元素的页面元素(基于HTML基本元素的页面元素的方法可以被页面模型的方法所调用),该页面元素也可以为基于自定义元素基类的页面元素(基于自定义元素基类的页面元素的方法可以被页面模型的方法所调用);一个具体的例子,通过对一个或多个基于HTML基本元素的页面元素、一个或多个基于自定义元素基类的页面元素、一个或者多个第一集合以及一个或者多个第二集合进行封装从而形成本实施例的页面模型。需要特别说明的是,虽然本实施例并没有对基于HTML基本元素的页面元素、基于自定义元素基类的页面元素、第一集合以及第二集合通过不同的组合方式进行灵活封装以形成页面模型的各种例子进行逐一例举描述,然而,可明显获知本实施例的页面模型完全可以通过其他组合方式而形成,如页面模型可以通过对基于自定义元素基类的页面元素以及第一集合进行封装而形成等。
[0022] 本实施例中的第一集合通常是针对各页面中经常在一起使用的多个页面元素进行封装而形成的,第一集合的方法可以被页面模型的方法所调用,且在页面模型中包含有第二集合的情况下,第一集合的方法也可以被第二集合的方法所调用。本实施例中的第一集合可以被称为组件。
[0023] 封装于第一集合中的每一个页面元素均设置有属性以及方法,且每一个页面元素的方法均可以被第一集合的方法所调用。另外,在页面模型中包含有第二集合的情况下,每一个页面元素的方法也可以被第二集合的方法所调用。当然,本实施例中的每一个页面元素的方法也是可以被页面模型的方法所调用的。
[0024] 封装于第一集合中的页面元素可以包括:至少一个基于HTML基本元素的页面元素和/或至少一个基于自定义元素基类的页面元素,也就是说,第一集合可以通过对多个基于HTML基本元素的页面元素进行封装而形成,第一集合也可以通过对为多个基于自定义元素基类的页面元素进行封装而形成,第一集合还可以为通过对至少一个基于HTML基本元素的页面元素和至少一个基于自定义元素基类的页面元素进行封装而形成。
[0025] 上述基于HTML基本元素的页面元素以及基于自定义元素基类的页面元素都是用于形成第一集合的基本单位。由于基于HTML基本元素的页面元素还可以用于形成基于自定义元素基类的页面元素,因此,基于HTML基本元素的页面元素是本实施例中的最小单位;本实施例中的基于HTML基本元素的页面元素可以具体为来自于现有的基于WebElement基类的页面元素等。本实施例不限制基于HTML基本元素的页面元素的具体表现形式。
[0026] 作为示例,上述基于自定义元素基类的页面元素可以具体为基于按钮元素基类的按钮元素,也可以具体为基于数据输入元素基类的数据输入元素。当然,本实施例也可以针对其他的具有相同功能的元素设置基类,从而使其他具有相同的元素均来自于该基类;本实施例不限制自定义元素基类的具体表现形式。
[0027] 在现有技术中,由于用户界面中的所有元素通常均来自于同一个基类(如WebElement基类),因此,该基类并不是专门针对用户界面中具体的按钮元素而设置的;而在本实施例中,针对用户界面中的按钮元素专门设置了基类(可以称为按钮元素基类),从而本实施例使按钮成为一类元素的共有表象,这一类元素的共同点包括:通过点击完成人与智能电子设备(如计算机)之间的交互等,这一类元素的不同点包括:标签不同(如有的按钮元素的标签是a标签,有的按钮元素的标签是input标签,有的按钮元素的标签是div标签,甚至有的按钮元素的标签为多个标签等)、形状大小不同以及显示文本不同等等。本实施例通过设置按钮元素基类,并利用基于按钮元素基类的按钮元素来设置第一集合(即组件),使组件具有通用性成为可能。
[0028] 同样的,在现有技术中,由于用户界面中的所有元素通常均来自于同一个基类(如WebElement基类),因此,该基类并不是专门针对用户界面中具体的与数据输入相关的元素(如输入框元素)而设置的;而在本实施例中,针对用户界面中的与数据输入相关的元素专门设置了一个或者多个基类(可以称为数据输入元素基类),从而使text元素、textarea元素、下拉框元素(如select元素或者一组div元素等)、单/复选框元素(如radio/checkbox元素)、选择控件元素、日期控件元素等都可以来自于数据输入元素基类。本实施例中的数据输入元素基类可以包括多个基于HTML基本元素的页面元素,即数据输入元素基类可以由一组基于HTML基本元素的页面元素封装而形成,一个具体的例子,数据输入元素基类可以由一个用于展现标题的基于HTML基本元素的页面元素(如label元素)以及一个用于以文本框形式接受输入字符的基于HTML基本元素的页面元素(如input元素)封装而形成。本实施例通过专门针对与数据输入相关的元素设置数据输入元素基类,并利用基于数据输入元素基类的数据输入元素来设置第一集合(即组件),使组件具有通用性成为可能。
[0029] 作为示例,本实施例中的基于数据输入元素基类的数据输入元素的属性中可以设置有表示该数据输入元素中的提示文本元素可以用于标识该数据输入元素的信息从而本实施例可以利用该提示文本元素的具体内容来标识该数据输入元素。上述提示文本元素通常与text元素、textarea元素、下拉框元素(如select元素或者一组div元素等)、单/复选框元素(如radio/checkbox元素)、选择控件元素或者日期控件元素等元素相对应。一个具体的例子,在基于数据输入元素基类的数据输入元素被实例化后,提示文本元素为输入框旁边的提示文本,如姓名输入框旁边的“姓名”即可以标识该数据输入元素,也就是说,提示文本可以成为一个数据输入元素的唯一表象属性;由此该数据集输入元素的具体应用可以使对一个输入框进行输入的操作由现有的“对id为username的元素输入内容”的表述方式变更为“对姓名输入内容元素录入内容”的表述方式,从而在编写UI自动化测试代码时,可以实现将关注点从HTML代码层提升到了页面展现层。
[0030] 作为示例,本实施例中的第一集合(即组件)可以具体为数据输入区域组件、表格组件、树图组件、页签组件以及图表组件等等,本实施例不限制所设置的组件数量以及各组件的具体表现形式等。
[0031] 作为示例,数据输入区域组件主要是通过对基于按钮元素基类的按钮元素以及基于数据输入元素基类的数据输入元素进行封装而形成的组件。数据输入区域组件通常不会对输入框的数量等进行限制。利用数据输入区域组件可以实现一组数据的输入,如利用数据输入区域组件可以实现用户名称、用户密码以及验证码等登录信息的输入。
[0032] 作为示例,表格组件可以是通过对基于HTML基本元素的页面元素进行封装而形成的组件,表格组件也可以使通过对基于HTML基本元素的页面元素和基于数据输入元素基类的数据输入元素进行封装而形成的组件。表格组件的属性可以包括表所在区域的选择器、表头的选择器、表体的选择器、行的选择器以及单元格的选择器等。利用表格组件可以实现表格的展示;通常情况下,表格组件不会被用于信息输入过程中,而是通常会被用于信息获取过程中;例如,从利用表格组件而呈现的内容中获取相应的信息,以进行信息匹配判断等。表格组件并不会对表格所包含的行数、列数以及是否必须包含有表头等内容进行具体限制。
[0033] 作为示例,树图组件主要是通过对多个基于HTML基本元素的页面元素进行封装而形成的组件;利用树图组件可以实现树状图形的展示;通常情况下,树图组件不会被用于信息输入过程中,而是通常会被用于信息获取过程中;例如,从利用树图组件而呈现的树状图形的内容中获取相应的信息,以进行信息匹配判断等。树图组件并不会对树状图形的结构进行具体限制。
[0034] 作为示例,页签组件主要是通过对多个基于HTML基本元素的页面元素进行封装而形成的组件;利用页签组件可以实现页签页面的展示。
[0035] 作为示例,图表组件主要是通过对多个基于HTML基本元素的页面元素进行封装而形成的组件;利用图表组件可以实现柱状图、饼状图以及曲线图等图形的展示;通常情况下,图表组件不会被用于信息输入过程中,而是通常会被用于信息获取过程中;例如,从利用图表组件而呈现的图形的内容中获取相应的信息,以进行信息匹配判断等。图表组件并不会对图表图形的具体形状进行限制。
[0036] 上述仅示意性的列出了几种组件,本实施例完全可以根据页面的具体情况来设置相应的组件,且组件的属性以及方法的具体设置内容通常可以根据利用组件所需要实现的功能来确定,本实施例不限制组件的属性以及方法所包含的具体内容。
[0037] 本实施例中的第二集合通常是针对各页面中经常在一起使用的多个组件进行封装而形成的,第二集合的方法可以被页面模型的方法所调用。实质上,第二集合也是一种组件,而且相对于第一集合而言,第二集合是一种较为大型的组件;为便于与第一集合相区别,本实施例不会将第二集合也称为组件,而是将第二集合称为页面。页面模型可以由一个页面或者多个页面形成。
[0038] 作为示例,第二集合的组成单位通常为组件;然而,本实施例的第二集合也可以是针对组件以及页面元素进行封装而形成的页面;即第二集合的组成单位可以为组件和页面元素,组件的方法和页面元素的方法均可以被第二集合所调用。
[0039] 作为示例,封装于第二集合中的页面元素可以包括:至少一个基于HTML基本元素的页面元素和/或至少一个基于自定义元素基类的页面元素,具体而言,第二集合可以通过对一个或多个基于HTML基本元素的页面元素以及一个或多个组件进行封装而形成,第二集合也可以通过对一个或多个基于自定义元素基类的页面元素以及一个或多个组件进行封装而形成,第二集合还可以为通过对至少一个基于HTML基本元素的页面元素、至少一个基于自定义元素基类的页面元素以及至少一个组件进行封装而形成。
[0040] 本实施例中的基于自定义元素基类的页面元素、各种组件以及页面等可以分门别类的存储于代码包中,以方便进行用户界面自动化测试。
[0041] 实施例二、用户界面自动化测试方法。
[0042] 图1为本实施例的用户界面自动化测试方法的流程图,图1所示的方法主要包括:步骤S100、步骤S110、步骤S120以及步骤130。本实施例中所记载的方法通常运行于智能电子设备中,优选的,本实施例中所记载的方法可以在台式计算机、笔记型计算机、平板电脑以及智能移动电话等用户设备中运行。下面对图1中的各步骤分别进行说明。
[0043] S100、确定被测试业务所对应的预定业务流程。
[0044] 具体的,本实施例中的预定业务流程通常可以是针对某一具体业务功能的通用业务流程,如在被测试业务为第一网站中的火车票订票业务时,由于不同网站所提供的火车票订票业务的业务流程基本相同,因此,本实施例中的预定业务流程可以为能够适用于不同网络所提供的火车票订票业务的通用性的业务流程,即该预定业务流程可以适用于第一网站所提供的火车票订票业务,也可以适用于第二网站和第三网站所提供的火车票订票业务。
[0045] S110、确定该预定业务流程所涉及的各用户界面各自对应的页面模型。
[0046] 具体的,本实施例中的页面模型为上述实施例一中所记载的页面模型。本实施例可以在没有预先设置该预定业务流程所涉及的各用户界面各自对应的页面模型的情况下,根据被测试业务来设置预定业务流程以及该预定业务流程所涉及的各用户界面各自对应的页面模型,并存储该预定业务流程所涉及的各用户界面各自对应的页面模型;本实施例也可以在预先设置有该预定业务流程所涉及的各用户界面各自对应的页面模型的情况下,根据存储的信息来确定该预定业务流程所涉及的各用户界面各自对应的页面模型。
[0047] S120、根据被测试业务所涉及的各用户界面使相应的页面模型分别实例化。
[0048] 具体的,由于具有相同业务功能的不同业务的业务流程所涉及用户界面大体相同(如火车票订票业务所涉及的登录页面通常都会包括用户名输入框、密码输入框以及登录按钮等),其不同之处通常为按钮的设置位置不同、按钮上的文本不同、输入框的位置不同以及输入框对应的提示文本不同等,因此,本实施例通过根据被测试业务的各用户界面使相应的页面模型分别实例化,可以使被测试业务所涉及的各用户界面所特有的内容通过实例化充分体现出来,如在页面模板的实例化过程中,在根据一个具体的用户界面对页面模型进行初始化时,通过对页面模型中的相应属性进行赋值,使实例化后的页面模型成为该具体的用户界面。本实施例可以从预先设置的文档(如Java脚本文件)中获取相应的取值,以进行对属性的赋值操作。
[0049] S130、根据测试用例调用相应的实例化后的页面模型,被调用的实例化后的页面模型通过执行其各自的方法完成相应的页面功能,以实现用户界面自动化测试。
[0050] 具体的,用户界面测试程序可以调用实例化后的页面模型的方法,实例化后的页面模型的方法被执行,以实现该页面模型的功能,如页面模型的方法在执行过程中,通过调用其所包含的各组件的方法或者各页面的方法使各组件或者页面来实现相应的功能,从而使页面模型实现相应的功能。
[0051] 本实施例的用户界面测试方法的一个具体的例子:首先,由于本实施例中的被测试业务为机票订票业务(如携程网的机票订票业务),因此,先抽象出一套通用的机票订票的业务流程;然后,确定该业务流程所涉及到的所有用户界面,并针对所有用户界面确定出所需使用的页面、组件以及自定义元素基类,如果预先设置有所需使用的页面、组件以及自定义元素基类,则本次测试过程不需要设置页面、组件以及自定义元素基类,如果预先没有设置所需使用的页面、组件以及自定义元素基类,则可以在本次测试过程中设置相应的页面、组件以及自定义元素基类;之后,利用页面、组件以及自定义元素基类来为业务流程所涉及到的所有用户界面设置页面模型,当然,如果预先设置有相应的页面模型可以直接利用预先设置好的页面模型;之后,根据针对被测试业务(如携程网的机票订票业务)增加产品包(如携程包),以使新增的产品包继承针对通用的机票订票的业务流程所设置的各页面模型;然后,对新增加的产品包中的页面模型进行实例化,以针对携程网的机票订票业务所特有的内容进行定义,如定义携程网的机票订票业务的登录页面中的用户名输入框位置信息以及密码输入框位置信息等;之后,根据具体的测试需求(如测试用例所体现出的测试需求)使用相应的变量去调用相应的实例化后的页面模型,如向相应的实例化后的页面模型中输入出发地以及终点站等信息,从而最终可以实现用户界面自动化测试。
[0052] 实施例三、用户界面自动化测试装置。
[0053] 图2为本实施例的用户界面自动化测试装置的示意图,图2所示的装置主要包括:第一确定模块200、第二确定模块210、实例化模块220以及测试模块230。本实施例中所记载的装置通常可以被设置于智能电子设备中,优选的,该装置可以设置于台式计算机、笔记型计算机、平板电脑以及智能移动电话等用户设备中。下面对图2中的各模块分别进行说明。
[0054] 第一确定模块200主要适于确定被测试业务所对应的预定业务流程。
[0055] 具体的,第一确定模块200所确定出的预定业务流程通常可以是针对某一具体业务功能的通用业务流程,如在被测试业务为第一网站中的火车票订票业务时,由于不同网站所提供的火车票订票业务的业务流程基本相同,因此,第一确定模块200所确定出的预定业务流程可以为能够适用于不同网络所提供的火车票订票业务的通用性的业务流程,即该预定业务流程可以适用于第一网站所提供的火车票订票业务,也可以适用于第二网站和第三网站所提供的火车票订票业务。
[0056] 第二确定模块210主要适于确定预定业务流程所涉及的各用户界面各自对应的页面模型。
[0057] 具体的,第二确定模块210所确定出的页面模型为实施例一中所记载的页面模型。第二确定模块210可以在没有预先设置该预定业务流程所涉及的各用户界面各自对应的页面模型的情况下,根据被测试业务来设置预定业务流程以及该预定业务流程所涉及的各用户界面各自对应的页面模型,并存储该预定业务流程所涉及的各用户界面各自对应的页面模型;第二确定模块210也可以在预先设置有该预定业务流程所涉及的各用户界面各自对应的页面模型的情况下,根据存储的信息来确定该预定业务流程所涉及的各用户界面各自对应的页面模型。
[0058] 实例化模块220主要适于根据被测试业务的各用户界面使相应的页面模型分别实例化。
[0059] 具体的,由于具有相同业务功能的不同业务的业务流程所涉及用户界面大体相同(如火车票订票业务所涉及的登录页面通常都会包括用户名输入框、密码输入框以及登录按钮等),其不同之处通常为按钮的设置位置不同、按钮上的文本不同、输入框的位置不同以及输入框对应的提示文本不同等,因此,实例化模块220通过根据被测试业务的各用户界面使相应的页面模型分别实例化,可以使被测试业务所涉及的各用户界面所特有的内容通过实例化充分体现出来,如在页面模板的实例化过程中,实例化模块220在根据一个具体的用户界面对页面模型进行初始化时,通过对页面模型中的相应属性进行赋值,使实例化后的页面模型成为该具体的用户界面。实例化模块220可以从预先设置的文档(如Java脚本文件)中获取相应的取值,以进行对属性的赋值操作。
[0060] 测试模块230主要适于根据测试用例调用相应的实例化后的页面模型,被调用的实例化后的页面模型通过执行其各自的方法完成相应的页面功能,以实现用户界面自动化测试。
[0061] 具体的,测试模块230可以调用实例化后的页面模型的方法,使实例化后的页面模型的方法被执行,从而可以实现该页面模型的功能,如在测试模块230调用页面模型的方法使页面模型的方法在执行过程中,通过调用其所包含的各组件的方法或者各页面的方法使各组件或者页面来实现相应的功能,从而使页面模型实现相应的功能。
[0062] 以上所述仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,虽然本发明已以较佳实施例揭露如上,然而,上述描述并非用以限定本发明,任何熟悉本专业的技术人员在不脱离本发明技术方案的范围内,当可利用上述揭示的技术内容作出些许更动或者修饰为等同变化的等效实施例,但凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均仍属于本发明技术方案的范围内。