Migrate
Appium
Turn Appium tests in Java, Python or JavaScript into Autonomy Android test cases of outcome steps, without capabilities, drivers and locators.
Appium tests are WebDriver tests with device capabilities. In Autonomy, the device and the app build come from the environment, and each run starts on an Android emulator with a clean install. iOS testing is coming soon. See Mobile and Environments for builds.
Prompt
Paste this into a coding agent connected to the Autonomy MCP server, from inside the repository:
Migrate the Appium tests in this repository to Autonomy with the Autonomy MCP tools.
Setup
1. Call autonomy_project_list and ask me which project to use. Call autonomy_environment_list with its projectId and ask me which environment to run in. Check that it has an android target for the app; if it doesn't, tell me before you create anything.
2. Call autonomy_test_case_list with the projectId. Skip tests that an existing test case already covers.
For each test
3. Create ONE test case with autonomy_test_case_create: projectId, name = the test title, platforms = ["android"] for an Android platformName. iOS testing isn't available yet: skip iOS tests and list them for me. If the same test runs on both platforms, create one test case with ["ios", "android"].
4. Write each step as an outcome: what is true when the step is done, in plain words ("A new account exists for a fresh email"). Say what the test proves, not how: no taps, swipes, locators, waits, retries or assert calls. One step can cover several actions that serve one outcome. Use 12 steps or fewer; split a longer test into several test cases.
5. Each step is {id, text, attachments[]}. Each attachment has id, kind and exact. Kinds: account {role}, inbox (no address = a fresh inbox per run), phone, file, screenshot, data {label, value} or {label, intent} for generated data.
6. Never write a password, token or key into a step. For each account the suite signs in as, ask me to save it in the dashboard (the project's Sign-ins, New sign-in) and tell you its account name, then start the test with a step such as "The store owner is signed in" with that account attached. For other secrets, propose names and reference them as {{env.NAME}}; add them as secret values with autonomy_environment_upsert only after I agree.
7. Values the test is about (the text an assert checks, a coupon that must apply, input that must be refused): a data attachment with exact: true. Other config: {{env.NAME}}.
8. Sign-up data (emails, names, passwords, phone numbers): a fresh inbox, a phone attachment and generated data, never a fixed value.
9. Drop capabilities, driver setup, accessibility-id, XPath and UiAutomator locators, implicit and explicit waits, resetApp and noReset (every run starts with a clean install), and code that only dismisses permission dialogs (the agent handles dialogs). Fold swipes and TouchAction gestures into the outcome.
Afterwards
10. If the suite groups tests (classes, suites, tags), offer to create a test plan per group with autonomy_test_plan_create.
11. Run one migrated test case with autonomy_run_trigger in the environment I picked. Follow it with autonomy_run_get (pass the last cursor and waitMs) until it ends. For any step that didn't pass, read autonomy_run_step_actions and tell me what happened.
12. Finish with a table: source test, test case ID, number of steps, and anything you couldn't map.Mapping
| Appium | Autonomy |
|---|---|
| One test | One test case. Tests that run on both platforms become one test case with both. |
platformName | The test case's platform: Android. iOS testing is coming soon. |
app capability, build paths | The environment's Android target: an uploaded build or a download link. See Mobile builds. |
| Device and OS capabilities | Not needed. Runs use Autonomy's Android emulators. |
click, sendKeys, accessibility-id, XPath, UiAutomator, class chains | Folded into the step's outcome. The agent finds the controls. |
Swipes, TouchAction, scroll helpers | Folded into the step's outcome. |
| Asserts on element text | The outcome, with the expected text as a data attachment marked Exact. |
| Implicit and explicit waits, retries | Dropped. |
resetApp, noReset, fullReset | Dropped. Every run starts with a clean install, signed out. |
| Permission dialog handling | Dropped. The agent handles dialogs. |
| Login helpers | A signed-in step with a saved sign-in attached as an account. |
| SMS or email verification helpers | A phone or inbox attachment. See Inboxes and phones. |
| Screenshot calls | A screenshot attachment. |
See the migration overview for a worked example.
Didn’t find it?