一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种路由器系统稳定性测试系统及测试方法与流程

2021-10-20 00:42:00 来源:中国专利 TAG:测试 路由器 系统 稳定性 方法


1.本发明涉及路由器测试技术,尤其涉及一种路由器系统稳定性测试系统及测试方法。


背景技术:

2.原有的开关机只能通过开关然后查看配置是否丢失;路由器出现问题时无法保存现场测试环境;无法统计出现问题的概率;无法检测mesh通断电之后的组网是否成功;无法检测系统上电后,系统是否正常工作,如wan口是否正常拨号、wifi能否正常连接、时间是否同步、下挂客户端能否正常上网。因此,现有技术针对路由器的自动化测试时需要用到多种不同的专门工具,如通断电设备、串口等,存在如下缺陷:
3.每次测试需要机械式的重复操作,耗时长且枯燥。测试项较多,有时手动会出现误操作导致测试结果不准确,此外,测试结果不能自动保存。


技术实现要素:

4.为解决现有技术中的问题,本发明提供一种路由器系统稳定性测试系统及测试方法,使用者不需要花时间去深入学习路由器平台的接口协议,只需通过软件进行简单的操作即可完成路由器的系统稳定性测试。
5.本发明测试系统包括应用层、控制层及调用层,其中,所述应用层设有一测试工具,用于对路由器系统进行稳定性测试;若干个测试用例,供测试工具调用,用于分别对路由器系统的不同测试项测试;所述控制层设一控制台,用于数据管理和测试报告输出;所述调用层设有若干个功能模块,供测试工具测试时调用,所述功能模块包括:串口控制模块:用于控制串口的输入、输出、通断电设备操作;可视化界面模块:用于生成可视化操作界面;系统操作模块:用于连接wifi、ping命令、获取所有网卡的信息;配置工具模块:用于路由器的满配置操作;服务器模块:用于启动需要的服务器,获取服务器信息;mesh系统切换模块:用于做mesh系统的角色切换稳定性系统测试。
6.本发明作进一步改进,所述服务器模块包括dhcp服务器模块、dns服务器模块和时间服务器模块,其中,所述dhcp服务器模块用于启动dhcp服务器,也能够配合dns、时间服务器模块做时间同步系统测试,所述dns服务器模块用于启动dns服务器,也能够配合dhcp服务器模块、时间服务器模块做时间同步系统测试;所述时间服务器模块用于使用时间服务器。
7.本发明作进一步改进,所述mesh系统切换模块包括客户端、两个以上的用于自动组建mesh网络的待测路由器设备(简称待测mesh设备),与待测mesh设备一一对应相连的、与待测mesh设备数量相同的陪测路由器和陪测主路由器,所有的陪测路由器的wan口与陪测主路由器lan口相连,其中,所述客户端设有两张网卡,其中一张网卡连接陪测主路由器,ip地址设置为自动获取;另外一张网卡连接到其中一个待测mesh设备,并且设置ip地址与待测mesh设备在同一网段。
8.本发明作进一步改进,所述待测mesh设备和陪测路由器的数量均为2个,所述mesh系统切换模块的测试方法为:
9.(1)两个陪测路由器的wan侧接入到陪测主路由器的lan口,两个设置为同网段不同的ip地址,开启左侧陪测路由器的dhcp服务器模块,关闭右路的陪测路由器的dhcp服务器模块,并开启远程web访问;
10.(2)待测mesh设备分别接入到两个陪测路由器的lan口,记录此时的待测mesh设备主次节点的ip地址,切换mesh角色,再次记录两者的ip地址;
11.(3)开启右路陪测路由器的dhcp服务器模块,关闭左路上级路由器的dhcp服务器模块,客户端通过连接待测mesh设备的网口循环去ping切换后的ip地址,直到两者都ping通,跳出循环;
12.(4)开启左路上级路由器的dhcp服务器模块,关闭右路上级路由器的dhcp服务器模块,客户端通过连接待测mesh设备的网口循环去ping切换后的ip地址,直到两者都ping通,跳出循环;
13.(5)循环步骤(3)

(4)。
14.本发明作进一步改进,所述串口控制模块在串口操作之前,将从串口获取到的所有的字符进行处理,将字符替换成能够正常识别的编码。
15.本发明作进一步改进,所述系统操作模块在连接wifi操作时,引入第三方的动态连接库wlan.dll;并且在连接前先对ssid进行编码的判断,如果是中文,则将ssid的编码方式改成“gb18030”,否则将ssid的每个字符全部转化成ascii码。
16.本发明作进一步改进,所述测试工具采用python的标准gui库tkinter创建。
17.本发明作进一步改进,所述测试工具调用事件时,使用多线程的方法,每一个事件都生成一个单独的线程。
18.本发明还提供一种基于所述9.的路由器系统稳定性测试系统的测试方法,包括如下步骤:
19.步骤一、开始,初始化运行界面;
20.步骤二、选择测试用例;
21.步骤三、配置初始数据,包括测试执行的循环次数;
22.步骤四、执行步骤二选择的而测试用例循环依次执行各个测试用例,直至达到设定的循环次数;
23.步骤五、结束,并输出报告。
24.本发明作进一步改进,步骤二中,所述测试用例包括wifi断连测试、mesh组网角色切换稳定性测试和设备通断电系统稳定性测试。
25.与现有技术相比,本发明的有益效果是:(1)搭建一套完整的自动化测试系统,具备可维护性、可扩展性;(2)简单操作后,操作能够持续24小时自动运行,减少人工重复步骤;(3)可视化操作界面,提高测试效率,简化操作;(4)可量化问题出现的概率:如mesh产品的通断电之后的组网成功率;(5)自动保存测试结果,统计问题出现的概率。
附图说明
26.图1为本发明测试系统结构示意图;
27.图2为本发明测试工具测试界面示意图;
28.图3为mesh系统切换模块组网拓扑图;
29.图4为本发明测试方法流程图。
具体实施方式
30.下面结合附图和实施例对本发明做进一步详细说明。
31.如图1和图4所示,本发明测试系统包括应用层、控制层及调用层,其中,所述应用层设有一测试工具,用于对路由器系统进行稳定性测试;若干个测试用例,供测试工具调用,用于分别对路由器系统的不同测试项测试;所述控制层设一控制台,用于数据管理和测试报告输出;所述调用层设有若干个功能模块,供测试工具测试时调用,所述功能模块包括:串口控制模块:用于控制串口的输入、输出、通断电设备操作;可视化界面模块:用于生成可视化操作界面;系统操作模块:用于连接wifi、ping命令、获取所有网卡的信息;配置工具模块:用于路由器的满配置操作;服务器模块:用于启动需要的服务器,获取服务器信息;mesh系统切换模块:用于做mesh系统的角色切换稳定性系统测试。
32.本例服务器模块包括dhcp服务器模块、dns服务器模块和时间服务器模块,其中,所述dhcp服务器模块用于启动dhcp服务器,也能够配合dns、时间服务器模块做时间同步系统测试,所述dns服务器模块用于启动dns服务器,也能够配合dhcp服务器模块、时间服务器模块做时间同步系统测试;所述时间服务器模块用于使用时间服务器。
33.以下对本发明测试系统进行详细说明。
34.1、测试框架:os serial pywifi requests tkinter
35.os模块是python标准库中的一个用于访问操作系统相关功能的模块,os模块提供了一种可移植的使用操作系统功能的方法。使用os模块中提供的接口,可以实现跨平台访问。但是,并不是所有的os模块中的接口在全平台都通用,有些接口的实现是依赖特定平台的,比如linux相关的文件权限管理和进程管理。
36.serial库用来操作串口,serial的使用流程跟平常的类似,也是打开、关闭、读、写。
37.pywifi提供了一个跨平台的python模块,用于操作无线接口,例如无线关联及加载配置文件等等。
38.requests是一个可以让用户发送、侦听和解析并伪装http报文的python程序。这些功能可以用于制作侦测、扫描和攻击网络的工具。换言之,requests是一个强大的操纵报文的交互程序。它可以伪造或者解析多种协议的报文,还具有发送、捕获、匹配请求和响应这些报文以及更多的功能。requests可以轻松地做到自定义头、get请求、post请求、put请求、delete请求等等http的请求。
39.tkinter是python的标准gui库。python使用tkinter可以快速的创建gui应用程序。tkinter它可以在大多数的unix平台下使用,同样可以应用在windows和macintosh系统里.tk8.0的后续版本可以通过ttk实现本地窗口风格,并良好地运行在绝大多数平台中。
40.2、测试工具使用流程
41.(1)将路由器wan口接到internet上;将电脑的网卡设置成动态地址;无线网卡连接到电脑上;配置路由器的配置,并导出;
42.(2)串口连接路由器,通断电设置上电并且与电脑连接;
43.(4)启动系统稳定性测试工具自动化软件;
44.(5)勾选需要执行的自动化用例;
45.(6)自动化运行完毕后,程序自动退出。
46.3、模块封装
47.interface_generation.py:用于生成可视化操作界面,并且将所有用到的工具集成;
48.config_set.py:满配置工具,配置路由器的所有可配置的信息;
49.dhcp_offer.py/dhcp_server.py:用于启动dhcp服务器给路由器wan口提供地址;
50.dns_server.py:dns服务器,用于给路由器做域名解释;
51.win_ctrl.py:windows的操作模块,包含连接wifi、ping命令、获取所有网卡的信息(ip地址、mac地址等);
52.ser.py:串口控制模块,用于控制串口的输入、输出、通断电设备操作;
53.switch_node.py:mesh系统切换角色稳定性系统;
54.time_server.py:时间服务器模块,用于给dut同步时间。
55.4、模块详解
56.(1)主程序:软件启动后进入interface_generation模块,生成主界面;根据要测试的用例进行初始化数据配置;然后依次执行测试用例,全部执行完毕后将测试完成时间写入到本地报告中;程序退出。具体如图4所示。
57.(2)interface_generation模块:用于生成程序的可视化控制界面,并且将可视化的界面与各个模块建立连接,通过可视化界面控制各个模块的功能开启、关闭或者启动。生成的界面如下图2所示。
58.主界面中,ap满配置选项:用于路由器的满配置操作;dhcp:用于启动dhcp服务器,配合dns、time做时间同步系统测试,也可以单独使用;dns:用于启动dns服务器,配合dhcp、time做时间同步系统测试,也可以单独使用;time:用于使用时间服务器,配合dns、dhcp做时间同步系统测试,也可以单独使用;wifi:用作wifi断开及连接测试;开关机:用作通断电测试;mesh系统:用于做mesh系统的角色切换稳定性系统测试。
59.(3)config_set模块:满配置工具,配置路由器的所有可配置的选项。主要流程如下,登录路由器,获取路由器的cookie,然后进行路由器的配置。
60.(4)dhcp模块:用于开启dhcp服务器,给路由器的wan口分配ip地址。
61.(5)dns模块:用于开启dns服务器,给路由器做dns域名解析用,主要配合时间服务器使用。
62.(6)time模块:用于开启时间服务器,给路由器做同步时间使用,主要配合dhcp及dns服务器使用。
63.本实施例中,dhcp服务器、dns服务器、时间服务器在整个用例的执行过程中只需要开启一次。
64.(7)windows的操作模块:执行window的操作,并且返回操作结果。ping命令、创建日志文件夹、获取网卡的信息、无线连接,获取无线信息。
65.a、ping命令:def ping_ip(ip,result=0,saddr="",n=3,network=none):
66.1)判断命令,是否是指定网卡或者是指定ip,若是指定网卡,则需要先获取网卡ip;
67.2)执行命令,然后获取返回值;
68.3)判断命令执行结果,是否与预期结果相同,相同返回true,否则返回false。b、创建日志文件夹:def mkdir_report_path():
69.1)获取当前程序所在路径;
70.2)判断日志文件夹是否存在,存在则直接返回,否则需要创建文件夹再返回。
71.c、获取网卡的信息:def get_network_info(name="lan"):
72.1)根据网卡名字获取网卡的所有信息;
73.2)从获取到的信息中通过正则表达式提起对应的信息,如ip地址、mac地址等;
74.3)将信息填充到字典格式中,返回字典。
75.d、无线连接:def connect_wifi(ssid,password='12345678',auth='wpa2

psk',key='aes',timeout=32):
76.1)获取无线网卡;
77.2)根据传入的参数连接无线;
78.3)判断连接的状态,连接成功则返回true,否则连接超时或者连接失败返回false。e、获取无线信息:def get_wlan_info():
79.1)获取已连接的无线信息,包括:传输速率、无线信道、无线网卡的mac地址、无线的ssid、无线的bssid、无线的认证方式。
80.为了解决中文ssid无法连接的技术问题,在所述系统操作模块在连接wifi操作时,引入第三方的动态连接库wlan.dll;并且在连接前先对ssid进行编码的判断,如果是中文,则将ssid的编码方式改成“gb18030”,否则将ssid的每个字符全部转化成ascii码。
81.(8)串口的操作模块:包括串口的读取、写入、设置通断电设备、获取通断电设备的状态等。
82.a、串口信息读取:def recv(serial):
83.1)读取串口的输出,并且返回所有串口的输出值;
84.b、def get_switch_status(ser,status=true):
85.1)通过串口获取通断电设备当前所处的状态;
86.c、def set_switch(ser,timeout=5):
87.1)通过串口开启或者关闭通断电设备。
88.优选的,所述串口控制模块在串口操作之前,将从串口获取到的所有的字符进行处理,将字符替换成能够正常识别的编码。从而解决在串口操作时,经常出现由于字符编码的问题,导致串口操作失败的技术问题。
89.(9)switch_node模块:用来做mesh系统切换角色后的组网稳定性测试,网络拓扑图如图3所示。
90.所述mesh系统切换模块包括客户端、两个以上的待测mesh设备,与待测mesh设备一一对应相连的、与待测mesh设备数量相同的陪测路由器和陪测主路由器,所有的陪测路由器的wan口与陪测主路由器lan口相连,其中,所述客户端设有两张网卡,其中一张网卡连接陪测主路由器,ip地址设置为自动获取;另外一张网卡连接到其中一个待测mesh设备,并
且设置ip地址与待测mesh设备在同一网段。
91.本例待测mesh设备和陪测路由器的数量均为2个,所述mesh系统切换模块的测试方法为:
92.(1)两个陪测路由器的wan侧接入到陪测主路由器的lan口,两个设置为同网段不同的ip地址,开启左侧陪测路由器的dhcp服务器模块,关闭右路的陪测路由器的dhcp服务器模块,并开启远程web访问;
93.(2)待测mesh设备分别接入到两个陪测路由器的lan口,记录此时的待测mesh设备主次节点的ip地址,切换mesh角色,再次记录两者的ip地址;
94.(3)开启右路陪测路由器的dhcp服务器模块,关闭左路上级路由器的dhcp服务器模块,客户端通过连接待测mesh设备的网口循环去ping切换后的ip地址,直到两者都ping通,跳出循环;
95.(4)开启左路上级路由器的dhcp服务器模块,关闭右路上级路由器的dhcp服务器模块,客户端通过连接待测mesh设备的网口循环去ping切换后的ip地址,直到两者都ping通,跳出循环;
96.(5)循环步骤(3)

(4)。
97.如图4所示,本发明测试方法,包括如下步骤:
98.步骤一、开始,初始化运行界面;
99.步骤二、选择测试用例,所述测试用例包括wifi断连测试、mesh组网角色切换稳定性测试和设备通断电系统稳定性测试;
100.步骤三、配置初始数据,包括测试执行的循环次数;
101.步骤四、执行步骤二选择的而测试用例循环依次执行各个测试用例,直至达到设定的循环次数;
102.步骤五、结束,并输出报告。
103.优选的,本例测试工具采用python的标准gui库tkinter创建。所述测试工具调用事件时,使用多线程的方法,每一个事件都生成一个单独的线程。这样就解决了事件在循环时,界面容易卡住的情况,并且,在接收数据时,加入try及except方法进行容错,使用tkinter进行socket连接时,经常出现超时情况,并且在测试用例测试时,也都会进行是否超时的判断。
104.与现有技术相比,本发明具有以下优势:
105.(1)使用者不需要深入学习协议相关知识,只需通过软件进行简单的操作即可完成测试;
106.(2)单项耗时较长,自动化测试效率远超过手动测试;
107.(3)无线接口模块可以模拟人工进行无线关联(关联失败后会自动重新关联,连续3次失败视为无法关联,提高测试准确度);
108.(4)报告保存在本地,并且标有测试开始和完成时间;
109.(5)该系统具有良好的维护性,后期可根据需要进一步拓展测试用例。
110.以上所述之具体实施方式为本发明的较佳实施方式,并非以此限定本发明的具体实施范围,本发明的范围包括并不限于本具体实施方式,凡依照本发明所作的等效变化均在本发明的保护范围内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献

  • 日榜
  • 周榜
  • 月榜