def test_002_unMount(self): u'''U盘弹出 显示''' sharing = NetworkSharingPage(self.driver, self.url) # 弹出设备 sharing.click_Eject() time.sleep(1) sharing.click_ok() time.sleep(2) #弹出后使用率、容量等都为0 # U盘使用率 UsageRate = sharing.getText_byXpath(sharing.UsageRate) self.assertEqual(UsageRate, '0', msg='弹出后U盘使用率 显示异常') # U盘总容量 已使用容量 剩余容量 三个值+提示是一个元素,判断条件特殊 # U盘总容量 后元素(所有) Total = sharing.getText_byXpath(sharing.Total) # “已使用容量”提示 Usedtext = sharing.getText_byXpath(sharing.Usedtext) # “剩余容量”提示 Residualtext = sharing.getText_byXpath(sharing.Residualtext) Total1 = '0' + Usedtext + ' 0' + Residualtext + ' 0' if Total == Total1: print('弹出后U盘总容量信息 显示正常') else: raise Exception('弹出后U盘总容量信息 显示异常') # 连接Telnet服务器 hostip = gettelnet('host') port = gettelnet('port') username = bytes(getweb('User'), encoding="utf8") password = bytes(getweb('Passwd'), encoding="utf8") # 获取接口名称 tn = telnetlib.Telnet(host=hostip, port=port, timeout=10) tn.set_debuglevel(5) # 级别越高输出的调试信息越多,并没有看出区别 # 输入登录用户名 tn.read_until(b'login:'******'Password:'******'#') tn.write(b'mount | grep /media/' + b'\n') # 输出结果,判断 time.sleep(1) result = str(tn.read_very_eager()) # 只会存最后一条命令的结果 print('-------------------输出结果------------------------') # 命令执行结果 print('result:', result) # 后台实际应有的结果 result1 = 'codepage=cp437,iocharset=utf8' # 判断 if result1 not in result: print('卸载后mount显示 验证成功') else: raise Exception('卸载后mount显示 验证失败') # 如果没有则报错 tn.close() # tn.write('exit\n') self.driver.quit() logger.info('test_002_unMount passed')
def test_001_Mount(self): u'''U盘挂载 显示''' sharing = NetworkSharingPage(self.driver, self.url) # U盘使用率 UsageRate = sharing.getText_byXpath(sharing.UsageRate) self.assertIn('%', UsageRate, msg='U盘使用率 显示异常') # U盘总容量 已使用容量 剩余容量 三个值+提示是一个元素,判断条件特殊 # U盘总容量 后元素(所有) Total = sharing.getText_byXpath(sharing.Total) # “已使用容量”提示 Usedtext = sharing.getText_byXpath(sharing.Usedtext) Usedtext1 = 'M' + Usedtext # “剩余容量”提示 Residualtext = sharing.getText_byXpath(sharing.Residualtext) Residualtext1 = 'M' + Residualtext if Usedtext1 in Total and Residualtext1 in Total: print('U盘总容量信息 显示正常') else: raise Exception('U盘总容量信息 显示异常') # 连接Telnet服务器 hostip = gettelnet('host') port = gettelnet('port') username = bytes(getweb('User'), encoding="utf8") password = bytes(getweb('Passwd'), encoding="utf8") tn = telnetlib.Telnet(host=hostip, port=port, timeout=10) tn.set_debuglevel(5) # 级别越高输出的调试信息越多,并没有看出区别 # 输入登录用户名 tn.read_until(b'login:'******'Password:'******'#') tn.write(b'mount | grep /media/' + b'\n') # 输出结果,判断 time.sleep(1) result = str(tn.read_very_eager()) # 只会存最后一条命令的结果 print('-------------------输出结果------------------------') # 命令执行结果 print('result:', result) # 后台实际应有的结果 result1 = 'codepage' result2 = 'iocharset=utf8' # 判断 if result1 in result and result2 in result: print('挂载mount显示 验证成功') else: raise Exception('挂载mount显示 验证失败') # 如果没有则报错 tn.close() # tn.write('exit\n') self.driver.quit() logger.info('test_001_Mount passed')
def test_003_otherAccount(self): u'''修改其他新增账号名及密码''' role2A = getAssertText('role2A') account = NetworkSharingPage(self.driver, self.url) account.click_listedit3() time.sleep(1) account.input_username('33') account.input_passwd1('33') account.input_passwd2('33') authority = account.selelement_byName(account.authority) Select(authority).select_by_value('0') # 0 读 1 读写 account.click_save() time.sleep(1) Acc3 = str(account.getText_byXpath(account.Acc3)) auth3 = str(account.getText_byXpath(account.auth3)) self.assertEqual(Acc3, '33', msg='新增账号失败') self.assertEqual(auth3, role2A, msg='新增账号权限失败') self.driver.quit() logger.info('test_003_otherAccount passed')
def test_004_delAccount(self): u'''账号删除:单个/批量''' account = NetworkSharingPage(self.driver, self.url) #单个账号删除 account.click_listdel5() time.sleep(1) account.click_ok() time.sleep(1) list5_nodata = account.getText_byXpath(account.list5_nodata) self.assertEqual(list5_nodata, ' ', msg='第5行账号删除失败') #批量删除 全选 account.click_allsel() time.sleep(0.2) account.click_delete() time.sleep(2) account.click_ok() time.sleep(1) list3_nodata = account.getText_byXpath(account.list3_nodata) self.assertEqual(list3_nodata, ' ', msg='第3行账号删除失败') self.driver.quit() logger.info('test_004_delAccount passed')
def test_001_AccountSettings(self): u'''账号设置:新建、删除、修改''' reachMaxA = getAssertText('reachMaxA') roleA = getAssertText('roleA') account = NetworkSharingPage(self.driver, self.url) #新建 n = 2 while n < 6: n += 1 if n < 6: account.click_add() time.sleep(1) account.input_username(n) account.input_passwd1(n) account.input_passwd2(n) authority = account.selelement_byName(account.authority) Select(authority).select_by_value('1') #0 读 1 读写 account.click_save() time.sleep(1) else: account.click_add() time.sleep(1) account.input_username(n) account.input_passwd1(n) account.input_passwd2(n) authority = account.selelement_byName(account.authority) Select(authority).select_by_value('0') # 0 读 1 读写 account.click_save() time.sleep(1) tips = str(account.getText_byClass(account.tips_show_in)) self.assertEqual(tips, reachMaxA, msg='最大账号为5个 验证失败') account.click_modal_hide() time.sleep(1) Acc3 = str(account.getText_byXpath(account.Acc3)) auth3 = str(account.getText_byXpath(account.auth3)) self.assertEqual(Acc3, '3', msg='新增账号失败') self.assertEqual(auth3, roleA, msg='新增账号权限失败') Acc4 = str(account.getText_byXpath(account.Acc4)) auth4 = str(account.getText_byXpath(account.auth4)) self.assertEqual(Acc4, '4', msg='新增账号名失败') self.assertEqual(auth4, roleA, msg='新增账号权限失败') Acc5 = str(account.getText_byXpath(account.Acc5)) auth5 = str(account.getText_byXpath(account.auth5)) self.assertEqual(Acc5, '5', msg='新增账号名失败') self.assertEqual(auth5, roleA, msg='新增账号权限失败') self.driver.quit() logger.info('test_001_AccountSettings passed')
def test_007_passwdAcessSAMBA(self): u'''启用/取消 密码访问samba''' host = gettelnet('host') User = getweb('User') Passwd = getweb('Passwd') account = NetworkSharingPage(self.driver, self.url) account.click_AccountSettings() time.sleep(1) open_pswd = str( account.getAttribute_byId(account.open_pswds, 'checked')) if open_pswd != 'true': account.click_open_pswd() time.sleep(2) open_pswd = str( account.getAttribute_byId(account.open_pswds, 'checked')) self.assertEqual(open_pswd, 'true', msg='启用密码访问 开启失败') time.sleep(5) # samba登录 user_name = "anonymous" pass_word = "" my_name = "anyname" domain_name = "" remote_smb_IP = host #1 无密码登录(应该失败) smb = SMBConnection(user_name, pass_word, my_name, domain_name, use_ntlm_v2=True) try: smb.connect(remote_smb_IP, 139, timeout=3) except socket.timeout: raise Exception('samba服务无法访问') try: smb.listShares() except NotReadyError: print('启用密码访问后 samba无密码无法登录 验证通过') else: raise Exception('启用密码访问后 samba无密码依旧可以登录') smb.close() # 2 admin密码登录 smb = SMBConnection(User, Passwd, my_name, domain_name, use_ntlm_v2=True) try: smb.connect(remote_smb_IP, 139, timeout=3) except socket.timeout: raise Exception('samba服务无法访问') try: smb.listShares() except NotReadyError: raise Exception('启用密码访问后 samba使用admin登录验证失败') smb.close() print('启用密码访问后 samba使用admin登录 验证通过') # 3 guest账号登录 smb = SMBConnection('guest', 'guest', my_name, domain_name, use_ntlm_v2=True) try: smb.connect(remote_smb_IP, 139, timeout=3) except socket.timeout: raise Exception('samba服务无法访问') try: smb.listShares() except NotReadyError: raise Exception('启用密码访问后 samba使用guest登录验证失败') smb.close() print('启用密码访问后 samba使用guest登录 验证通过') # 4 新增账号登录 smb = SMBConnection('1', '1', my_name, domain_name, use_ntlm_v2=True) try: smb.connect(remote_smb_IP, 139, timeout=3) except socket.timeout: raise Exception('samba服务无法访问') try: smb.listShares() except NotReadyError: raise Exception('启用密码访问后 samba使用新增账号登录验证失败') smb.close() print('启用密码访问后 samba使用新增登录 验证通过') #取消密码访问 account.click_open_pswd() time.sleep(10) open_pswd = str( account.getAttribute_byId(account.open_pswds, 'checked')) self.assertEqual(open_pswd, 'None', msg='启用密码访问 取消失败') # samba无密码登录 smb = SMBConnection(user_name, pass_word, my_name, domain_name, use_ntlm_v2=True) try: smb.connect(remote_smb_IP, 139, timeout=3) except socket.timeout: raise Exception('samba服务无法访问') try: smb.listShares() except NotReadyError: raise Exception('取消密码访问后 samba无密码无法登录') else: print('启用密码访问后 samba无密码登录 验证通过') smb.close() # 删除账号 account.click_listdel3() time.sleep(1) account.click_ok() time.sleep(1) list3_nodata = account.getText_byXpath(account.list3_nodata) self.assertEqual(list3_nodata, ' ', msg='第3行账号删除失败') print('账号删除') self.driver.quit() logger.info('test_006_passwdAcessSAMBA passed')
def test_006_passwdAcessFTP(self): u'''启用/取消 密码访问ftp''' roleA = getAssertText('roleA') host = gettelnet('host') User = getweb('User') Passwd = getweb('Passwd') account = NetworkSharingPage(self.driver, self.url) account.click_AccountSettings() time.sleep(1) open_pswd = str( account.getAttribute_byId(account.open_pswds, 'checked')) if open_pswd != 'true': account.click_open_pswd() time.sleep(2) open_pswd = str( account.getAttribute_byId(account.open_pswds, 'checked')) self.assertEqual(open_pswd, 'true', msg='启用密码访问 开启失败') # 操作删除 以访已有规则 account.click_allsel() time.sleep(0.2) account.click_delete() time.sleep(2) try: self.driver.implicitly_wait(2) account.find_ok() except NoSuchElementException: try: account.find_tips_show_inf() time.sleep(1) except NoSuchElementException: pass except AttributeError: try: account.find_tips_show_inf() time.sleep(1) except NoSuchElementException: pass else: time.sleep(1) print('账号列表为空') # 新增一个账号 account.click_add() time.sleep(1) account.input_username('1') account.input_passwd1('1') account.input_passwd2('1') authority = account.selelement_byName(account.authority) Select(authority).select_by_value('1') # 0 读 1 读写 account.click_add_modal() # self.driver.find_element_by_xpath('//*[@id="modal-add"]/div/div/div[3]/ul/li[1]/button').click() time.sleep(3) Acc3 = str(account.getText_byXpath(account.Acc3)) auth3 = str(account.getText_byXpath(account.auth3)) self.assertEqual(Acc3, '1', msg='新增账号失败') self.assertEqual(auth3, roleA, msg='新增账号权限失败') time.sleep(5) #ftp验证 # ftp尝试使用无密码登录(应该失败) IP = host ftp = ftplib.FTP() ftp.encoding = 'utf-8' try: ftp.connect(host=IP, port=21, timeout=5) except socket.error or socket.gaierror: raise Exception("无法访问FTP服务") try: ftp.login(user='******') # 相当于没有验证账号密码 except ftplib.error_perm: print('启用密码访问后 ftp无密码无法登录 验证通过') else: raise Exception("启用密码访问后 ftp无密码依旧可以登录") ftp.quit() # ftp尝试使用admin登录 try: ftp.connect(host=IP, port=21, timeout=5) except socket.error or socket.gaierror: raise Exception("无法访问FTP服务") try: ftp.login(user=User, passwd=Passwd) # admin账号密码 except ftplib.error_perm: raise Exception("FTP账号密码验证错误") else: print("启用密码访问后 ftp使用admin可以登录") ftpFile = ftp.nlst('1') # 获取指定目录下的文件 print('ftpFile', ftpFile) ftp.quit() # ftp尝试使用guest登录 try: ftp.connect(host=IP, port=21, timeout=5) except socket.error or socket.gaierror: raise Exception("无法访问FTP服务") try: ftp.login(user='******', passwd='guest') # guest账号密码 except ftplib.error_perm: raise Exception("FTP账号密码验证错误") else: print("启用密码访问后 ftp使用修改过guest密码的账号可以登录") ftpFile = ftp.nlst('1') # 获取指定目录下的文件 print('ftpFile', ftpFile) ftp.quit() # ftp尝试使用新增账号1登录 try: ftp.connect(host=IP, port=21, timeout=5) except socket.error or socket.gaierror: raise Exception("无法访问FTP服务") try: ftp.login(user='******', passwd='1') # 新增账号密码 except ftplib.error_perm: raise Exception("FTP账号密码验证错误") else: print("启用密码访问后 ftp使用新增账号可以登录") ftpFile = ftp.nlst('1') # 获取指定目录下的文件 print('ftpFile', ftpFile) ftp.quit() #取消密码访问 account = NetworkSharingPage(self.driver, self.url) account.click_AccountSettings() time.sleep(1) account.click_open_pswd() time.sleep(10) open_pswd = str( account.getAttribute_byId(account.open_pswds, 'checked')) self.assertEqual(open_pswd, 'None', msg='启用密码访问 取消失败') # ftp尝试使用无密码登录 ftp = ftplib.FTP() ftp.encoding = 'utf-8' try: ftp.connect(host=IP, port=21, timeout=5) except socket.error or socket.gaierror: raise Exception("无法访问FTP服务") try: ftp.login(user='******') # 相当于没有验证账号密码 except ftplib.error_perm: raise Exception("取消密码访问后 ftp无密码无法登录") else: print('启用密码访问后 ftp无密码无法登录 验证通过') ftp.quit() # # 删除账号 # account.click_listedit3() # time.sleep(1) # account.click_ok() # time.sleep(1) # list3_nodata = account.getText_byXpath(account.list3_nodata) # self.assertEqual(list3_nodata, ' ', msg='第3行账号删除失败') # print('账号删除') self.driver.quit() logger.info('test_005_passwdAcessFTP passed')
def test_002_ftpPort(self): u'''FTP端口''' host = gettelnet('host') portwarnA = getAssertText('portwarnA') ftpSmaba = NetworkSharingPage(self.driver, self.url) # defaultPort=str(self.driver.find_element_by_name('ftpport').get_attribute('value')) # self.assertEqual(defaultPort,'21',msg='ftp默认端口不为21') #001已验证 #修改端口为22 ftpSmaba.input_ftpport('22') ftpSmaba.click_save() time.sleep(10) Port1 = str(ftpSmaba.getAttribute_byName(ftpSmaba.ftpports, 'value')) self.assertEqual(Port1, '22', msg='ftp修改端口不为22') # ftp验证端口 IP = host ftp = ftplib.FTP() ftp.encoding = 'utf-8' try: ftp.connect(host=IP, port=22, timeout=5) except socket.error or socket.gaierror: raise Exception("无法访问FTP服务") try: ftp.login(user='******') # 相当于没有验证账号密码 except ftplib.error_perm: raise Exception("FTP账号密码验证错误") ftpFile = ftp.nlst('1') # 获取指定目录下的文件 print('ftpFile', ftpFile) ftp.quit() # 修改端口为65534 ftpSmaba.input_ftpport('65534') ftpSmaba.click_save() time.sleep(10) Port1 = str(ftpSmaba.getAttribute_byName(ftpSmaba.ftpports, 'value')) self.assertEqual(Port1, '65534', msg='ftp修改端口不为65534') # ftp验证端口 ftp = ftplib.FTP() ftp.encoding = 'utf-8' try: ftp.connect(host=IP, port=65534, timeout=5) except socket.error or socket.gaierror: raise Exception("无法访问FTP服务") try: ftp.login(user='******') # 相当于没有验证账号密码 except ftplib.error_perm: raise Exception("FTP账号密码验证错误") ftpFile = ftp.nlst('1') # 获取指定目录下的文件 print('ftpFile', ftpFile) ftp.quit() # 修改端口为1 ftpSmaba.input_ftpport('1') ftpSmaba.click_save() time.sleep(10) Port1 = str(ftpSmaba.getAttribute_byName(ftpSmaba.ftpports, 'value')) self.assertEqual(Port1, '1', msg='ftp修改端口不为1') # ftp验证端口 ftp = ftplib.FTP() ftp.encoding = 'utf-8' try: ftp.connect(host=IP, port=1, timeout=5) except socket.error or socket.gaierror: raise Exception("无法访问FTP服务") try: ftp.login(user='******') # 相当于没有验证账号密码 except ftplib.error_perm: raise Exception("FTP账号密码验证错误") ftpFile = ftp.nlst('1') # 获取指定目录下的文件 print('ftpFile', ftpFile) ftp.quit() #验证提示信息 ftpSmaba.input_ftpport('65536') ftpSmaba.click_save() time.sleep(1) tipsport = str(ftpSmaba.getText_byXpath(ftpSmaba.tipsport)) if portwarnA not in tipsport: CapPic(self.driver) logger.info(u'FTP端口范围提示有误') raise Exception('FTP端口范围提示有误') # 将端口改回21 ftpSmaba.input_ftpport('21') ftpSmaba.click_save() time.sleep(2) self.driver.quit() logger.info('test_002_ftpPort passed')
def test_001_NetworkSharing(self): u'''网络共享&FTP服务器(某些设备可能不支持)''' netShareP = getParameter('netShareP') Support = getExcelValue(netShareP) networkshare = NetworkSharingPage(self.driver, self.url) if Support == '√': logger.info(u'参数支持网络共享') try: self.driver.implicitly_wait(2) networkshare.find_NetworkSharing() except NoSuchElementException: CapPic(self.driver) logger.info(u'软件不支持 网络共享,与参数表不符') raise Exception('软件不支持 网络共享,与参数表不符') else: logger.info(u'软件支持网络共享,与参数表相符') self.driver.implicitly_wait(10) time.sleep(1) # 开/关访问控制 enableDevice = networkshare.getAttribute_byId(networkshare.enableDevices, 'checktype') # checktype 0未开启,1开启 self.assertEqual(enableDevice, '0', msg='网络共享 默认未关闭') networkshare.click_enableDevice() time.sleep(2) enableDevice = networkshare.getAttribute_byId(networkshare.enableDevices, 'checktype') self.assertEqual(enableDevice, '1', msg='网络共享 开启失败') networkshare.click_enableDevice() time.sleep(2) enableDevice = networkshare.getAttribute_byId(networkshare.enableDevices, 'checktype') self.assertEqual(enableDevice, '0', msg='网络共享 关闭失败') # U盘使用率 UsageRate = networkshare.getText_byXpath(networkshare.UsageRate) self.assertIn('%', UsageRate, msg='U盘使用率 显示异常') # U盘总容量 已使用容量 剩余容量 三个值+提示是一个元素,判断条件特殊 # U盘总容量 后元素(所有) Total = networkshare.getText_byXpath(networkshare.Total) # “已使用容量”提示 Usedtext = networkshare.getText_byXpath(networkshare.Usedtext) Usedtext1 = 'M' + Usedtext # “剩余容量”提示 Residualtext = networkshare.getText_byXpath(networkshare.Residualtext) Residualtext1 = 'M' + Residualtext if Usedtext1 in Total and Residualtext1 in Total: print('U盘总容量信息 显示正常') else: raise Exception('U盘总容量信息 显示异常') #弹出设备 networkshare.find_Eject() # 账号设置 networkshare.click_AccountSettings() time.sleep(1) networkshare.click_open_pswd() time.sleep(2) networkshare.find_add() networkshare.find_delete() # admin账号 adminuser = str(networkshare.getText_byXpath(networkshare.adminuser)) self.assertEqual(adminuser, 'admin', msg='admin账号有误') guestuser = str(networkshare.getText_byXpath(networkshare.guestuser)) self.assertEqual(guestuser, 'guest', msg='guest账号有误') #网络共享 networkshare.click_NetworkSharing2() time.sleep(1) networkshare.click_choosml() time.sleep(1) networkshare.input_names('test') networkshare.click_modal_hide() time.sleep(0.5) networkshare.click_ftpEn() networkshare.input_ftpport('222') networkshare.click_WANEnable() try: self.driver.implicitly_wait(2) networkshare.find_sambaEn() # 启用SAMBA except ElementNotVisibleException: raise Exception('sambaEn 页面无显示') elif Support == '×': logger.info(u'参数不支持网络共享') try: self.driver.implicitly_wait(2) networkshare.find_NetworkSharing() except NoSuchElementException: logger.info(u'软件不支持网络共享,与参数表相符') else: CapPic(self.driver) logger.info(u'软件支持网络共享,与参数表不符') raise Exception(u'软件支持网络共享,与参数表不符') else: logger.info(u'参数表读取异常') logger.info(u'参数表读取值为:',Support) raise Exception(u'参数表读取异常') self.driver.quit() logger.info('test_001_NetworkSharing passed')