@@ -801,27 +627,22 @@ def create_banner_html(lang="en"):
-
__GROUNDING_TAG__
+
🎯 GROUNDED
__MOCK_BTN__
@@ -842,55 +663,33 @@ def create_banner_html(lang="en"):
"""
if lang == "cn":
replacements = {
- "__TAGLINE__": "用 Artemis 测试任意安卓手机",
- "__PROMPT_LABEL__": "目标 / 提示词",
- "__PROMPT_STATUS__": "设备实机运行中",
- "__PROMPT_TEXT__": "连接蓝牙耳机播放歌曲,并持续采集 CPU 性能指标",
- "__CONSOLE_TITLE__": "宿主智能体控制台",
- "__CONSOLE_BADGE__": "实时监控中",
- "__STEP_1__": "1. 自动连接蓝牙耳机",
- "__STEP_2__": "2. 打开播放器并播放歌曲",
- "__STEP_3_TITLE__": "▶ 3. 持续采集 CPU 性能指标",
- "__STEP_3_TIME__": "运行中",
- "__STEP_3_DESC__": "ADB 轮询 top -n 1 (进程 ID: 14208)",
- "__METRIC_1_LABEL__": "目标应用 CPU",
- "__METRIC_2_LABEL__": "蓝牙音频状态",
- "__METRIC_2_VAL__": "● 已连接",
- "__METRIC_3_LABEL__": "音频采样率",
- "__STEP_4__": "4. 断言验证 CPU < 5.0% 阈值",
+ "__TAGLINE__": "让 AI 助手与测试套件像人一样直接操作真机",
+ "__PROMPT_LABEL__": "🎯 测试指令",
+ "__PROMPT_STATUS__": "真机运行中",
+ "__PROMPT_TEXT__": "连接蓝牙耳机播放音乐,断言 CPU 占用 < 5%",
+ "__CONSOLE_TITLE__": "真机测试执行引擎",
+ "__CONSOLE_BADGE__": "通过",
+ "__STEP_1__": "连接蓝牙耳机",
+ "__STEP_2__": "打开播放器并播放歌曲",
+ "__STEP_3_TITLE__": "▶ 断言性能指标",
+ "__STEP_3_TAG__": "实时验证",
"__SCREEN_TITLE__": "正在播放",
- "__DEVICE_TAG__": "● PIXEL 实机",
- "__ITEM_SUB__": "输出设备: Pixel Buds Pro",
- "__ITEM_PRICE__": "播放中 ▶",
- "__SEC_TEXT__": "当前音频输出设备",
- "__GROUNDING_TAG__": "🎯 AI 视觉锚定 (0.99)",
- "__MOCK_BTN__": "媒体输出控制器",
+ "__MOCK_BTN__": "音频输出控制",
}
else:
replacements = {
- "__TAGLINE__": "Test Any Android Phone with Autonomous Assistant Platform",
- "__PROMPT_LABEL__": "Goal / Prompt",
- "__PROMPT_STATUS__": "RUNNING ON DEVICE",
- "__PROMPT_TEXT__": "Connect to Bluetooth earbuds, play a song, and capture CPU usage metrics",
- "__CONSOLE_TITLE__": "Host Agent Console",
- "__CONSOLE_BADGE__": "MONITORING",
- "__STEP_1__": "1. Connect to Bluetooth earbuds",
- "__STEP_2__": "2. Launch music player & play song",
- "__STEP_3_TITLE__": "▶ 3. Capture CPU usage metrics",
- "__STEP_3_TIME__": "Active",
- "__STEP_3_DESC__": "ADB polling top -n 1 (pid: 14208)",
- "__METRIC_1_LABEL__": "Target App CPU",
- "__METRIC_2_LABEL__": "Bluetooth Audio",
- "__METRIC_2_VAL__": "● Connected",
- "__METRIC_3_LABEL__": "Sample Rate",
- "__STEP_4__": "4. Assert CPU < 5.0% threshold",
+ "__TAGLINE__": "Let AI assistants and test suites use real phones like a human",
+ "__PROMPT_LABEL__": "🎯 TEST PROMPT",
+ "__PROMPT_STATUS__": "RUNNING",
+ "__PROMPT_TEXT__": "Connect Bluetooth earbuds, play song, and assert CPU < 5%",
+ "__CONSOLE_TITLE__": "Test Runner",
+ "__CONSOLE_BADGE__": "PASSED",
+ "__STEP_1__": "Connect Bluetooth earbuds",
+ "__STEP_2__": "Launch player & play song",
+ "__STEP_3_TITLE__": "▶ Assert Performance SLA",
+ "__STEP_3_TAG__": "VERIFYING",
"__SCREEN_TITLE__": "Now Playing",
- "__DEVICE_TAG__": "● PIXEL LAB",
- "__ITEM_SUB__": "Output: Pixel Buds Pro",
- "__ITEM_PRICE__": "Playing ▶",
- "__SEC_TEXT__": "Active Audio Output Device",
- "__GROUNDING_TAG__": "🎯 GROUNDED (0.99)",
- "__MOCK_BTN__": "Media Output Controls",
+ "__MOCK_BTN__": "Audio Output",
}
for key, val in replacements.items():
@@ -905,11 +704,11 @@ def render_image(html_str, output_path):
cmd = [
"google-chrome",
- "--headless=new",
+ "--headless",
"--disable-gpu",
- "--virtual-time-budget=2000",
+ "--no-sandbox",
+ "--disable-dev-shm-usage",
"--window-size=1280,480",
- "--device-scale-factor=2",
"--hide-scrollbars",
f"--screenshot={output_path}",
f"file://{temp_html}",
@@ -921,16 +720,15 @@ def render_image(html_str, output_path):
print(f"Error rendering {output_path}: {res.stderr}")
-from pathlib import Path
+if __name__ == "__main__":
+ assets_dir = Path(__file__).resolve().parent
+ os.makedirs(assets_dir, exist_ok=True)
-assets_dir = Path(__file__).resolve().parent
-os.makedirs(assets_dir, exist_ok=True)
+ # Generate English main banner and en banner
+ en_html = create_banner_html(lang="en")
+ render_image(en_html, str(assets_dir / "artemis-banner.png"))
+ render_image(en_html, str(assets_dir / "artemis-banner-en.png"))
-# Generate English main banner and en banner
-en_html = create_banner_html(lang="en")
-render_image(en_html, str(assets_dir / "artemis-banner.png"))
-render_image(en_html, str(assets_dir / "artemis-banner-en.png"))
-
-# Generate Chinese banner
-cn_html = create_banner_html(lang="cn")
-render_image(cn_html, str(assets_dir / "artemis-banner-cn.png"))
+ # Generate Chinese banner
+ cn_html = create_banner_html(lang="cn")
+ render_image(cn_html, str(assets_dir / "artemis-banner-cn.png"))