Self-hosted service
metersphere/metersphere avatar
metersphere/metersphere

MeterSphere: a continuous testing platform built on JMeter, with an AI assistant on top

MeterSphere is a next-generation open-source continuous testing tool with a built-in AI assistant, making software testing simpler and more efficient so it no longer bottlenecks continuous delivery.

13,579 stars2,843 forksJavaNOASSERTION

At a glance

What is it?
MeterSphere bundles test case management, API testing, mocking and reporting into one Docker-deployed web application. It is aimed at teams that have outgrown single-user tools, and it inherits JMeter's engine along with JMeter's operational weight.
Who is it for?
Adopt MeterSphere if your team needs shared test case management, API definitions and JMeter-backed execution in one place, and you are willing to run MySQL, Kafka, MinIO and Redis alongside it. Do not adopt it if you only need a desktop HTTP client, or if a modified GPLv3 with logo and copyright restrictions conflicts with your plans.
Can I use it commercially?
Check first. The repository uses a licence we do not classify automatically, so read its LICENSE file before any commercial use.
Is it still maintained?
Yes. The repository last received commits 25 days ago.
What is it written in?
Mainly Java, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on October 16, 2026, and from our analysis. They are not legal advice.

Editorial analysis

What MeterSphere replaces, and for whom

The project describes itself as a continuous testing tool with an AI assistant, and the feature list splits into four areas: AI-assisted generation of functional and API test cases, test case management with plans, defects and reports, API testing that the README compares to combining Postman's ease of use with JMeter's flexibility, and a plugin system for DevOps pipeline integration. The intended user is a team rather than an individual. The README states the design is layered as system, organization and project, which is the mechanism that lets several people share the same cases and definitions instead of passing files around.

That framing matters when you decide whether to look further. A solo developer who wants to fire an HTTP request and inspect the response will find the deployment cost absurd. A QA group that currently keeps cases in a spreadsheet, definitions in Postman collections and load scripts in JMeter files has a genuine consolidation argument, because MeterSphere puts those artifacts in one database with one permission model.

The architecture you are actually deploying

MeterSphere is a Java application. The README lists Spring Boot on the backend, Vue.js on the frontend, and MySQL, Kafka, MinIO and Redis as middleware, with Docker as the infrastructure and JMeter as the test engine. The Dockerfile confirms how tightly JMeter is bound in: it sets JAVA_CLASSPATH to /app:/opt/jmeter/lib/ext/*:/app/lib/* and points the main class at io.metersphere.Application, so the application and the JMeter extension directory load in the same JVM.

Kafka is the part worth pausing on. A test case management tool does not normally need a message broker, so its presence signals that execution is asynchronous: a test plan run is dispatched as work, executed by the engine, and results are collected back. MinIO handles object storage, which in practice means report artifacts and attachments. Redis sits in front of the database. The consequence for an operator is that MeterSphere is not a single process you start and forget. It is a small platform, and the README's own recommendation reflects that, pointing production users at the offline installation package rather than a quick container run.

Installing MeterSphere and running a first API test

The README does not give a docker run command. It gives two paths: the 1Panel app store for a quick deployment, and the offline installation package, which it recommends for production. Plugin installation is directed to the MeterSphere plugin marketplace at apps.fit2cloud.com/metersphere. If you want the fastest look at the product, the 1Panel route is the one the project documents, so start there rather than assembling the middleware by hand.

For a source build, the repository root carries mvnw, a pom.xml, a backend directory and a frontend directory, plus a build.md file. The Dockerfile expects a Maven dependency output under backend/app/target/dependency and static assets under backend/app/src/main/resources/static, which tells you the build order: compile the backend, build the frontend, then assemble the image. The Maven wrapper is the entry point for the Java side.

bash
./mvnw

After the wrapper runs, the artifacts the Dockerfile copies should exist under backend/app/target. The frontend is built separately from the frontend directory, and the Dockerfile adds frontend/public into /app/static, so the compiled assets need to land there before the image is assembled.

Once the instance is up, the first real use is an API definition. You create or import a definition, which the README says can come from Swagger, then build a scenario from it and run the scenario as a test. The AI assistant is the alternative entry point: the README states it can generate functional cases and API cases from a large model, which shortens the blank-page problem but still requires you to review what it produced. The report that comes out of a run is the artifact your team will actually read, so check that the report view gives you the request and response detail you need before you migrate existing cases into it.

Where MeterSphere is the wrong choice

The licence is the first constraint, and it is unusual enough to read carefully. The README states the repository follows the FIT2CLOUD Open Source License, which it describes as essentially GPLv3 with additional restrictions: you may not replace or modify MeterSphere's logo and copyright information, and derivative works must honor GPLv3 obligations. That is a real limit on white-labeling or embedding the product inside your own branded offering. It is not a standard OSI-style licence, and the repository's licence field is reported as NOASSERTION, which is consistent with a custom text.

The second constraint is scope. MeterSphere is a platform, and platforms impose their own workflow. If your team's testing lives comfortably in code, with API tests written as pytest or JUnit and run in CI, adding a web application with a database, a broker and an object store in front of it buys you a UI you did not ask for. The README's own comparison to Postman is instructive here: Postman is a client you install and use in minutes, and MeterSphere is a server you operate. Choosing MeterSphere for a two-person team is choosing operational work with no collaboration payoff.

The third is version history. The README states that V1 and V2 are no longer maintained and that V3 is current, and it splits V3 into a community edition and an enterprise edition with a separate comparison page. Before you plan around a feature, confirm which edition carries it.

How it differs from a desktop API client

The closest everyday alternative is a desktop API client such as Postman, which the README names directly when describing MeterSphere's API testing scope. The difference is not the request builder, which both have. It is where the artifacts live and who can see them. In Postman, collections are files or cloud workspaces tied to an account, and execution is local. In MeterSphere, definitions, cases, plans and reports are rows in a shared database with project-level permissions, and execution happens on the server through JMeter.

That distinction decides the migration question. Moving from a desktop client to MeterSphere is not a feature upgrade, it is a change in where the source of truth sits. The benefit is that a test plan run produces a report the whole team can open without anyone's laptop being involved. The cost is that you now own the uptime of the thing that runs your tests. The README's mention of Swagger import is the practical bridge: if your API definitions already live in an OpenAPI document, importing them is the low-friction way in, and you can keep the desktop client for ad hoc debugging while the platform holds the shared cases.

Maintenance, releases and upgrade cost

The repository is not archived and the last push was on 2026-09-01. Releases are tagged on an LTS line: v3.6.7-lts in November 2025, v3.6.8-lts in March 2026, and v3.6.9-lts in August 2026. That cadence, roughly a few months between LTS releases, is the rhythm an operator should plan around. The default branch is v3.x, so development and the release tags are not the same thing, and pinning to a tagged LTS release rather than tracking v3.x is the safer default for a production instance.

The upgrade cost is dominated by the middleware, not the application jar. Because MySQL, Kafka, MinIO and Redis are all in the stack, a version upgrade can involve schema changes, broker compatibility and stored artifacts. The README does not document a rollback procedure for a failed upgrade, and it does not publish a supported upgrade path between LTS versions. Treat that as unknown territory: take a database and object storage backup before you move between LTS tags, and verify the target version's requirements rather than assuming a drop-in replacement.

On licence implications, the logo and copyright restriction is the clause that most affects commercial users, and the GPLv3 obligations apply to derivative works. Whether your specific use counts as a derivative work is a legal question, not one this article can answer.

Editorial conclusion

Adopt MeterSphere if your team needs shared test case management, API definitions and JMeter-backed execution in one place, and you are willing to run MySQL, Kafka, MinIO and Redis alongside it. Do not adopt it if you only need a desktop HTTP client, or if a modified GPLv3 with logo and copyright restrictions conflicts with your plans. Before committing, read the pricing comparison page to confirm which features sit in the community edition, and check the plugin marketplace for the integrations your pipeline needs.

Frequently asked questions

What is MeterSphere used for?

It is a continuous testing platform that covers test case management, test plan execution, defect management and report generation, plus API debugging, API definition, mocking and scenario automation. The README describes it as combining Postman's ease of use with JMeter's flexibility, with an AI assistant that can generate functional and API test cases.

How do I install MeterSphere?

The README points to the 1Panel app store for a quick deployment and recommends the offline installation package for production environments. Plugins are installed from the MeterSphere plugin marketplace at apps.fit2cloud.com/metersphere.

Does MeterSphere have an English version?

The repository contains both README.md and README-EN.md at the top level, so an English README exists alongside the Chinese one. The documentation links in the README point to metersphere.io.

What technology does MeterSphere use?

The README lists Spring Boot on the backend, Vue.js on the frontend, MySQL, Kafka, MinIO and Redis as middleware, Docker as the infrastructure, and JMeter as the test engine. The Dockerfile loads the application and the JMeter extension directory into the same JVM classpath.

Can I modify MeterSphere for my own product?

The README states the licence is essentially GPLv3 with additional restrictions: you may not replace or modify the MeterSphere logo and copyright information, and derivative works must comply with GPLv3 obligations. It also states that V1 and V2 are no longer maintained, so secondary development should target V3.

Official sources

  1. Issues
  2. metersphere/metersphere on GitHub
  3. Project website
  4. README
  5. Releases
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/metersphere-metersphere.svg)](https://hysenlabs.com/projects/metersphere-metersphere)