一种自动重拨功能的自动测试系统及方法
技术领域
本发明涉及网络测试领域,特别涉及一种自动重拨功能的自动测试系统及方法。
背景技术
由于PPPoE的计费功效,PPPoE是目前家庭用户访问Internet最常用的一种方式;在PPPoE中有三种模式,分别是自动连接、按需拨号和手动连接。自动连接是指在PPPoE拨号不成功时,设备会间隔一段时间自动重拨;按需拨号是指当有向外发送的报文请求时,设备进行拨号连接,而当一段时间没有向外发送的报文请求时,则断开连接;手动连接是有用户根据需求手动按钮拨号及断开。目前自动连接模式最为常用,然而如果自动连接失效,设备在连接出现问题时不会自动重拨,造成用户无法正常访问网络,因此对自动连接模式的测试非常重要。
目前对于PPPoE自动连接模式下自动重拨功能的测试以手动测试为主,在输入错误的用户名和密码后开始抓包,查看是否有PADI(PPPoE 发现初始)报文的请求包出去,在检测到该请求包后开始计时,查看在规定的时间内是否再次请求。这样的测试方法误差比较大,在抓到包时每次人工计时有很大的不准确性,会导致测试结果的误差,所以测试的结果不准确只能估量。
即是说,现有技术存在以下缺点:因手动测试误差大,需反复测试验证功能,导致测试周期长;增加测试人力物力,且延长了测试时,增加了产品整个研发成本,因而增加了产品的成本;测试人员既要抓包查看,又要计时,易出现误差,误测率高。
发明内容
本发明的目的在于提供一种PPPoE自动连接模式下适用的自动重拨功能的自动测试系统及方法,能够简化测试步骤,缩短测试周期,减少误测率。
为了达到上述目的,本发明的第一个技术方案是提供一种自动重拨功能的自动测试方法,其特征在于,包含以下过程:
配置待测设备为PPPoE自动连接模式;
进入待测设备的串口,对重拨请求报文进行检测;
输出每次匹配到重拨请求报文时的系统时间。
优选地,配置待测设备为PPPoE自动连接模式的过程,包含:
打开待测设备管理地址,填写正确的用户名密码后登录;
进入WAN设置页面,配置为PPPoE自动连接模式,并填写错误的用户名密码。
优选地,对匹配重拨请求报文的计数项进行设定;
在串口检测时,若匹配到有重拨请求报文时,则记录相应的系统时间,并检查计数项是否达到设定数值;
如果计数项小于设定数值,则使计数项加一后重复循环检测过程;
如果计数项大于等于设定数值,则跳出循环停止检测。
本发明的第二个技术方案是提供一种自动测试方法,其包含以下过程:
配置自动测试脚本,来配置自动化测试过程及待测设备的参数;
对待测设备进行监控,输出每次匹配到设定内容时的系统时间;
进行循环检测,直到循环次数达到设定数值时跳出循环结束测试。
一个优选示例中,在自动测试脚本中,将待测设备配置为PPPoE自动连接模式;
所要匹配的设定内容为待测设备的重拨请求报文。
另一个优选示例中,在自动测试脚本中,将待测设备配置为PPPoE按需拨号模式;
所要匹配的设定内容为待测设备按需拨号的轮询字符;
循环检测时输出每次匹配到轮询字符时的自动断线时间。
本发明的第三个技术方案是提供一种自动重拨功能的自动测试系统,其包含:
配置器,用以配置自动化测试脚本,配置待测设备为PPPoE自动连接模式;
串口监控器,监控待测设备的串口,抓取待测设备每一次发送的重拨请求报文并分别标记;
计时器,对每一次抓取到重拨请求报文时的系统时间进行记录;
计数器,每一次抓取到重拨请求报文时对一个计数项做加一操作,并判断该计数项是否达到设定数值;
输出器,在计数项达到设定数值时结束测试,并输出每一次标记的重拨请求报文及其系统时间。
优选地,进一步设置有比较器,将输出的任意两次重拨请求报文的系统时间的时间差,与设定的标准时间差进行比较,以判断待测设备是否符合测试标准。
本发明公开了一种PPPoE自动连接模式下自动重拨功能的自动化测试系统及方法,适用于含有PPPoE功能的所有产品。本发明通过检测重拨请求报文,在检测到重拨请求报文时记录系统时间点,将重拨请求报文和时间点返回到测试结论中。将上述过程通过编写成自动化脚本来实现,使功能项的配置和功能的测试现一键自动化。
与现有最好技术相比,本发明将原先所有的手动工作改由自动化测试完成,其优点在于:
1) 测试简单:测试人员只需查看测试结果即可,不需做繁琐的动作;
2) 可靠性高:自动化测试准确,消除了人工测试中的误差;
3) 缩短测试时间:消除了测试误差,不用反复验证,且在自动化测试时,测试人员可以做其他工作;
4) 测试复杂度减小:测试人员在不熟悉功能的情况下也可进行测试。
附图说明
图1是本发明所述自动重拨功能的自动测试方法的流程图;
图2是本发明所示自动重拨功能的自动化测试系统的结构示意图。
具体实施方式
本发明公开了一种PPPoE自动连接模式下自动重拨功能的自动化测试方法,将路由器配置过程编写成自动化测试脚本,自动配置待测设备的PPPoE模式并配置自动连接模式;配置完成脚本后开始监控待测设备串口信息,匹配PPPoE重拨请求报文,匹配成功后标示为1并记录系统时间;继续第二次匹配,再次匹配成功后标示为2并记录系统时间,以此类推;将成功匹配报文的系统时间的具体记录次数设为变量,可由测试人员根据测试需求进行修改。记录的时间会输出至测试结论中,测试结束后由测试人员查看是否符合测试标准。
如图1所示,为了更好地说明本发明的预期效果,下面举例说明,根据本发明的技术方案做进一步的详细说明:
步骤1,打开待测设备管理地址(本例中为"http://192.168.1.1"),填写用户名密码(例如均为"admin")并登录待测设备。
...
WebDriverBackedSelenium selenium = new WebDriverBackedSelenium (new FirefoxDriver(), "http://192.168.1.1");
selenium.type("id=userName", "admin");
selenium.type("id=password", "admin");
selenium.clickAndWait("name=login");
步骤2,进入WAN设置页面,配置为PPPoE模式,填写错误的用户名密码(例如为"abc"、"123"),选择自动连接模式后保存。
...
selenium.click("id=mb2");
selenium.click("id=sb21");
selenium.selectFrame("formframe");
selenium.click("name=connectionType","PPPoE");
selenium.type("name=pppoeUser", "abc");
selenium.type("name=pppoePass", "123");
selenium.click("value=保存");
步骤3,通过命令监控待测设备串口(例如是'com5'),开始监控PPPoE重拨请求报文,监控的同时输出匹配到每个报文时的系统时间;抓取次数可以通过修改计数项的设定数值(本例中设为100次)进行调整。
即是说,若没有匹配重拨请求报文则继续检测;若匹配到有重拨请求报文,则记录系统时间并检查计数项是否到达设定数值;
如果计数项小于设定数值,则使计数项加一后重复上述检测过程;
如果计数项大于等于设定数值,则跳出循环停止检测。
...
t=serial.Serial('com5', 57600, timeout=1)
time.sleep(1)
t.write("\n")
time.sleep(1)
t.write("admin\n")
time.sleep(1)
t.write("admin\n")
count=0
time.sleep(30)
while (count<100):
count=count+1
line = t.readline()
print line
matchObj = re.search(r'Using interface ppp0',line,re.M|re.I)
if matchObj:
localtime=time.asctime(time.localtime(time.time()))
print localtime
t.close()
步骤4,结束上述循环后,每次的抓包和抓包时间(即每次匹配到重拨请求报文及记录的重拨时间)会输出至测试完成后形成的测试结论中。
Starting test: Test
INFO :
PPPoE redial 1
Wed Sep 17 19:00:04 2014
PPPoE redial 2
Wed Sep 17 19:00:34 2014
Ending test: Test.Test.test
如上述结果所示,本例中对报文第一次匹配成功时记录的系统时间为19:00:04,第二次匹配成功时记录的系统时间为19:00:34,两次输出的记录时间间隔为30s,与标准相符。
如图2所示,本发明提供一种自动重拨功能的自动化测试系统,包含:配置器10,用以配置自动化测试脚本,配置待测设备为PPPoE自动连接模式,并填写错误的PPPoE登录信息;串口监控器20,监控待测设备的串口,抓取待测设备每一次发送的重拨请求报文并分别标记;计时器30,对每一次抓取到重拨请求报文的系统时间进行记录;计数器40,每一次抓取到重拨请求报文时对一个计数项做加一操作,并判断该计数项是否达到设定数值;输出器50,在计数项达到设定数值时结束测试,并输出每一次标记的重拨请求报文及其系统时间,供测试人员查看。还可以进一步设置比较器60,将输出的两次重拨请求报文的系统时间的时间差,与设定的标准时间差进行比较,来判断是否符合测试标准。
综上所述,本发明将PPPoE自动连接模式下自动重拨功能测试以自动化的形式实现;将繁琐的抓包、计时通过自动化匹配报文反馈时间来实现,减小了测试误差,保证了测试准确性。
本发明并不局限于PPPoE自动连接模式下自动重拨功能测试,进行相应的变化可用于测试其它功能项:如测试待测设置中的测试PPPoE的按需拨号的自动断线等待时间,将脚本中的匹配字符修改为按需拨号的轮询字符,将循环次数修改为符合自动化断线的时间即可。本领域的技术人员在不背离本发明的原理和实质的前提下,可以对这些实施方式做出多种变更或修改,但这些变更和修改均落入本发明的保护范围。
尽管本发明的内容已经通过上述优选实施例作了详细介绍,但应当认识到上述的描述不应被认为是对本发明的限制。在本领域技术人员阅读了上述内容后,对于本发明的多种修改和替代都将是显而易见的。因此,本发明的保护范围应由所附的权利要求来限定。