You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何基于命令行参数为Maestro测试程序化设置appID

在Maestro测试中通过命令行参数动态设置AppID

你想用maestro test . -e android这类命令快速切换AppID,但之前的代码用process.argv拿不到参数,问题出在Maestro的-e参数本质是用来设置环境变量,不是直接传递给JS脚本的命令行参数。以下是修正后的实现方案:

步骤1:调整命令行传参方式

把原来的-e android改成键值对形式的环境变量传递,Maestro会将该变量注入到JS脚本的运行环境中:

# 运行Android测试
maestro test . -e PLATFORM=android

# 运行iOS测试
maestro test . -e PLATFORM=iOS

步骤2:修改JS脚本获取环境变量

通过process.env读取Maestro传入的环境变量,动态生成对应AppID:

output.result = function getAppId() {
  // 从环境变量获取平台标识,默认设为iOS
  const platform = process.env.PLATFORM || "iOS";

  // 根据平台返回对应AppID
  return platform.toLowerCase() === "android" 
    ? "com.android.appid" 
    : "com.ios.appid";
};

补充说明

  • Maestro的-e <KEY=VALUE>参数用于设置测试运行时的环境变量,这些变量会暴露给JS脚本的process.env对象,不会出现在process.argv里,所以之前用args.includes("android")的方式无法找到参数。
  • 如果需要支持更多平台,直接扩展条件判断逻辑即可。

内容的提问来源于stack exchange,提问作者user650309

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 22:42:08