feat: run tests on several local devices at once - #2
Open
stanleykim-ux wants to merge 7 commits into
Open
Conversation
Add DeviceEntry/devices config, slot helpers, and stubs for the shared Appium server lifecycle and emulator boot. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
- globalSetup starts a single Appium server on a free port, exports it via APPWRIGHT_APPIUM_PORT, installs the driver only when missing, and returns a teardown that stops the server and shuts down emulators it booted - device.devices[] assigns a device per worker slot (parallelIndex) with slot-unique systemPort / wdaLocalPort / mjpegServerPort / derivedDataPath - emulator provider boots missing AVDs / simulators in globalSetup - fixtures no longer restart Appium after every test - docs, example config, changeset, unit tests for slot helpers Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
… grace Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
- entries without avd boot the first installed AVD (old behaviour) - with nothing configured and no device online, boot emulator-5554 - every instance of an AVD used by several entries is started -read-only - skip emu kill for emulator processes that already exited Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…2e run Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
stanleykim-ux
marked this pull request as ready for review
September 4, 2026 15:26
… detected on macOS On macOS/BSD, binding 127.0.0.1:port succeeds while another process holds 0.0.0.0:port, so the probe never fell back and two concurrent runs both tried to start Appium on 4723. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
… is taken Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
stanleykim-ux
added this pull request to stack #4
September 10, 2026 20:43
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Lets Playwright run N workers with one local device or emulator each.
pkill -f appium).device.devices: [{ udid, avd? }]list; worker slotparallelIndexuses entry N. Singleudidstill works.systemPort,wdaLocalPort,mjpegServerPort,derivedDataPath).-read-only.workersexceeds configured devices.Test-facing fixtures (
device,persistentDevice) are unchanged. Docs indocs/config.md#running-on-multiple-local-devices.Verified
Two Android emulators with
workers: 2, retry on the same slot, legacy no-udid config, guard rail, unit tests. Not run on physical devices or iOS hardware.🤖 Generated with Claude Code