python telnet登录发送命令_telnet 登录测试产品,自动发送测试命令,匹配返回的python脚本...

备注:telnetdo的代码来自网络,表示非常的感谢!自己根据实际的工作需要,增加了一小点东西,也分享希望有用的人可以拿去使用。

========================================

总共贴3个部分:

第一个部分是修改后可以直接进行telnet登录测试的Python脚本。

第二部分是为了测试失败或成功,在控制台显示带颜色的提示信息的Python代码,同样来自网络。

第三部分是为了实现整个测试自动进行,而写的一个Windows批处理小脚本代码。

==========================================

第一部全部代码:

#encoding:utf-8

#函数telnetdo用于登录终端设备,执行命令,返回终端的返回信息

def telnetdo(HOST=None, USER=None, PASS=None, COMMAND=None):

#define a function

import

telnetlib, sys

if not

HOST:

try:

HOST = sys.argv[1]

USER = sys.argv[2]

PASS = sys.argv[3]

COMMAND = sys.argv[4]

except:

print "Usage: telnetdo.py host user pass command"

return

msg =

['Debug messages:\n']

tn =

telnetlib.Telnet()

try:

tn.open(HOST)

except:

print "Cannot open host"

return

tn.read_until("login:")

tn.write(USER + '\n')

if

PASS:

#msg.append(tn.expect(['Password:'], 5))

tn.read_until("Password:")

tn.write(PASS + '\n')

tn.write( COMMAND + '\n')

tn.write("exit\n")

tmp =

tn.read_all()

tn.close()

del tn

return

tmp

#暂时没有使用

def TestPass():

print

return

'*'*12 + ' Test Pass !!! ' + '*'*12

def TestFail():

print

return

'*'*12 + ' Test Fail !!! ' + '*'*12

if __name__ == '__main__':

import

sys

import

tchcolor #Windows下改变字体颜色的模块,来自网络。

i =

0 #用于从列表中一个一个将命令读取出来,同时从测试项和匹配结果字典里依次取出对应的值。

flag = True

# 用于测试完毕后检查整个ONU的测试结果是pass还是fail

try:

fileName =

sys.argv[1] #从外部调用的程序传入日志文件的名字

except:

print "Please Inpute the Log FileName !"

sys.exit(1) #测试失败,往外部调用的程序返回1,在外部判断返回的值,看是否执行最后的打开网页。电平判断。

#测试命令列表,所有的执行命令加到此列表中。

cmds =

["tcapi show EPON_ONU","tcapi show EPON_ONU","tcapi show

EPON_ONU",'tcapi show EPON_ONU','\

tcapi show

EPON_ONU',"tcapi show EPON_ONU",'cat /etc/fwver.conf','cat

/etc/deviceParaStatic.conf','cat /etc/deviceParaStatic.conf'\

,'cat

/etc/deviceParaStatic.conf','cat /etc/deviceParaStatic.conf']

#测试项字典,前面的数字是为了和后面测试匹配结果字典进行正确的匹配。

TestItem =

{0:'ONU Type test',1:'ONU Vendor',2:'ONU Mode',3:'Hard

Version',4:'Kernel Version',5:'\

FE Port

Number',6:'Inner

Version',7:'Manufacturer',8:'CustomerSWVersion',9:'CustomerHWVersion',10:'Category'}

#匹配结果字典,匹配的信息个数必须与上面测试项字段一一对应,个数需与命令列表的元素个数一致。

correc =

{0:'Type=SFU',1:'VendorID=ARGM',2:'Model=EPON',3:'HWVer=v1.0',4:'SWVer=TCLinux_2.6.30',5:'FEPortNum=4'\

,6:'7.3.207.50_v003',7:'Manufacturer=RL',8:'CustomerSWVersion=V1.0.10963'\

,9:'CustomerHWVersion=V20',10:'Category=HGW'}

#从定向输入到标准错误输出

print

>> sys.stderr

log2 =

open(fileName + '.txt','a')

print

>>

log2,'====================================================================='

#以测试命令列表为循环或者叫遍历的基础,执行其中的每条命令,每次执行命令都是登录执行,返回执行结果,退出设备。

for cmd in

cmds:

result = telnetdo("192.168.1.1","admin","1234",'%s' %cmd)

jg = result.find(correc[i]) #从返回的信息中匹配预定义的正确结果。

if jg == -1

: print result

print >> log2 , result

print >> log2 , '********** ' + TestItem[i]

+ ' fail !!!' + ' **********'

fstr = '*'*10 +TestItem[i] + ' fail !!!' +

'*'*10

cls = tchcolor.Color()

cls.print_blue_text_with_red_bg(fstr)

flag = False

print >> log2 , ''

print >> log2 , '*'*10 + ' The ONU Test Result Is Fail '

+'*'*10

cls = tchcolor.Color()

print '\n\n'

rfstr = '*'*10 + ' The ONU Test Result Is Fail ' +'*'*10

cls.print_red_text(rfstr)

sys.exit(1)

else:

print result

print >> log2 , result

print >> log2 , '********** ' + TestItem[i]

+ ' Success !!!' + ' **********'

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值