def _run_cases(run, cases): log = Log() log.set_logger(run.get_device()['model'], run.get_path() + '/' + 'client.log') log.i('udid: %s', run.get_device()['udid']) # set cls.path, it must be call before operate on any page path = ReportPath() path.set_path(run.get_path()) # set cls.driver, it must be call before operate on any page base_page = BasePage() # base_page.set_driver(run.get_device()['ip']) if 'ip' in run.get_device(): base_page.set_driver(run.get_device()['ip']) else: base_page.set_driver(run.get_device()['serial']) try: # run cases base_page.set_fastinput_ime() run.run(cases) base_page.set_original_ime() base_page.unwatch_device() base_page.identify() except AssertionError as e: log.e('AssertionError, %s', e)
def _run_cases(server_url, run, cases, index): log = Log() log.set_logger(run.get_device()['udid'], run.get_path() + '/' + 'client.log') log.i('platformName: %s', run.get_device()['platformName']) log.i('udid: %s', run.get_device()['udid']) log.i('app: %s', run.get_device()['app']) log.i('reuse: %s\n', run.get_device()['reuse']) # log.i('autoAcceptAlerts: %s', run.get_device()['autoAcceptAlerts']) log.i('macaca server port: %d\n', run.get_port()) # init driver driver = WebDriver(run.get_device(), server_url) driver.init() # set cls.path, it must be call before operate on any page path = ReportPath() path.set_path(run.get_path()) # login_status = LoginStatus() # login_status.set_status(False) # set cls.driver, it must be call before operate on any page base_page = BasePage() base_page.set_driver(driver) base_page.set_index(index) try: # run cases run.run(cases) except AssertionError as e: log.e('AssertionError, %s', e) # quit driver driver.quit()
def _run_cases(server_url, run, cases): log = Log() log.set_logger(run.get_device()['udid'], run.get_path() + '\\' + 'client.log') log.i('platformName: %s', run.get_device()['platformName']) log.i('udid: %s', run.get_device()['udid']) log.i('package: %s\n', run.get_device()['package']) log.i('macaca server port: %d\n', run.get_port()) # init driver driver = WebDriver(run.get_device(), server_url) driver.init() # set cls.path, it must be call before operate on any page path = ReportPath() path.set_path(run.get_path()) # set cls.driver, it must be call before operate on any page base_page = BasePage() base_page.set_driver(driver) # skip wizard if skip_wizard_to_home(): # run cases run.run(cases) # quit driver driver.quit()
def _create_gif(): ''' 生成gif文件,原始图片仅支持png格式 gif_name : 字符串,所生成的 gif 文件名,带 .gif 后缀 path : 需要合成为 gif 的图片所在路径 duration : gif 图像时间间隔 ''' frames = [] path = os.path.join(ReportPath().get_path(), 'tmp') if not os.path.exists(path): pass else: pngFiles = os.listdir(path) image_list = [os.path.join(path, f) for f in pngFiles] list.sort(image_list) for image_name in image_list: # 读取 png 图像文件 frames.append(imageio.imread(image_name)) # 保存为 gif gif_name = str(round(time.time() * 1000)) + '.gif' gif_path = os.path.join(ReportPath().get_path(), gif_name) imageio.mimsave(gif_path, frames, 'GIF', duration=0.6) shutil.rmtree(path) return gif_name
def _run_cases(run, cases): log = Log() log.set_logger(run.get_device()['model'], os.path.join(run.get_path(), 'client.log')) log.i('udid: %s', run.get_device()['udid']) # set cls.path, it must be call before operate on any page path = ReportPath() path.set_path(run.get_path()) # set cls.driver, it must be call before operate on any page base_page = BasePage() if 'ip' in run.get_device(): base_page.set_driver(run.get_device()['ip']) else: base_page.set_driver(run.get_device()['serial']) try: # run cases base_page.set_fastinput_ime() base_page.d.shell('logcat -c') # 清空logcat run.run(cases) # 将logcat文件上传到报告 base_page.d.shell('logcat -d > /sdcard/logcat.log') time.sleep(1) base_page.d.pull('/sdcard/logcat.log', os.path.join(path.get_path(), 'logcat.log')) base_page.set_original_ime() base_page.identify() except AssertionError as e: log.e('AssertionError, %s', e)
def screenshot(cls): '''截图并打印特定格式的输出,保证用例显示截图''' date_time = time.strftime('%Y%m%d%H%M%S', time.localtime(time.time())) screenshot_name = cls.__qualname__ + '-' + date_time + '.PNG' path = os.path.join(ReportPath().get_path(), screenshot_name) cls.d.screenshot(path) print('IMAGE:' + screenshot_name)
def _screenshot(name): date_time = time.strftime('%H%M%S', time.localtime(time.time())) screenshot = name + '-' + date_time + '.PNG' path = os.path.join(ReportPath().get_path(), screenshot) driver = BasePage().get_driver() driver.screenshot(path) return screenshot
def _run_cases(run, cases): log = Log() log.set_logger(run.get_device()['model'], run.get_path() + '/' + 'client.log') log.i('udid: %s' % run.get_device()['udid']) # set cls.path, it must be call before operate on any page path = ReportPath() path.set_path(run.get_path()) # set cls.driver, it must be call before operate on any page base_page = BasePage() # base_page.set_driver(run.get_device()['ip']) if 'ip' in run.get_device(): base_page.set_driver(run.get_device()['ip']) else: base_page.set_driver(run.get_device()['serial']) try: # 运行前准备 base_page.set_fastinput_ime() # 设置fastime输入法 # base_page.d.shell('rm -rf /sdcard/DCIM/XiaoYingLite') # 删除之前的导出视频 # base_page.d.shell('rm -rf /sdcard/XiaoYingLite') # 删除之前的导出视频 base_page.d.shell('logcat -c') # 清空logcat # 开始执行测试 run.run(cases) # 结束后操作 base_page.unwatch_device() base_page.set_original_ime() base_page.identify() # 将logcat文件上传到报告 base_page.d.shell('logcat -d > /sdcard/logcat.log') time.sleep(2) base_page.d.pull('/sdcard/logcat.log', os.path.join(path.get_path(), 'logcat.log')) time.sleep(5) if ReadConfig().get_method().strip() in ["UDID", "SERVER2"]: log.i('release device %s ' % run.get_device()['serial']) atxserver2(ReadConfig().get_server_url()).release_device( run.get_device()['serial']) else: pass except AssertionError as e: log.e('AssertionError, %s' % e)
def screenshot(cls): '''截图并打印特定格式的输出,保证用例显示截图''' date_time = time.strftime('%Y%m%d%H%M%S', time.localtime(time.time())) screenshot_name = 'Manual_' + date_time + '.PNG' # HTMLTestReport # screenshot_name = 'screenshot_' + cls.__qualname__ + '-' + date_time + '.png' # ExtentHTMLRunner path = os.path.join(ReportPath().get_path(), screenshot_name) cls.d.screenshot(path) print('IMAGE:' + screenshot_name) # HTMLTestReport
def _screenshot(name): date_time = time.strftime('%Y%m%d%H%M%S', time.localtime(time.time())) screenshot = name + '-' + date_time + '.PNG' path = ReportPath().get_path() + '\\' + screenshot driver = BasePage().get_driver() driver.save_screenshot(path) return screenshot
def _screenshot_for_gif(): tmp_path = os.path.join(ReportPath().get_path(), 'tmp') if not os.path.exists(tmp_path): os.mkdir(tmp_path) tmpshot = str(round(time.time() * 1000)) + '.PNG' path = os.path.join(tmp_path, tmpshot) driver = BasePage().get_driver() driver.screenshot(path) return path
def _run_cases(server_url, run, cases): log = Log() # Windows # log.set_logger(run.get_device()['udid'], run.get_path() + '\\' + 'client.log') # MacOS log.set_logger(run.get_device()['udid'], run.get_path() + '/' + 'client.log') log.i('platformName: %s', run.get_device()['platformName']) log.i('udid: %s', run.get_device()['udid']) # log.i('package: %s\n', run.get_device()['package']) log.i('bundleId: %s\n', run.get_device()['bundleId']) log.i('autoAcceptAlerts: %s\n', run.get_device()['autoAcceptAlerts']) log.i('macaca server port: %d\n', run.get_port()) # init driver driver = WebDriver(run.get_device(), server_url) driver.init() # set cls.path, it must be call before operate on any page path = ReportPath() path.set_path(run.get_path()) login_status = LoginStatus() login_status.set_status(False) # set cls.driver, it must be call before operate on any page base_page = BasePage() base_page.set_driver(driver) try: # skip wizard # if not into home page will raise AssertionError skip_wizard_to_home() # run cases run.run(cases) except AssertionError as e: log.e('AssertionError, %s', e) # quit driver driver.quit()
def _run_cases(run, cases): log = Log() log.set_logger(run.get_device()['model'], run.get_path() + '/' + 'client.log') log.i('udid: %s', run.get_device()['udid']) # set cls.path, it must be call before operate on any page path = ReportPath() path.set_path(run.get_path()) # set cls.driver, it must be call before operate on any page base_page = BasePage() base_page.set_driver(run.get_device()['ip']) try: # run cases run.run(cases) except AssertionError as e: log.e('AssertionError, %s', e)
def drive(server_url, run): log = Log() log.set_logger(run.get_device()['udid'], run.get_path() + '\\' + 'client.log') log.i('platformName: %s', run.get_device()['platformName']) log.i('udid: %s', run.get_device()['udid']) log.i('package: %s\n', run.get_device()['package']) log.i('macaca server port: %d\n', run.get_port()) # init driver driver = WebDriver(run.get_device(), server_url) driver.init() # set cls.path, it must be call before operate on any page path = ReportPath() path.set_path(run.get_path()) # set cls.driver, it must be call before operate on any page base_page = BasePage() base_page.set_driver(driver) while True: cmd = input("Please input run or exit:").lower() if cmd == 'run': print('Run run.py') print(os.system('python run.py %s %s %s %s' % (run.get_port(), run.get_device()['udid'], run.get_path(), driver.session_id ) ) ) elif cmd == 'exit': print('Good Bye') break # quit driver driver.quit()
def init(): port = int(sys.argv[1]) udid = sys.argv[2] report_path = str(sys.argv[3]) session = sys.argv[4] server_url = { 'hostname': '127.0.0.1', 'port': port, } log = Log() log.set_logger(udid, report_path + '\\' + 'client.log') driver = WebDriver('', server_url) driver.attach(session) # set cls.path, it must be call before operate on any page path = ReportPath() path.set_path(report_path) # set cls.driver, it must be call before operate on any page base_page = BasePage() base_page.set_driver(driver)
def _run_maxim(run, cases, command, actions, widget_black): log = Log() log.set_logger(run.get_device()['model'], os.path.join(run.get_path(), 'client.log')) log.i('udid: %s', run.get_device()['udid']) # set cls.path, it must be call before operate on any page path = ReportPath() path.set_path(run.get_path()) # set cls.driver, it must be call before operate on any page base_page = BasePage() if 'ip' in run.get_device(): base_page.set_driver(run.get_device()['ip']) else: base_page.set_driver(run.get_device()['serial']) try: # run cases base_page.d.shell('logcat -c') # 清空logcat if cases: run.run_cases(cases) Maxim().run_monkey(monkey_shell=command, actions=actions, widget_black=widget_black) base_page.d.shell('logcat -d > /sdcard/logcat.log') time.sleep(1) base_page.d.pull('/sdcard/logcat.log', os.path.join(path.get_path(), 'logcat.log')) base_page.d.pull('/sdcard/monkeyerr.txt', os.path.join(path.get_path(), 'monkeyerr.txt')) base_page.d.pull('/sdcard/monkeyout.txt', os.path.join(path.get_path(), 'monkeyout.txt')) base_page.set_original_ime() base_page.identify() if ReadConfig().get_method().strip() in ["UDID", "SERVER2"]: log.i('release device %s ' % run.get_device()['serial']) atxserver2(ReadConfig().get_server_url()).release_device( run.get_device()['serial']) else: pass except AssertionError as e: log.e('AssertionError, %s', e)