def verify_cpu_mhz(mode, case_name, power_manager): try: if mode == 'ondemand': low_mhz = linux_get_cpu_mhz(mode) select_mode('performance', power_manager) time.sleep(15) high_mhz = linux_get_cpu_mhz('performance') log.info("ondemand mode:{}, performance mode:{}".format( low_mhz, high_mhz)) return [high_mhz, low_mhz] else: high_mhz = linux_get_cpu_mhz(mode) select_mode('ondemand', power_manager) time.sleep(15) low_mhz = linux_get_cpu_mhz('ondemand') log.info("performance mode:{}, ondemand mode:{}".format( high_mhz, low_mhz)) return [high_mhz, low_mhz] except: log.error(traceback.format_exc()) error_pic = os.path.join(common_function.get_current_dir(), r'Test_Report', 'img', '{}.png'.format(case_name)) capture_screen(error_pic) os.system("wmctrl -c 'Control Panel'") return '0'
def step5_res(*args, **kwargs): case_name = kwargs.get("case_name") report_file = kwargs.get("report_file") with open(path, 'r', encoding='utf-8') as f: file_info = f.readline() print(file_info) time.sleep(5) time_gap = time.time() - float(file_info) log.info('tc power off time is {}'.format(time_gap)) os.remove(path) if time_gap > 5: log.info('power off success') steps = { 'step_name': "verify screen can be unlocked and shutdown immediately", 'result': 'Pass', 'expect': 'success', 'actual': 'success', 'note': '' } common_function.update_cases_result(report_file, case_name, steps) else: steps = { 'step_name': "verify screen can be unlocked and shutdown immediately", 'result': 'Fail', 'expect': 'success', 'actual': 'fail', 'note': '' } common_function.update_cases_result(report_file, case_name, steps) reset_settings() return False
def template_pic_path(p): path = os.path.join( common_function.get_current_dir(), 'Test_Data/td_power_manager/verify_screensaver_diff_image' '/{}'.format(p)) log.info('verify the template picture:{}'.format(path)) return path
def login_remote(*args, **kwargs): case_name = kwargs.get("case_name") result_file = kwargs.get("report_file") log.info('2.2. Start a remote session with your SH account.') SwitchThinProMode(switch_to='user') conn = kwargs.get('conn') if start_remote('logon', conn=conn): steps = { 'step_name': 'login a remote session (RDP)', 'result': 'Pass', 'expect': '', 'actual': '', 'note': '' } common_function.update_cases_result(result_file, case_name, steps) else: log.info('remote session login fail') steps = { 'step_name': 'login a remote session (RDP)', 'result': 'Fail', 'expect': 'login success', 'actual': 'vdi login fail', 'note': '' } common_function.update_cases_result(result_file, case_name, steps) reset_all_settings(num=0) return False
def reset_all_settings(*args, **kwargs): log.info('reset all settings') num = kwargs.get('num', 15) user_manager = kwargs.get("user_manager") user = kwargs.get('user') server = kwargs.get('rdp_server') conn = kwargs.get('conn') if not check_icon('start') and not check_icon('unlock'): pyautogui.press('enter') unlock_screen(r'sh.dto\!#$%^', 'Shanghai2010') time.sleep(5) if check_icon('locked'): unlock_screen('root', '1') if check_icon('unlock'): unlock_screen(r'sh.dto\!#$%^', 'Shanghai2010') time.sleep(5) if check_icon('locked'): unlock_screen('root', '1') start_remote('', conn=conn) reset_key(user_manager, user, server) reset_require_pass_domain_users() if not leave_domain_with_check(): common_function.import_profile() os.system('reboot') else: common_function.import_profile() time.sleep(num)
def reset_all_settings(lis): locked_wake_up() time.sleep(2) power_m = PowerManagerFactory("ScreenSaver") power_m.ScreenSaver.open_power_manager_from_control_panel() power_m.ScreenSaver.switch() power_m.ScreenSaver.set( pms=pms.ScreenSaver.Enable_Screensaver_and_Screen_Lock, radio="on") power_m.ScreenSaver.set( pms=pms.ScreenSaver.Minutes_before_automatic_Screensaver_activation, radio="on", text=lis[1]) power_m.ScreenSaver.apply() time.sleep(5) power_m.ScreenSaver.close_all_power_manager() if lis: log.info('reset all settings in the end') os.system( "mclient --quiet set root/screensaver/enableScreensaver {}".format( lis[0])) os.system( "mclient --quiet set root/screensaver/enableCustomLogo {}".format( lis[2])) os.system("mclient --quiet set root/screensaver/logoPath {}".format( lis[3])) os.system("mclient commit")
def run(self): """ run test :return: """ try: suit = self.set_case_suite()#调用set_case_suite获取test_suite print('try') print(str(suit)) if suit is not None:#判断test_suite是否为空 print('if-suit') fp = open(resultPath, 'wb')#打开result/20181108/report.html测试报告文件,如果不存在就创建 #调用HTMLTestRunner runner = HTMLTestRunner.HTMLTestRunner(stream=fp, title='API测试报告', tester='ZhaoJun') runner.run(suit) else: print("Have no case to test.") except Exception as ex: print(str(ex)) log.info(str(ex)) finally: print("*********TEST END*********") log.info("*********TEST END*********") fp.close()
def step2(power_m): try: set_image_slideshowstretch(power_m) power_m.ScreenSaver.apply() time.sleep(5) lock_screen() img21, size21 = open_pic(pic_cut('3', '1')) data21 = get_pic_color(img21, get_xy(size21)) log.info(data21) for _ in range(3): time.sleep(5) img22, size22 = open_pic(pic_cut('3', '2')) data22 = get_pic_color(img22, get_xy(size22)) if data21 != data22: break else: time.sleep(5) img22, size22 = open_pic(pic_cut('3', '2')) data22 = get_pic_color(img22, get_xy(size22)) log.info(data22) locked_wake_up() time.sleep(5) return data21, data22 except: log.debug( traceback.format_exc(), common_function.get_current_dir( 'Test_Report', 'img', 'different_image_slideshowstretch.png')) power_m.ScreenSaver.apply() power_m.close_all_power_manager() return None
def pic_path(pic_name): path = os.path.join( common_function.get_current_dir(), 'Test_Data/td_power_manager/verify_screensaver_diff_image' '/source_pic/{}'.format(pic_name)) log.info('select the source picture:{}'.format(path)) return path
def verify_two_account(*args, **kwargs): case_name = kwargs.get("case_name") result_file = kwargs.get("report_file") log.info('verify two accounts art listed') lock_screen() if check_account('with_vdi'): steps = { 'step_name': 'verify two accounts art listed', 'result': 'Pass', 'expect': 'correct', 'actual': 'correct', 'note': '' } common_function.update_cases_result(result_file, case_name, steps) else: error_pic = os.path.join( common_function.get_current_dir(), r'Test_Report', 'img', 'verify_domain_and_rdp_two_account_are_listed.png') picture_operator.capture_screen(error_pic) steps = { 'step_name': 'verify two accounts art listed', 'result': 'Fail', 'expect': 'correct', 'actual': 'wrong', 'note': '' } common_function.update_cases_result(result_file, case_name, steps) reset_all_settings(num=0) return False
def sleep_method1(): try: log.info('sleep by wait time') power_manager = PowerManagerFactory("AC") power_manager.AC.open_power_manager_from_control_panel() power_manager.AC.switch() power_manager.AC.set(pms=pms.AC.Minutes_before_system_sleep, radio="on", text="{}".format('1')) with PrepareWakeUp(time=80) as w: power_manager.AC.apply() w.wait(60) to_os = ScreenSaver() to_os.resume_lock_screen_by_mouse() time_gap = w.get_max_time_gap() w.set_max_time_gap(0) power_manager.AC.set(pms=pms.AC.Minutes_before_system_sleep, radio="on", text="{}".format('30')) power_manager.AC.apply() time.sleep(5) power_manager.AC.close_all_power_manager() return time_gap except: log.warning(traceback.format_exc()) return '0'
def login_domain_user(*args, **kwargs): case_name = kwargs.get("case_name") result_file = kwargs.get("report_file") log.info('2.1. Login with !#$%^ Shanghai2010') time.sleep(10) domain_login(user_name='!#$%^', password="******") time.sleep(5) if check_account('start') or check_account('domain_icon'): steps = { 'step_name': 'login domain account success', 'result': 'Pass', 'expect': 'login success', 'actual': 'success', 'note': '' } common_function.update_cases_result(result_file, case_name, steps) else: error_pic = os.path.join(common_function.get_current_dir(), r'Test_Report', 'img', 'login_domain_user_result.png') picture_operator.capture_screen(error_pic) steps = { 'step_name': 'login domain account success', 'result': 'Fail', 'expect': 'login success', 'actual': 'fail', 'note': '{}'.format(error_pic) } common_function.update_cases_result(result_file, case_name, steps) reset_all_settings(num=0) return False
def add_domain_result(*args, **kwargs): log.info('check the result of step join tc domain') case_name = kwargs.get("case_name") result_file = kwargs.get("report_file") if check_icon('domain_login_user') or check_icon('domain_login_pwd'): steps = { 'step_name': 'verify add domain and reboot success', 'result': 'Pass', 'expect': 'add domain success', 'actual': 'success', 'note': '' } common_function.update_cases_result(result_file, case_name, steps) else: error_pic = os.path.join(common_function.get_current_dir(), r'Test_Report', 'img', 'verify_add_domain_result.png') picture_operator.capture_screen(error_pic) steps = { 'step_name': 'verify add domain and reboot success', 'result': 'Fail', 'expect': 'add domain success', 'actual': 'fail', 'note': '{}'.format(error_pic) } common_function.update_cases_result(result_file, case_name, steps) domain_login(user_name='!#$%^', password="******") reset_all_settings(num=0) return False
def start(case_name, **kwargs): try: log.info('Begin to start test {}'.format(case_name)) user_manager = vdi_connection.MultiUserManger() user = user_manager.get_a_available_key() rdp_server = user_manager.get_a_available_key('rdp win10') conn = vdi_connection.RDPLinux(user=user, rdp_server=rdp_server) log.info('user: {}, rdp_server: {}'.format(user, rdp_server)) report_file = os.path.join( common_function.get_current_dir(), r'Test_Report', '{}.yaml'.format(common_function.check_ip_yaml())) common_function.new_cases_result(report_file, case_name) common_function.case_steps_run_control(steps_list, __name__, case_name=case_name, log=log, report_file=report_file, user=user, rdp_server=rdp_server, conn=conn, user_manager=user_manager) except: log.error(traceback.format_exc()) error_pic = os.path.join(common_function.get_current_dir(), r'Test_Report', 'img', '{}.png'.format(case_name)) picture_operator.capture_screen(error_pic) reset_all_settings(num=0) return False
def set_image_slideshowstretch(power_m): log.info('set the image type to slideshowstretch') power_m.ScreenSaver.set( pms=pms.ScreenSaver.Enable_Screensaver_and_Screen_Lock, radio="on") power_m.ScreenSaver.set(pms=pms.ScreenSaver.Image_Mapping, selected=pms.ScreenSaver.Select.SlideShowStretch) power_m.ScreenSaver.set(pms=pms.ScreenSaver.Custom_image, selected=pms.ScreenSaver.Select.Customized_dictory)
def select_mode(select, power_manager): if select == 'ondemand': power_manager.AC.set(pms=pms.AC.CPU_mode, selected=pms.AC.Select.ondemand) else: power_manager.AC.set(pms=pms.AC.CPU_mode, selected=pms.AC.Select.performance) power_manager.AC.apply() time.sleep(3) log.info('switch cpu mode to {}'.format(select))
def click_icon(lis): log.info('check icon and click') path = os.path.join(common_function.get_current_dir(), 'Test_Data', 'td_power_manager', 'verify_s3_work') for i in lis: power_icon = picture_operator.wait_element(os.path.join(path, i), offset=(20, 10)) tool.click(power_icon[0][0], power_icon[0][1], 1)
def last_step(*args, **kwargs): user_manager = kwargs.get("user_manager") case_name = kwargs.get("case_name") user = kwargs.get('user') server = kwargs.get('rdp_server') reset_key(user_manager, user, server) common_function.import_profile() log.info('test case {} is end'.format(case_name))
def set_image_tile(power_m, path): log.info('set the image type to title') power_m.ScreenSaver.set( pms=pms.ScreenSaver.Enable_Screensaver_and_Screen_Lock, radio="on") power_m.ScreenSaver.set(pms=pms.ScreenSaver.Image_Mapping, selected=pms.ScreenSaver.Select.Title) power_m.ScreenSaver.set(pms=pms.ScreenSaver.Custom_image, selected=pms.ScreenSaver.Select.Customized_dictory, pic_path=path)
def lock_screen(): log.info('lock the screen') SwitchThinProMode(switch_to='user') time.sleep(2) pyautogui.hotkey('ctrl', 'alt', 'l') time.sleep(2) size = common_function.screen_resolution() tool.click(int(size[0] / 2), int(size[1] / 2), 1) return True
def check_icon(name): log.info('check the picture {}'.format(name)) path = os.path.join(common_function.get_current_dir(), 'Test_Data', 'td_power_manager', 'verify_screensaver_works_in_system_image_mode', '{}'.format(name)) if os.path.exists(path): if wait_element(path): return True
def start_remote(lg, **kwargs): conn = kwargs.get('conn') if lg == 'logon': log.info('Switch to user mode to start remote session') return conn.logon("fasdfs") else: log.info('logoff remote session') res = conn.logoff() return res
def get_cup_mode(): path = os.path.join(common_function.get_current_dir(), 'Test_Data', 'td_power_manager', 'verify_ac_default_value', 'ondemand') if wait_element(path): cpu_mode = 'ondemand' else: cpu_mode = 'performance' log.info('get cpu mode:{}'.format(cpu_mode)) return cpu_mode
def lock_screen(): log.info('lock the screen') path = common_function.get_current_dir('Test_Data', 'td_power_manager', 'desktop') for _ in range(3): pyautogui.hotkey('ctrl', 'alt', 'l') time.sleep(2) if not wait_element(path): break time.sleep(2)
def unlock_screen(user, password): log.info('Try {} {} to unlock screen'.format(user, password)) if check_icon('wran_error'): pyautogui.press('enter') time.sleep(2) sw_user('unlock') pyautogui.typewrite(user) time.sleep(1) pyautogui.press("tab") time.sleep(1) pyautogui.typewrite(password) time.sleep(1) pyautogui.press("enter")
def wait_and_check_screen_saver(t=55): log.info("start wait time") for i in range(9): time.sleep(t) if linux_check_locked(): log.error("current loop times {}".format(i)) break else: time.sleep(t + 35) flag = linux_check_locked() log.info("check screen lock result:{}".format(flag)) return flag return False
def sleep_desktop(): log.info('sleep by right click desktop') tool.right_click(300, 300, 1) # try: # click_icon(['power', 'sleep']) # except: time.sleep(1) pyautogui.press("up", interval=0.5) pyautogui.press("enter", interval=0.5) pyautogui.press("down", interval=0.5) pyautogui.press("enter", interval=0.5) pyautogui.press("enter", interval=0.5) time.sleep(10)
def require_pass_domain_users(): log.info('Uncheck "Require password for domain users') SwitchThinProMode(switch_to='admin') power_m = PowerManagerFactory("ScreenSaver") power_m.ScreenSaver.open_power_manager_from_control_panel() power_m.ScreenSaver.switch() power_m.ScreenSaver.set( pms=pms.ScreenSaver.Enable_Screensaver_and_Screen_Lock, radio="on") power_m.ScreenSaver.set( pms=pms.ScreenSaver.Require_password_for_domain_users, radio="off") power_m.ScreenSaver.apply() time.sleep(3) power_m.ScreenSaver.close_all_power_manager()
def step1(*args, **kwargs): case_name = kwargs.get("case_name") report_file = kwargs.get("report_file") SwitchThinProMode(switch_to='admin') log.info('set user password: 1') set_user_password() log.info('enable require password for general users') power_m = PowerManagerFactory("ScreenSaver") power_m.ScreenSaver.open_power_manager_from_control_panel() power_m.ScreenSaver.switch() power_m.ScreenSaver.set( pms=pms.ScreenSaver.Enable_Screensaver_and_Screen_Lock, radio="on") power_m.ScreenSaver.set( pms=pms.ScreenSaver.Require_password_for_general_users, radio="on") click_icon('ok', count=1) power_m.ScreenSaver.apply() time.sleep(5) power_m.ScreenSaver.close_all_power_manager() SwitchThinProMode(switch_to='user') log.info('start a web connection') web = WebConn([]) web.open_firefox() if click_icon('firefox_title'): log.info('web connection success') lock_screen() pyautogui.press('enter') if click_icon('locked_dialog'): log.info('screen lock dialog shown') steps = { 'step_name': "verify screen lock dialog shown", 'result': 'Pass', 'expect': 'show', 'actual': 'show', 'note': '' } common_function.update_cases_result(report_file, case_name, steps) else: error_pic = os.path.join( common_function.get_current_dir(), r'Test_Report', 'img', '{}+step1.png'.format(case_name.replace(' ', '_'))) capture_screen(error_pic) steps = { 'step_name': "verify screen lock dialog shown", 'result': 'Fail', 'expect': 'show', 'actual': 'not show', 'note': '' } common_function.update_cases_result(report_file, case_name, steps) reset_settings() return False
def check_ac_default_value(): power_manager = PowerManagerFactory("AC") power_manager.AC.open_power_manager_from_control_panel() power_manager.AC.switch() path = os.path.join(common_function.get_current_dir(), 'Test_Data', 'td_power_manager', 'verify_ac_default_value', 'sleep_time') if wait_element(path): sleep = '30' else: sleep = '' log.info('get default value on AC sleep after:{}'.format(sleep)) power_manager.AC.close_all_power_manager() return sleep