生成测试用例的方法、测试方法、平台、设备、介质及产品与流程
本技术涉及路由功能测试,具体而言,涉及一种生成测试用例的方法、测试方法、平台、设备、介质及产品。
背景技术:
1、在网络设备及核心芯片的研发与测试流程中,路由功能是保障数据转发准确性与稳定性的核心模块,必须经过严苛的功能验证与覆盖率测试。目前通常由测试人员手动编写定向测试用例,或通过脚本半自动生成受约束的测试用例。
2、每个测试用例固定源地址与目的地址,在具体执行时,首先对测试用例进行解析,提取其中固定的源地址与目的地址,并据此生成对应的模拟网络数据包。随后,向被测设备发送该网络数据包,并实时监测被测设备输出该网络数据包的实际输出端口,判断该网络数据包的实际输出端口是否与路由表中的预期端口保持一致。
3、由于测试用于与路由表高度耦合,因此一旦路由表配置一旦发生变更(网段调整、端口映射更新、路由条目增删、动态路由协议重计算),原有测试用例全部失效,需人工逐一定位修改、重新编译调试,维护成本较高。
技术实现思路
1、本技术实施例的目的在于提供一种生成测试用例的方法、测试方法、平台、设备、介质及产品,用以解决相关技术存在着的,因测试用例与路由表高度耦合,导致测试用例维护成本较高的问题。
2、第一方面,本技术实施例提供了一种生成测试用例的方法,包括:
3、响应于接收到验证请求指令,根据所述验证请求指令获取目标出端口;
4、在预设的备选出端口和备选网络地址段之间的映射关系中,根据所述目标出端口确定目标网络地址;所述目标网络地址为所述目标出端口对应备选网络地址段中的网络地址;
5、以所述目标网络地址作为所述目标出端口对应测试用例的目的网络地址,生成所述目标出端口对应的测试用例;所述测试用例用于测试所述目标出端口所属网络设备的路由功能。
6、现有测试用例中的源地址和目的网络地址均直接来源于路由表条目。因此,一旦路由表发生变更,例如网段调整、端口映射更新,原有测试用例中固定的地址即与新的路由表失配,全部失效。
7、而在上述实现方式中,通过建立备选出端口与备选网络地址段之间的映射关系,将测试用例的生成逻辑与路由表中剥离。当网络结构变更时,仅需更新该映射关系,系统即可动态生成与变更后的网络结构匹配的测试用例,无需对原有测试用例逐一修改,降低了测试用例的维护成本。
8、可选的,根据所述验证请求指令获取目标出端口,包括:
9、在所述验证请求指令表征基于指定出端口进行路由验证的情况下,从所述验证请求指令中获取所述指定出端口,所述指定出端口为所述目标出端口。
10、现有方式通过构造特定地址来间接验证路由,测试的起点是猜测某个地址可能经过哪个端口。而在上述实现方式中,通过在验证请求指令中指定目标出端口,可以将测试的起点设定为对指定出端口进行验证。这种以指定出端口作为直接输入参数的方式,使得测试意图与测试执行之间实现了精确对应。如此,在测试过程中,测试人员可以逐一指定每一个需要验证的物理或逻辑端口,无需再依赖随机地址或人工枚举地址段,从而从根本上解决了现有技术中部分端口长期未被覆盖的问题,使得每个逻辑端口或物理端口都能被有效验证。
11、其次,当某个特定端口被怀疑存在故障时,测试人员无需重新构造或筛选复杂的地址测试集,只需在验证请求指令中直接指定该端口,即可立即生成针对该特定端口的测试用例,极大地缩短了问题复现的周期。
12、可选的,根据所述验证请求指令获取目标出端口,包括:
13、在所述验证请求指令表征基于任意一个出端口进行路由验证的情况下,将任意一个所述备选出端口确定为所述目标出端口。
14、传统方法依赖随机生成的地址来间接验证路由,由于地址分布与出端口之间并无直接的均匀映射关系,导致部分端口被频繁命中、另一部分端口长期未被测试覆盖。而在上述实现方式中,通过以备选出端口作为选取对象,使每一备选出端口被选中的概率一致,从而确保在长期或大规模回归测试中,测试流量能够公平、均匀地分配到所有备选出端口,从根本上避免了因选取策略不当或地址分布不均而导致的部分端口被频繁测试、另一部分端口长期未被覆盖的测试资源分配不均问题。
15、可选的,在预设的备选出端口和备选网络地址段之间的映射关系中,根据所述目标出端口确定目标网络地址,包括:
16、利用所述目标出端口,在预设的备选出端口和备选网络地址段之间的映射关系中进行匹配操作,获得所述目标出端口关联的所有目标网络地址段;
17、在任意一个目标网络地址段的主机地址中,选取任意一个地址作为所述目标网络地址;所述目标网络地址段中的主机地址为除网络地址和广播地址以外的地址。
18、在实际网络环境中,一个物理端口或逻辑端口往往会承接多个不同网段的流量。这意味着,一个出端口可能承担着多条路由策略或多条路由条目的转发责任。在上述实现方式中,通过先获取目标出端口关联的所有目标网络地址段,如此确保不会遗漏任何一条与目标出端口相关的网络地址段。随后在任意一个目标网络地址段的主机地址中,选取任意一个地址作为目标网络地址,如此使得目标出端口所负责的所有地址均有机会被测试覆盖,有效消除了传统方法中仅验证部分地址段的问题。
19、其次,通过限定目标网络地址的选取范围为主机地址(即排除网络地址和广播地址),这确保了所选取的目标网络地址是一个合法的、可分配给主机的单播地址。从而使得据此生成的测试用例所使用的目的网络地址在协议层面是有效的,从而避免了因地址无效而导致的测试激励无法被正确路由、测试结果误判等问题,提升了测试用例的可用性和可靠性。
20、可选的,所述备选出端口和所述备选网络地址段之间的映射关系是根据所述网络设备中的生效路由表构建的。
21、在上述实现方式中,由于备选出端口和备选网络地址段之间的映射关系直接来源于网络设备中实际生效的路由表,因此所构建的映射关系能够准确反映网络设备当前的转发行为。这确保了后续基于该映射关系生成的测试用例,其目的地址与目标出端口之间的映射关系可以与网络设备实际转发逻辑一致,从而可以保证基于该测试用例获得的测试结果的可靠性和有效性。
22、第二方面,本技术提供一种测试方法,包括:
23、将所述测试用例发送至网络设备,所述测试用例为按照上述第一方面的生成测试用例的方法生成的;
24、获取所述网络设备输出所述测试用例对应数据包的实际输出端口;
25、确定所述实际输出端口与所述测试用例对应目标出端口是否相同;
26、在所述实际输出端口与所述测试用例对应目标出端口相同的情况下,确定验证通过;在所述实际输出端口与所述测试用例对应目标出端口不同的情况下,确定验证失败。
27、上述实现方式与第一方面的生成测试用例的方法协同工作,形成了一条完整的自动化测试链路:测试用例按需生成,测试用例发送至网络设备,获取测试用例实际输出端口,比对实际输出端口与所述测试用例对应目标出端口是否相同,以确定是否验证通过。如此实现了从测试用例生成到结果判断的全自动化闭环,大幅提升了测试效率,降低了人工操作引入错误的风险。
28、可选的,确定所述实际输出端口与所述测试用例对应目标出端口是否相同之前,所述测试方法还包括:
29、判断所述测试用例对应数据包的实际包头字段与预期包头字段是否相同;
30、在所述测试用例对应数据包的实际包头字段与预期包头字段不同的情况下,表征验证失败;
31、确定所述实际输出端口与所述测试用例对应目标出端口是否相同,包括:
32、在所述测试用例对应数据包的实际包头字段与预期包头字段相同的情况下,确定所述实际输出端口与所述测试用例对应目标出端口是否相同。
33、在实际网络设备中,数据包在转发过程中,包头字段可能被网络设备修改。如果网络设备在对包头字段进行处理时发生错误,但数据包仍被转发出来,此时仅验证输出端口可能会得出验证成功的错误结论,掩盖了包头处理缺陷。在上述实现方式中,通过先验证包头字段的正确性,确保数据包在被转发之前已经过正确处理,从而避免了因包头错误导致的端口验证误判,提升了验证结果的准确性。
34、第三方面,本技术提供一种测试平台,包括:
35、测试用例生成单元,被配置为按照上述的生成测试用例的方法生成测试用例;
36、测试单元,被配置为按照上述的测试方法对网络设备进行路由功能进行测试。
37、可选的,所述测试用例生成单元包括:
38、第一获取模块,被配置为响应于接收到验证请求指令,根据所述验证请求指令获取目标出端口;
39、第一确定模块,被配置为在预设的备选出端口和备选网络地址段之间的映射关系中,根据所述目标出端口确定目标网络地址,所述目标网络地址为所述目标出端口对应备选网络地址段中的网络地址;
40、生成模块,被配置为以所述目标网络地址作为所述目标出端口对应测试用例的目的网络地址,生成所述目标出端口对应的测试用例;所述测试用例用于测试所述目标出端口所属网络设备的路由功能。
41、可选的,所述测试单元包括:
42、发送模块,被配置为将所述测试用例发送至网络设备;
43、第二获取模块,被配置为获取所述网络设备输出所述测试用例对应数据包的实际输出端口;
44、第二确定模块,被配置为确定所述实际输出端口与所述测试用例对应目标出端口是否相同;
45、第三确定模块,被配置为在所述实际输出端口与所述测试用例对应目标出端口相同的情况下,表征验证通过;在所述实际输出端口与所述测试用例对应目标出端口不同的情况下,表征验证失败。
46、第四方面,本技术提供一种电子设备,包括处理器和存储器,所述存储器存储有能够被所述处理器执行的计算机可执行指令,所述处理器执行所述计算机可执行指令以实现上述第一方面的生成测试用例的方法,或,上述第二方面的测试方法。
47、第五方面,本技术提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令在被处理器调用和执行时,所述计算机可执行指令使得处理器实现上述第一方面的生成测试用例的方法,或,上述第二方面的测试方法。
48、第六方面,本技术提供一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现上述第一方面的生成测试用例的方法,或,上述第二方面的测试方法。
版权声明:本站专利文献数据主要来源于国家知识产权局等公开渠道,由 技术新讯 进行整理汇编。页面设计及数据汇编的著作权归本站所有。全部内容仅供个人学习、科研评估与技术交流参考,严禁用于任何商业用途(包括但不限于直接生产制造、技术转让、倒卖数据等)。
免责条款:专利技术具有时效性,本站不对资料的绝对准确性、完整性和可实施性提供任何明示或暗示的担保。因参考本站内容造成的直接或间接损失,本站不承担相关法律责任。若您认为本站内容有侵权问题,请及时提供权属证明与我们联系,本站将在核实后依法处理。反馈意见:yyfuon@163.com