Skip to content

feat(plugins): initial implementation of the testmo plugin #8485

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 5 commits into from
Jul 7, 2025

Conversation

rbstp
Copy link
Contributor

@rbstp rbstp commented Jun 30, 2025

Summary

Adds a full Testmo integration plugin for Apache DevLake, delivering end-to-end collection, storage, and visualisation of Testmo test-management data.

Backend

  • Plugin framework with connection handling, collection, and transformation
  • REST client fetching projects, test runs, automation runs, milestones, and tests
  • Raw + tool-layer data models
  • Ingestion workflows (pagination, retry, error handling)
  • Database tables for projects, tests, automation runs, and milestones

UI / Front-end

  • Connection setup screen for Testmo credentials and project selection
  • Guided wizard for data-source configuration
  • Hooks for DevLake’s project dashboard

Dashboards & Analytics

  • Grafana board showing
  • Execution counts and pass/fail rates
  • Trend lines over time
  • Distribution by project
  • Performance metrics
  • Recent runs with detail

Extra Features

  • Multi-project support per connection
  • Configurable sync interval (near-real-time)
  • Complete historical data retention
  • Status mapping (passed, failed, skipped → DevLake schema)

Does this close any open issues?

No

Screenshots

image image image image image image

Other Information

This is my first PR for the project, please let me if any additonal information or changes are required!

This PR introduces a complete Testmo integration plugin for Apache DevLake, enabling comprehensive test management analytics and insights.

## What's Added

### Backend Implementation
- **Core Plugin Architecture**: Complete Testmo plugin structure with connection management, data collection, and transformation
- **API Integration**: Full integration with Testmo REST API for fetching projects, test runs, automation runs, milestones, and tests
- **Data Models**: Comprehensive data models for all Testmo entities including raw and tool-specific schemas
- **Data Collection**: Automated data collection workflows with proper error handling and pagination
- **Database Schema**: Complete database schema with tables for projects, tests, automation runs, and milestones

### Frontend/UI Integration
- **Connection Management**: User-friendly interface for configuring Testmo connections
- **Data Source Configuration**: Intuitive setup wizard for Testmo API credentials and project selection
- **Dashboard Integration**: Seamless integration with DevLake's project management interface

### Analytics & Visualization
- **Grafana Dashboard**: Feature-rich dashboard providing comprehensive test analytics including:
  - Test execution overview and success rates
  - Test trend analysis over time
  - Project-wise test distribution
  - Test performance metrics
  - Recent test runs with detailed information

### Key Features
- **Multi-project Support**: Handle multiple Testmo projects within a single connection
- **Real-time Data Sync**: Automated data collection with configurable sync intervals
- **Historical Data**: Complete historical test execution data with proper timestamp handling
- **Status Mapping**: Proper mapping of Testmo test statuses (passed, failed, skipped) to DevLake schema
- **Performance Optimization**: Efficient data collection with proper pagination and rate limiting

No breaking change and no related issues
@dosubot dosubot bot added the size:XXL This PR changes 1000+ lines, ignoring generated files. label Jun 30, 2025
@dosubot dosubot bot added add-a-plugin This issue is to add a plugin pr-type/feature-development This PR is to develop a new feature labels Jun 30, 2025
@klesh
Copy link
Contributor

klesh commented Jul 7, 2025

Good work. Thank you very much for the contribution.
Please fix the CI before I can merge it.

@rbstp
Copy link
Contributor Author

rbstp commented Jul 7, 2025

@klesh Thank you! I have fixed the 2 errors from the CI (linter + Test_GetPluginTablesInfo), all the tests are now passing on my end.

@klesh klesh merged commit ae31420 into apache:main Jul 7, 2025
11 checks passed
@klesh
Copy link
Contributor

klesh commented Jul 7, 2025

Thanks for the quick reaction.
Nice job.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
add-a-plugin This issue is to add a plugin pr-type/feature-development This PR is to develop a new feature size:XXL This PR changes 1000+ lines, ignoring generated files.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants