def __init__(self,driver): self.driver = driver self.log = log() self.role = Role(driver) self.cmf = commonFun(driver) self.tableElem = tableElement(driver) self.frameElem = frameElement(driver)
def __init__(self, driver): self.driver = driver self.log = log() self.cmf = commonFun(driver) self.frameElem = frameElement(driver) self.getElem = getElement(driver) self.selectElem = selectElement(driver) self.role = Role(driver) self.dataFile = dataFileName()
def __init__(self, driver): self.driver = driver self.log = log() self.cmf = commonFun(driver) self.frameElem = frameElement(driver) self.testrole = testRole(driver) self.linux = LinuxResource(driver) self.account = Accountmgr(driver) self.role = Role(driver) self.data = dataFileName()
def __init__(self, driver): self.driver = driver self.getElem = getElement(driver) self.selectElem = selectElement(driver) self.frameElem = frameElement(driver) self.cmf = commonFun(driver) self.cnEn = cnEncode() self.comsuit = CommonSuiteData(self.driver) self.command = CommandRule(self.driver) self.tableElem = tableElement(driver) self.log = log() self.userElem = UserPage(self.driver) self.role = Role(driver)
def __init__(self, driver): self.driver = driver self.dataFile = dataFileName() self.cmf = commonFun(self.driver) self.initDriver = initDriver() self.loginElem = loginPage(self.driver) self.roleElem = Role(self.driver) self.userElem = UserPage(self.driver) self.frameElem = frameElement(self.driver) self.authElem = AuthMethodPage(self.driver) self.dptment = Department(self.driver) self.resource = Resource(self.driver) self.account = Accountmgr(self.driver) self.windowsElem = WindowsResource(self.driver) self.databaseElem = DatabaseResource(self.driver) self.usergroup = Usergroup(self.driver) self.regroup = Regroup(self.driver) self.appElem = AppPage(self.driver) self.authorizationElem = AuthorizationPage(self.driver) self.testAutho = testAuthorization(self.driver) self.clientElem = ClientPage(self.driver) self.command = CommandRule(self.driver) self.ntp = NtpService(self.driver) self.mail = MailPage(self.driver) self.syslog = Syslog(driver) self.ssoElem = SsoPage(self.driver) self.alarm = AlarmPage(self.driver) self.PwdStr = PwdStrategy(self.driver) self.passwdenvelope = EnvelopePage(self.driver)
def __init__(self, driver): self.driver = driver self.log = log() self.role = Role(driver) self.testrole = testRole(driver) self.cmf = commonFun(driver) self.frameElem = frameElement(driver) self.dptment = Department(driver)
def __init__(self, driver): self.driver = driver self.log = log() self.cmf = commonFun(driver) self.frameElem = frameElement(driver) self.testrole = testRole(driver) self.resource = Resource(driver) self.linux = LinuxResource(driver) self.role = Role(driver) self.data = dataFileName()
def __init__(self,driver): self.driver = driver self.log = log() self.role = Role(driver) self.cmf = commonFun(driver) self.getElem = getElement(driver) self.cnEnde = cnEncode() self.tableElem = tableElement(self.driver) self.selectElem = selectElement(driver) self.dataFile = dataFileName() self.login = loginPage(self.driver) self.frameElem = frameElement(self.driver)
class testResourceAccount(object): def __init__(self, driver): self.driver = driver self.log = log() self.cmf = commonFun(driver) self.frameElem = frameElement(driver) self.testrole = testRole(driver) self.linux = LinuxResource(driver) self.account = Accountmgr(driver) self.role = Role(driver) self.data = dataFileName() u'''添加和编辑资源账号''' def add_edit_resource_account_001(self, dataPath, sheetName): #日志开始记录 self.log.log_start("add_edit_resource_account") #获取添加资源账号测试数据 accountData = self.data.get_data(dataPath, sheetName) #保存成功的弹出框 accountMsg = self.testrole.popup() #无检查点的测试项标识,如果为True说明通过 flag = False for dataRow in range(len(accountData)): data = accountData[dataRow] try: #如果不是第一行标题,则读取数据 if dataRow != 0: #点击账号管理 if dataRow == 1: self.account.click_account_manage_button(data[2]) self.linux.add_edit_resource_account(data[3], data[4], data[5], data[6], data[7]) self.frameElem.switch_to_content() self.cmf.test_win_check_point("xpath", accountMsg, data, flag) self.cmf.back() except Exception as e: print ("add_edit_resource_account fail:" + str(e)) self.cmf.back() self.log.log_end("add_edit_resource_account") u'''查询资源账号''' def query_resource_account_002(self, dataPath, sheetName): #日志开始记录 self.log.log_start("query_resource_account") #获取查询资源账号测试数据 accountData = self.data.get_data(dataPath, sheetName) for dataRow in range(len(accountData)): data = accountData[dataRow] try: #如果不是第一行标题,则读取数据 if dataRow != 0: if dataRow == 1: self.account.click_account_manage_button(data[1]) self.account.query_name(data[2]) if dataRow == 2 or dataRow == 3: self.account.is_authorize(data[3]) if dataRow == 4: self.account.query_name(data[2]) self.account.is_authorize(data[3]) self.account.click_account_query() self.role.click_reset() self.log.log_detail(data[0], True) except Exception as e: print ("query_resource_account fail:" + str(e)) self.cmf.back() self.log.log_end("query_resource_account") u'''检验资源账号''' def check_resource_account_003(self, dataPath, sheetName): #日志开始记录 self.log.log_start("check_resource_account") #获取检验资源测试数据 resourceData = self.data.get_data(dataPath, sheetName) #保存成功的弹出框 resourceMsg = self.testrole.popup() #无检查点的测试项标识,如果为True说明通过 flag = False for dataRow in range(len(resourceData)): data = resourceData[dataRow] try: #如果不是第一行标题,则读取数据 if dataRow != 0: if dataRow == 1: self.account.click_account_manage_button(data[2]) self.account.click_account_add_edit_button() self.linux.check_resource_account(data[3], data[4], data[5], data[6]) self.frameElem.switch_to_content() self.cmf.test_win_check_point("xpath", resourceMsg, data, flag) except Exception as e: print ("check_resource_account fail:" + str(e)) self.cmf.back() self.cmf.back() self.log.log_end("check_resource_account") u'''删除资源账号''' def del_resource_account_004(self, dataPath, sheetName): #日志开始记录 self.log.log_start("del_resource_account") #获取删除资源账号测试数据 accountData = self.data.get_data(dataPath, sheetName) #保存成功的弹出框 accountMsg = self.testrole.popup() #无检查点的测试项标识,如果为True说明通过 flag = False for dataRow in range(len(accountData)): data = accountData[dataRow] try: #如果不是第一行标题,则读取数据 if dataRow != 0: self.account.click_account_manage_button(data[2]) self.account.click_account_del(data[3]) self.frameElem.switch_to_content() self.cmf.test_win_check_point("xpath", accountMsg, data, flag) self.cmf.click_msg_button(1) except Exception as e: print ("del_resource_account fail:" + str(e)) self.cmf.back() self.log.log_end("del_resource_account") u'''全选删除资源账号''' def bulkdel_resource_account_005(self, dataPath, sheetName): #日志开始记录 self.log.log_start("bulkdel_resource_account") #获取全选删除资源账号测试数据 accountData = self.data.get_data(dataPath, sheetName) #保存成功的弹出框 accountMsg = self.testrole.popup() #无检查点的测试项标识,如果为True说明通过 flag = False for dataRow in range(len(accountData)): data = accountData[dataRow] try: #如果不是第一行标题,则读取数据 if dataRow != 0: self.account.click_account_manage_button(data[2]) self.cmf.check_all() self.cmf.bulkdel("delete_account") self.frameElem.switch_to_content() self.cmf.test_win_check_point("xpath", accountMsg, data, flag) self.cmf.click_msg_button(1) except Exception as e: print ("bulkdel_resource_account failure:" + str(e)) self.cmf.back() self.log.log_end("bulkdel_resource_account")
class testSecretUserRole(object): def __init__(self, driver): self.driver = driver self.log = log() self.cmf = commonFun(driver) self.frameElem = frameElement(driver) self.getElem = getElement(driver) self.selectElem = selectElement(driver) self.role = Role(driver) self.dataFile = dataFileName() u'''获取数据 Parameters: - sheetname:sheet名称 return:表格数据 ''' def get_table_data(self, sheetname): filePath = self.dataFile.get_common_suite_test_data_url() fileData = self.dataFile.get_data(filePath, sheetname) return fileData #编辑运维角色 def edit_operation_role(self): #日志开始记录 self.log.log_start("edit_operation_role") self.frameElem.from_frame_to_otherFrame("mainFrame") time.sleep(1) #点击编辑按钮 editXpath = "html/body/form/div/div[6]/div[2]/div/table/tbody/tr[2]/td[6]/input" self.getElem.find_element_wait_and_click_EC('xpath', editXpath) self.role.set_tree_demo_switch('treeDemo_1_switch') time.sleep(1) #去掉监控、回放、阻断、下载 self.role.set_input_click('1001010000002') self.role.set_input_click('1001010000003') self.role.set_input_click('1001010000010') self.role.set_input_click('1001010000013') self.role.save_role_button() self.log.log_detail(u"编辑运维角色", True) self.log.log_end("edit_operation_role") #添加系统管理员角色 def set_sysAdmin_role(self): #日志开始记录 self.log.log_start("set_sysAdmin_role") time.sleep(1) self.role.role_add_button() self.role.edit_rolename(u'系统管理员') self.role.edit_shortname(u'系管') #勾选组织定义和用户 self.role.set_tree_demo_switch('treeDemo_3_switch') time.sleep(1) self.role.set_tree_demo_switch('treeDemo_4_check') self.role.set_tree_demo_check('treeDemo_8_check') #用户去掉角色 self.role.set_input_click('1002020000008') #勾选流程控制 self.role.set_tree_demo_switch('treeDemo_20_switch') time.sleep(1) self.role.set_tree_demo_check('treeDemo_20_check') #去掉全部历史 self.role.set_tree_demo_check('treeDemo_24_check') #口令计划 self.role.set_tree_demo_switch('treeDemo_25_switch') time.sleep(1) self.role.set_tree_demo_check('treeDemo_25_check') self.driver.execute_script("window.scrollBy(1000,0)", "") #勾选系统配置 self.role.set_tree_demo_switch('treeDemo_38_switch') time.sleep(1) self.role.set_tree_demo_check('treeDemo_38_check') #去掉初始化设置 self.role.set_tree_demo_switch('treeDemo_54_switch') time.sleep(1) self.role.set_tree_demo_check('treeDemo_56_check') #去掉维护配置role. self.role.set_tree_demo_check('treeDemo_59_check') self.role.set_tree_demo_switch('treeDemo_38_switch') #选择密码包角色 self.role.set_other_role(u'密码包接收人') time.sleep(1) #保存角色 self.role.save_role_button() self.log.log_detail(u"添加系统管理员角色", True) self.log.log_end("set_sysAdmin_role") #添加安全保密管理员角色 def set_secAdmin_role(self): #日志开始记录 self.log.log_start("set_secAdmin_role") time.sleep(1) self.role.role_add_button() self.role.edit_rolename(u'安全保密管理员') self.role.edit_shortname(u'安保') #运维管理用户 self.role.set_tree_demo_switch('treeDemo_3_switch') time.sleep(1) self.role.set_tree_demo_check('treeDemo_8_check') #只勾选删除、编辑、用户状态、证书 self.role.set_input_click('1002020000001') self.role.set_input_click('1002020000004') self.role.set_input_click('1002020000005') self.role.set_input_click('1002020000006') self.role.set_input_click('1002020000007') self.role.set_input_click('1002020000008') #资源、授权(不勾选可访问外部报表)、规则定义 self.role.set_tree_demo_check('treeDemo_9_check') self.role.set_tree_demo_check('treeDemo_10_check') self.role.set_input_click('1002040000009') self.role.set_tree_demo_check('treeDemo_11_check') #配置审计、运维审计只勾选审计删除,命令详情,审批记录,查看历史,键盘记录,文件传输 self.role.set_tree_demo_switch('treeDemo_16_switch') time.sleep(1) self.role.set_tree_demo_check('treeDemo_17_check') self.role.set_input_click('1003010000003') self.role.set_input_click('1003010000004') self.role.set_input_click('1003010000011') self.role.set_input_click('1003010000014') self.role.set_tree_demo_check('treeDemo_18_check') self.role.set_tree_demo_switch('treeDemo_16_switch') time.sleep(1) #流程控制(全部历史) self.role.set_tree_demo_switch('treeDemo_20_switch') time.sleep(1) self.role.set_tree_demo_check('treeDemo_24_check') #计划任务只勾选备份文件查看、备份文件下载 self.role.set_tree_demo_switch('treeDemo_25_switch') time.sleep(1) self.role.set_tree_demo_switch('treeDemo_26_switch') time.sleep(1) self.role.set_tree_demo_check('treeDemo_27_check') self.role.set_input_click('1005010100001') self.role.set_input_click('1005010100002') self.role.set_input_click('1005010100003') self.role.set_input_click('1005010100005') time.sleep(1) self.role.set_input_click('1005010100007') self.role.set_input_click('1005010100008') self.role.set_input_click('1005010100009') self.role.set_input_click('1005010100010') self.role.set_tree_demo_check('treeDemo_28_check') time.sleep(1) self.role.set_input_click('1005010200001') self.role.set_input_click('1005010200002') self.role.set_input_click('1005010200003') self.role.set_input_click('1005010200005') time.sleep(1) self.role.set_input_click('1005010200007') self.role.set_input_click('1005010200008') self.role.set_input_click('1005010200009') time.sleep(1) #系统配置(审计存留) self.role.set_tree_demo_switch('treeDemo_38_switch') time.sleep(1) self.role.set_tree_demo_switch('treeDemo_59_switch') time.sleep(1) self.role.set_tree_demo_check('treeDemo_60_check') #策略配置 self.role.set_tree_demo_switch('treeDemo_65_switch') time.sleep(1) self.role.set_tree_demo_check('treeDemo_65_check') self.role.set_tree_demo_switch('treeDemo_38_switch') time.sleep(1) #选择密码包角色 self.role.set_other_role(u'解密密钥接收人') time.sleep(1) #保存角色 self.role.save_role_button() self.log.log_detail(u"添加安全保密管理员角色", True) self.log.log_end("set_secAdmin_role") #添加安全审计员角色 def set_sysAudit_role(self): #日志开始记录 self.log.log_start("set_sysAudit_role") time.sleep(1) self.role.role_add_button() self.role.edit_rolename(u'安全审计员') self.role.edit_shortname(u'安审') #运维管理(用户只勾选删除、编辑、用户状态、证书) self.role.set_tree_demo_switch('treeDemo_3_switch') time.sleep(1) self.role.set_tree_demo_check('treeDemo_8_check') #只勾选删除、编辑、用户状态、证书 self.role.set_input_click('1002020000001') self.role.set_input_click('1002020000004') self.role.set_input_click('1002020000005') self.role.set_input_click('1002020000006') self.role.set_input_click('1002020000007') self.role.set_input_click('1002020000008') self.role.set_tree_demo_switch('treeDemo_3_switch') time.sleep(1) #审计管理(配置审计,告警归纳) self.role.set_tree_demo_switch('treeDemo_16_switch') time.sleep(1) self.role.set_tree_demo_check('treeDemo_18_check') self.role.set_tree_demo_check('treeDemo_19_check') self.role.set_tree_demo_switch('treeDemo_16_switch') time.sleep(1) #报表管理 self.role.set_tree_demo_switch('treeDemo_30_switch') time.sleep(1) self.role.set_tree_demo_check('treeDemo_31_check') #保存角色 self.role.save_role_button() self.log.log_detail(u"添加安全审计员角色", True) self.log.log_end("set_sysAudit_role") #添加涉密用户 def add_secret_user(self): #日志开始记录 self.log.log_start("add_secret_user") #获取用户测试数据 secretData = self.get_table_data("add_user") self.frameElem.from_frame_to_otherFrame("topFrame") self.cmf.select_menu(u"运维管理", u"用户") for dataRow in range(len(secretData)): data = secretData[dataRow] try: #如果不是第一行标题,则读取数据 if dataRow != 0 and dataRow < 4: self.role.add_sercret_user(data[3], data[1], data[4], data[9]) self.log.log_detail(data[0], True) except Exception as e: print("add_secret_user fail:" + str(e)) self.log.log_end("add_secret_user")
class Backuprestore(object): def __init__(self, driver): self.driver = driver self.getElem = getElement(driver) self.selectElem = selectElement(driver) self.frameElem = frameElement(driver) self.cmf = commonFun(driver) self.cnEn = cnEncode() self.comsuit = CommonSuiteData(self.driver) self.command = CommandRule(self.driver) self.tableElem = tableElement(driver) self.log = log() self.userElem = UserPage(self.driver) self.role = Role(driver) u'''点击自动备份开关''' def auto_backup_switch(self): self.frameElem.from_frame_to_otherFrame("rigthFrame") self.getElem.find_element_wait_and_click_EC("id", "btn_qh") u'''勾选系统配置''' def check_sys_config(self): self.frameElem.from_frame_to_otherFrame("rigthFrame") values = self.check_common() if values[0] == None: self.getElem.find_element_wait_and_click_EC("id", "configBackUp") if values[1] != None: self.getElem.find_element_wait_and_click_EC("id", "databaseBackUp") u'''勾选实体配置''' def check_entity_config(self): self.frameElem.from_frame_to_otherFrame("rigthFrame") values = self.check_common() if values[0] != None: self.getElem.find_element_wait_and_click_EC("id", "configBackUp") if values[1] == None: self.getElem.find_element_wait_and_click_EC("id", "databaseBackUp") u'''勾选实体配置和系统配置''' def check_all_config(self): self.frameElem.from_frame_to_otherFrame("rigthFrame") values = self.check_common() if values[0] == None: self.getElem.find_element_wait_and_click_EC("id", "configBackUp") if values[1] == None: self.getElem.find_element_wait_and_click_EC("id", "databaseBackUp") u'''勾选实体或者系统配置公共方法''' def check_common(self): self.frameElem.from_frame_to_otherFrame("rigthFrame") selem = self.getElem.find_element_with_wait_EC("id", "configBackUp") value = selem.get_attribute('checked') selemdb = self.getElem.find_element_with_wait_EC("id", "databaseBackUp") valuedb = selemdb.get_attribute('checked') list = [value, valuedb] return list u'''勾选实体或者系统配置 parameter: - stauts:勾选配置信息1代表系统配置2代表实体配置,3代表系统配置和实体配置 ''' def check_config(self, stauts): staut = self.cnEn.is_float(stauts) if staut == '1': self.check_sys_config() elif staut == '2': self.check_entity_config() else: self.check_all_config() u'''选择备份方式 parameter: - stauts:value属性值,1代表一次性执行,2代表周期性执行 ''' def select_backup_mode(self, stauts): staut = self.cnEn.is_float(stauts) self.frameElem.from_frame_to_otherFrame("rigthFrame") selem = self.getElem.find_element_with_wait_EC("id", "backUpType") self.selectElem.select_element_by_value(selem, staut) u'''选择执行小时 parameter: - stauts:value属性值 ''' def select_hour(self, stauts): staut = self.cnEn.is_float(stauts) self.frameElem.from_frame_to_otherFrame("rigthFrame") selem = self.getElem.find_element_with_wait_EC("id", "startHour") self.selectElem.select_element_by_value(selem, staut) u'''填写分钟 parameter: - minute:分钟 ''' def set_minute(self, minute): minu = self.cnEn.is_float(minute) self.frameElem.from_frame_to_otherFrame("rigthFrame") self.getElem.find_element_wait_and_clear_EC("id", "startMinute") self.getElem.find_element_wait_and_sendkeys("id", "startMinute", minu) u'''选择执行方式 parameter: - staut:0代表按天,1代表按周,2代表按月,3代表按年 ''' def select_execu_mode(self, staut): self.frameElem.from_frame_to_otherFrame("rigthFrame") if staut == 0: self.getElem.find_element_wait_and_click_EC("id", "dayradio") elif staut == 1: self.getElem.find_element_wait_and_click_EC("id", "weekradio") elif staut == 2: self.getElem.find_element_wait_and_click_EC("id", "monthRadio") else: self.getElem.find_element_wait_and_click_EC("id", "yearRadio") u'''选择存储位置 parameter: - stauts:value属性值1代表本地备份2代表ftp备份 ''' def select_storage_location(self, stauts): staut = self.cnEn.is_float(stauts) self.frameElem.from_frame_to_otherFrame("rigthFrame") selem = self.getElem.find_element_with_wait_EC("id", "backUpLocation") self.selectElem.select_element_by_value(selem, staut) u'''填写远程路径 parameter: - path:远程路径 ''' def set_remote_path(self, path): pat = self.cnEn.is_float(path) self.frameElem.from_frame_to_otherFrame("rigthFrame") self.getElem.find_element_wait_and_clear_EC("id", "path") self.getElem.find_element_wait_and_sendkeys("id", "path", pat) u'''填写服务器IP parameter: - ip:服务器IP ''' def set_ftpip(self, ip): self.frameElem.from_frame_to_otherFrame("rigthFrame") self.getElem.find_element_wait_and_clear_EC("id", "ip") self.getElem.find_element_wait_and_sendkeys("id", "ip", ip) u'''填写连接用户名 parameter: - minute:连接用户名 ''' def set_name(self, name): nam = self.cnEn.is_float(name) self.frameElem.from_frame_to_otherFrame("rigthFrame") self.getElem.find_element_wait_and_clear_EC("id", "username") self.getElem.find_element_wait_and_sendkeys("id", "username", nam) u'''填写连接口令 parameter: - password:连接口令 ''' def set_password(self, password): pwd = self.cnEn.is_float(password) self.frameElem.from_frame_to_otherFrame("rigthFrame") self.getElem.find_element_wait_and_clear_EC("id", "password") self.getElem.find_element_wait_and_sendkeys("id", "password", pwd) u'''填写确认口令 parameter: - minute:分钟 ''' def set_password_again(self, password): pwd = self.cnEn.is_float(password) self.frameElem.from_frame_to_otherFrame("rigthFrame") self.getElem.find_element_wait_and_clear_EC("id", "passwordAgain") self.getElem.find_element_wait_and_sendkeys("id", "passwordAgain", pwd) u'''点击立刻备份''' def click_backup_immediately(self): self.frameElem.from_frame_to_otherFrame("rigthFrame") self.getElem.find_element_wait_and_click_EC("id", "back_up_now") u'''点击保存''' def click_save(self): self.frameElem.from_frame_to_otherFrame("rigthFrame") self.getElem.find_element_wait_and_click_EC("id", "back_up_save") u'''选择系统备份还原或者查看备份文件 parameter: - staut:0代表系统备份还原,1代表查看备份文件 ''' def select_backup_menu(self, staut): self.frameElem.from_frame_to_otherFrame("rigthFrame") if staut == 0: self.getElem.find_element_wait_and_click_EC("id", "tit1") elif staut == 1: self.getElem.find_element_wait_and_click_EC("id", "tit2") u'''点击操作列操作 Parameters: - filename:文件名称 - value:1代表下载,2代表删除,3代表还原 ''' def click_operat_file(self,filename, value): self.frameElem.from_frame_to_otherFrame("rigthFrame") row = 1 selems = self.driver.find_elements_by_name("file") for selem in selems: idvalue = selem.get_attribute('id') row = row +1 if idvalue == filename: xpath = ".//*[@id='content_rt02']/div/table/tbody/tr[" + str(row) + "]/td[7]/input[" + str(value) + "]" self.getElem.find_element_wait_and_click_EC("xpath", xpath) time.sleep(1) u'''下载上传完成后点击操作列操作 Parameters: - filename:文件名称 - value:1代表下载,2代表删除,3代表还原 ''' def upload_click_operat_file(self,filename, value): self.frameElem.from_frame_to_otherFrame("rigthFrame") row = 1 filenames = ""+filename[:-6] + ""+filename+"" selems = self.driver.find_elements_by_name("file") for selem in selems: idvalue = selem.get_attribute('id') row = row +1 if idvalue == filename or idvalue == filenames: xpath = ".//*[@id='content_rt02']/div/table/tbody/tr[" + str(row) + "]/td[7]/input[" + str(value) + "]" self.getElem.find_element_wait_and_click_EC("xpath", xpath) time.sleep(1) u'''点击还原系统配置''' def click_restore_sys_config(self): self.frameElem.from_frame_to_otherFrame("rigthFrame") self.getElem.find_element_wait_and_click_EC("id", "deleConfig1") u'''点击清空数据库''' def click_reset_database(self): self.frameElem.from_frame_to_otherFrame("rigthFrame") self.getElem.find_element_wait_and_click_EC("id", "resetDataBase1") u'''点击清空数据库''' def click_reset_audit(self): self.frameElem.from_frame_to_otherFrame("rigthFrame") self.getElem.find_element_wait_and_click_EC("id", "delAuditFile1") u'''填写syslogip parameter: - syslogip:syslogip ''' def set_syslogip(self, syslogip): ip = self.cnEn.is_float(syslogip) self.frameElem.from_frame_to_otherFrame("rigthFrame") self.getElem.find_element_wait_and_clear_EC("id", "host") self.getElem.find_element_wait_and_sendkeys("id", "host", ip) u'''填写syslog端口 parameter: - port:syslog端口 ''' def set_port(self, port): sysport = self.cnEn.is_float(port) self.frameElem.from_frame_to_otherFrame("rigthFrame") self.getElem.find_element_wait_and_clear_EC("id", "port") self.getElem.find_element_wait_and_sendkeys("id", "port", sysport) u'''点击syslog保存''' def click_syslog_save(self): self.frameElem.from_frame_to_otherFrame("rigthFrame") self.getElem.find_element_wait_and_click_EC("id", "save_syslog") u'''获取syslogip值''' def get_syslog_port(self): self.frameElem.from_frame_to_otherFrame("rigthFrame") selem = self.getElem.find_element_with_wait_EC("id", "port") value = selem.get_attribute("value") return value u'''获取文件名称''' def get_file_name(self): self.frameElem.from_frame_to_otherFrame("rigthFrame") selem = self.getElem.find_element_with_wait_EC("xpath", ".//*[@id='content_rt02']/div/table/tbody/tr[2]") value = selem.get_attribute('id') return value u'''编辑syslog parameter: - ip:syslogip - port:端口 ''' def set_syslog(self, port, ip='no'): self.comsuit.switch_to_moudle(u'系统配置', u'关联服务') self.command.click_left_rule(1) if ip != 'no': self.set_syslogip(ip) self.set_port(port) self.click_syslog_save() self.frameElem.switch_to_content() self.cmf.click_msg_button(1) u'''检验syslog端口是否为备份之前信息 parameter: - port:端口 - checklog:检验信息 ''' def check_syslog_content(self, port, checklog): self.comsuit.switch_to_moudle(u'系统配置', u'关联服务') self.command.click_left_rule(1) elemText = self.get_syslog_port() strdata3 = self.cnEn.is_float(port) if elemText == strdata3: self.log.log_detail(checklog, True) else: self.log.log_detail(checklog, False) u'''校验用户或者角色信息 Parameters: - namevalue:传入的要被查询名称 - name:表格列的name属性 - checklog:日志信息 return:定位该名称位于第几行 ''' def check_content(self,namevalue, name, checklog): row = self.cmf.find_row_by_name(namevalue, name) if row != 0: self.log.log_detail(checklog, True) else: self.log.log_detail(checklog, False) u'''填写用户信息 parameters: account : 用户账号 name : 用户名称 pwd : 用户密码 agpwd : 确认密码 ''' def set_user_info(self, account, name, pwd, agpwd): self.comsuit.switch_to_moudle(u"运维管理", u"用户") self.frameElem.from_frame_to_otherFrame("mainFrame") self.userElem.add_button() self.userElem.set_user_account(account) self.userElem.set_user_name(name) self.userElem.set_user_pwd(pwd) self.userElem.set_user_enquire_pwd(agpwd) self.userElem.save_button() self.frameElem.switch_to_content() self.cmf.click_login_msg_button() u'''点击用户操作列对应的删除按钮 parameters: - account : 用户账号 ''' def del_user_info(self, account): self.comsuit.switch_to_moudle(u"运维管理", u"用户") self.frameElem.from_frame_to_otherFrame("mainFrame") self.userElem.operate_delete(account) self.frameElem.switch_to_content() self.cmf.click_msg_button(1) self.frameElem.switch_to_content() self.cmf.click_msg_button(1) u'''点击备份还原配置文件的删除 parameters: - filename : 文件名称 - loginfo : 日志信息 ''' def del_backup_file(self, filename, loginfo): self.click_operat_file(filename, 2) self.frameElem.switch_to_content() self.cmf.click_msg_button(1) self.frameElem.switch_to_content() self.cmf.click_msg_button(1) time.sleep(1) self.log.log_detail(loginfo, True) u'''点击角色操作列对应的删除按钮 parameters: - rolename : 角色名称 ''' def del_role_info(self, rolename): self.comsuit.switch_to_moudle(u"角色管理", u"角色定义") self.frameElem.from_frame_to_otherFrame("mainFrame") self.role.delete(rolename) self.frameElem.switch_to_content() self.cmf.click_msg_button(1) u'''执行还原操作 parameters: - filename :执行还原的文件名称 - loginfo :日志信息 - stauts :状态1代表执行操作列按钮2代表进行上传后操作列按钮 ''' def execute_restore(self, filename, loginfo, stauts=1): self.comsuit.switch_to_moudle(u'系统配置', u'备份还原') self.command.click_left_rule(0) self.select_backup_menu(1) if stauts == 1: self.click_operat_file(filename, 3) elif stauts == 2: self.upload_click_operat_file(filename, 3) time.sleep(5) self.frameElem.switch_to_content() self.getElem.find_element_with_wait_EC("classname", "aui_state_highlight") time.sleep(3) self.cmf.click_msg_button(1) self.log.log_detail(loginfo, True) u'''配置备份信息 parameters: - data :数据文件集 - backMsg :保存成功的弹出框信息 - flag :无检查点的测试项标识,如果为True说明通过 ''' def config_backup(self, data, backMsg, flag): self.comsuit.switch_to_moudle(u'系统配置', u'备份还原') self.command.click_left_rule(0) self.check_config(data[12]) self.select_backup_mode(data[4]) self.backup_time(data[5], data[6]) self.select_storage_location(data[7]) self.click_save() time.sleep(3) self.frameElem.switch_to_content() self.cmf.test_win_check_point("xpath", backMsg, data, flag) self.click_backup_immediately() time.sleep(2) self.frameElem.switch_to_content() self.cmf.click_msg_button(1) self.log.log_detail(data[9], True) self.select_backup_menu(1) u'''填写角色信息 Parameters: - rolename :角色名称 - shortname :名称简写 ''' def set_role_info(self, rolename, shortname): self.comsuit.switch_to_moudle(u"角色管理", u"角色定义") self.frameElem.from_frame_to_otherFrame("mainFrame") self.role.add() self.role.edit_rolename(rolename) self.role.edit_shortname(shortname) self.role.select_sysrole() self.role.save_button() self.frameElem.switch_to_content() self.cmf.click_msg_button(1) u'''执行日期 Parameters: - type :t代表今天,c代表clear,q代表确定,默认选择今天 - backuptime :执行日期设定的日期,格式为2016-9-7 11:42:42 ''' def backup_time(self, types, backuptime): self.frameElem.from_frame_to_otherFrame("rigthFrame") # 时间控件的fram的xpath fxpath = "//iframe[@hidefocus='true']" # 日期控件table的xpath路径 txpath = "/html/body/div/div[3]/table" status = self.cnEn.is_float('1') type = self.cnEn.is_float(types) # 转成datetime对象 date = datetime(*xldate_as_tuple(backuptime, 0)) end = date.strftime('%Y-%m-%d %H:%M:%S') self.option_time("backUpTime", fxpath, status, type, txpath, end) u'''操作时间控件 Parameters: - wdateId:日期控件input控件的ID值 - fxpath:日期控件frame的xpath路径 - status: 日期控件是否有时分秒 - txpath:日期控件table的xpath路径 - time:设定的日期,格式为2016-9-7 11:42:42 - type:t代表今天,c代表clear,q代表确定,默认选择今天 ''' def option_time(self,wdateId,fxpath,status='0',type='t',txpath = None,dtime = None): self.getElem.find_element_wait_and_click("id",wdateId) frame = self.driver.find_element_by_xpath(fxpath) self.driver.switch_to_frame(frame) if type == 't': self.getElem.find_element_wait_and_click("id","dpTodayInput") elif type == 'c': self.getElem.find_element_wait_and_click("id","dpClearInput") elif type == 'q': if dtime is not None: list = dtime.split() ymdList = list[0].split("-") hmsList = list[1].split(":") #年 tYear = ymdList[0] #月 tMon = ymdList[1] #日 tDay = ymdList[2] #时 tHour = hmsList[0] #分 tMin = hmsList[1] #秒 tSen = hmsList[2] dTitle = self.getElem.find_element_with_wait("id","dpTitle").find_elements_by_tag_name("input") #设定月 dTitle[0].clear() dTitle[0].send_keys(tMon) #设定年 dTitle[1].clear() dTitle[1].send_keys(tYear) self.frameElem.from_frame_to_otherFrame("rigthFrame") self.getElem.find_element_wait_and_click_EC("id", "backUpTime") self.driver.switch_to_frame(frame) if txpath is not None: iStatus = False for itr in range(7): if itr != 0: for itd in range(7): ct = self.tableElem.get_table_cell_text(txpath,itr,itd)[0] #排除第一行大于7的 if itr == 1 and int(ct) > 7: continue #排除倒数第二行小于15的 if itr == 5 and int(ct) < 15: continue #排除最后一行小于15的 if itr == 6 and int(ct) < 15: continue #如果跟给定的日期一致,点击日期 if int(ct) == int(tDay): self.tableElem.get_table_cell_text(txpath,itr,itd)[1].click() iStatus = True break #找到日期后跳出循环 if iStatus: break #日期控件是否有时分秒 if status == '1': dTime = self.getElem.find_element_with_wait("id","dpTime").find_elements_by_tag_name("input") #设定小时 dTime[0].clear() dTime[0].send_keys(tHour) #设定分钟 dTime[2].clear() dTime[2].send_keys(tMin) #设定秒 dTime[4].clear() dTime[4].send_keys(tSen) self.getElem.find_element_wait_and_click("id","dpOkInput") u'''上传操作 parameters: - filename :执行还原的文件名称 - loginfo :日志信息 ''' def backup_file_upload(self, filename, loginfo): self.frameElem.from_frame_to_otherFrame("rigthFrame") value = "C:\Users\Administrator\Downloads\\" + filename+"" self.getElem.find_element_wait_and_sendkeys("id", "backUpFile", value) time.sleep(2) self.getElem.find_element_wait_and_click_EC("id", "up_file") self.frameElem.switch_to_content() self.cmf.click_msg_button(1) time.sleep(1) self.log.log_detail(loginfo, True)
class testResourceAccount(object): def __init__(self, driver): self.driver = driver self.log = log() self.cmf = commonFun(driver) self.frameElem = frameElement(driver) self.testrole = testRole(driver) self.linux = LinuxResource(driver) self.account = Accountmgr(driver) self.role = Role(driver) self.data = dataFileName() u'''添加和编辑资源账号''' def add_edit_resource_account_001(self, dataPath, sheetName): #日志开始记录 self.log.log_start("add_edit_resource_account") #获取添加资源账号测试数据 accountData = self.data.get_data(dataPath, sheetName) #保存成功的弹出框 accountMsg = self.testrole.popup() #无检查点的测试项标识,如果为True说明通过 flag = False for dataRow in range(len(accountData)): data = accountData[dataRow] try: #如果不是第一行标题,则读取数据 if dataRow != 0: #点击账号管理 if dataRow == 1: self.account.click_account_manage_button(data[2]) self.linux.add_edit_resource_account( data[3], data[4], data[5], data[6], data[7]) self.frameElem.switch_to_content() self.cmf.test_win_check_point("xpath", accountMsg, data, flag) self.cmf.back() except Exception as e: print("add_edit_resource_account fail:" + str(e)) self.cmf.back() self.log.log_end("add_edit_resource_account") u'''查询资源账号''' def query_resource_account_002(self, dataPath, sheetName): #日志开始记录 self.log.log_start("query_resource_account") #获取查询资源账号测试数据 accountData = self.data.get_data(dataPath, sheetName) for dataRow in range(len(accountData)): data = accountData[dataRow] try: #如果不是第一行标题,则读取数据 if dataRow != 0: if dataRow == 1: self.account.click_account_manage_button(data[1]) self.account.query_name(data[2]) if dataRow == 2 or dataRow == 3: self.account.is_authorize(data[3]) if dataRow == 4: self.account.query_name(data[2]) self.account.is_authorize(data[3]) self.account.click_account_query() self.role.click_reset() self.log.log_detail(data[0], True) except Exception as e: print("query_resource_account fail:" + str(e)) self.cmf.back() self.log.log_end("query_resource_account") u'''检验资源账号''' def check_resource_account_003(self, dataPath, sheetName): #日志开始记录 self.log.log_start("check_resource_account") #获取检验资源测试数据 resourceData = self.data.get_data(dataPath, sheetName) #保存成功的弹出框 resourceMsg = self.testrole.popup() #无检查点的测试项标识,如果为True说明通过 flag = False for dataRow in range(len(resourceData)): data = resourceData[dataRow] try: #如果不是第一行标题,则读取数据 if dataRow != 0: if dataRow == 1: self.account.click_account_manage_button(data[2]) self.account.click_account_add_edit_button() self.linux.check_resource_account(data[3], data[4], data[5], data[6]) self.frameElem.switch_to_content() self.cmf.test_win_check_point("xpath", resourceMsg, data, flag) except Exception as e: print("check_resource_account fail:" + str(e)) self.cmf.back() self.cmf.back() self.log.log_end("check_resource_account") u'''删除资源账号''' def del_resource_account_004(self, dataPath, sheetName): #日志开始记录 self.log.log_start("del_resource_account") #获取删除资源账号测试数据 accountData = self.data.get_data(dataPath, sheetName) #保存成功的弹出框 accountMsg = self.testrole.popup() #无检查点的测试项标识,如果为True说明通过 flag = False for dataRow in range(len(accountData)): data = accountData[dataRow] try: #如果不是第一行标题,则读取数据 if dataRow != 0: self.account.click_account_manage_button(data[2]) self.account.click_account_del(data[3]) self.frameElem.switch_to_content() self.cmf.test_win_check_point("xpath", accountMsg, data, flag) self.cmf.click_msg_button(1) except Exception as e: print("del_resource_account fail:" + str(e)) self.cmf.back() self.log.log_end("del_resource_account") u'''全选删除资源账号''' def bulkdel_resource_account_005(self, dataPath, sheetName): #日志开始记录 self.log.log_start("bulkdel_resource_account") #获取全选删除资源账号测试数据 accountData = self.data.get_data(dataPath, sheetName) #保存成功的弹出框 accountMsg = self.testrole.popup() #无检查点的测试项标识,如果为True说明通过 flag = False for dataRow in range(len(accountData)): data = accountData[dataRow] try: #如果不是第一行标题,则读取数据 if dataRow != 0: self.account.click_account_manage_button(data[2]) self.cmf.check_all() self.cmf.bulkdel("delete_account") self.frameElem.switch_to_content() self.cmf.test_win_check_point("xpath", accountMsg, data, flag) self.cmf.click_msg_button(1) except Exception as e: print("bulkdel_resource_account failure:" + str(e)) self.cmf.back() self.log.log_end("bulkdel_resource_account")
class testLinuxResource(object): def __init__(self, driver): self.driver = driver self.log = log() self.cmf = commonFun(driver) self.frameElem = frameElement(driver) self.testrole = testRole(driver) self.resource = Resource(driver) self.linux = LinuxResource(driver) self.role = Role(driver) self.data = dataFileName() u'''获取测试数据 Parameters: - sheetname:sheet名称 return:表格数据 ''' def get_resource_table_data(self, sheetname): dataFile = dataFileName() resourcePath = dataFile.get_linux_resource_test_data_url() resourceData = dataFile.get_data(resourcePath, sheetname) return resourceData u'''添加linux资源''' def add_linux_resource_001(self): #日志开始记录 self.log.log_start("add_resource") #获取添加资源测试数据 resourceData = self.get_resource_table_data("add_linux_resource") #保存成功的弹出框 resourceMsg = self.testrole.popup() #无检查点的测试项标识,如果为True说明通过 flag = False for dataRow in range(len(resourceData)): data = resourceData[dataRow] try: #如果不是第一行标题,则读取数据 if dataRow != 0: self.resource.click_add_edit_button() self.resource.select_resource_type(data[2]) self.linux.add_edit_linux_resource(data) self.frameElem.switch_to_content() self.cmf.test_win_check_point("xpath", resourceMsg, data, flag) self.cmf.back() except Exception as e: print("add_resource fail:" + str(e)) self.log.log_end("add_resource") u'''编辑linux资源''' def edit_linux_resource_002(self): #日志开始记录 self.log.log_start("edit_resource") #获取添加资源测试数据 resourceData = self.get_resource_table_data("edit_linux_resource") #保存成功的弹出框 resourceMsg = self.testrole.popup() #无检查点的测试项标识,如果为True说明通过 flag = False for dataRow in range(len(resourceData)): data = resourceData[dataRow] try: #如果不是第一行标题,则读取数据 if dataRow != 0: self.resource.click_add_edit_button(data[2]) self.linux.add_edit_linux_resource(data) self.frameElem.switch_to_content() self.cmf.test_win_check_point("xpath", resourceMsg, data, flag) self.cmf.back() except Exception as e: print("edit_resource fail:" + str(e)) self.log.log_end("edit_resource") u'''检验linux资源''' def check_linux_resource_003(self): #日志开始记录 self.log.log_start("check_linux_resource") #获取检验资源测试数据 resourceData = self.get_resource_table_data("check_linux_resource") #保存成功的弹出框 resourceMsg = self.testrole.popup() #无检查点的测试项标识,如果为True说明通过 flag = False #点击添加按钮 self.resource.click_add_edit_button() #选择debian类型 self.resource.select_resource_type("Debian") for dataRow in range(len(resourceData)): data = resourceData[dataRow] try: #如果不是第一行标题,则读取数据 if dataRow != 0: self.linux.check_linux_resource(dataRow, data) self.frameElem.switch_to_content() self.cmf.test_win_check_point("xpath", resourceMsg, data, flag) except Exception as e: print("check_linux_resource fail:" + str(e)) self.cmf.back() self.log.log_end("check_linux_resource") u'''查询资源''' def query_resource_004(self, dataPath, sheetName): #日志开始记录 self.log.log_start("query_resource") #获取添加资源测试数据 resourceData = self.data.get_data(dataPath, sheetName) for dataRow in range(len(resourceData)): data = resourceData[dataRow] try: #如果不是第一行标题,则读取数据 if dataRow != 0: if dataRow == 1: self.resource.query_depart(data[1]) if dataRow == 2: self.resource.click_child_node() self.resource.query_depart(data[1]) if dataRow == 3: self.resource.query_type(data[2], data[3], data[4]) if dataRow >= 4 and dataRow <= 7: self.resource.query_ip_rename(data[5]) if dataRow == 8: self.resource.query_type(data[2], data[3], data[4]) self.resource.query_ip_rename(data[5]) self.resource.click_resource_query() self.role.click_reset() self.log.log_detail(data[0], True) except Exception as e: print("query_resource fail:" + str(e)) self.resource.click_resource_query() self.log.log_end("query_resource") u'''删除资源''' def del_resource_005(self, dataPath, sheetName): #日志开始记录 self.log.log_start("del_resource") #获取添加资源测试数据 resourceData = self.data.get_data(dataPath, sheetName) #保存成功的弹出框 resourceMsg = self.testrole.popup() #无检查点的测试项标识,如果为True说明通过 flag = False for dataRow in range(len(resourceData)): data = resourceData[dataRow] try: #如果不是第一行标题,则读取数据 if dataRow != 0: self.resource.click_del_button(data[2]) self.frameElem.switch_to_content() self.cmf.test_win_check_point("xpath", resourceMsg, data, flag) self.cmf.click_msg_button(1) except Exception as e: print("del_resource fail:" + str(e)) self.log.log_end("del_resource") u'''全选删除资源''' def bulkdel_resource_006(self): #日志开始记录 self.log.log_start("bulkdel_resource") #获取添加资源测试数据 resourceData = self.get_resource_table_data("bulkdel_resource") #保存成功的弹出框 resourceMsg = self.testrole.popup() #无检查点的测试项标识,如果为True说明通过 flag = False for dataRow in range(len(resourceData)): data = resourceData[dataRow] try: #如果不是第一行标题,则读取数据 if dataRow != 0: self.cmf.check_all() self.cmf.bulkdel("delete_resource") self.frameElem.switch_to_content() self.cmf.test_win_check_point("xpath", resourceMsg, data, flag) self.cmf.click_msg_button(1) except Exception as e: print("bulkdel_resource failure:" + str(e)) self.log.log_end("bulkdel_resource")
class Backuprestore(object): def __init__(self, driver): self.driver = driver self.getElem = getElement(driver) self.selectElem = selectElement(driver) self.frameElem = frameElement(driver) self.cmf = commonFun(driver) self.cnEn = cnEncode() self.comsuit = CommonSuiteData(self.driver) self.command = CommandRule(self.driver) self.tableElem = tableElement(driver) self.log = log() self.userElem = UserPage(self.driver) self.role = Role(driver) u'''点击自动备份开关''' def auto_backup_switch(self): self.frameElem.from_frame_to_otherFrame("rigthFrame") self.getElem.find_element_wait_and_click_EC("id", "btn_qh") u'''勾选系统配置''' def check_sys_config(self): self.frameElem.from_frame_to_otherFrame("rigthFrame") values = self.check_common() if values[0] == None: self.getElem.find_element_wait_and_click_EC("id", "configBackUp") if values[1] != None: self.getElem.find_element_wait_and_click_EC("id", "databaseBackUp") u'''勾选实体配置''' def check_entity_config(self): self.frameElem.from_frame_to_otherFrame("rigthFrame") values = self.check_common() if values[0] != None: self.getElem.find_element_wait_and_click_EC("id", "configBackUp") if values[1] == None: self.getElem.find_element_wait_and_click_EC("id", "databaseBackUp") u'''勾选实体配置和系统配置''' def check_all_config(self): self.frameElem.from_frame_to_otherFrame("rigthFrame") values = self.check_common() if values[0] == None: self.getElem.find_element_wait_and_click_EC("id", "configBackUp") if values[1] == None: self.getElem.find_element_wait_and_click_EC("id", "databaseBackUp") u'''勾选实体或者系统配置公共方法''' def check_common(self): self.frameElem.from_frame_to_otherFrame("rigthFrame") selem = self.getElem.find_element_with_wait_EC("id", "configBackUp") value = selem.get_attribute('checked') selemdb = self.getElem.find_element_with_wait_EC( "id", "databaseBackUp") valuedb = selemdb.get_attribute('checked') list = [value, valuedb] return list u'''勾选实体或者系统配置 parameter: - stauts:勾选配置信息1代表系统配置2代表实体配置,3代表系统配置和实体配置 ''' def check_config(self, stauts): staut = self.cnEn.is_float(stauts) if staut == '1': self.check_sys_config() elif staut == '2': self.check_entity_config() else: self.check_all_config() u'''选择备份方式 parameter: - stauts:value属性值,1代表一次性执行,2代表周期性执行 ''' def select_backup_mode(self, stauts): staut = self.cnEn.is_float(stauts) self.frameElem.from_frame_to_otherFrame("rigthFrame") selem = self.getElem.find_element_with_wait_EC("id", "backUpType") self.selectElem.select_element_by_value(selem, staut) u'''选择执行小时 parameter: - stauts:value属性值 ''' def select_hour(self, stauts): staut = self.cnEn.is_float(stauts) self.frameElem.from_frame_to_otherFrame("rigthFrame") selem = self.getElem.find_element_with_wait_EC("id", "startHour") self.selectElem.select_element_by_value(selem, staut) u'''填写分钟 parameter: - minute:分钟 ''' def set_minute(self, minute): minu = self.cnEn.is_float(minute) self.frameElem.from_frame_to_otherFrame("rigthFrame") self.getElem.find_element_wait_and_clear_EC("id", "startMinute") self.getElem.find_element_wait_and_sendkeys("id", "startMinute", minu) u'''选择执行方式 parameter: - staut:0代表按天,1代表按周,2代表按月,3代表按年 ''' def select_execu_mode(self, staut): self.frameElem.from_frame_to_otherFrame("rigthFrame") if staut == 0: self.getElem.find_element_wait_and_click_EC("id", "dayradio") elif staut == 1: self.getElem.find_element_wait_and_click_EC("id", "weekradio") elif staut == 2: self.getElem.find_element_wait_and_click_EC("id", "monthRadio") else: self.getElem.find_element_wait_and_click_EC("id", "yearRadio") u'''选择存储位置 parameter: - stauts:value属性值1代表本地备份2代表ftp备份 ''' def select_storage_location(self, stauts): staut = self.cnEn.is_float(stauts) self.frameElem.from_frame_to_otherFrame("rigthFrame") selem = self.getElem.find_element_with_wait_EC("id", "backUpLocation") self.selectElem.select_element_by_value(selem, staut) u'''填写远程路径 parameter: - path:远程路径 ''' def set_remote_path(self, path): pat = self.cnEn.is_float(path) self.frameElem.from_frame_to_otherFrame("rigthFrame") self.getElem.find_element_wait_and_clear_EC("id", "path") self.getElem.find_element_wait_and_sendkeys("id", "path", pat) u'''填写服务器IP parameter: - ip:服务器IP ''' def set_ftpip(self, ip): self.frameElem.from_frame_to_otherFrame("rigthFrame") self.getElem.find_element_wait_and_clear_EC("id", "ip") self.getElem.find_element_wait_and_sendkeys("id", "ip", ip) u'''填写连接用户名 parameter: - minute:连接用户名 ''' def set_name(self, name): nam = self.cnEn.is_float(name) self.frameElem.from_frame_to_otherFrame("rigthFrame") self.getElem.find_element_wait_and_clear_EC("id", "username") self.getElem.find_element_wait_and_sendkeys("id", "username", nam) u'''填写连接口令 parameter: - password:连接口令 ''' def set_password(self, password): pwd = self.cnEn.is_float(password) self.frameElem.from_frame_to_otherFrame("rigthFrame") self.getElem.find_element_wait_and_clear_EC("id", "password") self.getElem.find_element_wait_and_sendkeys("id", "password", pwd) u'''填写确认口令 parameter: - minute:分钟 ''' def set_password_again(self, password): pwd = self.cnEn.is_float(password) self.frameElem.from_frame_to_otherFrame("rigthFrame") self.getElem.find_element_wait_and_clear_EC("id", "passwordAgain") self.getElem.find_element_wait_and_sendkeys("id", "passwordAgain", pwd) u'''点击立刻备份''' def click_backup_immediately(self): self.frameElem.from_frame_to_otherFrame("rigthFrame") self.getElem.find_element_wait_and_click_EC("id", "back_up_now") u'''点击保存''' def click_save(self): self.frameElem.from_frame_to_otherFrame("rigthFrame") self.getElem.find_element_wait_and_click_EC("id", "back_up_save") u'''选择系统备份还原或者查看备份文件 parameter: - staut:0代表系统备份还原,1代表查看备份文件 ''' def select_backup_menu(self, staut): self.frameElem.from_frame_to_otherFrame("rigthFrame") if staut == 0: self.getElem.find_element_wait_and_click_EC("id", "tit1") elif staut == 1: self.getElem.find_element_wait_and_click_EC("id", "tit2") u'''点击操作列操作 Parameters: - filename:文件名称 - value:1代表下载,2代表删除,3代表还原 ''' def click_operat_file(self, filename, value): self.frameElem.from_frame_to_otherFrame("rigthFrame") row = 1 selems = self.driver.find_elements_by_name("file") for selem in selems: idvalue = selem.get_attribute('id') row = row + 1 if idvalue == filename: xpath = ".//*[@id='content_rt02']/div/table/tbody/tr[" + str( row) + "]/td[7]/input[" + str(value) + "]" self.getElem.find_element_wait_and_click_EC("xpath", xpath) time.sleep(1) u'''下载上传完成后点击操作列操作 Parameters: - filename:文件名称 - value:1代表下载,2代表删除,3代表还原 ''' def upload_click_operat_file(self, filename, value): self.frameElem.from_frame_to_otherFrame("rigthFrame") row = 1 filenames = "" + filename[:-6] + "" + filename + "" selems = self.driver.find_elements_by_name("file") for selem in selems: idvalue = selem.get_attribute('id') row = row + 1 if idvalue == filename or idvalue == filenames: xpath = ".//*[@id='content_rt02']/div/table/tbody/tr[" + str( row) + "]/td[7]/input[" + str(value) + "]" self.getElem.find_element_wait_and_click_EC("xpath", xpath) time.sleep(1) u'''点击还原系统配置''' def click_restore_sys_config(self): self.frameElem.from_frame_to_otherFrame("rigthFrame") self.getElem.find_element_wait_and_click_EC("id", "deleConfig1") u'''点击清空数据库''' def click_reset_database(self): self.frameElem.from_frame_to_otherFrame("rigthFrame") self.getElem.find_element_wait_and_click_EC("id", "resetDataBase1") u'''点击清空数据库''' def click_reset_audit(self): self.frameElem.from_frame_to_otherFrame("rigthFrame") self.getElem.find_element_wait_and_click_EC("id", "delAuditFile1") u'''填写syslogip parameter: - syslogip:syslogip ''' def set_syslogip(self, syslogip): ip = self.cnEn.is_float(syslogip) self.frameElem.from_frame_to_otherFrame("rigthFrame") self.getElem.find_element_wait_and_clear_EC("id", "host") self.getElem.find_element_wait_and_sendkeys("id", "host", ip) u'''填写syslog端口 parameter: - port:syslog端口 ''' def set_port(self, port): sysport = self.cnEn.is_float(port) self.frameElem.from_frame_to_otherFrame("rigthFrame") self.getElem.find_element_wait_and_clear_EC("id", "port") self.getElem.find_element_wait_and_sendkeys("id", "port", sysport) u'''点击syslog保存''' def click_syslog_save(self): self.frameElem.from_frame_to_otherFrame("rigthFrame") self.getElem.find_element_wait_and_click_EC("id", "save_syslog") u'''获取syslogip值''' def get_syslog_port(self): self.frameElem.from_frame_to_otherFrame("rigthFrame") selem = self.getElem.find_element_with_wait_EC("id", "port") value = selem.get_attribute("value") return value u'''获取文件名称''' def get_file_name(self): self.frameElem.from_frame_to_otherFrame("rigthFrame") selem = self.getElem.find_element_with_wait_EC( "xpath", ".//*[@id='content_rt02']/div/table/tbody/tr[2]") value = selem.get_attribute('id') return value u'''编辑syslog parameter: - ip:syslogip - port:端口 ''' def set_syslog(self, port, ip='no'): self.comsuit.switch_to_moudle(u'系统配置', u'关联服务') self.command.click_left_rule(1) if ip != 'no': self.set_syslogip(ip) self.set_port(port) self.click_syslog_save() self.frameElem.switch_to_content() self.cmf.click_msg_button(1) u'''检验syslog端口是否为备份之前信息 parameter: - port:端口 - checklog:检验信息 ''' def check_syslog_content(self, port, checklog): self.comsuit.switch_to_moudle(u'系统配置', u'关联服务') self.command.click_left_rule(1) elemText = self.get_syslog_port() strdata3 = self.cnEn.is_float(port) if elemText == strdata3: self.log.log_detail(checklog, True) else: self.log.log_detail(checklog, False) u'''校验用户或者角色信息 Parameters: - namevalue:传入的要被查询名称 - name:表格列的name属性 - checklog:日志信息 return:定位该名称位于第几行 ''' def check_content(self, namevalue, name, checklog): row = self.cmf.find_row_by_name(namevalue, name) if row != 0: self.log.log_detail(checklog, True) else: self.log.log_detail(checklog, False) u'''填写用户信息 parameters: account : 用户账号 name : 用户名称 pwd : 用户密码 agpwd : 确认密码 ''' def set_user_info(self, account, name, pwd, agpwd): self.comsuit.switch_to_moudle(u"运维管理", u"用户") self.frameElem.from_frame_to_otherFrame("mainFrame") self.userElem.add_button() self.userElem.set_user_account(account) self.userElem.set_user_name(name) self.userElem.set_user_pwd(pwd) self.userElem.set_user_enquire_pwd(agpwd) self.userElem.save_button() self.frameElem.switch_to_content() self.cmf.click_login_msg_button() u'''点击用户操作列对应的删除按钮 parameters: - account : 用户账号 ''' def del_user_info(self, account): self.comsuit.switch_to_moudle(u"运维管理", u"用户") self.frameElem.from_frame_to_otherFrame("mainFrame") self.userElem.operate_delete(account) self.frameElem.switch_to_content() self.cmf.click_msg_button(1) self.frameElem.switch_to_content() self.cmf.click_msg_button(1) u'''点击备份还原配置文件的删除 parameters: - filename : 文件名称 - loginfo : 日志信息 ''' def del_backup_file(self, filename, loginfo): self.click_operat_file(filename, 2) self.frameElem.switch_to_content() self.cmf.click_msg_button(1) self.frameElem.switch_to_content() self.cmf.click_msg_button(1) time.sleep(1) self.log.log_detail(loginfo, True) u'''点击角色操作列对应的删除按钮 parameters: - rolename : 角色名称 ''' def del_role_info(self, rolename): self.comsuit.switch_to_moudle(u"角色管理", u"角色定义") self.frameElem.from_frame_to_otherFrame("mainFrame") self.role.delete(rolename) self.frameElem.switch_to_content() self.cmf.click_msg_button(1) u'''执行还原操作 parameters: - filename :执行还原的文件名称 - loginfo :日志信息 - stauts :状态1代表执行操作列按钮2代表进行上传后操作列按钮 ''' def execute_restore(self, filename, loginfo, stauts=1): self.comsuit.switch_to_moudle(u'系统配置', u'备份还原') self.command.click_left_rule(0) self.select_backup_menu(1) if stauts == 1: self.click_operat_file(filename, 3) elif stauts == 2: self.upload_click_operat_file(filename, 3) time.sleep(5) self.frameElem.switch_to_content() self.getElem.find_element_with_wait_EC("classname", "aui_state_highlight") time.sleep(3) self.cmf.click_msg_button(1) self.log.log_detail(loginfo, True) u'''配置备份信息 parameters: - data :数据文件集 - backMsg :保存成功的弹出框信息 - flag :无检查点的测试项标识,如果为True说明通过 ''' def config_backup(self, data, backMsg, flag): self.comsuit.switch_to_moudle(u'系统配置', u'备份还原') self.command.click_left_rule(0) self.check_config(data[12]) self.select_backup_mode(data[4]) self.backup_time(data[5], data[6]) self.select_storage_location(data[7]) self.click_save() time.sleep(3) self.frameElem.switch_to_content() self.cmf.test_win_check_point("xpath", backMsg, data, flag) self.click_backup_immediately() time.sleep(2) self.frameElem.switch_to_content() self.cmf.click_msg_button(1) self.log.log_detail(data[9], True) self.select_backup_menu(1) u'''填写角色信息 Parameters: - rolename :角色名称 - shortname :名称简写 ''' def set_role_info(self, rolename, shortname): self.comsuit.switch_to_moudle(u"角色管理", u"角色定义") self.frameElem.from_frame_to_otherFrame("mainFrame") self.role.add() self.role.edit_rolename(rolename) self.role.edit_shortname(shortname) self.role.select_sysrole() self.role.save_button() self.frameElem.switch_to_content() self.cmf.click_msg_button(1) u'''执行日期 Parameters: - type :t代表今天,c代表clear,q代表确定,默认选择今天 - backuptime :执行日期设定的日期,格式为2016-9-7 11:42:42 ''' def backup_time(self, types, backuptime): self.frameElem.from_frame_to_otherFrame("rigthFrame") # 时间控件的fram的xpath fxpath = "//iframe[@hidefocus='true']" # 日期控件table的xpath路径 txpath = "/html/body/div/div[3]/table" status = self.cnEn.is_float('1') type = self.cnEn.is_float(types) # 转成datetime对象 date = datetime(*xldate_as_tuple(backuptime, 0)) end = date.strftime('%Y-%m-%d %H:%M:%S') self.option_time("backUpTime", fxpath, status, type, txpath, end) u'''操作时间控件 Parameters: - wdateId:日期控件input控件的ID值 - fxpath:日期控件frame的xpath路径 - status: 日期控件是否有时分秒 - txpath:日期控件table的xpath路径 - time:设定的日期,格式为2016-9-7 11:42:42 - type:t代表今天,c代表clear,q代表确定,默认选择今天 ''' def option_time(self, wdateId, fxpath, status='0', type='t', txpath=None, dtime=None): self.getElem.find_element_wait_and_click("id", wdateId) frame = self.driver.find_element_by_xpath(fxpath) self.driver.switch_to_frame(frame) if type == 't': self.getElem.find_element_wait_and_click("id", "dpTodayInput") elif type == 'c': self.getElem.find_element_wait_and_click("id", "dpClearInput") elif type == 'q': if dtime is not None: list = dtime.split() ymdList = list[0].split("-") hmsList = list[1].split(":") #年 tYear = ymdList[0] #月 tMon = ymdList[1] #日 tDay = ymdList[2] #时 tHour = hmsList[0] #分 tMin = hmsList[1] #秒 tSen = hmsList[2] dTitle = self.getElem.find_element_with_wait( "id", "dpTitle").find_elements_by_tag_name("input") #设定月 dTitle[0].clear() dTitle[0].send_keys(tMon) #设定年 dTitle[1].clear() dTitle[1].send_keys(tYear) self.frameElem.from_frame_to_otherFrame("rigthFrame") self.getElem.find_element_wait_and_click_EC("id", "backUpTime") self.driver.switch_to_frame(frame) if txpath is not None: iStatus = False for itr in range(7): if itr != 0: for itd in range(7): ct = self.tableElem.get_table_cell_text( txpath, itr, itd)[0] #排除第一行大于7的 if itr == 1 and int(ct) > 7: continue #排除倒数第二行小于15的 if itr == 5 and int(ct) < 15: continue #排除最后一行小于15的 if itr == 6 and int(ct) < 15: continue #如果跟给定的日期一致,点击日期 if int(ct) == int(tDay): self.tableElem.get_table_cell_text( txpath, itr, itd)[1].click() iStatus = True break #找到日期后跳出循环 if iStatus: break #日期控件是否有时分秒 if status == '1': dTime = self.getElem.find_element_with_wait( "id", "dpTime").find_elements_by_tag_name("input") #设定小时 dTime[0].clear() dTime[0].send_keys(tHour) #设定分钟 dTime[2].clear() dTime[2].send_keys(tMin) #设定秒 dTime[4].clear() dTime[4].send_keys(tSen) self.getElem.find_element_wait_and_click("id", "dpOkInput") u'''上传操作 parameters: - filename :执行还原的文件名称 - loginfo :日志信息 ''' def backup_file_upload(self, filename, loginfo): self.frameElem.from_frame_to_otherFrame("rigthFrame") value = "C:\Users\Administrator\Downloads\\" + filename + "" self.getElem.find_element_wait_and_sendkeys("id", "backUpFile", value) time.sleep(2) self.getElem.find_element_wait_and_click_EC("id", "up_file") self.frameElem.switch_to_content() self.cmf.click_msg_button(1) time.sleep(1) self.log.log_detail(loginfo, True)
class testRole(object): def __init__(self,driver): self.driver = driver self.log = log() self.role = Role(driver) self.cmf = commonFun(driver) self.tableElem = tableElement(driver) self.frameElem = frameElement(driver) u'''获取测试数据 Parameters: - sheetname:sheet名称 return:表格数据 ''' def get_table_data(self, sheetname): dataFile = dataFileName() roledfPath = dataFile.get_role_test_data_url() roledfData = dataFile.get_data(roledfPath, sheetname) return roledfData u'''弹出框''' def popup(self): roleMsg="/html/body/div[1]/div/table/tbody/tr[2]/td[2]/div/table/tbody/tr[2]/td[2]/div" return roleMsg u'''添加系统级角色''' def add_sysrole_001(self): #日志开始记录 self.log.log_start("addsysrole") #获取添加系统管理员测试数据 roledfData = self.get_table_data("add_sys_role") #保存成功的弹出框 roleMsg = self.popup() #无检查点的测试项标识,如果为True说明通过 flag = False for dataRow in range(len(roledfData)): data = roledfData[dataRow] try: #如果不是第一行标题,则读取数据 if dataRow != 0: self.role.add() self.role.edit_rolename(data[2]) self.role.edit_shortname(data[3]) self.role.select_sysrole() self.role.save_button() self.frameElem.switch_to_content() self.cmf.test_win_check_point("xpath", roleMsg, data, flag) self.cmf.back() except Exception as e: print ("add sysrole fail:" + str(e)) self.log.log_end("addsysrole") u'''添加部门管理员''' def add_dptrole_002(self): self.log.log_start("addroledpt") #获取添加部门管理员测试数据 roledfData = self.get_table_data("add_dpt_role") #保存成功的弹出框 roleMsg = self.popup() #无检查点的测试项标识,如果为True说明通过 flag = False for dataRow in range(len(roledfData)): data = roledfData[dataRow] try: #如果不是第一行标题,则读取数据 if dataRow != 0: self.role.add() self.role.edit_rolename(data[2]) self.role.edit_shortname(data[3]) self.role.level() self.frameElem.from_frame_to_otherFrame("mainFrame") self.role.select_dptrole() self.role.save_button() self.frameElem.switch_to_content() self.cmf.test_win_check_point("xpath", roleMsg, data, flag) self.cmf.back() except Exception as e: print ("add sysrole fail:" + str(e)) self.log.log_end("addroledpt") u'''编辑系统管理员''' def edit_role_003(self): self.log.log_start("editrole") #获取编辑系统管理员测试数据 roledfData = self.get_table_data("edit_role") #保存成功的弹出框 roleMsg = self.popup() #无检查点的测试项标识,如果为True说明通过 flag = False for dataRow in range(len(roledfData)): data = roledfData[dataRow] try: #如果不是第一行标题,则读取数据 if dataRow != 0: self.role.edit(data[2]) self.role.edit_rolename(data[3]) self.role.edit_shortname(data[4]) self.role.save_button() self.frameElem.switch_to_content() self.cmf.test_win_check_point("xpath", roleMsg, data, flag) self.cmf.back() except Exception as e: print ("Edit role fail:" + str(e)) self.log.log_end("editrole") u'''编辑可管理角色''' def edit_managerole_004(self): self.log.log_start("editmanagerole") #获取编辑系统管理员测试数据 roledfData = self.get_table_data("edit_mange_role") #右侧已选可管理角色框 roleMsg = "roles" for dataRow in range(len(roledfData)): data = roledfData[dataRow] #无检查点的测试项标识,如果为True说明通过 flag = False try: #如果不是第一行标题,则读取数据 if dataRow != 0: self.role.edit(data[2]) self.role.select_manage_role(int(data[3])) self.role.manage_role_add(int(data[3])) self.cmf.select_check_point("id", roleMsg, data, flag) self.role.save_button() self.frameElem.switch_to_content() self.role.click_ok_button() self.frameElem.from_frame_to_otherFrame("mainFrame") self.cmf.back() except Exception as e: print ("Edit managed roles fail:" + str(e)) self.log.log_end("editmanagerole") u'''编辑其他权限''' def edit_otherrole_005(self): self.log.log_start("editotherrole") #获取编辑系统管理员测试数据 roledfData = self.get_table_data("edit_other_role") #右侧已选其他权限框 roleMsg = "otherPrivileges" for dataRow in range(len(roledfData)): data = roledfData[dataRow] #无检查点的测试项标识,如果为True说明通过 flag = False try: #如果不是第一行标题,则读取数据 if dataRow != 0: self.role.edit(data[2]) self.role.other_role_add(int(data[3])) self.cmf.select_check_point("id", roleMsg, data, flag) self.role.save_button() self.frameElem.switch_to_content() self.role.click_ok_button() self.frameElem.from_frame_to_otherFrame("mainFrame") self.cmf.back() except Exception as e: print("Edit other permissions fail:" + str(e)) self.log.log_end("editotherrole") u'''删除角色''' def del_role_006(self): self.log.log_start("delrole") #获取删除超级管理员测试数据 roledfData = self.get_table_data("del_role") #删除的弹出框 roleMsg = self.popup() #无检查点的测试项标识,如果为True说明通过 flag = False for dataRow in range(len(roledfData)): data = roledfData[dataRow] try: #如果不是第一行标题,则读取数据 if dataRow != 0: self.role.delete(data[2]) self.frameElem.switch_to_content() self.cmf.test_win_check_point("xpath", roleMsg, data, flag) #校验删除后的角色是否存在 if self.cmf.is_namevalue_exsit(data[2], "fortRoleName"): print("The super administrator has been deleted") except Exception as e: print ("Deleting the super administrator failed:" + str(e)) self.log.log_end("delrole") u'''全选删除角色''' def bulkdel_role_007(self): self.log.log_start("bulkdelrole") #获取删除超级管理员测试数据 roledfData = self.get_table_data("bulk_delrole") #删除的弹出框 roleMsg = self.popup() #无检查点的测试项标识,如果为True说明通过 flag = False for dataRow in range(len(roledfData)): data = roledfData[dataRow] try: #如果不是第一行标题,则读取数据 if dataRow != 0: self.cmf.check_all() self.cmf.bulkdel("delete_role") self.frameElem.switch_to_content() self.cmf.test_win_check_point("xpath", roleMsg, data, flag) except Exception as e: print ("Select Delete roles failure:" + str(e)) self.log.log_end("bulkdelrole") u'''校验角色名称和没有选择菜单项''' def check_rolename(self): self.log.log_start("checkrolename") #获取校验角色名称的数据 roledfData = self.get_table_data("check_rolename") #弹出框 roleMsg = self.popup() #无检查点的测试项标识,如果为True说明通过 flag = False self.role.add() for dataRow in range(len(roledfData)): #把单行的数据赋值给列表data data = roledfData[dataRow] try: #如果不是第一行标题,则读取数据 if dataRow != 0: self.role.edit_rolename(data[2]) self.role.edit_shortname(data[3]) self.role.save_button() self.frameElem.switch_to_content() #设定没有检查点的测试项通过 self.cmf.test_win_check_point("xpath", roleMsg, data, flag) self.frameElem.from_frame_to_otherFrame("mainFrame") except Exception as e: print ("Failed to verify the role name" + str(e)) self.cmf.back() self.log.log_end("checkrolename") u'''检验名称简写''' def check_shortname(self): self.log.log_start("checkshortname") #获取校验角色名称的数据 roledfData = self.get_table_data("check_shortname") #弹出框 roleMsg = self.popup() #无检查点的测试项标识,如果为True说明通过 flag = False for dataRow in range(len(roledfData)): #把单行的数据赋值给列表data data = roledfData[dataRow] try: #如果不是第一行标题,则读取数据 if dataRow != 0: self.role.add() self.role.edit_rolename(data[2]) self.role.edit_shortname(data[3]) self.role.select_sysrole() self.role.save_button() self.frameElem.switch_to_content() self.cmf.test_win_check_point("xpath", roleMsg, data, flag) self.cmf.back() except Exception as e: print ("Failed to verify the name abbreviation:" + str(e)) self.log.log_end("checkshortname") u'''校验其他权限选择''' def check_other_role(self): self.log.log_start("checkother") #获取其他权限选择的数据 roledfData = self.get_table_data("ckeck_other") #弹出框 roleMsg = self.popup() #无检查点的测试项标识,如果为True说明通过 flag = False for dataRow in range(len(roledfData)): #把单行的数据赋值给列表data data = roledfData[dataRow] try: #如果不是第一行标题,则读取数据 if dataRow != 0: self.role.edit(data[2]) self.role.other_role_add(int(data[3])) self.role.other_role_add(int(data[4])) self.frameElem.switch_to_content() self.cmf.test_win_check_point("xpath", roleMsg, data, flag) self.cmf.back() except Exception as e: print ("Check other rights options failed:" + str(e)) self.log.log_end("checkother") u'''校验批量删除''' def check_bulkdel(self): self.log.log_start("checkbulkdel") #获取校验角色名称的数据 roledfData = self.get_table_data("check_bulk") #弹出框 roleMsg = self.popup() #无检查点的测试项标识,如果为True说明通过 flag = False for dataRow in range(len(roledfData)): #把单行的数据赋值给列表data data = roledfData[dataRow] try: #如果不是第一行标题,则读取数据 if dataRow != 0: self.cmf.bulkdel("delete_role") self.frameElem.switch_to_content() self.cmf.test_win_check_point("xpath", roleMsg, data, flag) except Exception as e: print ("Check batch deletion failed" + str(e)) self.log.log_end("checkbulkdel") u'''角色查询''' def role_query_008(self): self.log.log_start("rolequery") #获取角色查询的数据 roledfData = self.get_table_data("role_query") for dataRow in range(len(roledfData)): #把单行的数据赋值给列表data data = roledfData[dataRow] table_xpath = "/html/body/form/div/div[6]/div[2]/div/table" try: #如果不是第一行标题,则读取数据 if dataRow != 0: if dataRow < 3: if dataRow == 1: self.role.shortname_query(data[2]) elif dataRow == 2: self.role.rolename_query(data[1]) self.frameElem.from_frame_to_otherFrame("mainFrame") #获取表格行数 get_table_rows = self.tableElem.get_table_rows_count(table_xpath) if get_table_rows < 1: self.log.log_detail(data[0], True) else: if dataRow == 3: self.role.click_query() elif dataRow == 4: self.role.rolename_query(data[1]) elif dataRow == 5: self.role.shortname_query(data[2]) self.frameElem.from_frame_to_otherFrame("mainFrame") #获取表格行数 get_table_rows = self.tableElem.get_table_rows_count(table_xpath) if get_table_rows > 0: self.log.log_detail(data[0], True) except Exception as e: print ("Query role failed" + str(e)) self.log.log_end("rolequery")
class testLinuxResource(object): def __init__(self, driver): self.driver = driver self.log = log() self.cmf = commonFun(driver) self.frameElem = frameElement(driver) self.testrole = testRole(driver) self.resource = Resource(driver) self.linux = LinuxResource(driver) self.role = Role(driver) self.data = dataFileName() u'''获取测试数据 Parameters: - sheetname:sheet名称 return:表格数据 ''' def get_resource_table_data(self, sheetname): dataFile = dataFileName() resourcePath = dataFile.get_linux_resource_test_data_url() resourceData = dataFile.get_data(resourcePath, sheetname) return resourceData u'''添加linux资源''' def add_linux_resource_001(self): #日志开始记录 self.log.log_start("add_resource") #获取添加资源测试数据 resourceData = self.get_resource_table_data("add_linux_resource") #保存成功的弹出框 resourceMsg = self.testrole.popup() #无检查点的测试项标识,如果为True说明通过 flag = False for dataRow in range(len(resourceData)): data = resourceData[dataRow] try: #如果不是第一行标题,则读取数据 if dataRow != 0: self.resource.click_add_edit_button() self.resource.select_resource_type(data[2]) self.linux.add_edit_linux_resource(data) self.frameElem.switch_to_content() self.cmf.test_win_check_point("xpath", resourceMsg, data, flag) self.cmf.back() except Exception as e: print ("add_resource fail:" + str(e)) self.log.log_end("add_resource") u'''编辑linux资源''' def edit_linux_resource_002(self): #日志开始记录 self.log.log_start("edit_resource") #获取添加资源测试数据 resourceData = self.get_resource_table_data("edit_linux_resource") #保存成功的弹出框 resourceMsg = self.testrole.popup() #无检查点的测试项标识,如果为True说明通过 flag = False for dataRow in range(len(resourceData)): data = resourceData[dataRow] try: #如果不是第一行标题,则读取数据 if dataRow != 0: self.resource.click_add_edit_button(data[2]) self.linux.add_edit_linux_resource(data) self.frameElem.switch_to_content() self.cmf.test_win_check_point("xpath", resourceMsg, data, flag) self.cmf.back() except Exception as e: print ("edit_resource fail:" + str(e)) self.log.log_end("edit_resource") u'''检验linux资源''' def check_linux_resource_003(self): #日志开始记录 self.log.log_start("check_linux_resource") #获取检验资源测试数据 resourceData = self.get_resource_table_data("check_linux_resource") #保存成功的弹出框 resourceMsg = self.testrole.popup() #无检查点的测试项标识,如果为True说明通过 flag = False #点击添加按钮 self.resource.click_add_edit_button() #选择debian类型 self.resource.select_resource_type("Debian") for dataRow in range(len(resourceData)): data = resourceData[dataRow] try: #如果不是第一行标题,则读取数据 if dataRow != 0: self.linux.check_linux_resource(dataRow, data) self.frameElem.switch_to_content() self.cmf.test_win_check_point("xpath", resourceMsg, data, flag) except Exception as e: print ("check_linux_resource fail:" + str(e)) self.cmf.back() self.log.log_end("check_linux_resource") u'''查询资源''' def query_resource_004(self, dataPath, sheetName): #日志开始记录 self.log.log_start("query_resource") #获取添加资源测试数据 resourceData = self.data.get_data(dataPath, sheetName) for dataRow in range(len(resourceData)): data = resourceData[dataRow] try: #如果不是第一行标题,则读取数据 if dataRow != 0: if dataRow == 1: self.resource.query_depart(data[1]) if dataRow == 2: self.resource.click_child_node() self.resource.query_depart(data[1]) if dataRow == 3: self.resource.query_type(data[2], data[3], data[4]) if dataRow >= 4 and dataRow <= 7: self.resource.query_ip_rename(data[5]) if dataRow == 8: self.resource.query_type(data[2], data[3], data[4]) self.resource.query_ip_rename(data[5]) self.resource.click_resource_query() self.role.click_reset() self.log.log_detail(data[0], True) except Exception as e: print ("query_resource fail:" + str(e)) self.resource.click_resource_query() self.log.log_end("query_resource") u'''删除资源''' def del_resource_005(self, dataPath, sheetName): #日志开始记录 self.log.log_start("del_resource") #获取添加资源测试数据 resourceData = self.data.get_data(dataPath, sheetName) #保存成功的弹出框 resourceMsg = self.testrole.popup() #无检查点的测试项标识,如果为True说明通过 flag = False for dataRow in range(len(resourceData)): data = resourceData[dataRow] try: #如果不是第一行标题,则读取数据 if dataRow != 0: self.resource.click_del_button(data[2]) self.frameElem.switch_to_content() self.cmf.test_win_check_point("xpath", resourceMsg, data, flag) self.cmf.click_msg_button(1) except Exception as e: print ("del_resource fail:" + str(e)) self.log.log_end("del_resource") u'''全选删除资源''' def bulkdel_resource_006(self): #日志开始记录 self.log.log_start("bulkdel_resource") #获取添加资源测试数据 resourceData = self.get_resource_table_data("bulkdel_resource") #保存成功的弹出框 resourceMsg = self.testrole.popup() #无检查点的测试项标识,如果为True说明通过 flag = False for dataRow in range(len(resourceData)): data = resourceData[dataRow] try: #如果不是第一行标题,则读取数据 if dataRow != 0: self.cmf.check_all() self.cmf.bulkdel("delete_resource") self.frameElem.switch_to_content() self.cmf.test_win_check_point("xpath", resourceMsg, data, flag) self.cmf.click_msg_button(1) except Exception as e: print ("bulkdel_resource failure:" + str(e)) self.log.log_end("bulkdel_resource")