update to take screenshots

This commit is contained in:
Nikolas
2024-10-17 15:24:10 -07:00
parent a9faa7ac76
commit 1800d8fae7
2 changed files with 48 additions and 24 deletions

View File

@@ -18,7 +18,8 @@ from harness_utils.output import (
DEFAULT_LOGGING_FORMAT,
DEFAULT_DATE_FORMAT)
from harness_utils.process import terminate_processes
from harness_utils.steam import exec_steam_game
from harness_utils.steam import exec_steam_game, get_build_id
from harness_utils.artifacts import ArtifactManager, ArtifactType
STEAM_GAME_ID = 1091500
SCRIPT_DIRECTORY = os.path.dirname(os.path.realpath(__file__))
@@ -31,8 +32,8 @@ def start_game():
return exec_steam_game(STEAM_GAME_ID, game_params=["--launcher-skip", "-skipStartScreen"])
def navigate_main_menu() -> None:
"""Simulate inputs to navigate the main menu"""
def navigate_to_settings():
"""navigate from main menu to settings menu"""
logging.info("Navigating main menu")
result = kerasService.look_for_word("continue", attempts=10)
if not result:
@@ -41,15 +42,6 @@ def navigate_main_menu() -> None:
time.sleep(0.5)
user.press("enter")
time.sleep(0.5)
user.press("3")
time.sleep(0.5)
user.press("3")
time.sleep(0.5)
user.press("3")
time.sleep(0.5)
user.press("b")
time.sleep(0.5)
user.press("enter")
else:
user.press("left")
time.sleep(0.5)
@@ -57,20 +49,49 @@ def navigate_main_menu() -> None:
time.sleep(0.5)
user.press("enter")
time.sleep(0.5)
user.press("3")
def navigate_settings(am: ArtifactManager) -> None:
"""Simulate inputs to navigate the main menu"""
navigate_to_settings()
# entered settings
user.press("3")
time.sleep(0.5)
user.press("3")
time.sleep(0.5)
user.press("3")
time.sleep(0.5)
# now on graphics tab
am.take_screenshot("graphics_1.png", ArtifactType.CONFIG_IMAGE, "graphics menu 1")
for _ in range(7):
user.press("down")
time.sleep(0.5)
user.press("3")
am.take_screenshot("graphics_2.png", ArtifactType.CONFIG_IMAGE, "graphics menu 2")
for _ in range(11):
user.press("down")
time.sleep(0.5)
user.press("3")
time.sleep(0.5)
user.press("b")
time.sleep(0.5)
user.press("enter")
am.take_screenshot("graphics_3.png", ArtifactType.CONFIG_IMAGE, "graphics menu 3")
user.press("3")
time.sleep(0.5)
# now on video tab
am.take_screenshot("video.png", ArtifactType.CONFIG_IMAGE, "video menu")
user.press("b")
time.sleep(0.5)
user.press("enter")
def run_benchmark():
"""Start the benchmark"""
copy_no_intro_mod()
am = ArtifactManager(LOG_DIRECTORY)
# Start game via Steam and enter fullscreen mode
setup_start_time = time.time()
@@ -83,7 +104,7 @@ def run_benchmark():
logging.info("Did not see settings menu option.")
sys.exit(1)
navigate_main_menu()
navigate_settings(am)
# Start the benchmark!
setup_end_time = time.time()
@@ -104,11 +125,12 @@ def run_benchmark():
logging.info("Did not see results screen. Mark as DNF.")
sys.exit(1)
am.take_screenshot("results.png", ArtifactType.RESULTS_IMAGE, "results of benchmark")
test_end_time = time.time() - 2
time.sleep(2)
elapsed_test_time = round((test_end_time - test_start_time), 2)
logging.info("Benchmark took %f seconds", elapsed_test_time)
gui.screenshot(os.path.join(LOG_DIRECTORY, "results.png"))
time.sleep(3)
terminate_processes(PROCESS_NAME)
return test_start_time, test_end_time
@@ -134,7 +156,8 @@ try:
report = {
"resolution": f"{resolution}",
"start_time": seconds_to_milliseconds(start_time),
"end_time": seconds_to_milliseconds(end_time)
"end_time": seconds_to_milliseconds(end_time),
"version": get_build_id(STEAM_GAME_ID)
}
write_report_json(LOG_DIRECTORY, "report.json", report)

View File

@@ -19,7 +19,7 @@ from harness_utils.output import (
DEFAULT_DATE_FORMAT)
from harness_utils.process import terminate_processes
from harness_utils.keras_service import KerasService, ScreenShotDivideMethod, ScreenShotQuadrant, ScreenSplitConfig
from harness_utils.steam import exec_steam_game
from harness_utils.steam import exec_steam_game, get_build_id
from harness_utils.artifacts import ArtifactManager, ArtifactType
STEAM_GAME_ID = 750920
@@ -142,7 +142,8 @@ def run_benchmark(keras_service, am):
report = {
"resolution": format_resolution(width, height),
"start_time": seconds_to_milliseconds(test_start_time),
"end_time": seconds_to_milliseconds(test_end_time)
"end_time": seconds_to_milliseconds(test_end_time),
"version": get_build_id(STEAM_GAME_ID)
}
am.create_manifest()