Skip to content

Releases: devload/smartmonkey

SmartMonkey v0.1.0 - First Official Release 🎉

24 Oct 01:59

Choose a tag to compare

SmartMonkey v0.1.0 - Intelligent Android App Testing Tool 🐵🧠

First stable release with complete Grafana dashboard integration!

✨ Key Features

🎯 Intelligent Testing

  • Weighted Exploration Strategy: Prioritizes unvisited UI elements (10x weight)
  • Smart Targeting: Bonus scoring for buttons (1.5x) and submit actions (2x)
  • State Detection: MD5 hashing to avoid duplicate states
  • Real-time Crash Detection: Monitors app status on every step

📊 Grafana Integration

  • Two-Tier Dashboards: Overview list + detailed test view
  • Screenshot Gallery: Scrollable horizontal gallery with auto-retry loading
  • Drill-Down Navigation: Click Test ID to view full details
  • Auto-Refresh: Real-time monitoring with 30-second intervals
  • Color-Coded Status: Visual indicators for passed/failed/crashed tests

🔧 Developer Features

  • Full CLI: Device listing, auto-detection, and flexible parameters
  • Multi-Device Support: Works with physical devices and emulators
  • Comprehensive Reports: JSON (machine-readable) + Text (human-friendly)
  • Screenshot Capture: Visual documentation at every step

🚀 Quick Start

Installation

git clone https://github.com/devload/smartmonkey.git
cd smartmonkey
pip install -r requirements.txt
export PYTHONPATH=$(pwd):$PYTHONPATH

Run Your First Test

# List connected devices
python3 -m smartmonkey.cli.main list-devices

# Run a test
python3 -m smartmonkey.cli.main run \
  --package com.android.settings \
  --steps 20 \
  --strategy weighted

Set Up Grafana Dashboards

See detailed guide: docs/GRAFANA_SETUP_GUIDE.md

  1. Install Grafana
  2. Install plugins (Infinity Data Source, HTML Graphics Panel)
  3. Import dashboards from grafana/ directory
  4. Start HTTP server and view results!

📖 Documentation

🐛 Bug Fixes in This Release

  • Fixed UI element visibility detection (was defaulting to invisible)
  • Fixed app running detection with correct dumpsys window command
  • Enhanced crash detection to run on every step (not just when UI is empty)

📊 Test Results

Successfully tested on Android 14-15:

  • 5 test runs completed on emulator
  • 96 screenshots generated
  • 80% success rate (4/5 passed)
  • Average duration: 80 seconds per 20-step test

🎯 What's Next (Roadmap)

v0.2.0 (Planned)

  • Enhanced crash/ANR detection
  • HTML report generation
  • DFS and BFS exploration strategies

v0.3.0 (Planned)

  • Performance monitoring (FPS, memory, CPU)
  • Configuration file support (YAML)
  • Code coverage tracking

v0.4.0+ (Future)

  • ML-based exploration strategy
  • CI/CD integration (GitHub Actions, Jenkins)
  • Cloud testing support

🙏 Acknowledgments

Built with:

  • Android Debug Bridge (ADB) - Device communication
  • UIAutomator - UI hierarchy parsing
  • Grafana - Data visualization
  • Infinity Data Source - JSON data loading
  • HTML Graphics Panel - Screenshot gallery rendering

📝 Full Changelog

Added

  • Grafana dashboard integration with two-tier view system
  • Screenshot gallery with horizontal scrolling
  • Master index.json for tracking multiple test runs
  • Screenshot URLs in JSON reports for Grafana compatibility
  • Comprehensive CLI parameter documentation
  • Detailed Grafana setup guide

Fixed

  • UI parser visible attribute now defaults to true
  • App running detection using correct dumpsys command
  • Crash detection now checks on every step

Changed

  • Enhanced report_generator with screenshot URL generation
  • Updated README with complete CLI parameters table
  • Improved crash detection logic in exploration engine

Platform: macOS, Linux
Python: 3.9+
Android: 5.0+ (API 21+)

🤖 Generated with Claude Code