Source code for autoease.core.autoease_global

"""
@author: meili
@contact: meili02@corp.netease.com
@file: global.py
@date: 2023/2/20 17:58
@desc: 
"""
import os
import time

from autoease.utils.logger import get_logger
from autoease.core.stage import StageManager
from autoease.utils.file import FileManager
from autoease.core import reporter as autoease_reporter
from autoease.core.case_resource_manager import CaseResourceManager
from autoease.device.device import Device


[docs]class Platform(object): WIN64 = "Win64" XSX = "XSX"
[docs]class RunMode(object): LOCAL = "local" DEPLOY = "deploy"
[docs]class AutoEaseG(object): """Represent the globals variables""" MODE = RunMode.LOCAL # choice: RunMode.LOCAL or RunMode.DEPLOY PLATFORM: Platform = None CASE_NAME = None RECORD_ID = None REPORT_URL = None IS_RECORD = True IS_UPLOAD_VIDEO = True LOGS_SAVED = None CASE_START_TIME = None LOG_FILE_PATH: str = "" LOGGING = get_logger(__name__) DEVICE: Device = None STAGE_MANAGER = StageManager PERFORMANCE_TOOL = None RECORDER = None GAME_PATH = None # local deploy GAME_NAME = None # local deploy GAME_PROJECT_NAME = None LOG_PATH = None # local deploy GAME_PID = None # local deploy FILE_MANAGER: FileManager = None CASE_RESOURCE_MANAGER: CaseResourceManager = None HAS_SEND_REPORT = False CASE_LOG = None CASE_ERROR_LOG = None
[docs]def import_device_cls(platform): if platform == Platform.WIN64: print(f"initial {platform}") from autoease.device.win.win import Windows as cls elif platform == Platform.XSX: print(f"initial {platform}") from autoease.device.xbox.xbox import Xbox as cls else: raise RuntimeError("Unknown platform: %s" % platform) return cls
[docs]def import_performance_tool_cls(platform): if platform == Platform.WIN64: from autoease.performance_tool.airperf import AirperfService as cls elif platform == Platform.XSX: from autoease.performance_tool.xbox_performance_tool import XboxPerfService as cls else: raise RuntimeError("Unknown platform: %s" % platform) return cls
[docs]def get_actual_mode(exp_mode, record_id: int) -> str: mode = RunMode.LOCAL if exp_mode == RunMode.DEPLOY and record_id is not None: mode = RunMode.DEPLOY return mode
[docs]def init_autoease_global(exp_mode, platform, is_record, is_upload_video, record_id, case_name, report_url, logs_saved, game_project_name, case_info_log, case_error_log, **kwargs): print("Init AutoEase Global...") actual_mode = get_actual_mode(exp_mode, record_id) # mode parse AutoEaseG.MODE = actual_mode AutoEaseG.PLATFORM = platform AutoEaseG.IS_RECORD = is_record AutoEaseG.IS_UPLOAD_VIDEO = is_upload_video AutoEaseG.RECORD_ID = record_id AutoEaseG.CASE_NAME = case_name AutoEaseG.LOGS_SAVED = logs_saved AutoEaseG.GAME_NAME = game_project_name AutoEaseG.REPORT_URL = report_url AutoEaseG.CASE_INFO_LOG = case_info_log AutoEaseG.CASE_ERROR_LOG = case_error_log print(f"AutoEase mode: {actual_mode}") print(f"AutoEase platform: {platform}") print(f"AutoEase is_record: {AutoEaseG.IS_RECORD}") print(f"AutoEase is_upload_video: {AutoEaseG.IS_UPLOAD_VIDEO}") print(f"AutoEase record_id: {AutoEaseG.RECORD_ID}") print(f"AutoEase case_name: {AutoEaseG.CASE_NAME}") print(f"AutoEase report_url: {report_url}") print(f"AutoEase logs_saved: {logs_saved}") print(f"AutoEase case_info_log: {AutoEaseG.CASE_INFO_LOG}") print(f"Autoease case_error_log: {AutoEaseG.CASE_ERROR_LOG}") AutoEaseG.FILE_MANAGER = FileManager(logs_saved) platform_cls = import_device_cls(platform) dev = platform_cls(is_record=is_record, game_project_name=game_project_name, file_manager=AutoEaseG.FILE_MANAGER, **kwargs) AutoEaseG.DEVICE = dev if dev.get_game_name is not None: performance_tool_cls = import_performance_tool_cls(platform) performance_tool = performance_tool_cls(dev.get_game_name, **kwargs) AutoEaseG.PERFORMANCE_TOOL = performance_tool # init case resource manager AutoEaseG.CASE_RESOURCE_MANAGER = CaseResourceManager() AutoEaseG.CASE_START_TIME = time.time()
[docs]def close_and_send_report(): print("AutoEase close and send report") # stop record if AutoEaseG.IS_RECORD is True: AutoEaseG.DEVICE.stop_record() start_time = AutoEaseG.CASE_START_TIME end_time = time.time() # deploy mode if AutoEaseG.MODE == RunMode.DEPLOY: print("deploy mode, send report") autoease_reporter.send_report(AutoEaseG.CASE_NAME, AutoEaseG.REPORT_URL, AutoEaseG.RECORD_ID, AutoEaseG.DEVICE.get_game_log_path, start_time, end_time, AutoEaseG.GAME_NAME, AutoEaseG.FILE_MANAGER, AutoEaseG.CASE_INFO_LOG, AutoEaseG.CASE_ERROR_LOG)
if __name__ == '__main__': pass