用于更新被测控件库的方法和装置制造方法

文档序号:6502964阅读:89来源:国知局
用于更新被测控件库的方法和装置制造方法
【专利摘要】本申请提供用于更新被测控件库的方法和装置,该方法包括:获取被测页面的控件信息、页面信息和操作步骤信息;依据页面信息查询得到被测页面在被测控件库中的控件信息列表;当检测到控件信息在控件信息列表中不存在时,在控件信息列表中生成与控件信息、页面信息和操作步骤信息对应的记录;以及当检测到控件信息在控件信息列表中存在时,保留控件信息在控件信息列表中的原有记录。通过在控件库中存储被测页面信息、被测控件信息以及操作步骤信息并将这些信息进行关联,使得确保被测控件库中控件定位信息的唯一性,另外,在脚本信息更新及控件本身属性更新时,通过监测控件信息的变化并在发生变化时进行更新,从而实现被测控件库的自动实时更新。
【专利说明】用于更新被测控件库的方法和装置

【技术领域】
[0001]本申请涉及互联网测试领域,更具体地涉及用户界面(UI)自动化测试技术,尤其涉及用于更新被测控件库的方法和装置。

【背景技术】
[0002]在互联网领域的UI自动化测试中,使用UI自动化脚本进行网站的UI自动化测试,实际是模拟人的行为操作网页上的控件并验证操作带来的结果。这些控件因为被Π自动化脚本测试到,所以称为被测控件。对于一个网站的所有的Π自动化脚本集合在测试执行过程中所测试到的所有被测控件的集合称为被测控件库。被测控件库具有实时反映自动化脚本集合对被测网页元素的覆盖程度的属性。
[0003]当测试人员通过Π自动化测试框架编写或维护Π自动化脚本时,如果能够得到UI自动化脚本集合和其实时对应的被测控件库,会使测试人员很清楚目前Π自动化脚本集合对网站的功能覆盖程度,从而极为有效地帮助测试人员提高Π自动化测试脚本的质量。
[0004]但目前现有技术中的UI测试框架却很难使得测试人员做到这一点。例如,有些UI测试框架比如淘宝的AutoMan提供了公共控件库,使用公共控件库来存放测试人员手工建立的各种控件,在编写或维护Π自动化脚本时手工引用公共控件库中的控件,并且在Π自动化脚本中的控件信息发生变化时,手工修改公共控件库中的控件,以使其体现被测控件库的作用。
[0005]具体而言,在现有技术中,对于控件库中的控件新增、删除或更改操作都是人工进行的,即测试人员在编写Π自动化脚本之前先在公共控件库中手工建立公共控件(如:控件A),然后在编写Π自动化脚本时,在脚本代码中引用该公共控件(如:点击控件A的操作“控件A.click”),这样就完成了新建控件的工作。在维护Π自动化脚本时,如果在脚本代码中删除了某个公共控件,就要在公共控件库中进行人工检查,如果该控件没有被其他脚本引用则手工删除,如果有被其他脚本引用则不能删除。在编写Π自动化脚本时,对某个控件的操作进行更改后,可能原先公共控件库中有这个控件,但由于与此脚本中的操作不同,所以会又手动地在公共控件库中新增这个控件,这样就造成了公共控件库中的冗余。
[0006]由上述可以看出,在对控件的引用发生改变(增、删、改)时,都需要进行手工操作,才能保证公共控件库真正体现被测控件库的作用,但在实际的互联网测试过程中会有成千上万的脚本进行编写操作,这样的人为手工操作根本无法完成工作。另外,由于UI自动化脚本的维护和更新非常频繁,及时的手工检查和确认更是不可行,所以公共控件库中的空间无法实时跟随更新,不可避免地产生大量过时(即,没有被Π自动化脚本引用的控件)、冗余(即,人为原因产生同样的两个或多个控件)的控件,从而使得公共控件库无法起到被测控件库的作用。
[0007]综上所述,在目前的现有技术中存在公共控件库会出现大量过时、冗余数据,对资源消耗过大,无法代表被测控件库,且被测控件库需要进行手动更新的问题,因此有必要提出改进的技术来解决上述问题。


【发明内容】

[0008]如上所述,本申请发明人注意到,在现有的公共控件库技术中,由于需要手动更新控件库,对于动辄数千个测试脚本频繁发生改变的互联网测试而言,及时更新控件库几乎是不可能的,因而在控件库中往往出现大量过时、冗余的数据,从而无法实时精准地反映自动化测试脚本集合对被测网页元素的覆盖程度。
[0009]为此,本申请发明人提出了一种自动更新被测控件库的机制以克服上述问题。具体而言,本申请发明人想到,通过在控件库中存储被测页面信息、被测控件信息以及与被测控件相关联的操作步骤信息,并且监测这些信息的变化并在发生变化时进行更新,从而实现被测控件库的自动实时更新。
[0010]根据本申请实施例的一个方面,提供一种用于更新被测控件库的方法,包括:获取被测页面的控件信息、页面信息和操作步骤信息;依据所述页面信息查询得到所述被测页面在被测控件库中的控件信息列表;当检测到所述控件信息在所述控件信息列表中不存在时,在所述控件信息列表中生成与所述控件信息、页面信息和操作步骤信息对应的记录;以及当检测到所述控件信息在所述控件信息列表中存在时,保留所述控件信息在所述控件信息列表中的原有记录。
[0011]根据本申请的实施例,其中,所述生成与所述控件信息、页面信息和操作步骤信息对应的记录的步骤包括:将所述控件信息、页面信息和操作步骤信息分别保存在所述控件信息列表中的控件表、页面表和操作步骤表中,并在所述控件信息、页面信息和操作步骤信息之间进行关联。
[0012]根据本申请的实施例,其中,在所述控件信息、页面信息和操作步骤信息之间进行关联的步骤包括:将所述控件信息与所述页面信息关联;以及将所述控件信息与所述操作步骤信息关联。
[0013]根据本申请的实施例,其中,还包括:响应于删除脚本信息的脚本更新指令,检测所述脚本信息对应的控件信息是否与所述操作步骤表中的其他操作步骤信息关联;当检测到所述脚本信息对应的控件信息没有与其他操作步骤信息关联时,删除所述脚本信息对应的控件信息在所述控件表中的记录;以及当检测到所述脚本信息对应的控件信息与其他操作步骤信息关联时,保留所述脚本信息对应的控件信息在所述控件表中的记录。
[0014]根据本申请的实施例,其中,还包括:响应于修改脚本信息中的控件信息的脚本更新指令,将所述脚本信息对应的操作步骤信息关联到修改后的脚本信息对应的控件信息。
[0015]根据本申请的实施例,其中,还包括:当所述修改后的脚本信息对应的控件信息在所述控件表中不存在时,在所述控件表中生成对应的记录。
[0016]根据本申请的实施例,其中,还包括:检测所述修改前的脚本信息对应的控件信息是否与所述操作步骤表中的其他操作步骤信息关联;当检测到所述修改前的脚本信息对应的控件信息没有与其他操作步骤信息关联时,删除所述修改前的脚本信息对应的控件信息在所述控件表中的记录;以及当检测到所述修改前的脚本信息对应的控件信息与其他操作步骤信息关联时,保留所述修改前的脚本信息对应的控件信息在所述控件表中的记录。
[0017]根据本申请的实施例,其中,还包括:响应于修改所述被测页面中的控件的属性信息的控件属性更新命令,修改所述控件信息列表中的对应控件信息。
[0018]根据本申请的另一个方面,还提供一种用于更新被测控件库的装置,其特征在于,包括:获取模块,用于获取被测页面的控件信息、页面信息和操作步骤信息;查询模块,用于依据所述页面信息查询得到所述被测页面在被测控件库中的控件信息列表;生成模块,用于当检测到所述控件信息在所述控件信息列表中不存在时,在所述控件信息列表中生成与所述控件信息、页面信息和操作步骤信息对应的记录;以及当检测到所述控件信息在所述控件信息列表中存在时,保留所述控件信息在所述控件信息列表中的原有记录。
[0019]根据本申请的实施例,其中,所述生成与所述控件信息、页面信息和操作步骤信息对应的记录的步骤包括:将所述控件信息、页面信息和操作步骤信息分别保存在所述控件信息列表中的控件表、页面表和操作步骤表中,并在所述控件信息、页面信息和操作步骤信息之间进行关联。
[0020]根据本申请的实施例,其中,在所述控件信息、页面信息和操作步骤信息之间进行关联的步骤包括:将所述控件信息与所述页面信息关联;以及将所述控件信息与所述操作步骤信息关联。
[0021]根据本申请的实施例,其中,还包括删除模块,所述删除模块用于:响应于删除脚本信息的脚本更新指令,检测所述脚本信息对应的控件信息是否与所述操作步骤表中的其他操作步骤信息关联;当检测到所述脚本信息对应的控件信息没有与其他操作步骤信息关联时,删除所述脚本信息对应的控件信息在所述控件表中的记录;以及当检测到所述脚本信息对应的控件信息与其他操作步骤信息关联时,保留所述脚本信息对应的控件信息在所述控件表中的记录。
[0022]根据本申请的实施例,其中,还包括修改模块,所述修改模块用于:响应于修改脚本信息中的控件信息的脚本更新指令,将所述脚本信息对应的操作步骤信息关联到修改后的脚本信息对应的控件信息。
[0023]根据本申请的实施例,其中,所述修改模块还用于:当所述修改后的脚本信息对应的控件信息在所述控件表中不存在时,在所述控件表中生成对应的记录。
[0024]根据本申请的实施例,其中,所述修改模块还用于:检测所述修改前的脚本信息对应的控件信息是否与所述操作步骤表中的其他操作步骤信息关联;当检测到所述修改前的脚本信息对应的控件信息没有与其他操作步骤信息关联时,删除所述修改前的脚本信息对应的控件信息在所述控件表中的记录;以及当检测到所述修改前的脚本信息对应的控件信息与其他操作步骤信息关联时,保留所述修改前的脚本信息对应的控件信息在所述控件表中的记录。
[0025]根据本申请的实施例,其中,还包括:控件属性更新模块,所述控件属性更新模块用于:响应于修改所述被测页面中的控件的属性信息的控件属性更新命令,修改所述控件信息列表中的对应控件信息。
[0026]根据本申请的技术方案,在服务器侧的被测控件库中对控件信息、页面信息和操作步骤信息进行分别存储,并建立它们之间的关联关系,使得确保被测控件库中控件定位信息的唯一性。并且,在脚本信息输入过程中,获取被测页面的控件信息并将其与服务器侧的被测控件库中的记录进行比对,从而获知是否需要在被测控件库中针对获取到的该控件信息生成相关信息记录。另外,在对脚本信息进行删除和修改的操作时,通过相关控制逻辑也可以完成对被测控件库的自动删除和修改。由上述操作可以达到对被测控件库进行自动更新的目的,大大节约了人力资源和系统资源。并且,可以达到对被测控件库进行实时更新的目的,从而实时精准地反映对被测控件的覆盖程度,有效地帮助测试人员提高UI自动化脚本的质量。

【专利附图】

【附图说明】
[0027]此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
[0028]图1是根据本申请实施例的用于更新被测控件库的方法的流程图;
[0029]图2是根据本申请实施例的删除控件信息记录的操作的流程图;
[0030]图3是根据本申请实施例的修改控件信息记录的操作的流程图;
[0031]图4是根据本申请实施例的用于更新被测控件库的装置的示意结构框图;
[0032]图5是根据本申请另一实施例的用于更新被测控件库的装置的示意结构框图;以及
[0033]图6示出了根据本申请实施例的被测控件库中的控件信息列表的示意结构图。

【具体实施方式】
[0034]如上面提到的,本申请的主要思想在于,在服务器侧的被测控件库中对控件信息、页面信息和操作步骤信息进行存储,并建立它们之间的关联关系,使得确保被测控件库中控件定位信息的唯一性。在脚本信息输入过程中,可以通过获取被测页面的控件信息并将其与服务器侧的被测控件库中的记录进行比对,来获知是否需要在被测控件库中针对获取到的该控件信息生成相关信息记录。在对脚本信息进行删除和修改的操作时,也可以通过相关控制逻辑来完成对被测控件库的自动删除和修改。
[0035]为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0036]参考图1,图1是根据本申请实施例的用于更新被测控件库的方法的流程图。
[0037]当测试人员对某个页面进行测试时,就需要进行测试脚本的编写,在脚本中会对被测页面中的一些控件进行相关操作以达到测试的目的。在本申请的实施例中可以采用录制的方式进行脚本信息的输入工作。当然,脚本信息的输入也不局限于此方式,本申请对此不做限制,对于以各种不同的方式进行脚本信息输入而获取到相关脚本信息的方案都属于本申请保护范围。
[0038]在本申请的实施例中,可以在脚本输入端(例如录制工具)输入脚本信息时完成对被测控件库的自动更新。在本申请的其它实施例中,可以在服务器端获取到脚本信息时完成对被测控件库的自动更新。也就是,本申请的方法既可以在脚本输入端(例如录制端)实现,也可以在服务器端(诸如脚本管理服务器)实现。
[0039]具体而言,在步骤SlOl处,获取被测页面的控件信息、页面信息和操作步骤信息。
[0040]优选地,可以在脚本信息输入过程中获取被测页面的控件信息、页面信息和操作步骤信息。当然,也可以在脚本信息输入完成之后再获取被测页面的控件信息、页面信息和操作步骤信息。
[0041]根据本申请的一个实施例,可以通过录制工具进行脚本信息的录制输入,并且在录制过程中,录制工具可以记录测试人员的操作,具体而言可以获取并记录被测页面的控件信息、页面信息和操作步骤信息以及它们之间的关联关系。例如可以使用json方式记录数据如下:

【权利要求】
1.一种用于更新被测控件库的方法,其特征在于,包括: 获取被测页面的控件信息、页面信息和操作步骤信息; 依据所述页面信息查询得到所述被测页面在被测控件库中的控件信息列表; 当检测到所述控件信息在所述控件信息列表中不存在时,在所述控件信息列表中生成与所述控件信息、页面信息和操作步骤信息对应的记录;以及 当检测到所述控件信息在所述控件信息列表中存在时,保留所述控件信息在所述控件信息列表中的原有记录。
2.根据权利要求1所述的方法,其特征在于,所述生成与所述控件信息、页面信息和操作步骤信息对应的记录的步骤包括: 将所述控件信息、页面信息和操作步骤信息分别保存在所述控件信息列表中的控件表、页面表和操作步骤表中,并在所述控件信息、页面信息和操作步骤信息之间进行关联。
3.根据权利要求2所述的方法,其特征在于,在所述控件信息、页面信息和操作步骤信息之间进行关联的步骤包括: 将所述控件信息与所述页面信息关联;以及 将所述控件信息与所述操作步骤信息关联。
4.根据权利要求1-3中任一项所述的方法,其特征在于,还包括: 响应于删除脚本信息的脚本更新指令,检测所述脚本信息对应的控件信息是否与所述操作步骤表中的其他操作步骤信息关联; 当检测到所述脚本信息对应的控件信息没有与其他操作步骤信息关联时,删除所述脚本信息对应的控件信息在所述控件表中的记录;以及 当检测到所述脚本信息对应的控件信息与其他操作步骤信息关联时,保留所述脚本信息对应的控件信息在所述控件表中的记录。
5.根据权利要求1-3中任一项所述的方法,其特征在于,还包括: 响应于修改脚本信息中的控件信息的脚本更新指令,将所述脚本信息对应的操作步骤信息关联到修改后的脚本信息对应的控件信息。
6.根据权利要求5所述的方法,其特征在于,还包括: 当所述修改后的脚本信息对应的控件信息在所述控件表中不存在时,在所述控件表中生成对应的记录。
7.根据权利要求5所述的方法,其特征在于,还包括: 检测所述修改前的脚本信息对应的控件信息是否与所述操作步骤表中的其他操作步骤信息关联; 当检测到所述修改前的脚本信息对应的控件信息没有与其他操作步骤信息关联时,删除所述修改前的脚本信息对应的控件信息在所述控件表中的记录;以及 当检测到所述修改前的脚本信息对应的控件信息与其他操作步骤信息关联时,保留所述修改前的脚本信息对应的控件信息在所述控件表中的记录。
8.根据权利要求1-3中任一项所述的方法,其特征在于,还包括: 响应于修改所述被测页面中的控件的属性信息的控件属性更新命令,修改所述控件信息列表中的对应控件信息。
9.一种用于更新被测控件库的装置,其特征在于,包括: 获取模块,用于获取被测页面的控件信息、页面信息和操作步骤信息; 查询模块,用于依据所述页面信息查询得到所述被测页面在被测控件库中的控件信息列表; 生成模块,用于当检测到所述控件信息在所述控件信息列表中不存在时,在所述控件信息列表中生成与所述控件信息、页面信息和操作步骤信息对应的记录;以及当检测到所述控件信息在所述控件信息列表中存在时,保留所述控件信息在所述控件信息列表中的原有记录。
10.根据权利要求9所述的装置,其特征在于,所述生成与所述控件信息、页面信息和操作步骤信息对应的记录的步骤包括: 将所述控件信息、页面信息和操作步骤信息分别保存在所述控件信息列表中的控件表、页面表和操作步骤表中,并在所述控件信息、页面信息和操作步骤信息之间进行关联。
11.根据权利要求10所述的装置,其特征在于,在所述控件信息、页面信息和操作步骤信息之间进行关联的步骤包括: 将所述控件信息与所述页面信息关联;以及 将所述控件信息与所述操作步骤信息关联。
12.根据权利要求9-11中任一项所述的装置,其特征在于,还包括删除模块,所述删除模块用于: 响应于删除脚本信息的脚本更新指令,检测所述脚本信息对应的控件信息是否与所述操作步骤表中的其他操作步骤信息关联; 当检测到所述脚本信息对应的控件信息没有与其他操作步骤信息关联时,删除所述脚本信息对应的控件信息在所述控件表中的记录;以及 当检测到所述脚本信息对应的控件信息与其他操作步骤信息关联时,保留所述脚本信息对应的控件信息在所述控件表中的记录。
13.根据权利要求9-11中任一项所述的装置,其特征在于,还包括修改模块,所述修改模块用于: 响应于修改脚本信息中的控件信息的脚本更新指令,将所述脚本信息对应的操作步骤信息关联到修改后的脚本信息对应的控件信息。
14.根据权利要求13所述的装置,其特征在于,所述修改模块还用于: 当所述修改后的脚本信息对应的控件信息在所述控件表中不存在时,在所述控件表中生成对应的记录。
15.根据权利要求13所述的装置,其特征在于,所述修改模块还用于: 检测所述修改前的脚本信息对应的控件信息是否与所述操作步骤表中的其他操作步骤信息关联; 当检测到所述修改前的脚本信息对应的控件信息没有与其他操作步骤信息关联时,删除所述修改前的脚本信息对应的控件信息在所述控件表中的记录;以及 当检测到所述修改前的脚本信息对应的控件信息与其他操作步骤信息关联时,保留所述修改前的脚本信息对应的控件信息在所述控件表中的记录。
16.根据权利要求9-11中任一项所述的装置,其特征在于,还包括:控件属性更新模块,所述控件属性更新模块用于: 响应于修改所述被测页面中的控件的属性信息的控件属性更新命令,修改所述控件信息列表中的对应控件信息。
【文档编号】G06F9/44GK104166541SQ201310183156
【公开日】2014年11月26日 申请日期:2013年5月17日 优先权日:2013年5月17日
【发明者】夏大伟, 章屹 申请人:阿里巴巴集团控股有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1