Ejemplo n.º 1
0
	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()
Ejemplo n.º 4
0
 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)
Ejemplo n.º 5
0
 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)
Ejemplo n.º 6
0
 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)
Ejemplo n.º 7
0
	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()
Ejemplo n.º 8
0
 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)
Ejemplo n.º 9
0
	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)
Ejemplo n.º 10
0
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")
Ejemplo n.º 12
0
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)
Ejemplo n.º 13
0
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")
Ejemplo n.º 14
0
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")
Ejemplo n.º 15
0
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)
Ejemplo n.º 16
0
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")
Ejemplo n.º 17
0
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")