智能电视自动化测试方法及系统转让专利

申请号 : CN201210017571.7

文献号 : CN102595184B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 王兆庆夏章抓秦曙光

申请人 : 青岛海信传媒网络技术有限公司

摘要 :

本发明涉及智能电视技术领域,提供了一种智能电视自动化测试方法及系统。该方法包括步骤:在测试数据库中建立第一冗余表和第二冗余表;初始化冗余表数据;从第二冗余表中获取相应的变参完成第一冗余表初始测试数据的配置;根据第一冗余表的数据确定测试用例的执行顺序,并组装成相应的http请求语句,将组装好的所述http请求语句按所述执行顺序放入脚本的调用队列中;顺序执行队列中的http请求并保存相应的返回结果,自动更新冗余表的数据;在每类设备的测试全部完成后输出测试结果。本发明中,通过两个冗余表的操作完成测试脚本的自动组装和执行,实现了智能电视的自动测试,极大提高了智能电视测试时的工作效率。

权利要求 :

1.一种智能电视自动化测试方法,其特征在于,所述方法包括步骤:在测试数据库中建立第一冗余表和第二冗余表;其中,所述第一冗余表用于控制测试用例的执行顺序和完善测试用例间的数据依赖关系,所述第二冗余表用于记录测试数据库中所有的参数及其测试状态;

初始化冗余表数据;

从第二冗余表中获取相应的变参完成第一冗余表初始测试数据的配置;

根据第一冗余表的数据确定测试用例的执行顺序,并组装成相应的http请求语句,将组装好的所述http请求语句按所述执行顺序放入脚本的调用队列中;

顺序执行队列中的http请求并保存相应的返回结果,自动更新冗余表的数据;

在每类设备的测试全部完成后输出测试结果。

2.根据权利要求1所述的方法,其特征在于,所述第一冗余表中记录设备id、序号、固定参数、变参、执行完毕标记、依赖序号、测试结果,所述第二冗余表中记录与设备id对应的所有待测试的参数及参数的测试状态。

3.根据权利要求2所述的方法,其特征在于,所述初始化冗余表数据的过程中,对于第一冗余表将“测试结果”字段清空,将“执行完毕”字段全部置为“否”,将“变参”字段清空;

对于第二冗余表,将测试数据库中的整个参数表复制到第二冗余表中并将测试状态都设为未执行。

4.根据权利要求1所述的方法,其特征在于,在建立所述第二冗余表的同时设置一个触发器控制所述第二冗余表与测试数据库参数的同步。

5.根据权利要求2所述的方法,其特征在于,根据设备id从所述第二冗余表中获取相应的变参完成第一冗余表初始测试数据的配置。

6.根据权利要求2所述的方法,其特征在于,所述自动更新冗余表的数据的过程为:a、把http请求的返回结果写入第一冗余表的“测试结果”字段;

b、将步骤a的测试结果更新到第一冗余表中依赖序号为当前记录序号,并且设备代码相同的记录的“变参”字段;

c、更新第一冗余表“执行完毕”字段为“是”;

d、更新第二冗余表的“是否测试”字段为“是”。

7.根据权利要求2所述的方法,其特征在于,根据对所述第一冗余表中是否还存在“执行完毕”字段为“否”的记录的检查来判断每类设备的测试是否全部完成。

8.一种智能电视自动化测试系统,其特征在于,所述系统包括:冗余表构建模块,用于在测试数据库中建立第一冗余表和第二冗余表;其中,所述第一冗余表用于控制测试用例的执行顺序和完善测试用例间的数据依赖关系,所述第二冗余表用于记录测试数据库中所有的参数及其测试状态;

初始化模块,用于初始化冗余表数据;

数据采集模块,用于从第二冗余表中获取相应的变参完成第一冗余表初始测试数据的配置;

组装模块,用于根据第一冗余表的数据确定测试用例的执行顺序,并组装成相应的http请求语句,将组装好的所述http请求语句按所述执行顺序放入脚本的调用队列中;

执行模块,用于顺序执行队列中的http请求,并保存相应的返回结果,自动更新冗余表的数据;

结果输出模块,用于在每类设备的测试全部完成后输出测试结果。

9.根据权利要求8所述的系统,其特征在于,所述系统还包括:触发器模块,用于控制所述第二冗余表与测试数据库参数的同步。

10.根据权利要求8所述的系统,其特征在于,所述系统还包括:检查模块,用于根据对所述第一冗余表中是否还存在“执行完毕”字段为“否”的记录的检查来判断每类设备的测试是否全部完成。

说明书 :

智能电视自动化测试方法及系统

技术领域

[0001] 本发明涉及智能电视技术领域,特别涉及一种智能电视自动化测试方法及系统。

背景技术

[0002] 智能电视系统一部分业务是通过终端向服务器进行http请求,服务器返回相应的结果来提供web服务。智能电视的测试中,为了加快各种型号智能电视基本功能的验证,每次回归测试或者基本功能验证时多采用url模拟终端访问服务器。一般情况下不同型号终端的请求格式是不一样的,但是终端访问服务器都是采用http协议,请求格式一般都可拆分为:固定参数+变参。其中有的测试用例的变参依赖于其他测试用例的测试结果,这种情况下测试用例执行时有先后顺序,并且需要根据数据依赖关系动态修改测试用例的执行顺序和执行状态。
[0003] 然而,在实现本发明过程中,发明人发现,目前智能电视的测试很大程度上依赖人工的干预,即采用手工测试,由人工先选取一种测试机型,然后进入后台数据库获取合适的变参例如mac地址等;随后在浏览器中利用“固定参数+变参”进行请求,再查看结果。如果本机型的第二个测试用例需要第一个测试用例的测试结果,则需要记录第一个测试用例的测试结果,然后组装第二个测试用例的http请求。
[0004] 目前很多基于http请求的自动化测试方法都是预先设定好http请求的格式,随后在自动化测试脚本中设定好测试用例的执行顺序,然后调用自动测试脚本按照顺序执行测试用例。这样的方式灵活性不高,如果每次测试时测试用例请求的http请求参数不同,就需要每次都由人工调整http请求的参数,人工干预次数多、易出错、效率低下。
[0005] 比如现有技术中存在一种面向web应用的自动化白盒测试系统及方法,包括web数据采集模块,将测试人员在客户端浏览器提交的数据信息自动保存为web请求信息数据文件,并加入action信息,生成初始测试数据文件;脚本生成模块,其根据初始测试数据文件生成测试脚本;数据生成模块,该模块通过编写一个业务描述文件,描述测试用例执行的逻辑顺序,自动对初始测试数据文件进行修改,生成测试数据文件;集成测试模块,其根据业务描述文件的逻辑顺序对多个测试用例进行耦合。可以看出,现有技术中的测试方式通常具有以下缺陷:(1)需要人工从浏览器输入数据,人工干预点比较多,容易出错;(2)测试脚本可以控制测试用例的执行顺序,但是如果测试用例间存在数据依赖关系时无法实现自动化测试。

发明内容

[0006] (一)要解决的技术问题
[0007] 针对现有技术的缺点,本发明为了解决现有技术中电视的web测试无法自动获取参数并调整数据依赖关系的问题,提出了一种智能电视自动化测试方法及系统。
[0008] (二)技术方案
[0009] 为了实现上述目的,一方面,本发明提供了一种智能电视自动化测试方法,所述方法包括步骤:
[0010] 在测试数据库中建立第一冗余表和第二冗余表;
[0011] 初始化冗余表数据;
[0012] 从第二冗余表中获取相应的变参完成第一冗余表初始测试数据的配置;
[0013] 根据第一冗余表的数据确定测试用例的执行顺序,并组装成相应的http请求语句,将组装好的所述http请求语句按所述执行顺序放入脚本的调用队列中;
[0014] 顺序执行队列中的http请求并保存相应的返回结果,自动更新冗余表的数据;
[0015] 在每类设备的测试全部完成后输出测试结果。
[0016] 另一方面,本发明还同时提供一种智能电视自动化测试系统,所述系统包括:
[0017] 冗余表构建模块,用于在测试数据库中建立第一冗余表和第二冗余表;
[0018] 初始化模块,用于初始化冗余表数据;
[0019] 数据采集模块,用于从第二冗余表中获取相应的变参完成第一冗余表初始测试数据的配置;
[0020] 组装模块,用于根据第一冗余表的数据确定测试用例的执行顺序,并组装成相应的http请求语句,将组装好的所述http请求语句按所述执行顺序放入脚本的调用队列中;
[0021] 执行模块,用于顺序执行队列中的http请求,并保存相应的返回结果,自动更新冗余表的数据;
[0022] 结果输出模块,用于在每类设备的测试全部完成后输出测试结果。
[0023] (三)有益效果
[0024] 本发明的方案中,使用第一冗余表来控制测试用例的执行顺序和完善测试用例间的数据依赖关系,并通过第二冗余表自动记录参数并实时更新测试状态,通过两个冗余表的操作完成测试脚本的自动组装和执行,实现了智能电视的自动测试,极大提高了智能电视测试时的工作效率。此外,由独立的冗余表实现数据隔离,保证了测试过程的安全可靠;本发明的方案可以支持智能电视测试过程中所有涉及http请求的测试,兼容性好、适用范围广。

附图说明

[0025] 图1为本发明的实施例中智能电视自动化测试方法的处理流程示意图;
[0026] 图2为本发明的实施例中智能电视自动化测试系统的模块结构示意图。

具体实施方式

[0027] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0028] 本发明提供一种基于http请求的智能电视自动化测试方法及系统,可以解决智能电视领域url模拟http请求测试时测试用例每次执行时都要获取不同参数并且测试用例之间有数据依赖关系时人工测试容易出错并且工作量大的问题。本发明中采用自动化的测试方式实现了快速、准确的测试。
[0029] 具体地,参见图1,本发明的实施例中智能电视自动化测试方法包括步骤:
[0030] 在测试数据库中建立第一冗余表和第二冗余表,其中,所述第一冗余表用于控制测试用例的执行顺序和完善测试用例间的数据依赖关系,所述第二冗余表用于记录测试数据库中所有的参数及其测试状态;
[0031] 初始化冗余表数据;
[0032] 从第二冗余表中获取相应的变参完成第一冗余表初始测试数据的配置;
[0033] 根据第一冗余表的数据确定测试用例的执行顺序,并组装成相应的http请求语句,将组装好的所述http请求语句按所述执行顺序放入脚本的调用队列中;
[0034] 顺序执行队列中的http请求并保存相应的返回结果,自动更新冗余表的数据;
[0035] 在每类设备的测试全部完成后输出测试结果。
[0036] 下面结合具体的实施例对本发明的方法做进一步的说明。首先,在测试数据库中增加一个冗余表(第一冗余表A)用于控制测试用例的执行顺序和完善测试用例间的数据依赖关系。其中,冗余表A中主要记录设备id、序号、固定参数、变参、执行完毕标记、依赖序号、测试结果等项目,由测试人员完成需要测试机器的设备id等基本信息的维护。其次在测试数据库中增加一个冗余表(第二冗余表B,见表2)用于记录测试数据库中所有的参数及其测试状态。
[0037] 在执行每次测试前,对冗余表数据进行初始化,首先初始化冗余表A的基础数据,例如将“测试结果”字段清空,将“执行完毕”字段全部置为“否”,将“变参”字段清空;完成初始化后的冗余表A见下表1。
[0038]
[0039] 表1第一冗余表A
[0040] 本发明中,冗余表是为了实现自动化测试需要引入的,与原来正常的业务(即原测试数据库的其他业务)没有任何关系,保证了数据隔离,操作安全可靠;由于数据对其他业务无影响,冗余表的可扩展性比较好,将来可以根据实际的业务需要,增加冗余表相关字段来扩充相应的功能。
[0041] 在本发明的实施例中,只需在建立冗余表A时由人工维护冗余表A中的设备id、固定参数、序号、依赖序号一次,以后每次测试时数据库采集模块自动配置冗余表初始测试数据避免人工从测试数据库中获取数据时容易出错及工作量大的问题。
[0042] 在冗余表中引入“依赖序号”字段,实现测试用例间的数据依赖关系。脚本执行时按照初始设定的顺序执行测试用例,并根据数据依赖关系将上次用例执行的结果作为下次执行的依据,减少了重复的http请求,提高了效率。
[0043] 此外,在进行第一次测试前将测试数据库中的整个参数表复制到冗余表B中,将冗余表B中测试状态都设为未执行(即“是否测试”字段设为“否”),初始化完成后的冗余表B见下表2。冗余表B记录着所有待测试的参数,初始化后所有的参数的“是否测试”字段都是“否”,表示所有参数都没有被测试过;如果一个参数在测试过程中被测试过之后,该参数对应的“是否测试”字段的值就变为“是”,这样下次测试时将不获取该参数作为测试参数。
[0044]设备id 序号 参数 是否测试
1001 1 00001 否
1002 1 00002 否
1003 1 00003 否
1001 3 00004 否
... ... ...
[0045] 表2第二冗余表B
[0046] 本发明中,还可以增加一个触发器控制冗余表B与测试数据库参数的同步。系统由触发器控制测试数据库测试参数与冗余表TableB的数据同步,例如:
[0047] 测试数据库增加一个参数“00001”,则由触发器控制在冗余表B中增加记录“00001”,“是否测试”字段值为“否”
[0048] 测试数据库删除一个参数“00001”,则由触发器控制在冗余表B中也删除“00001”的记录。
[0049] 在完成冗余表数据的初始化后,自动完成冗余表A测试数据的配置;根据设备id和序号从冗余表B中获取相应的变参。
[0050] 例如针对设备id为“1001”序号为“1”的记录获取参数的方法为:
[0051] 根据设备id“1001”和序号“1”在冗余表B中查找对应的记录,以冗余表B中该记录的参数作为冗余表A对应记录的变参。
[0052] 如果冗余表A的“依赖序号”不为空则该记录的变参不需要到冗余表B中获取。
[0053] 完成数据配置后的冗余表A见下表3。
[0054]
[0055] 表3完成数据配置后的第一冗余表A
[0056] 随后,根据冗余表A的数据确定首次执行的记录,并组装成相应的http请求语句,放到脚本的调用队列中去。例如:第一次只把依赖编号为“空”并且执行完毕为“否”的所有记录进行组装,组装格式为:固定参数+变参。
[0057] 顺序执行队列中的http请求,并保存相应的返回结果。每执行完一次测试后都会自动更新冗余表的数据。步骤如下:
[0058] a、把http请求的返回结果写入冗余表A的“测试结果”字段;
[0059] b、更新冗余表A中依赖序号为当前记录序号,并且设备代码相同的记录的“变参”字段;
[0060] c、更新冗余表A“执行完毕”字段为“是”;
[0061] d、更新冗余表B的“是否测试”字段为“是”,下次测试时可以过滤掉该参数。
[0062] 执行过若干次测试后的两冗余表见下表4和表5。
[0063]
[0064] 表4执行若干测试后的第一冗余表A
[0065]设备id 序号 参数 是否测试
1001 1 00001 是
1002 1 00002 是
1003 1 00003 是
1001 3 00004 否
... ... ...
[0066] 表5执行若干测试后的第二冗余表B
[0067] 最后,检查冗余表A中是否还存在“执行完毕”字段为“否”的记录,如果有则继续调用脚本执行测试,如果没有则表示测试已完成,把每类设备的测试结果输出以供测试者进行分析。
[0068] 本领域普通技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,包括上述实施例方法的各步骤,而所述的存储介质可以是:ROM/RAM、磁碟、光盘、存储卡等。因此,与本发明的方法相对应的,本发明还同时包括一种智能电视自动化测试系统,该系统通常以与方法各步骤相对应的功能模块的形式表示;如图2所示,所述系统包括:
[0069] 冗余表构建模块,用于在测试数据库中建立第一冗余表和第二冗余表,其中,所述第一冗余表用于控制测试用例的执行顺序和完善测试用例间的数据依赖关系,所述第二冗余表用于记录测试数据库中所有的参数及其测试状态;
[0070] 初始化模块,用于初始化冗余表数据;
[0071] 数据采集模块,用于从第二冗余表中获取相应的变参完成第一冗余表初始测试数据的配置;
[0072] 组装模块,用于根据第一冗余表的数据确定测试用例的执行顺序,并组装成相应的http请求语句,将组装好的所述http请求语句按所述执行顺序放入脚本的调用队列中;
[0073] 执行模块,用于顺序执行队列中的http请求,并保存相应的返回结果,自动更新冗余表的数据;
[0074] 结果输出模块,用于在每类设备的测试全部完成后输出测试结果。
[0075] 更进一步地,所述系统还包括:触发器模块,用于控制所述第二冗余表与测试数据库参数的同步。
[0076] 以及,检查模块,用于根据对所述第一冗余表中是否还存在“执行完毕”字段为“否”的记录的检查来判断每类设备的测试是否全部完成。
[0077] 采用本发明的方案,具有以下明显优势:
[0078] 1、本发明可自动化配置冗余数据表;测试人员所要做的工作仅仅是构建冗余表A时配置每种机型的设备id、固定参数、序号、依赖关系,其他工作全部自动完成,极大提高了智能电视测试时的工作效率。
[0079] 2、本发明引入了一个在实际运营中不使用的对象,实现了数据隔离,不会影响正常的业务流程,安全可靠。
[0080] 3、可扩展性比较好;根据本发明的技术方案,可以随时根据实际业务需要,增加冗余表中相关字段等来扩展功能,凡是智能电视测试过程中涉及http请求测试的基本上都可以采用本发明的测试方式,方案兼容性好、适用范围广。
[0081] 以上实施方式仅用于说明本发明,而并非对本发明的限制,有关技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明的范畴,本发明的发明保护范围应由权利要求限定。