mobile-dev-inc / mobile-dev-inc/maestro-docs

New User Onboarding

Open
#141 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
No language data
Stars
85
Forks
92
Avg merge
16h 6m
Merged PRs (30d)
1

Description

The docs are not up to date. I just recently tried to run maestro locally and am really struggling through it.

Might want to revisit how you instruct a first time user how to run locally.

It looks like it is defaulting to android devices for some reason. When one is running, the test will point there, if one isn't running it will fail due to java exceptions related to an emulator not being started.

Why would it be trying to hit an android emulator? This doesn't appear to be configured as part of the start up.

Here is the command I am running:

unzip sample.zip
xcrun simctl install Booted Wikipedia.app
maestro test --debug-output=debug/ ios-flow.yaml

Here is a flattened log:

19:55:56.357 [ INFO] MAESTRO.logSystemInfo: ---- System Info ----
19:55:56.359 [ INFO] MAESTRO.logSystemInfo: Maestro Version: 1.41.0
19:55:56.360 [ INFO] MAESTRO.logSystemInfo: CI: Undefined
19:55:56.360 [ INFO] MAESTRO.logSystemInfo: OS Name: Mac OS X
19:55:56.360 [ INFO] MAESTRO.logSystemInfo: OS Version: 15.6
19:55:56.360 [ INFO] MAESTRO.logSystemInfo: Architecture: aarch64
19:55:56.360 [ INFO] MAESTRO.logSystemInfo: Java Version: 8
19:55:56.545 [ INFO] MAESTRO.logSystemInfo: Xcode Version: 16.4
19:55:56.565 [ INFO] MAESTRO.logSystemInfo: Flutter Version: Undefined
19:55:56.571 [ INFO] MAESTRO.logSystemInfo: Flutter Channel: Undefined
19:55:56.572 [ INFO] MAESTRO.logSystemInfo: ---------------------
19:55:57.479 [ INFO] maestro.cli.command.TestCommand.runShardSuite: [shard 1] Selected device emulator-5554 using port 7001 with execution plan ExecutionPlan(flowsToRun=[/Users/marcusbates/SC/maestro-demo/samples/ios-flow.yaml], sequence=FlowSequence(flows=[], continueOnFailure=true), workspaceConfig=WorkspaceConfig(flows=null, includeTags=null, excludeTags=null, local=null, executionOrder=null, baselineBranch=null, notifications=null, disableRetries=false, platform=PlatformConfiguration(android=AndroidConfiguration(disableAnimations=false), ios=IOSConfiguration(disableAnimations=false, snapshotKeyHonorModalViews=null))))
19:56:01.322 [ INFO] maestro.Maestro.invoke: Getting device info
19:56:01.647 [ INFO] maestro.Maestro.invoke: Got device info: DeviceInfo(platform=ANDROID, widthPixels=1080, heightPixels=2220, widthGrid=1080, heightGrid=2220)
19:56:01.741 [ INFO] maestro.cli.runner.MaestroCommandRunner.invoke: Define variables RUNNING
19:56:01.744 [ INFO] maestro.cli.runner.MaestroCommandRunner.invoke: Define variables metadata CommandMetadata(numberOfRuns=null, evaluatedCommand=MaestroCommand(defineVariablesCommand=DefineVariablesCommand(env={MAESTRO_PROJECT=marcba Digital, MAESTRO_PROJECT_KEY=proj_01k2g68gx5fjq9csembc3kakb0, MAESTRO_KEY=rb_ktknp6cYdWdPX2s7snXoR5PPnxQ3NHM7NJjgWhqNysjVMOk6JgKcAR7NCdmwHyw4aT3kNUR4GUXIkKl6eJYtZz0dBLMdKZXV2DV, MAESTRO_FILENAME=ios-flow}, label=null, optional=false)), logMessages=[], insight=Insight(message=, level=NONE), aiReasoning=null, labeledCommand=null)
19:56:01.747 [ INFO] maestro.cli.runner.MaestroCommandRunner.invoke: Define variables COMPLETED
19:56:01.748 [ INFO] maestro.cli.runner.MaestroCommandRunner.invoke: Apply configuration RUNNING
19:56:01.748 [ INFO] maestro.cli.runner.MaestroCommandRunner.invoke: Apply configuration metadata CommandMetadata(numberOfRuns=null, evaluatedCommand=MaestroCommand(applyConfigurationCommand=ApplyConfigurationCommand(config=MaestroConfig(appId=org.wikimedia.wikipedia, name=null, tags=[ios, passing], ext={}, onFlowStart=null, onFlowComplete=null), label=null, optional=false)), logMessages=[], insight=Insight(message=, level=NONE), aiReasoning=null, labeledCommand=null)
19:56:01.749 [ INFO] maestro.cli.runner.MaestroCommandRunner.invoke: Apply configuration COMPLETED
19:56:01.749 [ INFO] maestro.cli.runner.MaestroCommandRunner.invoke: Launch app "org.wikimedia.wikipedia" RUNNING
19:56:01.749 [ INFO] maestro.cli.runner.MaestroCommandRunner.invoke: Launch app "org.wikimedia.wikipedia" metadata CommandMetadata(numberOfRuns=null, evaluatedCommand=MaestroCommand(launchAppCommand=LaunchAppCommand(appId=org.wikimedia.wikipedia, clearState=null, clearKeychain=null, stopApp=null, permissions=null, launchArguments=null, label=null, optional=false)), logMessages=[], insight=Insight(message=, level=NONE), aiReasoning=null, labeledCommand=null)
19:56:01.803 [ INFO] maestro.Maestro.launchApp: Launching app org.wikimedia.wikipedia
19:56:01.833 [ERROR] maestro.orchestra.Orchestra.executeCommands: [Command execution] CommandFailed: Unable to launch app org.wikimedia.wikipedia: Package org.wikimedia.wikipedia is not installed
19:56:01.834 [ INFO] maestro.Maestro.takeScreenshot: Taking screenshot
19:56:01.835 [TRACE] maestro.utils.ScreenshotUtils.takeScreenshot: Taking screenshot to output sink
19:56:02.561 [ INFO] maestro.cli.runner.MaestroCommandRunner.invoke: Launch app "org.wikimedia.wikipedia" FAILED
19:56:03.141 [ INFO] maestro.drivers.AndroidDriver.close: [Start] close port forwarder
19:56:03.142 [ERROR] maestro.cli.session.MaestroSessionManager.newSession$lambda$0: Failed to record heartbeat
java.lang.InterruptedException: sleep interrupted
	at java.lang.Thread.sleep(Native Method)
	at maestro.cli.session.MaestroSessionManager.newSession$lambda$0(MaestroSessionManager.kt:93)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at java.lang.Thread.run(Thread.java:750)
19:56:08.150 [ INFO] maestro.drivers.AndroidDriver.close: [Done] close port forwarder
19:56:08.153 [ INFO] maestro.drivers.AndroidDriver.close: [Start] Remove host port from port forwarder map
19:56:08.153 [ INFO] maestro.drivers.AndroidDriver.close: [Done] Remove host port from port forwarder map
19:56:08.153 [ INFO] maestro.drivers.AndroidDriver.close: [Start] Remove host port from port to allocation map
19:56:08.153 [ INFO] maestro.drivers.AndroidDriver.close: [Done] Remove host port from port to allocation map
19:56:08.153 [ INFO] maestro.drivers.AndroidDriver.close: [Start] Uninstall driver from device
19:56:08.899 [ INFO] maestro.drivers.AndroidDriver.close: [Done] Uninstall driver from device
19:56:08.899 [ INFO] maestro.drivers.AndroidDriver.close: [Start] Close instrumentation session
19:56:08.900 [ INFO] maestro.drivers.AndroidDriver.close: [Done] Close instrumentation session
19:56:08.900 [ INFO] maestro.drivers.AndroidDriver.close: [Start] Shutdown GRPC channel
19:56:08.902 [ INFO] maestro.drivers.AndroidDriver.close: [Done] Shutdown GRPC channel

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by locating the local-run onboarding documentation and reproduce the issue with sample.zip, xcrun simctl, and maestro test --debug-output=debug/ ios-flow.yaml. Done means the instructions explain the required iOS setup and prevent a first-time user from unexpectedly running the flow on an Android emulator.

Written by the indexing model from the issue text.

Assessment

Tech stack
android, ios, java, macos
Domain
documentation, mobile-dev
Issue type
Documentation
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.