Mobile coverage without the script upkeep.

Thunders vs Appium

VS

Every Appium test you add is another script to repair after the next release. Thunders replaces the scripts, the locators, the framework and the repairs. You describe the flow in natural language. AI agents run it on real iOS and Android devices and keep it working when the app changes.

Appium drives the phone. Thunders tests the app.

Appium exposes the W3C WebDriver protocol through drivers such as UiAutomator2 for Android and XCUITest for iOS.

Every step in an Appium test is code that finds an element and acts on it. The framework is free and flexible. The cost sits in everything around it: Node.js, platform SDKs, Xcode, an Appium server, a device lab or a cloud contract, and engineers who write and repair locator-based scripts in Java, Python, JavaScript, Ruby or C#.

Thunders works one level up. A test is a list of intents. “Enter the test user’s email.” “Check that the contract total matches the API.” A persona finds the field on screen, stores the decision and reuses it on later runs. When the screen changes, it analyzes it again, carries on and tells you what it changed.

Your team keeps the coverage. It stops paying for the upkeep.

Appium logo over a smartphone tangled in cables with broken code brackets and a wrench, next to the Thunders logo over a clean smartphone with a glowing ribbon of check marks
Side by side

Comparing Thunders and Appium

Test authoring

How a test is written
Code in Java, Python, JavaScript, Ruby or C#
Natural-language steps, a recorded session, or AI-generated from a spec, a ticket or an Xray test plan
Who writes tests
Automation engineers and SDETs
Testers, product people and developers, including from Claude, Cursor or Copilot through the Thunders MCP
How elements are found
Locators: resource IDs, accessibility IDs, XPath
Intent resolved on screen, from what the tester would see
Apps without stable IDs
Index-based XPaths that break when the layout shifts
Steps describe intent, so no ID is required
Help writing good tests
Code review
Step coaching flags over-specified or ambiguous steps and suggests a rewrite

Execution

Setup
Node.js, platform drivers, Android SDK, Xcode, Appium server, device capabilities
Upload an APK or IPA, or push the build from CI. Your first test runs in minutes
Devices
Your own lab, or a separate device cloud contract
Real iOS and Android devices, plus emulators and simulators, included
Scale across devices
A grid you configure and maintain
Device pools, and a test set run across a list of devices in parallel
Scheduling
External CI
Built-in scheduler, CI or API trigger
Evidence per step
The logs and screenshots you code
A screenshot and the reasoning for every step

Maintenance

When the UI changes
The locator fails. An engineer investigates and patches the script
Thunders analyzes the screen again, continues and flags the heal for review
Visibility of fixes
Commit history
A healed pass is shown apart from a clean pass. The owner receives the before, the after and a screenshot
Flakiness
Depends on the waits and retries you code
Fewer than 0.5% of runs are flaky across customers
Cost of ownership
Free license. Engineering time and infrastructure on your side
Subscription. Maintenance handled by the platform

Platform scope

API checks in the same test
A separate HTTP library in your code
API steps and native screen checks in one test case
Web testing
A separate Selenium or WebDriver suite, on separate infrastructure
Same platform. Web and mobile tests chained through test sets
Test management and reporting
Separate tools
Built in, with native Xray and Jira integration and custom reports
Visual and file comparison
Image plugin, pixel comparison
Visual Compare and File Compare, with instructions such as “ignore placeholder text”
Accessibility
Separate tooling
The Accessibility persona reviews each screen during the run

Thunders and your Appium suite

Folder with an arrow moving out icon

Migrate your Appium suite in hours

Point an AI coding assistant such as Claude, Cursor or Copilot at your test repository. Through the Thunders MCP, it reads each Appium test, translates the commands into plain-language steps and creates the matching Thunders test cases. The IDs and selectors stay behind. What the test checks comes across.

Migrate folder by folder, review each batch, then run it. The same approach works for Selenium, Playwright and Cypress suites. Teams without a code suite start from their test plans in Xray or Jira, Cloud or Data Center.

Read the step-by-step guide to importing your existing tests
Smartphone with settings controls icon

You never write Appium code. You can still reach the device.

Most steps are intent. When a test needs more, power-user steps give you device-level control inside the same test: set a GPS location, change device settings, call an API, or inject a line of code to work around a known bug until the fix ships.

Branching pipeline icon

Run both in the same pipeline

Thunders runs from CI, from the API or from its own scheduler, so it sits next to an Appium suite in the same pipeline. Your automation engineers move from repairing scripts to owning the test strategy.

Code brackets with a check mark icon

Less code to keep alive

A renamed button should not cost an engineer a morning. Across our customers, 95% of UI changes are absorbed automatically, and every heal stays visible and reversible.

Discover How Thunders Works
Get a Demo

Why teams move their mobile regression to Thunders

Maintenance

Coverage stops costing more every sprint

With script-based suites, every gain in coverage adds to the maintenance bill. In Thunders, the suite heals itself, and every heal stays visible. A healed run is marked as healed, and the test owner decides whether the change is expected or a defect.

Before, after and screenshot for every heal

Accept the change or file it as a bug

Fewer than 0.5% of runs flaky across customers

Authoring

The people who know the product write the tests

An Appium suite is only as wide as the number of engineers who can write it. In Thunders, testers write each step in plain language, record it by using the app, or ask Thunders AI for a first draft.

Plain-language steps, recording and AI generation in one flow

Tests generated from Xray or Jira test plans

Developers add tests from their coding assistant through the Thunders MCP

Scope

Mobile, API and web on one platform

Appium covers the device. The API check, the web flow, the report and the test plan live elsewhere. Thunders holds them together.

API and native screen checks in one test case

Web and mobile chained through test sets

Test management, Xray and Jira integration, and custom reports built in

Demo video

Thunders in action

Wondering if Thunders is a better platform for you? See this video walkthrough to learn the ins and outs of Thunders’ application and how it can help your team.

Frequently Asked Questions

Do I need Appium to use Thunders?

No. You don’t install, configure or write Appium. Upload your APK or IPA, describe the flow in plain language, and Thunders runs it on real iOS and Android devices, emulators and simulators.

Can I bring my existing Appium tests into Thunders?

Yes, in hours. Connect an AI coding assistant to your repository and to the Thunders MCP. It reads your Appium tests, translates them into plain-language steps and creates the Thunders test cases. You review each batch before running it. Test plans in Xray or Jira import too. See the import guide on the Thunders blog.

Am I locked in?

No. If you end your contract, Thunders exports your test suite to an open-source framework.

Will I lose low-level control over the device?

No. Power-user steps set a GPS location, change device settings, call an API or inject code to work around a known bug, inside the same test.

Appium is free. Why pay for Thunders?

The Appium license is free. Owning an Appium suite is not: the setup, the device infrastructure, and the engineers who write and repair locator-based scripts after every release. Thunders moves that work to the platform, and your testers write the tests.

How does Thunders handle apps without unique element IDs?

Steps describe intent, not locators. A persona finds the element the way a tester would, from what is visible on screen. It stores the decision and analyzes the screen again only when the app changes. Every heal is flagged for review.

Can I run Thunders alongside an Appium suite?

Yes. Both run from CI, and Thunders can also be triggered by API or by its own scheduler. Teams often keep Appium for code-level cases and move end-to-end regression to Thunders flow by flow.

How does Thunders compare with Appium MCP?

Appium MCP is an open-source MCP server that lets an AI assistant such as Claude, Cursor or Copilot drive a device through Appium and generate Java test code. It helps a developer explore a build or reproduce a bug. Thunders turns the same plain-language intent into stored test cases that run across a pool of devices, heal when the app changes and report every step. Developers can create Thunders tests from the same assistant through the Thunders MCP.

Do I need real devices, emulators, or both?

Both, and Thunders gives you both. Emulators and simulators suit fast, broad coverage on every commit. Real devices catch the hardware, OS and network defects that only show on a physical phone.

Which apps and frameworks does Thunders support?

iOS and Android, on phones and tablets. Native, hybrid and WebView apps, including React Native and Flutter.

They tested our product

What our customers actually say

Portrait of Wassim Jouini

This is our QA of the future.

From the very first tests, Thunders caught real bugs in our interface — bugs that had slipped through all our standard quality processes.

Before Thunders, all UI testing was done manually. With Thunders, everything is end-to-end automated. Thunders lets us generate tests very quickly and improve the overall quality of our product.

Portrait of Hanen Khalfaoui

Thunders is a whole new testing culture, not just another tool.

Automating our tests was a real challenge that classical automation simply couldn't solve. With Thunders, we were able to automate a hundred tests, with no technical expertise required.

Thunders opens up test automation to non-technical roles. Thunders bridges the gap between code and people. With Selenium, it used to take much longer.

Portrait of Jean-Olivier Penin

What won me over with Thunders was the testing approach, the maturity, and the innovation.

Thunders delivers far greater resilience compared to classical automation. Thunders introduced a new variable in how we respond to RFPs — and it changes our entire economic model.

Today, Thunders is giving us a glimpse of more resilient tests and better maintainability of test suites. We run proofs of concept with Thunders to validate technologies for our clients.

Portrait of Florian Ernoult

Thunders enabled us to put quality and test creation in the hands of the entire product team.

Our PM teams covered 80% of our test scope in just six weeks with Thunders. After just one month, the entire team was up and running.

Tests are executable immediately and the onboarding was genuinely straightforward. Now it's the PMs who write test plans in plain language directly in Thunders.

Ready to ship faster with smarter testing?

Screenshot of the Thunders app Test Cases list, showing test sets, labels and last run status, with a label picker open