当前位置: 首页 > news >正文

响应式网站 解决方案/网络优化需要哪些知识

响应式网站 解决方案,网络优化需要哪些知识,做网站改版的,施工企业会计心得体会需求:将手工登录,手工刷新服务器的FW转化为PythonSelenium实现自动化操作。 1.创建用户表,实现数据与脚本分离。需要读取模块。 2.自动化刷新FW. 不说话,直接上代码: 1userdata.py #!/usr/bin/env python3 # -*- codin…

需求:将手工登录,手工刷新服务器的FW转化为Python+Selenium实现自动化操作。

1.创建用户表,实现数据与脚本分离。需要读取模块。

2.自动化刷新FW.

 

 

不说话,直接上代码:

1userdata.py

#!/usr/bin/env python3
# -*- coding:utf-8 -*-
'''
A model that use xlrd to read excel(include user info)
'''
import xlrdclass XlUserInfo(object):#initializedef __init__(self, path=''):self.path = pathself.xl = xlrd.open_workbook(self.path)# def get_ip_info(self):#     ip_sheets = self.xl.sheets()[0]#     server_name = ip_sheets.col_values(0)[1:]#     ips = ip_sheets.col_values(1)[1:]#     temp = zip(server_name, ips)#     server_ip = []#     server_ip.append(dict(temp))#     return server_ip# def get_fw_info(self):#     fw_sheets = self.xl.sheets()[1]#     fw_name = fw_sheets.col_values(0)#     fw_dir = fw_sheets.col_values(1)[1:]#     temp = zip(fw_name, fw_dir)#     server_image = []#     server_image.append(dict(temp))#     return server_image#获取sheet object,处理并读取信息def get_sheet_info(self):all_info = []info0 = []info1 = []for row in range(0,self.sheet.nrows):info = self.sheet.row_values(row)info0.append(info[0])info1.append(info[1])temp = zip(info0,info1)all_info.append(dict(temp))return all_info.pop(0)# return all_info#通过excel的sheet的名字读取信息def get_sheetinfo_by_name(self, name):self.sheet = self.xl.sheet_by_name(name)return self.get_sheet_info()#通过excel的sheet的索引读取信息def get_sheetinfo_by_index(self, index):self.sheet = self.xl.sheet_by_index(index)return self.get_sheet_info()if __name__ == '__main__':
#     实例化xl = XlUserInfo('user_info.xlsx')ips = xl.get_sheetinfo_by_name('ip')fwargs = xl.get_sheetinfo_by_name('fw')webargs = xl.get_sheetinfo_by_name('webEle')print("IPS",ips)for server_name in ips.keys():machine = server_name.split('_')[0]test_ip = ips[server_name]bmc = fwargs['BMC']official_bmc = fwargs['OfficialBMC']dsa = fwargs['DSA']print(test_ip)print(server_name)

 

2.Login_model

import time
from outlog_model import OutLog
from selenium import webdriverdef login(testip,webarg):logger = OutLog(filepath='report/{}.log'.format(testip))profile = webdriver.FirefoxProfile()profile.accept_untrusted_certs = Truedriver = webdriver.Firefox(firefox_profile=profile)driver.implicitly_wait(30)driver.verificationErrors = []driver.accept_next_alert = Trueresult = 0try:driver.get('https://{}/designs/imm/index.php'.format(testip))except:logger.Write_info('[Fail to Login Web GUI] : {}'.format(testip))try:if driver.find_element_by_id(webarg["uname_id"]):result = 1else:result = 0# 'uname_id' = 'user'driver.find_element_by_id(webarg["uname_id"]).send_keys(webarg['uname'])finally:print("Wait web to be ready")time.sleep(15)# 'uname_id' = 'user'driver.find_element_by_id(webarg['uname_id']).send_keys(webarg['uname'])#pwd_id = passworddriver.find_element_by_id(webarg['pwd_id']).send_keys(webarg['pwd'])#login_button_id = btnLogin_labeldriver.find_element_by_id(webarg['login_id']).click()time.sleep(30)print("Success to login")# print("Login driver is ",driver)return driver

 

3.outlog model

#!/usr/bin/env python3
# -*- coding:utf-8 -*-
'''
A model for produce outlog
'''
import time
import xlsxwriter
import logging
import os#A class to write excel
class XLLoginfo(object):def __init__(self, path=''):file_name = "Result-{}".format(time.strftime('%m-%d-%H-%M-%S',time.localtime()))self.row = 0self.xl = xlsxwriter.Workbook(path + file_name + '.xlsx')def xl_write(self, *args):col = 0for val in args:self.sheet.write_string(self.row, col, val)col += 1self.row += 1# The API for users.def Xl_init(self, sheetname, *title):self.sheet = self.xl.add_worksheet(sheetname)self.sheet.set_column('A:G',20)self.xl_write(*title)def Xl_write(self,*args):self.xl_write(*args)def Xl_close(self):self.xl.close()#A class using logging model to get log(info,warining,critical)
class OutLog(object):def __init__(self,filepath=''):self.file = filepathself.logger = logging.getLogger()self.logger.setLevel(logging.INFO)self.fh = logging.FileHandler(filepath)self.ch = logging.StreamHandler()self.formatter = logging.Formatter('%(message)s = %(name)s = %(asctime)s')self.fh.setFormatter(self.formatter)self.ch.setFormatter(self.formatter)self.logger.addHandler(self.fh)self.logger.addHandler(self.ch)def Write_info(self,info_message):self.logger.info(info_message)def Write_error(self,error_message):self.logger.error(error_message)def ReWrite_result(self):with open(self.file) as fp:old_info = []for i in fp:if i not in old_info:old_info.append(i)new_result = []for r in old_info:if r not in new_result:new_result.append(r)with open(self.file, 'w') as f:f.truncate()for h in new_result:f.writelines(h)class Totlalog(object):def __init__(self,path):self.path = pathdef eachfile(filepath):pathdir = os.listdir(filepath)print(pathdir)for file in pathdir:filename = os.path.join('%s\%s'%(filepath,file))with open(filename) as fp:print(filename,fp.readlines())if __name__ == '__main__':# A example to use XLLoginfo API# A example to use Outloglog = OutLog(filepath='report/log.txt')log.Write_error('error')log.Write_info('info')log.Write_info('info')log.Write_info('info')log.ReWrite_result()

 

4.刷新FW,动作模块

# -*- coding: utf-8 -*-
import time
from login_model import login
from outlog_model import OutLogdef test_flash(server_name,testip,fwname,webarg):logger = OutLog(filepath='report/{}.log'.format('result'))try:driver = login(testip, webarg)driver.accept_next_alert = Trueprint('fwname:',fwname)print("Now begin to test flash {}".format(fwname))time.sleep(25)try:driver.find_element_by_id("dijit_MenuBarItem_0_text")except:driver.quit()finally:time.sleep(5)print("Web is ready now")driver.find_element_by_id("dijit_PopupMenuBarItem_2_text").click()driver.find_element_by_css_selector("#dijit_MenuItem_9_text > table > tbody > tr > td").click()driver.find_element_by_id("btnUpdateFwDlg_label").click()time.sleep(5)# .find_element_by_css_selector("input.dijitOffScreen").click()# driver.find_element_by_name("uploadedfile").clear()driver.find_element_by_name("uploadedfile").send_keys(fwname)if 'imm' in fwname:try:try:driver.find_element_by_id("updateServerFirmwareWizardbtnNext_label").click()finally:time.sleep(10)print("Now upload {} image".format(fwname))driver.find_element_by_id("updateServerFirmwareWizardbtnNext_label").click()time.sleep(200)try:driver.find_element_by_id("updateServerFirmwareWizardbtnNext_label").click()finally:time.sleep(15)print("Wait to flash {} image finished".format(fwname))driver.find_element_by_id("updateServerFirmwareWizardbtnNext_label").click()time.sleep(5)driver.find_element_by_id("updateServerFirmwareWizardbtnNext_label").click()time.sleep(180)# driver.find_element_by_xpath("(//input[@value=''])[5]").click()driver.find_element_by_id("restartIMMId_label").click()time.sleep(5)if driver.find_element_by_id("commonPopupOk_label"):result = 1logger.Write_info('[Pass] : IMM  {} {} {}'.format(server_name,testip,fwname))else:result = 0logger.Write_info('[Fail] : IMM  {} {} {}'.format(server_name, testip, fwname))print("Reatart imm wait about 5 min")driver.find_element_by_id("commonPopupOk_label").click()time.sleep(720)print("Finish test to flash IMM fw.")try:print("Close")driver.close()except:print("Quit")driver.quit()finally:return resultexcept:driver.close()result = -1logger.Write_error('[Fail] code:{} IMM  {} {} {}'.format(result,server_name, testip, fwname))return resulttime.sleep(20)elif 'uefi' in fwname:try:try:driver.find_element_by_id("updateServerFirmwareWizardbtnNext_label").click()finally:time.sleep(10)print("Now upload UEFI image")driver.find_element_by_id("updateServerFirmwareWizardbtnNext_label").click()time.sleep(20)try:driver.find_element_by_id("updateServerFirmwareWizardbtnNext_label").click()finally:time.sleep(15)driver.find_element_by_id("updateServerFirmwareWizardbtnNext_label").click()print("Wait to flash UEFI image finished,need 1 min 37 sec")time.sleep(5)driver.find_element_by_id("updateServerFirmwareWizardbtnNext_label").click()time.sleep(110)# driver.find_element_by_xpath("(//input[@value=''])[4]").click()if driver.find_element_by_id("restartOSId_label"):print("Restart OS")time.sleep(10)driver.find_element_by_id("restartOSId_label").click()else:time.sleep(10)driver.find_element_by_id("restartOSId_label").click()time.sleep(5)driver.find_element_by_id("commonPopupOk_label").click()time.sleep(5)driver.find_element_by_id("commonPopupClose_label").click()time.sleep(10)driver.find_element_by_id("dijit_MenuBarItem_0_text").click()time.sleep(5)driver.find_element_by_id("btnserverActionsListHealthSumm_label").click()time.sleep(5)driver.find_element_by_id("serverActionsListHealthSumm63_text").click()time.sleep(5)driver.find_element_by_id("commonPopupOk_label").click()time.sleep(5)print("Reatart os,wait about 5 min")time.sleep(300)print("Finish test to flash UEFI fw")if driver.find_element_by_id("commonPopupClose_label"):result = 1logger.Write_info('[Pass] : UEFI  {} {} {}'.format(server_name,testip,fwname))else:result = 0logger.Write_info('[Fail] : UEFI  {} {} {}'.format(server_name, testip, fwname))driver.find_element_by_id("commonPopupClose_label").click()try:print("Quit")driver.quit()except:print("Close")driver.close()finally:return resultexcept:driver.close()result = -1logger.Write_error('[Fail] code:{} UEFI  {} {} {}'.format(result,server_name, testip, fwname))return -1else:try:if driver.find_element_by_id("updateServerFirmwareWizardbtnNext_label"):driver.find_element_by_id("updateServerFirmwareWizardbtnNext_label").click()print("1.Now upload DSA image,need about 250s")else:time.sleep(10)print("2.Now upload DSA image,need about 250s")driver.find_element_by_id("updateServerFirmwareWizardbtnNext_label").click()time.sleep(420)if driver.find_element_by_id("updateServerFirmwareWizardbtnNext_label"):print("1.wait to flash dsa")driver.find_element_by_id("updateServerFirmwareWizardbtnNext_label").click()else:time.sleep(30)print("2.wait to flash dsa")driver.find_element_by_id("updateServerFirmwareWizardbtnNext_label").click()driver.find_element_by_id("updateServerFirmwareWizardbtnNext_label").click()print("Wait to flash DSA image finished,need 120 sec")time.sleep(5)driver.find_element_by_id("updateServerFirmwareWizardbtnNext_label").click()time.sleep(5)driver.find_element_by_id("updateServerFirmwareWizardbtnNext_label").click()time.sleep(5)driver.find_element_by_id("updateServerFirmwareWizardbtnNext_label").click()time.sleep(200)# updateServerFirmwareWizardbtnFinish_labelif driver.find_element_by_id("updateServerFirmwareWizardbtnFinish_label"):result = 1logger.Write_info('[Pass] : DSA  {} {} {}'.format(server_name,testip,fwname))driver.find_element_by_id("updateServerFirmwareWizardbtnFinish_label").click()else:result = 0logger.Write_info('[Fail] : DSA  {} {} {}'.format(server_name, testip, fwname))print("Finish test to flash DSA fw")try:print("Quit")driver.quit()except:print("Close")driver.close()finally:return resultexcept:driver.close()result = -1logger.Write_error('[Fail] code:-1  DSA  {} {} {}'.format(server_name, testip, fwname))return resultfinally:# return result
        driver.close()
if __name__ == "__main__":pass

 

5.主模块,运行模块

#!/usr/bin/env python3
# -*- coding:utf-8 -*-
import threading
import time
from userdata import XlUserInfo
from flashImage import test_flash
from login_model import login
from outlog_model import OutLogdef main(ip,server_name,imm,official_imm,bios,DSA):# test_ip, serverName, bmc, official_bmc, uefi, dsalogger = OutLog(filepath='report/{}.log'.format('result'))# choose to flash immimm_result = test_flash(server_name, ip, imm, webargs)time.sleep(60)if imm_result != 1:imm_result = test_flash(server_name, ip, imm, webargs)time.sleep(60)# choose to flash uefiuefi_result = test_flash(server_name, ip, bios, webargs)if uefi_result != 1:uefi_result = test_flash(server_name, ip, bios, webargs)# choose to flash dsadsa_result = test_flash(server_name, ip, DSA, webargs)if dsa_result != 1:dsa_result = test_flash(server_name, ip, DSA, webargs)# choose to flash official immofficial_imm_result = test_flash(server_name, ip, official_imm, webargs)if official_imm_result != 1:official_imm_result = test_flash(server_name, ip, official_imm, webargs)# choose to update imm.upgrade_imm_result = test_flash(server_name, ip, imm, webargs)if upgrade_imm_result != 1:upgrade_imm_result = test_flash(server_name, ip, imm, webargs)# try:#     driver = login(test_ip,webargs)#     print(driver)#     if driver:#         driver.close()#         time.sleep(60)#         #choose to flash imm#         imm_result = test_flash(server_name,ip, imm, webargs)#         time.sleep(60)#         if imm_result != 1:#             imm_result = test_flash(server_name, ip, imm, webargs)#         time.sleep(60)#         # choose to flash uefi#         uefi_result = test_flash(server_name,ip, bios, webargs)#         if uefi_result != 1:#             uefi_result = test_flash(server_name, ip, bios, webargs)#         #choose to flash dsa#         dsa_result = test_flash(server_name, ip, DSA, webargs)#         if dsa_result != 1:#             dsa_result = test_flash(server_name, ip, DSA, webargs)#         #choose to flash official imm#         official_imm_result = test_flash(server_name, ip, official_imm, webargs)#         if official_imm_result != 1:#             official_imm_result = test_flash(server_name, ip, official_imm, webargs)#         #choose to update imm.#         upgrade_imm_result = test_flash(server_name, ip, imm, webargs)#         if upgrade_imm_result != 1:#             upgrade_imm_result = test_flash(server_name, ip, imm, webargs)#     else:#         logger.Write_error("[Fail Login into Web] : {} {}".format(server_name, ip))# except:#     logger.Write_error("[Fail Login into Web]]]]]] : {} {}".format(server_name, ip))# finally:#     time.sleep(60)#     logger.ReWrite_result()if __name__ == '__main__':now_time = time.strftime("%Y-%m-%d_%H.%M.%S", time.localtime(time.time()))#实例化一个xl对象,分别读取ip,fw,webEle的infoxl = XlUserInfo('user_info.xlsx')ips = xl.get_sheetinfo_by_name('ip')fwargs = xl.get_sheetinfo_by_name('fw')webargs = xl.get_sheetinfo_by_name('webEle')test_thread = []for serverName in ips.keys():machine = serverName.split('_')[0]test_ip = ips[serverName]bmc = fwargs['BMC']official_bmc = fwargs['OfficialBMC']dsa = fwargs['DSA']uefi = ''for uefi_name in fwargs.keys():if machine.lower() in uefi_name.lower():uefi = fwargs[uefi_name]print("*"*40)print(test_ip,bmc,official_bmc,uefi,dsa)print("*" * 40)t = threading.Thread(target=main,args=(test_ip,serverName,bmc,official_bmc,uefi,dsa))print(t)t.start()test_thread.append(t)time.sleep(2)for t in test_thread:t.join()print("Finish all Test")

 

转载于:https://www.cnblogs.com/william126/p/7526751.html

http://www.jmfq.cn/news/5197735.html

相关文章:

  • 大连做网站排名/百度广告客服电话
  • 唐山网站建设找汉狮/安卓手机优化大师官方下载
  • 朱腾鹏个人网站/常用的搜索引擎
  • 网站建设方案怎么写/亚马逊关键词搜索器
  • 做电影网站服务器/成都网络优化托管公司
  • 怎么做网站软件/必应搜索引擎首页
  • 58同城建网站怎么做/网络热词有哪些
  • 百度推广要不要建网站/新浪舆情通官网
  • 东营做网站seo/营销型网站模板
  • 涿州网站建设/市场调研表模板
  • 附近广告设计与制作/站长工具的使用seo综合查询运营
  • 大同推广型网站开发/浏览器下载安装
  • 网站建设与管理专业课程/公司网站怎么建立
  • 怎么自己做网站卖东西/百度指数怎么查询
  • 手机怎么搭建网站源码/可以商用的电视app永久软件
  • 山西网络公司网站建设/站长推荐入口自动跳转
  • 品牌网站建设特色/友链提交入口
  • 创意宣传片制作/seo外贸推广
  • 基于站点的推广/全球搜钻
  • 万江仿做网站/西安seo服务商
  • 广州开发小程序/seo的公司排名
  • 外国网站邀请做编辑/如何给网站做推广
  • 做网站怎么让字居右/百度搜索一下
  • wordpress主题离线编辑/seo是什么意思 为什么要做seo
  • 广西上林县住房城乡建设网站/重庆疫情最新情况
  • 网站描文本怎么做/网站seo关键词排名推广
  • 电商网站如何做优化/免费建网站软件下载
  • 做一个网站的价钱/深圳seo网络推广
  • 浙江建设报名网站/一键制作网站
  • 专业手机网站建设哪家好/推推蛙seo顾问