class testAdEx(): def __init__(self,driver): self.driver = driver self.log = log() self.cmf = commonFun(driver) self.getElem = getElement(driver) self.cnEnde = cnEncode() self.adExElem = AdExtractPage(self.driver) self.tableElem = tableElement(self.driver) self.selectElem = selectElement(driver) self.dataFile = dataFileName() self.frameElem = frameElement(self.driver) self.loginFun = loginPage(self.driver) self.commonSuite = CommonSuiteData(self.driver) u'''提示内容框元素路径''' def login_msg(self): login_msg = "html/body/div[1]/div/table/tbody/tr[2]/td[2]/div/table/ \ tbody/tr[2]/td[2]/div" return login_msg u'''修改密码弹出框''' def modey_pwd_msg(self): self.frameElem.switch_to_content() modey_msg = "html/body/div[1]/div/table/tbody/tr[2]/td[2]/div/table/ \ tbody/tr[1]/td/div/div" return modey_msg u'''关闭修改密码弹出框''' def close_aui(self): self.frameElem.switch_to_content() close_aui = "html/body/div[1]/div/table/tbody/tr[2]/td[2]/div/table/ \ tbody/tr[1]/td/div/a" return close_aui def test_win_check_point(self,value,data): elemText = self.getElem.find_element_wait_and_compare_text("xpath",value,data) if elemText: # 页面的内容与检查点内容一致,测试点通过 self.log.log_detail(data[0], True) else: #页面抓取到的内容与检查点不一致,测试点不通过 self.log.log_detail(data[0],False) u'''获取测试数据 Parameters: - sheetname:sheet名称 return:表格数据 ''' def get_table_data(self,sheetname): dataFile = dataFileName() filePath = dataFile.get_ad_extract_test_url() adFileData = dataFile.get_data(filePath,sheetname) return adFileData u'''没有弹出框的校验''' def check_without_pop_up(self,type,data): retype = self.cnEnde.is_float(type) num = self.adExElem.get_account_count(retype) recount = int(self.cnEnde.is_float(data[5])) #判断测试项是否通过 if self.adExElem.get_account_count(retype) == recount: self.log.log_detail(data[0], True) else: self.log.log_detail(data[0], False) def base_on_dataRow(self,dataRow,data,flag): #AD发现账号列表移动到已选账号列表 if dataRow == 1 or dataRow == 2: if dataRow == 1: self.frameElem.from_frame_to_otherFrame("mainFrame") self.adExElem.set_new_account(data[3]) self.adExElem.click_new_query_button() self.adExElem.click_new_reset_button() self.adExElem.click_new_query_button() self.adExElem.select_type(data[2],data[3]) self.adExElem.new_to_selected() self.adExElem.set_pwd(data[6]) self.cmf.click_login_msg_button() #从已选账号列表移动到AD发现账号列表 if dataRow == 2: self.commonSuite.login_and_switch_to_sys() self.commonSuite.switch_to_moudle(u"系统配置", u"AD定时抽取") self.adExElem.discover_tab() self.adExElem.set_selected_account(data[3]) self.adExElem.click_selected_button() self.adExElem.click_selected_reset_button() self.adExElem.select_type(data[2],data[3]) self.adExElem.select_to_new() self.loginFun.quit() self.frameElem.switch_to_content() self.loginFun.set_login_username(data[3]) self.loginFun.set_login_pwd(data[6]) self.loginFun.click_login_button() if dataRow ==1: self.test_win_check_point(self.modey_pwd_msg(),data) self.getElem.find_element_with_wait_clickable_and_click("xpath",self.close_aui()) if dataRow ==2: self.cmf.test_win_check_point("xpath",self.login_msg(),data,flag) #AD发现账号列表移动到过滤账号列表 if dataRow == 3: self.commonSuite.login_and_switch_to_sys() self.commonSuite.switch_to_moudle(u"系统配置", u"AD定时抽取") self.frameElem.from_frame_to_otherFrame("mainFrame") self.adExElem.discover_tab() self.adExElem.set_new_account(data[3]) self.adExElem.click_new_query_button() self.adExElem.click_new_reset_button() self.adExElem.click_new_query_button() self.adExElem.select_type(data[2],data[3]) self.adExElem.new_to_filter() self.check_without_pop_up(data[4],data) #从过滤账号列表移动到AD发现账号列表 if dataRow == 4: self.frameElem.from_frame_to_otherFrame("mainFrame") self.adExElem.set_filter_account(data[3]) self.adExElem.click_filter_query_button() self.adExElem.select_type(data[2],data[3]) self.adExElem.filter_to_new() self.check_without_pop_up(data[4],data) u'''AD抽取''' def ad_extract_001(self): #日志开始记录 self.log.log_start("ADExtract_001") #获取AD域抽取的数据 ad_data = self.get_table_data("ad_extract") #无检查点的测试项标识,如果为True说明通过 flag = False self.frameElem.from_frame_to_otherFrame("mainFrame") self.adExElem.connect_tab() for dataRow in range(len(ad_data)): data = ad_data[dataRow] try: #如果不是第一行标题,则读取数据 if dataRow != 0 : self.frameElem.from_frame_to_otherFrame("mainFrame") self.adExElem.set_address_ip(data[2]) self.adExElem.set_base_dn(data[3]) self.adExElem.set_admin(data[4]) self.adExElem.set_admin_pwd(data[5]) self.adExElem.set_home_node1(data[6]) if dataRow == 5: self.adExElem.add_muli_node() self.adExElem.set_home_node2(data[7]) if dataRow == 3: self.adExElem.subtree_query() self.adExElem.set_query_condition(data[8]) if dataRow == 1: self.adExElem.user_attri_map() self.adExElem.set_account_map(data[10]) self.adExElem.set_name_map(data[11]) self.adExElem.click_find_immdiate() #判断测试项是否通过 self.driver.switch_to_default_content() self.cmf.test_win_check_point("xpath",self.login_msg(),data,flag) self.frameElem.from_frame_to_otherFrame("mainFrame") self.adExElem.del_node() self.adExElem.quit_subtree_query() #清空标识状态 flag = False except Exception as e: print ("AD Extract fail: ") + str(e) self.log.log_end("AdExtract") u'''发现''' def ad_discover_002(self): #日志开始记录 self.log.log_start("AdDiscover_002") #获取AD域账号移动的数据 ad_data = self.get_table_data("ad_discover") #无检查点的测试项标识,如果为True说明通过 self.commonSuite.switch_to_moudle(u"系统配置", u"AD定时抽取") flag = False self.adExElem.discover_tab() for dataRow in range(len(ad_data)): data = ad_data[dataRow] try: self.base_on_dataRow(dataRow,data,flag) #清空标识状态 flag = False except Exception as e: print ("AD discover fail: ") + str(e) self.log.log_end("AdDiscover_002") u'''移动ad域账号校验''' def move_user_check_003(self): #日志开始记录 self.log.log_start("MoveUserCheck_003") #获取AD域账号移动校验的数据 ad_data = self.get_table_data("move_new_to_select_check") #无检查点的测试项标识,如果为True说明通过 flag = False self.commonSuite.switch_to_moudle(u"系统配置", u"AD定时抽取") self.adExElem.discover_tab() for dataRow in range(len(ad_data)): data = ad_data[dataRow] try: #如果不是第一行标题,则读取数据 if dataRow != 0 : self.frameElem.from_frame_to_otherFrame("mainFrame") self.adExElem.select_type(data[2],data[3]) self.adExElem.new_to_selected() if dataRow == 3: self.cmf.click_login_msg_button() self.frameElem.switch_to_content() self.cmf.test_win_check_point("xpath",self.login_msg(),data,flag) if dataRow == 2: self.frameElem.from_frame_to_otherFrame("mainFrame") self.adExElem.select_type(data[2],data[3]) #清空标识状态 flag = False except Exception as e: print ("Move user check fail: ") + str(e) self.log.log_end("MoveUserCheck_003") u'''账号密码校验''' def ad_pwd_checkout_004(self): #日志开始记录 self.log.log_start("AdPwdCheckout_004") #获取AD域密码校验的数据 ad_data = self.get_table_data("pwd_check") #无检查点的测试项标识,如果为True说明通过 flag = False self.commonSuite.switch_to_moudle(u"系统配置", u"AD定时抽取") self.adExElem.discover_tab() for dataRow in range(len(ad_data)): data = ad_data[dataRow] try: #如果不是第一行标题,则读取数据 if dataRow != 0 : self.frameElem.from_frame_to_otherFrame("mainFrame") self.adExElem.select_type(data[2],data[3]) self.adExElem.new_to_selected() self.adExElem.set_pwd(data[4]) self.cmf.click_login_msg_button() self.frameElem.switch_to_content() self.cmf.test_win_check_point("xpath",self.login_msg(),data,flag) #清空标识状态 flag = False except Exception as e: print ("AD pwd checkout fail: ") + str(e) self.log.log_end("AdPwdCheckout_004") u'''定时''' def cycle_005(self): #日志开始记录 self.log.log_start("cycle_005") #获取AD域清空历史记录的数据 ad_data = self.get_table_data("cycle") self.adExElem.quartz_tab() row_count = len(ad_data)-1 #无检查点的测试项标识,如果为True说明通过 flag = False for dataRow in range(len(ad_data)): data = ad_data[dataRow] try: #如果不是第一行标题,则读取数据 if dataRow != 0 : self.frameElem.from_frame_to_otherFrame("mainFrame") #设置四种方式的定时 if dataRow != row_count: self.adExElem.set_execute_type(data[4]) self.adExElem.set_hour(data[2]) self.adExElem.set_minute(data[3]) self.adExElem.set_execute_date(data[4],data[5],data[6]) self.adExElem.find_by_quartz() #如果是最后一行数据,关闭定时 if dataRow == row_count: self.adExElem.quartz_off() self.frameElem.switch_to_content() self.cmf.test_win_check_point("xpath",self.login_msg(),data,flag) #清空标识状态 flag = False except Exception as e: print ("Set cycle fail: ") + str(e) self.log.log_end("cycle_005") u'''清空历史记录''' def clear_history_006(self): #日志开始记录 self.log.log_start("ClearHistory_006") #获取AD域清空历史记录的数据 ad_data = self.get_table_data("clear_history") #无检查点的测试项标识,如果为True说明通过 flag = False for dataRow in range(len(ad_data)): data = ad_data[dataRow] try: #如果不是第一行标题,则读取数据 if dataRow != 0 : self.adExElem.history_tab() self.adExElem.clear_history_button() self.cmf.click_login_msg_button() self.frameElem.switch_to_content() self.cmf.test_win_check_point("xpath",self.login_msg(),data,flag) #清空标识状态 flag = False except Exception as e: print ("Clear History fail: ") + str(e) self.log.log_end("ClearHistory_006")
class ServiceNtp(): def __init__(self, driver): self.driver = driver self.getElem = getElement(driver) self.dataFile = dataFileName() self.select = selectElement(driver) self.frameElem = frameElement(driver) self.cmf = commonFun(driver) self.log = log() self.ntp = NtpService(driver) self.cnEnde = cnEncode() self.comm = CommonSuiteData(driver) u'''获取测试数据 Parameters: sheetname:sheet名称 return:表格数据 ''' def get_table_data(self, sheetname): dataFile = dataFileName() filePath = dataFile.get_ntp_test_data_url() fileData = dataFile.get_data(filePath, sheetname) return fileData u'''提示框元素路径''' def ntp_msg(self): ntp_msg = "html/body/div[1]/div/table/tbody/tr[2]/td[2]/div/table/tbody/tr[2]/td[2]/div" return ntp_msg u'''校验没有弹出框类型用例是否通过 parameters: data : 检查点 ''' def check_without_pop_up(self, data): content = self.ntp.get_element_content() if content.find(data[1]) == -1: self.log.log_detail(data[0], False) else: self.log.log_detail(data[0], True) u'''编辑服务器IP与周期''' def edit_ntp_001(self): #日志开始记录 self.log.log_start("editNtp") #获取编辑服务器IP与周期的数据 ntp_data = self.get_table_data("mod_ntp") #点击保存按钮弹出框 ntp_msg = self.ntp_msg() #无检查点的测试项标识,如果为True说明通过 flag = False for dataRow in range(len(ntp_data)): data = ntp_data[dataRow] try: #如果不是第一行标题,则读取数据 if dataRow != 0: self.frameElem.from_frame_to_otherFrame("rigthFrame") self.ntp.server_ip(data[2]) #自动与时间同步服务器 self.ntp.check_time_server() self.ntp.set_cycle_date(data[3]) self.ntp.set_cycle_time(data[4]) self.ntp.save_button() #返回上级frame self.frameElem.switch_to_content() #判断测试项是否通过 self.cmf.test_win_check_point("xpath", ntp_msg, data, flag) except Exception as e: print("edit ntp fail: ") + str(e) self.log.log_end("editNtp") u'''校验服务器IP''' def check_ntp_002(self): #日志开始记录 self.log.log_start("checkNtp") #获取校验服务器IP的数据 ntp_data = self.get_table_data("check_ntp") #点击保存按钮弹出框 ntp_msg = self.ntp_msg() #无检查点的测试项标识,如果为True说明通过 flag = False for dataRow in range(len(ntp_data)): data = ntp_data[dataRow] try: #如果不是第一行标题,则读取数据 if dataRow != 0: self.frameElem.from_frame_to_otherFrame("rigthFrame") self.ntp.server_ip(data[2]) self.ntp.save_button() #返回上级frame self.frameElem.switch_to_content() #判断测试项是否通过 self.cmf.test_win_check_point("xpath", ntp_msg, data, flag) #清空标识状态 flag = False except Exception as e: print("check ntp fail:") + str(e) self.log.log_end("checkNtp") u'''更新时间''' def update_ntp_003(self): #日志开始记录 self.log.log_start("updateNtp") #获取更新时间的数据 ntp_data = self.get_table_data("update_ntp") row_count = len(ntp_data) - 1 #点击保存按钮弹出框 ntp_msg = self.ntp_msg() #无检查点的测试项标识,如果为True说明通过 flag = False for dataRow in range(len(ntp_data)): data = ntp_data[dataRow] try: #如果不是第一行标题,则读取数据 if dataRow != 0: self.frameElem.from_frame_to_otherFrame("rigthFrame") self.ntp.server_ip(data[2]) if dataRow != row_count: self.ntp.set_cycle_date(data[3]) self.ntp.set_cycle_time(data[4]) else: #自动与时间同步服务器 self.ntp.check_time_server() self.ntp.save_button() #点击确定按钮 self.ntp.click_msg_button() #更新时间 self.ntp.updata_button() #用户退出 self.comm.user_quit() #用户登录并切换至系统级角色 self.comm.login_and_switch_to_sys() self.cmf.select_menu(u"系统配置", u"关联服务") #判断测试项是否通过 self.check_without_pop_up(data) except Exception as e: print("update ntp fail: ") + str(e) self.log.log_end("updateNtp")
try: #如果不是第一行标题,则读取数据 if dataRow != 0 : self.frameElem.from_frame_to_otherFrame("rigthFrame") #self.appElem.operate_account_manage(data[2]) self.appElem.operate_account_del(data[3]) self.cmf.click_login_msg_button() #判断测试项是否通过 self.check_with_pop_up(data,flag) #清空标识状态 flag = False except Exception as e: print ("Del account fail: ") + str(e) self.log.log_end("Delaccount") if __name__ == "__main__": browser = setDriver().set_local_driver() commonSuite = CommonSuiteData(browser) appTest = testApp(browser) commonSuite.login_and_switch_to_sys() commonSuite.switch_to_moudle(u"系统配置", u"关联服务") # appTest.add_app_001() # appTest.edit_app_002() # appTest.check_app_003() # appTest.query_app_004() # appTest.add_account_006() # appTest.edit_account_007() # appTest.del_account_008() # appTest.del_app_005()
class testAdEx(): def __init__(self, driver): self.driver = driver self.log = log() self.cmf = commonFun(driver) self.getElem = getElement(driver) self.cnEnde = cnEncode() self.adExElem = AdExtractPage(self.driver) self.tableElem = tableElement(self.driver) self.selectElem = selectElement(driver) self.dataFile = dataFileName() self.frameElem = frameElement(self.driver) self.loginFun = loginPage(self.driver) self.commonSuite = CommonSuiteData(self.driver) u'''提示内容框元素路径''' def login_msg(self): login_msg = "html/body/div[1]/div/table/tbody/tr[2]/td[2]/div/table/ \ tbody/tr[2]/td[2]/div" return login_msg u'''修改密码弹出框''' def modey_pwd_msg(self): self.frameElem.switch_to_content() modey_msg = "html/body/div[1]/div/table/tbody/tr[2]/td[2]/div/table/ \ tbody/tr[1]/td/div/div" return modey_msg u'''关闭修改密码弹出框''' def close_aui(self): self.frameElem.switch_to_content() close_aui = "html/body/div[1]/div/table/tbody/tr[2]/td[2]/div/table/ \ tbody/tr[1]/td/div/a" return close_aui def test_win_check_point(self, value, data): elemText = self.getElem.find_element_wait_and_compare_text( "xpath", value, data) if elemText: # 页面的内容与检查点内容一致,测试点通过 self.log.log_detail(data[0], True) else: #页面抓取到的内容与检查点不一致,测试点不通过 self.log.log_detail(data[0], False) u'''获取测试数据 Parameters: - sheetname:sheet名称 return:表格数据 ''' def get_table_data(self, sheetname): dataFile = dataFileName() filePath = dataFile.get_ad_extract_test_url() adFileData = dataFile.get_data(filePath, sheetname) return adFileData u'''没有弹出框的校验''' def check_without_pop_up(self, type, data): retype = self.cnEnde.is_float(type) num = self.adExElem.get_account_count(retype) recount = int(self.cnEnde.is_float(data[5])) #判断测试项是否通过 if self.adExElem.get_account_count(retype) == recount: self.log.log_detail(data[0], True) else: self.log.log_detail(data[0], False) def base_on_dataRow(self, dataRow, data, flag): #AD发现账号列表移动到已选账号列表 if dataRow == 1 or dataRow == 2: if dataRow == 1: self.frameElem.from_frame_to_otherFrame("mainFrame") self.adExElem.set_new_account(data[3]) self.adExElem.click_new_query_button() self.adExElem.click_new_reset_button() self.adExElem.click_new_query_button() self.adExElem.select_type(data[2], data[3]) self.adExElem.new_to_selected() self.adExElem.set_pwd(data[6]) self.cmf.click_login_msg_button() #从已选账号列表移动到AD发现账号列表 if dataRow == 2: self.commonSuite.login_and_switch_to_sys() self.commonSuite.switch_to_moudle(u"系统配置", u"AD定时抽取") self.adExElem.discover_tab() self.adExElem.set_selected_account(data[3]) self.adExElem.click_selected_button() self.adExElem.click_selected_reset_button() self.adExElem.select_type(data[2], data[3]) self.adExElem.select_to_new() self.loginFun.quit() self.frameElem.switch_to_content() self.loginFun.set_login_username(data[3]) self.loginFun.set_login_pwd(data[6]) self.loginFun.click_login_button() if dataRow == 1: self.test_win_check_point(self.modey_pwd_msg(), data) self.getElem.find_element_with_wait_clickable_and_click( "xpath", self.close_aui()) if dataRow == 2: self.cmf.test_win_check_point("xpath", self.login_msg(), data, flag) #AD发现账号列表移动到过滤账号列表 if dataRow == 3: self.commonSuite.login_and_switch_to_sys() self.commonSuite.switch_to_moudle(u"系统配置", u"AD定时抽取") self.frameElem.from_frame_to_otherFrame("mainFrame") self.adExElem.discover_tab() self.adExElem.set_new_account(data[3]) self.adExElem.click_new_query_button() self.adExElem.click_new_reset_button() self.adExElem.click_new_query_button() self.adExElem.select_type(data[2], data[3]) self.adExElem.new_to_filter() self.check_without_pop_up(data[4], data) #从过滤账号列表移动到AD发现账号列表 if dataRow == 4: self.frameElem.from_frame_to_otherFrame("mainFrame") self.adExElem.set_filter_account(data[3]) self.adExElem.click_filter_query_button() self.adExElem.select_type(data[2], data[3]) self.adExElem.filter_to_new() self.check_without_pop_up(data[4], data) u'''AD抽取''' def ad_extract_001(self): #日志开始记录 self.log.log_start("ADExtract_001") #获取AD域抽取的数据 ad_data = self.get_table_data("ad_extract") #无检查点的测试项标识,如果为True说明通过 flag = False self.frameElem.from_frame_to_otherFrame("mainFrame") self.adExElem.connect_tab() for dataRow in range(len(ad_data)): data = ad_data[dataRow] try: #如果不是第一行标题,则读取数据 if dataRow != 0: self.frameElem.from_frame_to_otherFrame("mainFrame") self.adExElem.set_address_ip(data[2]) self.adExElem.set_base_dn(data[3]) self.adExElem.set_admin(data[4]) self.adExElem.set_admin_pwd(data[5]) self.adExElem.set_home_node1(data[6]) if dataRow == 5: self.adExElem.add_muli_node() self.adExElem.set_home_node2(data[7]) if dataRow == 3: self.adExElem.subtree_query() self.adExElem.set_query_condition(data[8]) if dataRow == 1: self.adExElem.user_attri_map() self.adExElem.set_account_map(data[10]) self.adExElem.set_name_map(data[11]) self.adExElem.click_find_immdiate() #判断测试项是否通过 self.driver.switch_to_default_content() self.cmf.test_win_check_point("xpath", self.login_msg(), data, flag) self.frameElem.from_frame_to_otherFrame("mainFrame") self.adExElem.del_node() self.adExElem.quit_subtree_query() #清空标识状态 flag = False except Exception as e: print("AD Extract fail: ") + str(e) self.log.log_end("AdExtract") u'''发现''' def ad_discover_002(self): #日志开始记录 self.log.log_start("AdDiscover_002") #获取AD域账号移动的数据 ad_data = self.get_table_data("ad_discover") #无检查点的测试项标识,如果为True说明通过 self.commonSuite.switch_to_moudle(u"系统配置", u"AD定时抽取") flag = False self.adExElem.discover_tab() for dataRow in range(len(ad_data)): data = ad_data[dataRow] try: self.base_on_dataRow(dataRow, data, flag) #清空标识状态 flag = False except Exception as e: print("AD discover fail: ") + str(e) self.log.log_end("AdDiscover_002") u'''移动ad域账号校验''' def move_user_check_003(self): #日志开始记录 self.log.log_start("MoveUserCheck_003") #获取AD域账号移动校验的数据 ad_data = self.get_table_data("move_new_to_select_check") #无检查点的测试项标识,如果为True说明通过 flag = False self.commonSuite.switch_to_moudle(u"系统配置", u"AD定时抽取") self.adExElem.discover_tab() for dataRow in range(len(ad_data)): data = ad_data[dataRow] try: #如果不是第一行标题,则读取数据 if dataRow != 0: self.frameElem.from_frame_to_otherFrame("mainFrame") self.adExElem.select_type(data[2], data[3]) self.adExElem.new_to_selected() if dataRow == 3: self.cmf.click_login_msg_button() self.frameElem.switch_to_content() self.cmf.test_win_check_point("xpath", self.login_msg(), data, flag) if dataRow == 2: self.frameElem.from_frame_to_otherFrame("mainFrame") self.adExElem.select_type(data[2], data[3]) #清空标识状态 flag = False except Exception as e: print("Move user check fail: ") + str(e) self.log.log_end("MoveUserCheck_003") u'''账号密码校验''' def ad_pwd_checkout_004(self): #日志开始记录 self.log.log_start("AdPwdCheckout_004") #获取AD域密码校验的数据 ad_data = self.get_table_data("pwd_check") #无检查点的测试项标识,如果为True说明通过 flag = False self.commonSuite.switch_to_moudle(u"系统配置", u"AD定时抽取") self.adExElem.discover_tab() for dataRow in range(len(ad_data)): data = ad_data[dataRow] try: #如果不是第一行标题,则读取数据 if dataRow != 0: self.frameElem.from_frame_to_otherFrame("mainFrame") self.adExElem.select_type(data[2], data[3]) self.adExElem.new_to_selected() self.adExElem.set_pwd(data[4]) self.cmf.click_login_msg_button() self.frameElem.switch_to_content() self.cmf.test_win_check_point("xpath", self.login_msg(), data, flag) #清空标识状态 flag = False except Exception as e: print("AD pwd checkout fail: ") + str(e) self.log.log_end("AdPwdCheckout_004") u'''定时''' def cycle_005(self): #日志开始记录 self.log.log_start("cycle_005") #获取AD域清空历史记录的数据 ad_data = self.get_table_data("cycle") self.adExElem.quartz_tab() row_count = len(ad_data) - 1 #无检查点的测试项标识,如果为True说明通过 flag = False for dataRow in range(len(ad_data)): data = ad_data[dataRow] try: #如果不是第一行标题,则读取数据 if dataRow != 0: self.frameElem.from_frame_to_otherFrame("mainFrame") #设置四种方式的定时 if dataRow != row_count: self.adExElem.set_execute_type(data[4]) self.adExElem.set_hour(data[2]) self.adExElem.set_minute(data[3]) self.adExElem.set_execute_date(data[4], data[5], data[6]) self.adExElem.find_by_quartz() #如果是最后一行数据,关闭定时 if dataRow == row_count: self.adExElem.quartz_off() self.frameElem.switch_to_content() self.cmf.test_win_check_point("xpath", self.login_msg(), data, flag) #清空标识状态 flag = False except Exception as e: print("Set cycle fail: ") + str(e) self.log.log_end("cycle_005") u'''清空历史记录''' def clear_history_006(self): #日志开始记录 self.log.log_start("ClearHistory_006") #获取AD域清空历史记录的数据 ad_data = self.get_table_data("clear_history") #无检查点的测试项标识,如果为True说明通过 flag = False for dataRow in range(len(ad_data)): data = ad_data[dataRow] try: #如果不是第一行标题,则读取数据 if dataRow != 0: self.adExElem.history_tab() self.adExElem.clear_history_button() self.cmf.click_login_msg_button() self.frameElem.switch_to_content() self.cmf.test_win_check_point("xpath", self.login_msg(), data, flag) #清空标识状态 flag = False except Exception as e: print("Clear History fail: ") + str(e) self.log.log_end("ClearHistory_006")
class ServiceNtp(): def __init__(self,driver): self.driver = driver self.getElem = getElement(driver) self.dataFile = dataFileName() self.select = selectElement(driver) self.frameElem = frameElement(driver) self.cmf = commonFun(driver) self.log = log() self.ntp = NtpService(driver) self.cnEnde = cnEncode() self.comm = CommonSuiteData(driver) u'''获取测试数据 Parameters: sheetname:sheet名称 return:表格数据 ''' def get_table_data(self,sheetname): dataFile = dataFileName() filePath = dataFile.get_ntp_test_data_url() fileData = dataFile.get_data(filePath,sheetname) return fileData u'''提示框元素路径''' def ntp_msg(self): ntp_msg = "html/body/div[1]/div/table/tbody/tr[2]/td[2]/div/table/tbody/tr[2]/td[2]/div" return ntp_msg u'''校验没有弹出框类型用例是否通过 parameters: data : 检查点 ''' def check_without_pop_up(self,data): content = self.ntp.get_element_content() if content.find(data[1]) == -1: self.log.log_detail(data[0],False) else: self.log.log_detail(data[0],True) u'''编辑服务器IP与周期''' def edit_ntp_001(self): #日志开始记录 self.log.log_start("editNtp") #获取编辑服务器IP与周期的数据 ntp_data = self.get_table_data("mod_ntp") #点击保存按钮弹出框 ntp_msg = self.ntp_msg() #无检查点的测试项标识,如果为True说明通过 flag = False for dataRow in range(len(ntp_data)): data = ntp_data[dataRow] try: #如果不是第一行标题,则读取数据 if dataRow != 0: self.frameElem.from_frame_to_otherFrame("rigthFrame") self.ntp.server_ip(data[2]) #自动与时间同步服务器 self.ntp.check_time_server() self.ntp.set_cycle_date(data[3]) self.ntp.set_cycle_time(data[4]) self.ntp.save_button() #返回上级frame self.frameElem.switch_to_content() #判断测试项是否通过 self.cmf.test_win_check_point("xpath", ntp_msg, data, flag) except Exception as e: print ("edit ntp fail: ") + str(e) self.log.log_end("editNtp") u'''校验服务器IP''' def check_ntp_002(self): #日志开始记录 self.log.log_start("checkNtp") #获取校验服务器IP的数据 ntp_data = self.get_table_data("check_ntp") #点击保存按钮弹出框 ntp_msg = self.ntp_msg() #无检查点的测试项标识,如果为True说明通过 flag = False for dataRow in range(len(ntp_data)): data = ntp_data[dataRow] try: #如果不是第一行标题,则读取数据 if dataRow != 0: self.frameElem.from_frame_to_otherFrame("rigthFrame") self.ntp.server_ip(data[2]) self.ntp.save_button() #返回上级frame self.frameElem.switch_to_content() #判断测试项是否通过 self.cmf.test_win_check_point("xpath", ntp_msg, data, flag) #清空标识状态 flag = False except Exception as e: print ("check ntp fail:") + str(e) self.log.log_end("checkNtp") u'''更新时间''' def update_ntp_003(self): #日志开始记录 self.log.log_start("updateNtp") #获取更新时间的数据 ntp_data = self.get_table_data("update_ntp") row_count = len(ntp_data)-1 #点击保存按钮弹出框 ntp_msg = self.ntp_msg() #无检查点的测试项标识,如果为True说明通过 flag = False for dataRow in range(len(ntp_data)): data = ntp_data[dataRow] try: #如果不是第一行标题,则读取数据 if dataRow != 0: self.frameElem.from_frame_to_otherFrame("rigthFrame") self.ntp.server_ip(data[2]) if dataRow != row_count: self.ntp.set_cycle_date(data[3]) self.ntp.set_cycle_time(data[4]) else: #自动与时间同步服务器 self.ntp.check_time_server() self.ntp.save_button() #点击确定按钮 self.ntp.click_msg_button() #更新时间 self.ntp.updata_button() #用户退出 self.comm.user_quit() #用户登录并切换至系统级角色 self.comm.login_and_switch_to_sys() self.cmf.select_menu(u"系统配置", u"关联服务") #判断测试项是否通过 self.check_without_pop_up(data) except Exception as e: print ("update ntp fail: ") + str(e) self.log.log_end("updateNtp")
#如果不是第一行标题,则读取数据 if dataRow != 0: self.frameElem.from_frame_to_otherFrame("rigthFrame") #self.appElem.operate_account_manage(data[2]) self.appElem.operate_account_del(data[3]) self.cmf.click_login_msg_button() #判断测试项是否通过 self.check_with_pop_up(data, flag) #清空标识状态 flag = False except Exception as e: print("Del account fail: ") + str(e) self.log.log_end("Delaccount") if __name__ == "__main__": browser = setDriver().set_local_driver() commonSuite = CommonSuiteData(browser) appTest = testApp(browser) commonSuite.login_and_switch_to_sys() commonSuite.switch_to_moudle(u"系统配置", u"关联服务") # appTest.add_app_001() # appTest.edit_app_002() # appTest.check_app_003() # appTest.query_app_004() # appTest.add_account_006() # appTest.edit_account_007() # appTest.del_account_008() # appTest.del_app_005()
class testLogin(object): def __init__(self,driver): self.driver = driver self.log = log() self.loginFun = loginPage(self.driver) self.cmf = commonFun(self.driver) self.dataFile = dataFileName() self.userElem = UserPage(self.driver) self.commonSuite = CommonSuiteData(self.driver) u'''获取测试数据 Parameters: - sheetname:sheet名称 return:表格数据 ''' def get_table_data(self,sheetname): filePath = self.dataFile.get_login_test_data_url() loginData = self.dataFile.get_data(filePath,sheetname) return loginData u'''登陆的div弹窗的xpath''' def login_msg(self): login_msg = "html/body/div[1]/div/table/tbody/tr[2]/td[2]/div/table/tbody/tr[2]/td[2]/div" return login_msg u'''根据访问方式类型登录测试 parameters: sheetname : 表单名称 ''' def login_type(self,sheetname): loginMes = self.login_msg() loginData = self.get_table_data(sheetname) #无检查点的测试项标识,如果为True说明通过 flag = False for dataRow in range(len(loginData)): #把单行的数据赋值给列表data data = loginData[dataRow] try: #如果不是第一行标题,则读取数据 if dataRow != 0: time.sleep(3) if sheetname == 'default': if dataRow == 4: time.sleep(2) self.commonSuite.login_and_switch_to_sys() self.commonSuite.switch_to_moudle(u"运维管理",u"用户") time.sleep(2) self.userElem.change_user_status_on("gyrlogin2") self.commonSuite.user_quit() self.loginFun.login(data) # if dataRow == 1: # loginFun.set_max_login_count() elif sheetname == 'ad': self.loginFun.ad_login(data) elif sheetname == 'pwd_ad': self.loginFun.ad_pwd_login(data) elif sheetname == 'radius': self.loginFun.radius_pwd_login(data) #如果登陆成功,点击退出 if self.loginFun.is_login_success(): self.loginFun.quit() #设定没有检查点的测试项通过 flag = True self.cmf.test_win_check_point("xpath",loginMes,data,flag) #清空标识状态 flag = False except Exception as e: print ("User login fail: ") + str(e) #self.log.print_detail("login type error",e) #登陆测试 def login(self): self.log.log_start("login") u'''可以循环设定数据测试系统登录''' sheets_name = ['default','ad','pwd_ad','radius']#'default','ad','pwd_ad','radius' for sheetname in sheets_name: time.sleep(3) self.login_type(sheetname) self.log.log_end("login") #if __name__ == "__main__":#internet explorer # browser = setDriver().set_driver() # testLogin = testLogin(browser) # testLogin.login() ''' lists = jsonTranscoding().set_brower() threads = [] def execute_case(host,brower): driver = initDriver().remote_open_driver(host,brower) testLogin(driver).login() initDriver().close_driver(driver) for host,brower in lists.items(): th = Thread(target=execute_case,args=(host,brower)) th.start() threads.append(th) for th in threads: th.join() '''