一种自动化测试用例生成方法与系统的制作方法

文档序号:10612725阅读:283来源:国知局
一种自动化测试用例生成方法与系统的制作方法
【专利摘要】本发明涉及自动化测试用例生成方法与系统以及使用自动化测试用例的测试方法与系统,通过自动化解析与测试用例有关的数据包,并根据解析的结果生成自动化测试用例的方法实现了自动化测试用例的快速生成,通过自动执行自动化测试用例实现了快速测试和自动化测试,本发明实现了自动抓取、自动生成自动化测试用例、自动维护被测试数据和自动执行自动化测试用例,显著提升了自动化测试用例制作的效率和测试效率。本发明生成的自动化测试用例能够在开发人员与测试人员之间进行共享,从而使得测试人员能够借鉴开发人员自测的经验,进而提升测试的效率与质量。
【专利说明】
一种自动化测试用例生成方法与系统
技术领域
[0001] 本发明涉及软件测试领域,具体涉及一种自动化测试用例生成方法与系统。
【背景技术】
[0002] 通常,在软件测试过程中,由测试人员根据测试用例进行测试,在对于软件功能的 测试中,经常需要使用到自动化测试用例。自动化测试用例是指可以重复运行且无须人工 参与,并执行一定步骤的测试用例。
[0003] 目前,在对于软件的新功能或改进功能进行测试时,自动化测试用例存在如下缺 占 .
[0004] (1)自动化测试用例的制作大多有滞后性:
[0005] 测试人员通常在功能测试完成后,新版本发布之前才进行自动化测试用例的制 作,有的甚至在新版本发布之后才补充制作自动化测试用例,从而导致自动化测试用例只 能用于下次版本的回归验证或供外网监控使用,并不能在本次版本的测试中使用;此外,滞 后制作自动化测试用例导致了自动化测试用例制作时需要重新构造应用场景,费时费力;
[0006] (2)自动化测试用例由测试人员制作,开发人员甚少参与,从而导致自动化测试用 例质量不高。

【发明内容】

[0007] 为了解决上述技术问题,本发明提出了自动化测试用例生成方法与系统以及使用 自动化测试用例的测试方法与系统,通过自动化解析与测试用例有关的数据包,并根据解 析结果生成自动化测试用例的方法实现了自动化测试用例的快速生成,通过执行自动化测 试用例实现了快速测试和自动化测试,本发明生成的自动化测试用例能够在开发人员与测 试人员之间进行共享,从而使得测试人员能够借鉴开发人员自测的经验,进而提升测试的 效率与质量。
[0008] 本发明是以如下技术方案实现的,一种自动化测试用例生成方法,包括:
[0009] 运行测试用例,获得数据流;
[0010]在所述数据流中选取与测试用例有关的数据包,所述数据包包括测试请求的数据 包和对应于所述测试请求的响应数据包;
[0011] 对所述数据包进行解析;
[0012] 根据解析的结果选择有效测试数据,
[0013] 根据所述有效测试数据生成自动化测试用例。
[0014] 优选的,所述获取运行测试用例过程中产生的数据包包括:
[0015] 运行测试用例,获得数据流,所述数据流包含测试请求的数据包和对应于所述测 试请求的响应数据包;
[0016] 根据预设的第一过滤条件抓取运行测试用例过程中产生的数据包。
[0017] 优选的,还包括:
[0018] 获取运行测试用例的主机中的通讯协议存储地址;
[0019] 根据所述通讯协议存储地址获取通讯协议,所述通讯协议用于对所述数据包进行 解析。
[0020] 优选的,所述获取运行测试用例的主机中的通讯协议存储地址包括:
[0021] 获取配置信息,所述配置信息包括入网设备的网络参数与所述入网设备的通讯协 议存储地址之间的对应关系;
[0022] 获取所述主机的IP地址;
[0023] 根据所述配置信息和所述IP地址,获取所述主机中用于测试的端口的端口号;
[0024] 根据所述配置信息、所述IP地址和所述端口号,获取通讯协议存储地址。
[0025] 优选的,所述通讯协议以协议文件形式进行记录,一个所述协议文件记录一个或 多个通讯协议。
[0026] 优选的,所述对所述数据包进行解析包括:
[0027] 解析所述数据包的以太网协议头;
[0028]解析所述数据包的IP协议头;
[0029]解析所述数据包的TCP协议头;
[0030] 根据所述通讯协议对所述数据包的应用层数据进行解析。
[0031] 优选的,还包括:
[0032] 保存对于所述IP协议头、TCP协议头和应用层数据的解析结果的步骤。
[0033] 优选的,所述根据所述解析的结果选择有效测试数据包括:
[0034] 根据预设的第二过滤条件对所述解析的结果进行过滤,并将所述过滤的结果作为 有效测试数据。
[0035] 优选的,所述根据所述有效测试数据生成自动化测试用例包括:
[0036] 为所述有效测试数据设置用例名称;
[0037] 为所述有效测试数据设置检查点;
[0038] 根据所述有效测试数据、用例名称和检查点生成自动化测试用例。
[0039] -种测试方法,所述方法包括使用上述的自动化测试用例生成方法生成自动化测 试用例,包括:
[0040] 执行所述自动化测试用例;
[0041] 对所述自动化测试用例的执行结果进行处理。
[0042] 所述自动化测试用例的执行可以是自动的,也可以是人工的。
[0043] 优选的,所述对所述自动化测试用例的执行结果进行处理包括:
[0044] 根据所述执行结果生成通知消息,并将所述通知消息传输至所述测试的有关人 员。
[0045] 优选的,还包括:
[0046] 保存所述执行结果的步骤。
[0047] 一种自动化测试用例生成系统,包括:
[0048] 数据包获取模块,用于运行测试用例,获得数据流;
[0049] 数据包选取模块,用于在所述数据流中选取与测试用例有关的数据包,所述数据 包包括测试请求的数据包和对应于所述测试请求的响应数据包;
[0050] 解析模块,用于对所述数据包进行解析;
[0051] 选择模块,用于根据解析的结果选择有效测试数据;
[0052] 用例构建模块,用于根据所述有效测试数据生成自动化测试用例。
[0053] 优选的,还包括:
[0054] 通讯协议存储模块,用于存储通讯协议;
[0055] 通讯协议获取模块,用于获取运行测试用例的主机中的通讯协议存储地址,并根 据所述通讯协议存储地址获取通讯协议。
[0056] 优选的,还包括:
[0057]配置管理模块,用于管理配置文件,所述配置文件用于记录入网设备的网络参数 与所述入网设备的通讯协议存储地址之间的对应关系。
[0058] 优选的,所述配置管理模块通过部署zookeeper服务实现通讯配置管理功能。
[0059] 优选的,所述解析模块还包括:
[0060] 以太网协议头解析子模块,用于解析所述数据包的以太网协议头;
[0061 ] IP协议头解析子模块,用于解析所述数据包的IP协议头;
[0062] TCP协议头解析子模块,用于解析所述数据包的TCP协议头;
[0063] 应用层数据解析子模块,用于根据所述通讯协议对所述数据包的应用层数据进行 解析。
[0064]优选的,所述选择模块还包括:
[0065] 第二设置子模块,用于设置第二过滤条件;
[0066] 有效测试数据获取子模块,用于根据预设的第二过滤条件对所述解析的结果进行 过滤,并将所述过滤的结果作为有效测试数据。
[0067] 优选的,所述用例构建模块还包括:
[0068] 用例名称设置子模块,用于为所述有效测试数据设置用例名称;
[0069]检查点设置子模块,用于为所述有效测试数据设置检查点;
[0070] 用例生成子模块,用于根据所述有效测试数据、用例名称和检查点生成自动化测 试用例。
[0071] 优选的,还包括:
[0072] 数据存储模块,用于存储与生成自动化测试用例有关的数据;
[0073]用例管理模块,用于管理自动化测试用例。
[0074]优选的,所述数据存储模块包括:
[0075] 第一数据存储子模块,用于存储对与测试用例有关的数据包的解析结果;
[0076] 第二数据存储子模块,用于存储自动化测试用例。
[0077] -种测试系统,所述系统包括上述的自动化测试用例生成系统,还包括:
[0078] 用例执行子模块,用于执行自动化测试用例;
[0079]执行结果处理子模块,用于对所述自动化测试用例的执行结果进行处理。
[0080] 优选的,还包括:
[0081]被测数据管理模块,用于对自动化测试用例的测试对象的相关数据进行管理。进 一步地,被测数据管理模块能够自动对所述相关数据进行管理。
[0082]本发明的有益效果是:
[0083] 本发明提出了自动化测试用例生成方法与系统以及使用自动化测试用例的测试 方法与系统,对于软件的新功能或改进功能进行测试,具有如下优势:
[0084] (1)生成自动化测试用例过程中实现了自动抓包和自动生成自动化测试用例,从 而简化了自动化测试用例制作流程,显著提升自动化测试用例制作效率;
[0085] (2)降低了制作自动化测试用例的复杂度,不论开发人员或测试人员均能够制作 测试用例,从而使得开发人员能够参与到测试中,提升测试质量;
[0086] (3)自动化测试用例的制作不受开发流程的限制,在开发人员完成功能开发后即 可制作自动化测试用例,使得自动化测试用例的滞后性大大降低;
[0087] (4)使用自动化测试用例的测试可以手动进行或自动运行,使用自动化测试用例 的自动测试方法还实现了自动维护被测数据和自动执行自动化测试用例,进一步地提升了 测试效率和质量。
【附图说明】
[0088] 图1是实施例1中提供的一种自动化测试用例生成方法的流程图;
[0089] 图2是实施例2中提供的另一种自动化测试用例生成方法的流程图;
[0090] 图3是实施例2中提供的通讯协议存储地址获取方法流程图;
[0091 ]图4是实施例2中提供的数据包解析方法流程图;
[0092] 图5是实施例2中提供的自动化测试用例生成方法流程图;
[0093] 图6是实施例3中提供的一种测试方法流程图;
[0094] 图7是实施例3中提供的生成自动化测试用例方法的示意图;
[0095] 图8是实施例4中提供的一种自动化测试用例生成系统示意图;
[0096] 图9是实施例5中提供的一种测试系统示意图;
[0097] 图10是实施例6中提供的另一种测试系统示意图。
[0098] 具体实施方法
[0099] 为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的 附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是 本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人 员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范 围。
[0100]需要说明的是,本发明的说明书和权利要求书及上述附图中的术语"第一"、"第 二"等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用 的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或 描述的那些以外的顺序实施。此外,术语"包括"和"具有"以及他们的任何变形,意图在于覆 盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于 清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品 或设备固有的其它步骤或单元。
[0101] 实施例1:
[0102] 本发明实施例提供了一种自动化测试用例生成方法,需要说明的是,在附图的流 程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流 程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述 的步骤。
[0103] -种自动化测试用例生成方法,如图1所示,包括:
[0104] S101.运行测试用例,获得数据流。
[0105] S102.在所述数据流中选取与测试用例有关的数据包,所述数据包包括测试请求 的数据包和对应于所述测试请求的响应数据包。
[0106] 以包括服务器和应用终端的计算机系统为例,应用终端与服务器进行通讯的端口 在运行测试用例后输出数据流。在通讯过程中,数据流中包含有与测试用例有关的数据包 和与测试用例无关的数据包,因此需要对数据包进行筛选。应用终端发出的用于测试服务 器中某个功能的测试请求和服务器对于所述测试请求的响应为与测试用例有关的数据包, 其它数据包例如心跳数据包和握手数据包为与测试用例无关的数据包。
[0107] S103.对所述数据包进行解析。
[0108] 所述应用终端与所述服务器均按照规定的通讯协议进行通讯,因此,根据通讯协 议即可对数据包进行解析。
[0109] S104.根据所述解析的结果选择有效测试数据,所述有效测试数据包括测试请求 和对应于所述测试请求的响应。
[0110] 解析结果并不一定能够全部满足制作自动化测试用例的需要,制作自动化测试用 例的工作人员能够根据制作自动化测试用例的实际需求对解析的结果进行筛选,从中选出 部分或全部的测试请求和对应于测试请求的响应作为有效测试数据。
[0111] S105.根据所述有效测试数据生成自动化测试用例。
[0112] 本实施例提供了一种自动化测试用例的生成方法,通过生成自动化测试用例,显 著提升了自动化测试用例的制作效率。
[0113] 实施例2:
[0114] 本发明实施例提供了另一种自动化测试用例生成方法。需要说明的是,在附图的 流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在 流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描 述的步骤。
[0115] -种自动化测试用例生成方法,如图2所示,包括:
[0116] S201.获取运行测试用例的主机中的通讯协议存储地址。如图3所示,包括以下步 骤:
[0117] S2011.根据运行测试用例的主机的网卡名称获取所述主机的IP地址。
[0118] S2012.获取配置文件中的配置信息。所述配置信息包括入网设备的网络参数与所 述入网设备的通讯协议存储地址之间的对应关系。所述网络参数包括IP和端口号。
[0119] 以分布式系统为例,所述分布式系统包括至少一个服务器和多个主机,其中配置 有zookeeper的服务器作为管理端,zookeeper提供一个分布式的,开放源码的分布式应用 程序协调服务,是Goog 1 e的Chubby-个开源的实现。
[0120] 所述zookeeper用于实现对于所述分布式系统的配置管理,所述配置信息由配置 文件记录,所述zookeeper管理所述配置文件。通过访问zookeeper即可获取配置信息,而通 讯协议以协议文件的形式存储于使用所述通讯协议进行通讯的主机之上,每个所述主机存 储有一个或多个协议文件,每个协议文件存储有一个或多个通讯协议。因此,所述配置文件 中记录的通讯协议存储地址包括协议文件标识和所诉协议文件中的通讯协议标识,具体 地,本实施例中均使用名称作为标识,即所述通讯协议存储地址包括协议文件名称和通讯 协议名称。所述配置信息的内容如表1所示。
[0121] 表1配置信息记录表
[0122]
[0123] S2013.根据所述配置信息和所述IP地址,获取所述主机中用于测试的端口的端口 号。
[0124] 制作自动化测试用例的工作人员根据测试内容和IP在表1中即可获取入网设备的 端口号。
[0125] S2014.根据所述配置信息、所述IP地址和所述端口号,获取通讯协议存储地址。
[0126] 制作自动化测试用例的工作人员根据IP和端口号在表1中即可获取相应的通讯协 议存储地址。
[0127] S202.根据所述通讯协议存储地址获取通讯协议。
[0128] 在获取通讯协议的基础之上,还包括:
[0129] S203.获取运行测试用例过程中产生的数据包。
[0130] 本实施例中每台机器上均部署有抓包工具A,本实施例中,抓包工具A受控于 zookeeper,可以通过zookeeper对抓包工具A进行设置。
[0131 ]具体地,制作自动化测试用例的工作人员能够在zookeeper中输入第一过滤条件, 比如IP地址和/或端口号,则所述抓包工具A根据预设的第一过滤条件抓取数据包,所述数 据包包括测试请求的数据包和对应于所述测试请求的响应数据包。
[0132] 本实施例中的抓包工具A能够对多种数据包进行抓包和解析,所述多种数据包可 以使用不同的应用层协议,所述应用层协议包括但不限于http,还包括了 wup协议和/或pb 协议。mip协议是谷歌开源的协议,pb协议也广泛使用于企业内部。
[0133] S204.对获取到的数据包进行解析。
[0134] 所述数据包包括以太网协议头、IP协议头、TCP协议头和应用层数据四部分内容。 如图4所示,包括以下步骤:
[0135] S2041.解析所述数据包的以太网协议头。
[0136] S2042.解析所述数据包的IP协议头,并保存对所述IP协议头的解析结果。所述IP 协议头的解析结果中包含有通讯双方的IP信息。
[0137] S2043.解析所述数据包的TCP协议头,并保存对所述TCP协议头的解析结果。所述 TCP协议头的解析结果中包含有通讯双方的端口号信息。
[0138] S2044.根据所述通讯协议对所述数据包的应用层数据进行解析,并保存对所述应 用层数据的解析结果。
[0139] 每个通讯协议由一个或多个消息结构构成,以Get_Person_Info通讯协议为例,包 括8_?618011_〇3丨3和8_。618011_?01'1^3;[1:两个消息结构。根据包含测试请求的数据包中的请 求内容即可判断出使用具体的哪一个消息结构对所述数据包进行解析,相应的,对应于所 述测试请求的响应数据包也使用相同的消息结构进行解析。此外,根据数据包中的应用层 数据内容可以判断与测试用例无关的数据包,例如心跳数据包和握手数据包,对于这类无 用的数据包,直接丢弃,不再使用通讯协议进行解析。
[0140] 以通过s_Person_Data消息结构进行解析为例,s_Person_Data消息结构用于通过 qq号查找个人资料这个功能,包括以下内容:
[0141] Struct PersonDataReq{......};
[0142] Struct PersonDataRsp{......};
[0143] 通过PersonDataReq结构体对测试请求的数据包进行解析,通过PersonDataRsp结 构体对相应的响应数据包进行解析。
[0144] S2045.将解析过程中保存的通讯双方的IP、通讯双方的端口号和应用层数据的解 析结果发送至数据中心kafka进行存储。kafka是一种高吞吐量的分布式发布订阅消息系 统,它可以处理消费者规模的网站中的所有动作流数据。在本实施例中用于存储数据包的 解析结果。
[0145] S205.根据所述解析的结果选择有效测试数据,所述有效测试数据包括测试请求 和对于所述测试请求的响应。
[0146] 制作自动化测试用例的工作人员根据自身经验和测试目的有选择地从解析的结 果中选择有效测试数据。
[0147] 进一步地,能够通过预设第二过滤条件,自动筛选出有效测试数据。
[0148] S206.根据所述有效测试数据生成自动化测试用例。
[0149] 测试请求的解析结果和对应于测试请求的响应的解析结果组成一条有效测试数 据。每一条有效测试数据均生成一条自动化测试用例,一条有效测试数据生成自动化测试 用例的方法,如图5所示,包括以下步骤:
[0150] S2061.为所述有效测试数据设置用例名称。
[0151] 用例名称包含了被测试对象的功能和被测试对象所在模块的名称,以对通过qq号 查找个人资料这个功能的测试为例,用例名称为QQ通过QQ号查询个人数据。
[0152] S2062.为所述有效测试数据设置检查点。
[0153] 检查点即为测试用例需要检查的内容,以对通过qq号查找个人资料这个功能的测 试为例,检查点可以设置为查看返回值是否为PersonDataRsp数据结构。
[0154] S2063.根据所述有效测试数据、用例名称和检查点生成一条自动化测试用例。 [0 155]以对通过qq号查找个人资料这个功能的测试为例,请求内容是PersonDataReq中 的QQ号具体值,检查点为是否是PersonDataRsp数据结构,PersonDataRsp数据结构中包括 姓名Person_Name和性别Person_Sex,对于每一条自动化测试用例,检查点即为Person_ Name字段和Person_Sex字段。用例响应即为有效测试数据中对于测试请求的响应。当进行 功能修改后,再次运行自动化测试用例后的实际响应和预期响应之间的关系如果符合判断 条件,即认为测试通过,否则测试不通过。生成的自动化测试用例如表2所示。
[0156]表2自动化测试用例列表
[0157]
[0158] 本实施例提供了生成自动化测试用例的具体方法,实现了自动抓包和自动生成自 动化测试用例,显著提升了自动化测试用例制作效率,并且降低了制作自动化测试用例的 复杂度,不论开发人员或测试人员均能够制作自动化测试用例,从而使得开发人员能够参 与到测试中,提升测试质量。
[0159] 实施例3:
[0160] 本发明实施例提供了一种测试方法。需要说明的是,在附图的流程图示出的步骤 可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻 辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
[0161] -种测试方法,如图6所示,包括:
[0162] S301.生成自动化测试用例。
[0163] 如图7所示,在分布式系统的每一个业务模块上均部署有抓包工具。制作自动化测 试用例的工作人员对抓包工具进行设置,并通过使用工具发送请求的方式或通过模拟真实 业务场景的方式执行测试功能。具体地,通过配置中心,所述配置中心部署有zookeeper,能 够对各个模块上的抓包工具进行配置。在配置中心还能够看到抓包的具体情况和解析的情 况。比如,能够看到对哪个模块,哪个IP和端口进行抓包,请求包与返回包分别用什么结构 体去解析。此外,所述分布式系统还包括数据中心C和数据库D。
[0164] 抓包工具1自动根据预设的第一过滤条件对编号为1的被测试模块进行抓包和解 析,并将解析的结果传输至数据中心C。在解析过程中,仅仅将与测试有关的请求和对应于 所述请求的响应的解析结果存储在数据中心C中。
[0165] 制作自动化测试用例的工作人员从数据中心C中选择有效测试数据,并添加用例 名称与检查点后,由转换用例服务器自动生成自动化测试用例,所述自动化测试用例被传 输至数据库D中进行存储与管理,自动化测试用例包含用例名称、数据包、检查点和执行环 境信息。
[0166] 进一步地,生成自动化测试用例后需要保证被测数据处于可用状态,即需要对被 测数据进行维护。因此维护模块会被自动调用,从而保证被测数据保持可用状态。以测试数 据为广告为例,所述维护模块能够自动延长广告的在线时间到10年,充分保证资源可以用。
[0167] 此外,维护模块还用于被测数据的维护,所述被测数据存储于数据库B中,所述数 据库B通过mysql实现。
[0168] S302.执行自动化测试用例。
[0169] 具体地,执行服务器用于执行自动化测试用例,用户可以通过在执行服务器上点 击自动化测试用例的方式驱动执行服务器执行自动化测试用例,或者设置一个调度任务, 由调度任务配置一个执行计划,调用执行服务器自动在特定时刻按照某个顺序执行自动化 测试用例。进一步地,执行自动化测试用例的场景可以是对于当前版本的回归验证,例如开 发修复bug后的回归或者也可以用于后续版本的回归验证。
[0170] S303.对所述自动化测试用例的执行结果进行处理。
[0171] 具体地,执行结果将被执行服务器自动传输至数据库B中进行存储与管理。
[0172] 进一步地,执行服务器还能够自动根据执行结果自动生成通知消息并自动通过邮 件或即时通讯通知执行者和相关负责人。
[0173] 本实施例提供了一种测试方法,通过使用本实施例中提供的自动化测试用例生成 方法,使得自动化测试用例的制作不受开发流程的限制,在开发人员完成功能开发后即可 制作并使用自动化测试用例,使得自动化测试用例的滞后性大大降低,提升测试的质量;本 实施例中还实现了被测数据自动维护和自动执行自动化测试用例,提升了测试的智能性和 效率。
[0174] 实施例4:
[0175] 本发明实施例提供了一种自动化测试用例生成系统,如图8所示,包括:
[0176] 数据包获取模块401,用于运行测试用例,获得数据流。
[0177]本实施例中还提供一种优选的实施方式:数据包获取模块401还包括:第一设置子 模块4011,用于设置第一过滤条件。数据包获取模块401能够根据预设的第一过滤条件获取 数据流。
[0178] 数据包选取模块402,用于在所述数据流中选取与测试用例有关的数据包,所述数 据包包括测试请求的数据包和对应于所述测试请求的响应数据包。
[0179] 解析模块403,用于对所述数据包进行解析。
[0180] 具体地,包括:
[0181] 以太网协议头解析子模块4031,用于解析所述数据包的以太网协议头;
[0182] IP协议头解析子模块4032,用于解析所述数据包的IP协议头;
[0183] TCP协议头解析子模块4033,用于解析所述数据包的TCP协议头;
[0184] 应用层数据解析子模块4034,用于根据所述通讯协议对所述数据包的应用层数据 进行解析。
[0185] 选择模块404,用于根据所述解析的结果选择有效测试数据,所述有效测试数据包 括测试请求和对应于所述测试请求的响应。
[0186] 本实施例中还提供一种优选的实施方式:选择模块404具体包括:
[0187] 第二设置子模块4041,用于设置第二过滤条件;
[0188] 有效测试数据获取子模块4042,用于根据预设的第二过滤条件对所述解析的结果 进行过滤,并将所述过滤的结果作为有效测试数据。
[0189] 用例构建模块405,用于根据所述有效测试数据生成自动化测试用例。
[0190] 具体地,包括:
[0191] 用例名称设置子模块4051,用于为所述有效测试数据设置用例名称;
[0192] 检查点设置子模块4052,用于为所述有效测试数据设置检查点;
[0193] 用例生成子模块4053,用于根据所述有效测试数据、用例名称和检查点生成自动 化测试用例。
[0194] 作为一种优选的实施方式:所述自动化测试用例生成系统还包括:
[0195] 通讯协议存储模块406,用于存储通讯协议;
[0196] 通讯协议获取模块407,用于获取运行测试用例的主机中的通讯协议存储地址,并 根据所述通讯协议存储地址获取通讯协议。
[0197] 配置管理模块408,用于管理配置文件,所述配置文件用于记录入网设备的网络参 数与所述入网设备的通讯协议存储地址之间的对应关系。
[0198] 作为一种优选的实施方式:所述自动化测试用例生成系统还包括:
[0199] 数据存储模块409,用于存储与生成自动化测试用例有关的数据。
[0200] 本实施例中还提供一种优选的实施方式:选数据存储模块409具体包括:
[0201]第一数据存储子模块4091,用于存储对与测试用例有关的数据包的解析结果。
[0202] 第二数据存储子模块4092,用于存储自动化测试用例。
[0203] 作为一种优选的实施方式:所述自动化测试用例生成系统还包括:
[0204]用例管理模块410,用于管理自动化测试用例。
[0205]进一步地,以分布式应用系统为例,所述分布式系统包括多个主机,其中一个主机 作为服务器,配置有zookeeper,其它主机上均部署有抓包工具,所述抓包工具受控于 zookeeper。其它主机上存储有记录通讯协议的协议文件。此外,还包括用于存储解析结果 的数据中心和存储自动化测试用例的数据库D。
[0206]所述配置管理模块408通过部署zookeeper实现通讯配置管理功能,所述解析模块 403和数据包获取模块401均通过部署的抓包工具实现。
[0207]所述第一数据存储子模块4091和选择模块404均通过调用数据中心实现,所述第 二数据存储子模块4092和用例管理模块410均通过调用数据库D实现。所述用例构建模块 405通过调用转换用例服务器实现,所述转换用例服务器用于根据有效测试数据生成自动 化测试用例,并将自动化测试用例传输至数据库D。
[0208]本实施例提供了一种自动化测试用例生成系统,所述系统能够实现自动抓包和根 据自动化测试用例制作人员的指令自动生成自动化测试用例,能够显著提升自动化测试用 例制作的速度和智能化水平。
[0209] 实施例5:
[0210] 本发明实施例还提供了一种测试系统,如图9所示,包括自动化测试用例生成系统 501,所述自动化测试用例生成系统501可以为实施例4中提供的自动化测试用例生成系统, 此外,还包括:
[0211] 用例执行子模块502,用于执行自动化测试用例;
[0212]执行结果处理子模块503,用于对所述自动化测试用例的执行结果进行处理。
[0213]作为一种优选的实施方式:本实施例还包括:
[0214]被测数据管理模块504,用于对自动化测试用例的测试对象的相关数据进行管理。 生成自动化测试用例后需要保证被测数据处于可用状态,即需要对被测数据进行维护。因 此被测数据管理模块504会被自动调用,从而保证被测数据保持可用状态。
[0215] 以实施例4中提及的分布式应用系统为例,所述分布式系统包括多个主机,其中一 个主机作为服务器,配置有zookeeper,其它主机上均部署有抓包工具,所述抓包工具受控 于zookeeper。此外,还包括数据中心、存储并管理自动化测试用例的数据库D和存储并管理 其它数据的数据库B,所述数据库B由mysql实现,此外,还包括转换用例服务器和执行服务 器。
[0216] 用例执行子模块502调用所述执行服务器执行自动化测试用例。
[0217]执行结果处理子模块503调用所述执行服务器执行自动化测试用例,并生成测试 结果,将所述测试结果传输至数据库B进行存储与管理。此外,还能够根据执行结果生成通 知消息并自动通过邮件或即时通讯通知执行者和相关负责人。
[0218]被测数据管理模块504调用数据库B实现对被测数据的存储与管理,并且能够根据 自动化测试用例的执行情况保证被测数据处于可用状态。
[0219] 本实施例提供了一种测试系统,所述测试系统不仅实现了自动抓包和根据自动化 测试用例制作人员的指令自动生成自动化测试用例,还实现了自动维护被测数据和自动测 试。不仅能够显著提升自动化测试用例制作的速度,还提升自动化测试的效率与质量。
[0220] 实施例6:
[0221] 本发明实施例还提供了另一种测试系统,所述测试系统设置于分布式系统上,如 图10所示,包括:配置中心601和嗅探器602,分布式系统包括多个主机,其中一个主机作为 配置中心601,配置有zooke印er,其它主机上均部署有嗅探器602,所述嗅探器602受控于配 置中心601。
[0222] 运行测试用例后,所述嗅探器602获取数据流,并在所述数据流中选取与测试用例 有关的数据包进行解析,并将解析结果传输至数据中心603。
[0223] 具体地,配置中心601中存储有配置信息,所述配置信息用于获取解析数据包所需 要的通讯协议。数据中心603存储的解析结果可以被展示平台604调用,自动化测试用例的 制作人员在展示平台604中查看所述解析结果。
[0224] 此外,还包括自动化测试用例制作入口605、自动化测试用例编辑前台606、数据库 607、执行服务器608和即时通讯器609。
[0225] 其中,自动化测试用例制作入口605用于向所述展示平台604发送制作自动化测试 用例指令,所述展示平台604显示所述数据中心603中存储的数据,自动化测试用例编辑前 台606用于在所述数据中选取有效测试数据,并在为所述有效测试数据生成检查规则后生 成自动化测试用例,所述自动化测试用例被传输至数据库607进行存储。
[0226] 数据库607还能够存储自动化测试用例组,每个自动化测试用例组包括一个或多 个自动化测试用例,所述自动化测试用例组在测试过程中作为一个整体执行。
[0227] 执行服务器608用于调用所述数据库607中的自动化测试用例进行执行,并将执行 结果传输至即时通讯器609,所述即时通讯器609将执行的结果传输至相关责任人。
[0228] 进一步地,本实施例还包括数据层透视修改模块610,用于对被测数据进行维护。
[0229] 本实施例提供了测试系统的另一个实现方式,不仅能够实现自动抓包和根据自动 化测试用例制作人员的指令自动生成自动化测试用例,还能够进行自动测试和对被测数据 进行管理。
[0230] 本发明中的技术方案中的各个模块均可通过计算机终端或其它设备实现。所述计 算机终端包括处理器和存储器。所述存储器用于存储本发明中提供的系统中的程序指令/ 模块,所述处理器通过运行存储在存储器内的程序指令/模块,实现本发明中提供的系统的 相应功能。
[0231] 本发明中的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案 的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包 括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执 行本发明各个实施例所述方法的全部或部分步骤。
[0232] 本发明中的系统仅仅是示意性的,例如所述模块/单元的划分,仅仅为一种逻辑功 能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成 到另一个系统,或一些特征可以忽略,或不执行。可以根据实际的需要选择其中的部分或者 全部模块/单元来达到实现本发明方案的目的。
[0233] 另外,在本发明各个实施例中的各模块/单元可以集成在一个处理单元中,也可以 是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单 元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0234] 以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人 员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应 视为本发明的保护范围。
【主权项】
1. 一种自动化测试用例生成方法,其特征在于,包括: 运行测试用例,获得数据流; 在所述数据流中选取与测试用例有关的数据包,所述数据包包括测试请求的数据包和 对应于所述测试请求的响应数据包; 对所述数据包进行解析; 根据解析的结果选择有效测试数据, 根据所述有效测试数据生成自动化测试用例。2. 根据权利要求1所述的一种自动化测试用例生成方法,其特征在于,还包括: 获取运行测试用例的主机中的通讯协议存储地址; 根据所述通讯协议存储地址获取通讯协议,所述通讯协议用于对所述数据包进行解 析。3. 根据权利要求2所述的一种自动化测试用例生成方法,其特征在于, 所述获取运行测试用例的主机中的通讯协议存储地址包括: 获取配置信息,所述配置信息包括入网设备的网络参数与所述入网设备的通讯协议存 储地址之间的对应关系; 获取所述主机的IP地址; 根据所述配置信息和所述IP地址,获取所述主机中用于测试的端口的端口号; 根据所述配置信息、所述IP地址和所述端口号,获取通讯协议存储地址。4. 根据权利要求2所述的一种自动化测试用例生成方法,其特征在于,所述对所述数据 包进行解析包括: 解析所述数据包的以太网协议头; 解析所述数据包的IP协议头; 解析所述数据包的TCP协议头; 根据所述通讯协议对所述数据包的应用层数据进行解析。5. 根据权利要求1所述的一种自动化测试用例生成方法,其特征在于, 所述根据所述解析的结果选择有效测试数据包括: 根据预设的第二过滤条件对所述解析的结果进行过滤,并将所述过滤的结果作为有效 测试数据。6. 根据权利要求1所述的一种自动化测试用例生成方法,其特征在于, 所述根据所述有效测试数据生成自动化测试用例包括: 为所述有效测试数据设置用例名称; 为所述有效测试数据设置检查点; 根据所述有效测试数据、用例名称和检查点生成自动化测试用例。7. -种测试方法,所述方法包括使用如权利要求1-6中任意一项所述的自动化测试用 例生成方法生成自动化测试用例,其特征在于,还包括: 执行所述自动化测试用例; 对所述自动化测试用例的执行结果进行处理。8. -种自动化测试用例生成系统,其特征在于,包括: 数据包获取模块,用于运行测试用例,获得数据流; 数据包选取模块,用于在所述数据流中选取与测试用例有关的数据包,所述数据包包 括测试请求的数据包和对应于所述测试请求的响应数据包; 解析模块,用于对所述数据包进行解析; 选择模块,用于根据解析的结果选择有效测试数据; 用例构建模块,用于根据所述有效测试数据生成自动化测试用例。9. 根据权利要求8所述的一种自动化测试用例生成系统,其特征在于,所述用例构建模 块还包括: 用例名称设置子模块,用于为所述有效测试数据设置用例名称; 检查点设置子模块,用于为所述有效测试数据设置检查点; 用例生成子模块,用于根据所述有效测试数据、用例名称和检查点生成自动化测试用 例。10. -种测试系统,所述系统包括权利要求8或9中所述的自动化测试用例生成系统,其 特征在于,还包括: 用例执行子模块,用于执行自动化测试用例; 执行结果处理子模块,用于对所述自动化测试用例的执行结果进行处理。
【文档编号】G06F11/36GK105975396SQ201610485727
【公开日】2016年9月28日
【申请日】2016年6月28日
【发明人】霍厚全, 项旭, 俎小娜, 段叶生, 杨柳
【申请人】腾讯科技(深圳)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1