[0029] 以下结合附图对本发明作进一步详细说明。
[0030] 如图1所示,本发明的方法实施例为将待测设备1与测试电脑2进行待测试配置,待测试配置既是将待测设备1上网设置后在SOHO产品的测试电脑2上打开系统并输入待测设备1的广域网侧的IP、网关和DNS地址并启动系统的工作,在完成这些操作后,进行以下具体步骤:
[0031] 步骤一,系统通过向指定的URL发出请求来获取数据,并根据返回值作出网络是否正常的判断,若判断为网络正常则结束测试;
[0032] 步骤二,若判断为网络连接异常则使用python模块中的子进程管理模块使测试电脑2对待测设备1的管理地址进行ping包测试并对ping信息进行检测,如果ping失败则判断为测试电脑2与待测设备1连接异常并结束测试;
[0033] 步骤三,若测试电脑2与待测设备1连接无异常,既是ping成功,则使测试电脑2对待测设备1的广域网侧IP进行ping包测试并对ping信息进行检测,如果ping失败则判断为待测设备1的NAT功能出现异常并结束测试;
[0034] 步骤四,若待测设备1的NAT功能无异常,既是ping成功则使用python模块对待测设备1的广域网侧网关地址进行ping包测试并对ping信息进行检测,如果ping失败则判断为待测设备1的广域网侧与上联设备连接异常并结束测试;
[0035] 步骤五,若待测设备1的广域网侧与上联设备连接无异常,既是ping成功则调用使用python模块使待测设备1对其广域网侧DNS地址进行ping包测试并对ping信息进行检测,如果ping失败则判断为待测设备1获取的DNS地址无法到达并结束测试;
[0036] 步骤六,若待测设备1获取的DNS地址无法到达,既是ping失败则检查ping信息中是否将网络地址的域名成功解析成IP地址,如检查ping信息中是否将“www.baidu.com”成功解析“61.135.169.121”,如果解析成功则判断为目标地址不可达并结束测试,如果解析失败则判断为待测设备1获取的DNS服务器解析功能异常并结束测试;
[0037] 步骤七,调用函数close()退出待测设备1的测试既是退出待测设备1的telnet。
[0038] 进一步优化步骤一的方法,调用函数urllib2.urlopen控制测试电脑2访问网络,可以随机打开一个简单网页,如“www.baidu.com”,并调用函数getcode()获取返回值。
[0039] 进一步优化步骤二的方法,通过调用subprocess.Popen函数完成使测试电脑2对待测设备1的管理地址进行ping包测试的操作。
[0040] 进一步优化步骤三的方法,通过调用subprocess.Popen函数完成测试电脑2对待测设备1的广域网侧IP进行ping包测试的操作。
[0041] 在步骤二和步骤三中需要先运行python,然后创建并运行一个进程。像Linux进程那样,一个进程可以fork一个子进程,并让这个子进程exec另外一个程序。在Python中,通过标准库中的subprocess包来fork一个子进程,并运行一个外部的程序。具体操作如下:
[0042]
[0043] subprocess包中定义有数个创建子进程的函数,这些函数分别以不同的方式创建子进程,所以可以根据需要来从中选取一个使用。
[0044] 另外,subprocess还提供了一些管理标准流和管道的工具,从而在进程间使用文本通信。这样就能对待测设备1的管理地址进行测试的过程中提高效率同时本发明所调用函数均来自于python模块,所以不会产生步骤之间调用函数时互相排斥的问题。
[0045] 进一步优化步骤四的方法,调用telnet函数telnet进入待测设备1,调用write函数使待测设备1完成对待测设备1的广域网侧网关地址进行ping包测试的操作。
[0046] 进一步优化步骤五的方法,调用telnet函数telnet进入待测设备1,调用write函数完成使待测设备1对其广域网侧DNS地址进行ping包测试的操作。步骤七的操作方法为调用函数close()退出待测设备1的telnet。
[0047] 本发明中DNS为域名系统,因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析或主机名解析。每个IP地址都可以有一个主机名,主机名由一个或多个字符串组成,字符串之间用小数点隔开。有了主机名,就不要死记硬背每台IP设备的IP地址,只要记住相对直观有意义的主机名就行了。这就是DNS协议所要完成的功能。DNS代理是指当代理服务器(路由器)收到客户端请求时,将请求发送给真正的代理服务器。NAT指网络地址转换是指将内部网络的私有IP地址转换为公用IP地址时,IP地址是不确定的,是随机的,所有被授权访问上Internet的私有IP地址可随机转换为任何指定的合法IP地址。所有使用本地地址的主机在和外界通信时,都要在NAT路由器上将其本地地址转换成全球IP地址,才能和因特网连接。
[0048] 本发明的方法实施例将网络问题的排查进行汇总并实现成固定系统方便使用;通过对各个地址的ping来判断网络问题的异常点。
[0049] 本方法在步骤上为单一流程的顺序执行结构,所以本方法具有简化测试难度的优点,同时本发明在实际操作的时候都是调用python模块的内置函数来进行测试,所以本发明发可以提高测试效率同时由于都是固有函数的直接使用而不需要进行自定义的编程所以本方法减轻了测试人员工作量、缩短测试周期。
[0050] 如图2所示,本发明的系统实施例包括待测设备1与测试电脑2,测试电脑2用于在输入待测设备1的广域网侧的IP、网关和DNS地址后启动系统作为对待测设备1进行连接测试的测试端设备,测试电脑2中设置有按照次序启动的多个测试模块。
[0051] 测试模块调用python模块的函数进行测试。测试模块包括顺序执行的请求返回测试模块3、电脑连接测试模块4、广域网连接测试模块5、NAT功能测试模块6、DNS测试模块7、解析测试模块8。
[0052] 其中,请求返回测试模块3用于通过向指定的URL发出请求来获取数据,并根据返回值作出网络是否正常的判断,其主要调用函数urllib2.urlopen控制测试电脑2访问网络,并调用函数getcode()获取返回值;电脑连接测试模块4用于对待测设备1的管理地址进行ping包测试并对ping信息进行检测,其主要通过调用subprocess.Popen函数完成使测试电脑2对待测设备1的管理地址进行ping包测试的操作;广域网连接测试模块5用于使测试电脑2对待测设备1的广域网侧IP进行ping包测试并对ping信息进行检测,其主要调用subprocess.Popen函数完成测试电脑2对待测设备1的广域网侧IP进行ping包测试的操作;NAT功能测试模块6用于对待测设备1的广域网侧网关地址进行ping包测试并对ping信息进行检测,其主要调用telnet函数telnet进入待测设备1,调用write函数使待测设备1完成对待测设备1的广域网侧网关地址进行ping包测试的操作;DNS测试模块7用于使待测设备1对其广域网侧DNS地址进行ping包测试并对ping信息进行检测,其主要调用telnet函数telnet进入待测设备1,调用write函数完成使待测设备1对其广域网侧DNS地址进行ping包测试的操作;解析测试模块8用于检查ping信息中是否将网络地址的域名成功解析成IP地址。
[0053] 本发明具有以下有益效果:
[0054] 本发明具有简化测试难度、提高测试效率、减轻测试人员工作量、缩短测试周期、降低产品成本的优点。
[0055] 上面所述的实施例仅是对本发明的优选实施方式进行描述,并非对本发明的构思和范围进行限定。在不脱离本发明设计构思的前提下,本领域普通人员对本发明的技术方案做出的各种变型和改进,均应落入到本发明的保护范围,本发明请求保护的技术内容,已经全部记载在权利要求书中。