AppStresser is a small desktop UI for exercising Android applications with the ADB Monkey tool.
v3 is under active development. Milestone 1 provides the secure execution core.
- Detects ADB from
ANDROID_SDK_ROOT,ANDROID_HOME, orPATH - Accepts an optional explicit ADB executable or
platform-toolsdirectory - Lists authorized Android devices and hides offline/unauthorized devices
- Validates the application package and event count
- Runs Monkey without invoking a command shell
- Streams stdout/stderr and allows an active run to be stopped
- Stops on the first crash or ANR and displays a clear test result
- Shows the recent device crash log when a failure is detected
- Uses a sandboxed, context-isolated Electron renderer with a narrow preload API
- Node.js 22 or newer
- Android SDK Platform-Tools
- An Android device or emulator with USB debugging enabled
pnpm install
pnpm test
pnpm startConnect and authorize a device before launching the test. You can verify it from
a terminal with adb devices -l.
Current prerelease builds are not code-signed. Only bypass an operating-system warning when you downloaded AppStresser from this repository's official GitHub Releases page and the filename and version match the release notes. Do not turn off SmartScreen, Gatekeeper, antivirus software, or other system-wide security protections.
Windows SmartScreen may display Windows protected your PC because the app does not yet have a trusted publisher signature.
- Confirm the installer came from the official AppStresser GitHub release.
- In the SmartScreen window, select More info.
- Check that the displayed app name is AppStresser, then select Run anyway.
If Run anyway is unavailable on a managed computer, do not weaken the computer's security policy. Ask your administrator or run AppStresser from source.
Gatekeeper may report that Apple cannot check AppStresser for malicious software or that the developer cannot be verified.
- Confirm the archive came from the official AppStresser GitHub release.
- Move AppStresser to the Applications folder.
- In Finder, Control-click AppStresser and choose Open, then choose Open again if macOS offers that option.
- If it remains blocked, open System Settings → Privacy & Security, find the AppStresser message, choose Open Anyway, and authenticate when prompted.
Some unsigned builds may instead produce an AppStresser is damaged and can't be opened dialog with only a Move to Bin option. If—and only if—you downloaded that copy from this repository's official GitHub Releases page, remove the quarantine attribute from AppStresser specifically:
xattr -dr com.apple.quarantine "/Applications/AppStresser.app"
open "/Applications/AppStresser.app"This does not disable Gatekeeper globally; it removes quarantine from only the specified AppStresser bundle. Never run the command against an app from an untrusted source, and never replace the app path with a broad directory.
If you prefer not to bypass the warning, run AppStresser from source after installing Node.js 22 or newer and pnpm:
git clone https://github.com/reach2jeyan/Stress-test-your-Android-App.git
cd Stress-test-your-Android-App
pnpm install
pnpm startThese extra steps are necessary because the current prereleases are not signed with an Apple Developer ID certificate or notarized by Apple. A future signed and notarized release will support the normal double-click installation experience.
The renderer has no Node.js access. All privileged work passes through explicit
IPC handlers in the Electron main process. ADB is launched with spawn() and an
argument array (shell: false); UI values are never concatenated into a shell
command.
AppStresser currently identifies crashes and ANRs reported by Monkey and displays recent entries from Android's crash log buffer. Exportable reports and deeper stack-trace analysis are not implemented yet.