Dubbo 接口调试,不必再写临时代码,DubboTester 一站式搞定调试、压测、MCP 和 HTTP – lulianqi15 – 博客园

Dubbo 接口调试,不必再写临时代码,DubboTester 一站式搞定调试、压测、MCP 和 HTTP – lulianqi15 – 博客园


When we want to adjust a Dubbo interface during interface testing or debugging, we must first find the interface JAR, prepare the Java environment, write a calling code, and then study how to construct complex objects? To test the performance temporarily, do you need to change tools or write scripts? If you want AI or other languages ​​to call existing interfaces, do you need to add another layer of adaptation services?

DubboTester wants to make these things simple: select a service method, sample parameters are automatically generated, and can be called directly; when stress testing, MCP or HTTP are required, they can be completed in the same set of tools.

It is oriented to development, testing and joint debugging scenarios. It can be deployed as a web tool through Docker, or you can directly use the Windows and macOS desktop versions. There is no need to import business JARs, install a Java environment, or modify business services for debugging.

Docker is deployed with one click and can be used directly by all colleagues in the group.

Dubbo 接口调试,不必再写临时代码,DubboTester 一站式搞定调试、压测、MCP 和 HTTP – lulianqi15 – 博客园

Figure 1: A complete Dubbo call. Select method add,send [1, 2] (Parameters are automatically generated) and the results are obtained directly 3。

Project address: GitHub · lulianqi/DubboTester
Desktop version download: GitHub Releases
Docker image: Docker Hub · lulianqi/dubbo-tester

If you want to quickly experience the functions of DubboTester, you can use it directly (this address is only for experience)

This article is by DubboTester 2.1.3 Demo. The interface pictures are from actual operations; the stress test data is only used to illustrate the operation process and does not represent the upper limit of the performance of the tool or business service. The registration center in this article is a demonstration environment. Please replace it with an environment that you have permission to access. Do not use it as a public stress test target.

1. What can it do and who can it be used for?

The core of DubboTester is not to add a new access process, but to directly use the existing Dubbo service.

module What problems can be solved Typical scenario
Interface debugging Service discovery, method selection, parameter structure and sample generation, request sending, history recovery Develop self-test, test verification, and troubleshoot interface problems
Quick pressure test One-click access from the current request, generate indicators and charts in real time, and export reports Comparison before and after changes, interface smoke pressure test, and quick detection of performance degradation
MCP service Configure existing Dubbo method as MCP tool Let AI clients that support MCP call existing business capabilities
HTTP service Expose selected Dubbo methods as HTTP JSON interface curl/Postman debugging, cross-language temporary joint debugging, quick verification

I would rather highlight its three characteristics.

First, it’s easy to use. The general process is “Configure the registration center → Select the method → ​​Send the request”. When there is metadata, the tool will read the signature, display the complex parameter structure and generate examples, without having to piece together JSON from scratch with the interface definition.

Second, the functions are fully connected. Tuning requests can be directly brought into stress testing; the same Dubbo method can also be configured as an MCP tool or HTTP interface, without the need to re-develop the adaptation layer for each use.

Third, it is cross-platform and flexible in usage. PCs can use Windows x64 or macOS desktop versions; servers can use supported linux/amd64、linux/arm64 Docker image, which the team accesses through a browser.

“No need to rely on” here mainly refers toNo need for business engineering, interface JAR and Java runtime environment. It still needs to be able to connect to the registry and provider. Business calls use a generalized call of the Dubbo2 protocol, which cannot be understood as unconditional support for all protocols such as Triple/gRPC. Automatic parameter structures and examples rely on available metadata.

2. Obtain and install: Docker is preferred, you can also use the desktop version directly

2.1 Docker: pull the image to start

You can directly run the following two commands for local experience or cloud deployment (Docker deployment mode is recommended). Fixed use here 2.1.3,avoid latest Subsequent changes affect recurrence.

docker pull lulianqi/dubbo-tester:2.1.3

docker run -d \
  --name dubbo-tester \
  --restart unless-stopped \
  -p 127.0.0.1:5154:8080 \
  -v dubbo-tester-data:/app/App_Data \
  lulianqi/dubbo-tester:2.1.3

After booting, open:http://localhost:5154/。

This command restricts access to the page to the local machine. When deploying the team, you can change the port mapping 127.0.0.1 Change to the trusted intranet IP of the server, and then pass Access; also use a firewall to limit the source, or put behind a protected reverse proxy.Do not directly open the management page to the public network.

A few configuration instructions:

  • Host 5154 Map into container 8080. When the local port is occupied, it can be changed to 127.0.0.1:5155:8080。
  • data volume /app/App_Data Used to persist server configurations such as MCP and HTTP, and should be retained when updating the container.
  • You can also use the GHCR mirror, replacing the mirror name with ghcr.io/lulianqi/dubbo-tester:2.1.3other parameters remain unchanged.
  • The container must be able to access the registration center and the addresses published by the Provider. in container localhost Points to the container itself, not the host.

Mirror address: Docker Hub, GitHub Container Registry.
Alibaba Cloud ACR (Mainland China): crpi-ct3m45rpep0xlnep.cn-hangzhou.personal.cr.aliyuncs.com/lulianqi/dubbo-tester

docker pull If the domestic image source is too slow, you can directly use Alibaba Cloud ACR docker pull crpi-ct3m45rpep0xlnep.cn-hangzhou.personal.cr.aliyuncs.com/lulianqi/dubbo-tester:2.1.3

2.2 Desktop version: download, unzip and run

If you don’t want to deploy Docker, you can directly use the desktop version for more convenience.

  1. Open the latest Release page.
  2. Expand the Assets。
  3. Download the corresponding compressed package according to the operating system, decompress it and run the application.

Take 2.1.3 as an example:

Desktop application download resources for GitHub Release

Figure 2: Download the application ZIP for the corresponding platform;Source code It is a source code package, not a desktop installation package.SHA256SUMS.txt Can be used to verify file integrity.

The desktop package is self-contained and does not require additional installation of the .NET SDK or Java. Run the application after decompression on Windows; open it on macOS after decompression Dubbo Tester.appor you can move it into the Applications directory.

Current macOS packages use ad-hoc signatures and have not yet been notarized by Apple. Opening it for the first time may require confirmation in “System Settings → Privacy and Security”; please first confirm that the file comes from the above project Release, and do not turn off system security protection globally for this purpose.

The desktop version of MCP and HTTP services use this machine 5154 Port, only listen to the local address. If the port is occupied by other programs, the port conflict should be handled first; when services need to be provided to other machines, it is more recommended to deploy the Docker version.

image

The above is a screenshot of the desktop version running. The functions and operation interfaces of the desktop version and the cloud version are completely the same. They will not be introduced separately later. They are all the same.

2.3 How to use it recommended?

  • Personal development and testing: You can use the desktop version. No deployment required, just connect your own test environment to get started. (If you already have a docker environment, it is equally convenient to use image deployment locally)
  • Long-term planning and team sharing: Prioritize Docker. Use a fixed intranet access address to facilitate centralized maintenance; each client retains its own connection settings and call drafts.
  • Quickly verify performance: tune up first, then stress test. Start with small concurrency and short duration, first confirm that the requests and business assertions are correct, and then gradually increase the load.
  • AI access: A small number of read-only MCP tools will be opened first. The tool description must be clear, and write operations must have additional business permission controls.
  • Cross-language temporary joint debugging: open HTTP method on demand. Close it immediately after use, and do not treat the temporary debugging entrance as a complete production API gateway.

3. Get started quickly: get to know it with one addition call

If you just want to get a feel for it first, just remember these three steps:

  1. Click the Settings button at the top, fill in the ZooKeeper or Nacos address, and click “Save and Refresh”.
  2. Expand the service catalog on the left and select a method.
  3. Modify the automatically generated parameters, click “Send” and view the response below.
    For example, select DataTypeService of add(int, int)the tool will first generate [0, 0]. Change the parameters to:
[1, 2]

Get it after sending it 3corresponding to Figure 1. The entire process does not import the interface JAR and does not write calling code.

Automatically generate request parameters after selecting the addition method

Figure 3: When metadata is available, parameter examples can be automatically filled in after selecting a method; the examples can still be freely edited. (The system will automatically generate examples based on the declaration of parameter structures in the metadata center, greatly shortening the time we spend building parameters, and is especially effective for complex structural parameters)

The complete usage of the four modules is expanded below.

4. Module 1: Interface debugging – from discovering services to understanding complex parameters

Step 1: Connect to the registration center

Open the Settings button at the top of the home page and enter “Connection & Page Settings”.

When using ZooKeeper, select ZooKeeperfill in the connection address. This article demonstrates:

110.40.136.183:2181 如果您使用的是示例网站可以直连该地址

The registration directory can be filled in /dubbo Wait for the specified directory; leave it blank or fill in / Automatically scan the first-level directory. When the metadata center and registration center are shared, you do not need to fill in a separate metadata center address. (If you do not know the name of the registration directory clearly, it is recommended to leave it blank and the system will automatically obtain all available service directories)

ZooKeeper connection configuration

Figure 4: ZooKeeper configuration example. After filling in the address, registration directory and necessary timeout settings, click “Save and Refresh” in the lower right corner.

If the environment uses Nacos, switch to Nacosjust fill in the corresponding address (to switch the registration center type, you only need to modify it here, it will be the same). The demo address for this article is:

110.40.136.183:8848  

Step 2: Select services and methods

Expand the registration directory, services and methods in the left directory in order. When there are many services, you can use the search box to find the service name or method name.

After selecting the method, focus on three locations:

  • Java signature: Confirm the number and order of method parameters, and whether the correct overload is selected.
  • Request parameters: Edit JSON request data.
  • Advanced options: Fill in information such as service version, service group, timeout or attachments if necessary.

By default, the Provider can be discovered through the registration center and load balanced; when you need to locate a certain instance, you can also switch to a direct connection to the Provider and fill in the host, port and precise parameter type.

Step 3: Complex object parameter construction

Complex objects also don’t need to start with blank JSON, e.g. OrderService.searchOrders(OrderQuery)the request parameter is a business object. Click “Generate Example by Structure” to get the JSON structures corresponding to object fields, collections and enumerations:

Automated example of OrderQuery object parameters

Figure 6: The complex object example will generate an editable field structure; the default value is just a structural representation and should still be replaced with data that conforms to business rules before sending.

If you don’t know the meaning or type of a field, you can click “Parameter Structure”:

Parameter structure and enumeration value

Figure 7: Field types and enumeration values ​​can be viewed in the parameter structure, such as order status CREATED、PAID wait.

Vertical to the right of “Generate Example by Structure” ⋮ there is a setting that is turned on by default:Autofill example if user data is empty。

It does not overwrite content already entered or restored parameter drafts. Parameterless methods are not automatically populated; parameter structures are not generated out of thin air when metadata is not available. The absence of metadata does not mean that the call cannot be made at all: when the exact Java parameter types are known, it is still possible to manually fill in the type and data for debugging.

Several commonly used parameter formats:

[]

No parameter method to use []can also be left blank.

{"id": 1, "name": "demo"}

A single object parameter can directly fill in the object.

["demo", 123, true]

Multiple parameters are put into the outer array in the order of method signature.

[[1, 2, 3]]

For a single array or List parameter, attention should be paid to distinguishing between “parameter list” and “array of the parameter itself”, which usually requires another layer of wrapping.

Step 4: Send, view response, reuse history

After clicking “Send”, the success, call time and response text will be displayed below. The history record on the right supports reloading, and frequently used requests can be saved; draft requests will also be retained by method, making it easy to refresh or return to continue debugging.

A very confusing point: registration directory is not equal to service grouping. For example /dubbo is the directory where service discovery is located,dubbonet-3.3.6 It may be the business grouping of Provider. After manually switching the registration directory, if the group/version of another environment is still used, an error may occur. Not found exported service. When troubleshooting, you should also check the directory, provider, version, group, and parameter signature, instead of just looking at whether the directory exists.

Note: If you use container deployment, each browser of each person in the team will open this web workspace in an opposite manner. That is, each person can set his own registration center address and have his own operation records. These are all independent.

5. Module 2: Quick Stress Test—If you request for adjustment, just do a stress test.

Step 1: Enter stress testing from debugging request

First make a request on the homepage, then click the small arrow to the right of “Send” and select “Stress Test”. The target service, method, connection information and request parameters will be passed as initial values.

image

Step 2: Set up a small load and first confirm that the request is valid

This article continues to use no business writing add(1, 2)the configuration is as follows:

Configuration items Demo value
Number of concurrent users 400
Load upper limit time limit
Execution time 300 seconds
Request interval for the same user 0
User start interval 0
Ladder start interval/number of ladder users 5/10, start 10 users every 10 seconds in steps (of course, a longer duration will be used in the actual stress test)
Request parameters [1, {{randomInt:1:1000}}] The second parameter uses the random number parameter template
business assertion There is no configuration this time. Success will be determined based on the Dubbo call result.

Stress test targets and low load configurations

Figure 8: Before starting, check the target, Java parameter type, version/group, and payload summary on the right. Do not directly use historical large concurrency configurations for unfamiliar interfaces.

In addition to the time limit, you can also select the times limit and run it according to “number of concurrent users × number of sends per user”. The load balancing mode supports Random, RoundRobin and other choices; the setting entry next to the number of concurrent users can also adjust the TCP multiplexing method.

When you need to simulate gradual pressure increase, you can configure the number of ladder users, the ladder start interval and the user start interval. They control the load rhythm, not simply send out all requests at the same time.

Step 3: Parameterized requests and business assertions

The request template supports variables such as user serial number, sending serial number, random number, random string, GUID, time, etc., for example:

["user-{{user}}-{{iteration}}", "{{guid}}"]

The above only explains how to write variables. The actual number and type of parameters must match the target method. String variables should be placed in JSON quotes; numeric variables can be used in numeric position.

If “RPC does not report an error” is not enough to represent business success, you can add business assertions under the request template, such as checking the response body, reading fields through JSONPath, and using conditions such as equals, inclusion, and numerical comparison; you can choose AND or OR for multiple conditions.

It is recommended to first use “Debug Assertion” to verify a simulated response.If the RPC returns success, but the business assertion is not satisfied, it will still be counted as a failed request. For example the return value is 3and the assertion requirement is equal to 99the success rate will naturally not be 100%.

Step 4: View the indicators in real time after startup

After confirming the configuration, click “Start Stress Test”. The runtime configuration will be locked in an uneditable state to prevent accidental changes during testing; when adjustments are needed, stop the current round and then start a new round.
You can see the execution time and number of requests in the running status, and the target and load configuration are both gray and locked.

The page will update in real time the average response time, TPS, success rate, P95/P99, as well as throughput, response time, bad requests and slow request trends.

Stress test results and performance trend chart

*Figure 10: Real-time monitoring and stress testing progress during the stress testing process (it can actually be found here that TPS stopped rising halfway through the stress testing)

When reading the picture, you can first pay attention to:

  • success rate: First confirm that the request is valid, and then discuss whether the throughput is high.
  • TPS: The number of requests completed per unit time is not equivalent to the “successful business processing volume”. Failed requests are included by default.
  • average response time: Look at overall changes, but don’t just focus on averages.
  • P95/P99: Respectively means that about 95% / 99% of the request time does not exceed this value, suitable for observing the long tail.
  • Error and slow request distribution: In which time period the location anomalies are concentrated, and whether it increases with the growth of users.

Response time, TPS cards, as well as throughput trends and response time trend graphs all provide an independent “only count successful requests” switch.Off by default. After opening, only the statistical caliber of the corresponding card or chart will be changed, the success rate will not be changed, and failed requests will not be deleted.

The trend chart supports viewing sampling points, switching smoothing intervals or statistical methods, adjusting the horizontal time scale and zooming in.

Step 5: Look at the details and export the report in time

When you need to check items one by one, check the “Running Details” below; you can filter the status, time taken, and request/response content, and expand the details of a single item. After “record request & response” is turned on, the text will be recorded in the page memory of this round for easy analysis.

Stress test request details

Figure 11: If a problem occurs, focus first on failed or time-consuming requests in the business (successful responses are not recorded by default, you can turn on the switch in the upper right corner)

When finished or stopped, you can click “Export Report” to save the self-contained HTML report for offline viewing and sharing. During formal testing, it is recommended to keep the report and record the test environment, request samples and load configuration to avoid drawing conclusions based on just one TPS screenshot.

Do not refresh the page during operation, the results are only saved on the current page. The stress test draft can be restored, but it does not mean that the running results will be automatically saved for a long time; the report should be exported when files need to be kept. There is also a memory budget for the request/response body. After running for a long time, the early body may be cleaned up, but the statistics and basic details will not disappear. (If two stress test pages are opened in the browser, they will be regarded as two independent stress test task spaces)

6. Module 3: MCP service – turning existing Dubbo methods into AI tools

If the business capabilities are already in Dubbo, there is no need to write another set of intermediate services for AI to use. DubboTester can map selected methods to MCP tools through Streamable HTTP Provided to clients that support MCP.

Business services do not need to add new MCP dependencies, nor do they need to modify interfaces to access AI. For systems that still use the historical Dubbo version, this is a low-invasive access method; the premise is still that the target service is compatible with the current Dubbo2 calling method.

Step 1: Enter the MCP page and configure independent connections

Click “MCP Service” at the top of the home page and expand “Global Configuration”. It has its own registration center settings. Don’t think that if you change the homepage connection, the background MCP will automatically switch to the same environment.

When configuring for the first time, keep the global switch turned off, fill in the registration center, directory, metadata center, timeout and other configurations; check and then enable the service. After the global switch is turned on, the connection and authentication configuration will be locked; when modifications are required, shut down the service first, and then turn it on after the modification is completed.

MCP global connection and service switch

Figure 12: The MCP address of this machine is . The screenshot shows the local demonstration environment that has been enabled, and the configuration is in a locked state; the authentication shutdown should not be copied to external deployment.

Step 2: Select a method and fill in the tool description

In the “Configured Tools” area, click “+ Add Configuration” and select:

  1. registration directory;
  2. Dubbo Services;
  3. method and confirm the specific Java signature.

Or there is an easier way, choose to add MCP directly on the services and methods list

image

Then fill in the tool name (will be automatically generated), method description, applicable/trigger conditions, and parameter requirements. The tool name can use automatically generated values; the description should be filled in carefully to let the AI ​​know “when to call it, what to pass, and what the result represents.”

For example, an addition tool can be described like this:

方法描述:为公司添加一个新员工
触发条件:当用户想为公司添加一个新员工时触发
参数要求:age为员工年龄,name为员工姓名,roles里为员工其他信息

Add MCP tool configuration

Figure 13: Configuration diagram of the new tool. The description should be filled in based on business semantics, rather than just repeating a Java method name.

You can first use “Debug this method” to verify the parameters, then save the configuration and enable it as needed. The “global switch” and the enabled status of the tool itself determine whether to provide the tool to the client; do not open all write operations to AI indiscriminately.

Step 3: Connect on MCP client

In a client that supports remote MCP, create a new service connection:

传输方式:Streamable HTTP
服务地址:  这个地址在全局配置里会自动生成,如果你远程部署了他可能是个域名

If authentication is enabled, add request headers according to the method supported by the client:

Authorization: Bearer <你的访问令牌>

Different clients have different configuration formats, so we do not force a certain JSON to be used here. After connecting, you should only see tools that are enabled and available in the current environment; when used, follow the input Schema obtained by the client.
image
The picture above takes Cline of vscode as an example.

How the agent uses exposed MCP

image

Note: When the client is not on the same machine,localhost Points to the client’s own machine. Remote access should use reachable service addresses and HTTPS; the desktop version only listens locally, and protected Docker deployment is preferred for cross-machine use.

Step 4: Verify the results by calling the record

“MCP Call Record” at the bottom of the page allows you to view tools, target methods, call results, time consumption, request parameters and responses.

MCP call success and expanded request response
Figure 14: Actual MCP call record. The three parameters are all inferred by the agent itself based on the MCP description. Finally, the response is created successfully (if the MCP call fails, the description can be adjusted to tell him how to construct the parameters), which can be traced back to the specific Dubbo method.

Metadata exceptions (a small number of dubbo services may manually close the metadata center) do not necessarily mean that the tool is unavailable. If you have confirmed that the Provider and method exist, and the correct Java parameter types are preserved in the configuration, you can display a “Metadata Alert (Available)” and continue with the explicit call. If the service does not exist, there is no Provider, or the exact signature does not match, it still needs to be corrected and cannot be ignored.

Note that the MCP service is a global service (because it needs to go through a background service). When multiple people open the MCP service, they configure the same data (if you are here, you can add your own test MCP, but please try not to modify its global configuration.)

7. Module 4: HTTP service – no need to write an adaptation layer, just use curl to adjust Dubbo

Sometimes the front end, Python script or other system only wants to temporarily call a Dubbo method. There is no need to set up a conversion service or upgrade the Dubbo version in use. The HTTP module can directly expose selected methods as HTTP JSON interfaces.

Step 1: Open the HTTP page and configure the connection

Click the drop-down entry on the right side of “MCP Service” at the top of the homepage to enter “HTTP Service”. Expand “Global Configuration” and fill in your own registration center information.

HTTP, MCP, and home page maintain connection configurations separately. Keep the global switch turned off when configuring for the first time; when authentication is required, turn on “Enable Authentication” and save the access token before enabling global services.

HTTP global configuration and authentication

Figure 15: HTTP service can be configured with Bearer Token. When turned on globally, neither the connection nor the token input is editable; the token in the screenshot remains hidden.

Step 2: Find the method and enable it as needed

Search for a service or method in the Services and Methods List, confirm the registration directory, Java signature, version, and group, and then enable the target method.

HTTP method list and item-by-item switches

Figure 16: The same service can be controlled by methods. The screenshot retains the existing “all on” state of the demo environment; for actual use, it is recommended to only enable methods that require joint debugging.

“Open all” will not only open the current method, but also automatically open the available methods discovered by subsequent refreshes. Unless this behavior is clearly required, item-by-item control is preferred.

Only when the global service and specific methods are enabled will the call be released.

Step 3: Copy how the method is called

Click “Calling Method” on the right side of the method, and the page will display the actual URL, parameter rules and copyable curl.

HTTP method calling address and parameter description

Figure 17: The calling address is organized by registration directory, service full name, and method name. This image only captures the description area to avoid exposing the actual token.

For example, the addition interface in this article is:

POST 

The first one here dubbo belong /api/dubbo/ fixed prefix, second dubbo Is the registration directory /dubboit is not a repeated mistake.

In the terminal, set the environment variable toyour own access tokenand then call:

export DUBBO_TESTER_TOKEN='替换为你自己的访问令牌'

curl -X POST \
  '' \
  -H 'Content-Type: application/json' \
  -H "Authorization: Bearer ${DUBBO_TESTER_TOKEN}" \
  --data-raw '{
    "arguments": [1, 2],
    "attachments": {"traceId": "cnblogs-demo"}
  }'

If authentication is not enabled in this environment, you can omit the Authorization request header; when providing external calls, it is recommended to retain the authentication and transmit it through HTTPS.
This call returns:

{
  "success": true,
  "data": 3,
  "error": null,
  "elapsedMs": 162
}

When there are multiple versions, groups or reloads of the same path, the URL generated by the page will be added version、group、parameterTypes Query parameters.Prioritize copying the complete curl generated by the page, do not delete these parameters without authorization;Returns HTTP 409 when the target cannot be uniquely determined, rather than randomly picking a method.

HTTP request arguments Fill in the order of Java parameters; use without parameters []a single array parameter is used [[1, 2]]。attachments Can be omitted, the value uses a string, and cannot be used to override service routes.

Step 4: View HTTP records and details

The HTTP status, time taken, source and call target are recorded at the bottom of the page. Click “Details” to check the request body and response at the same time.

HTTP call details: request parameters and successful response

Figure 18: The real HTTP call gets 200, and the Dubbo return value is 3;The request carries information for easy tracking traceId。

After joint debugging, you can close individual methods or close global services. It is suitable for quick joint debugging and temporary debugging, and does not replace the complete gateway, business authentication, current limiting and auditing mechanisms in the production environment.

8. Remember these details before use

1. Just because the registration center can be connected does not mean that the Provider must be reachable.

Especially in Docker, cross-network segment, and NAT environments, the Provider IP returned by the registration center may be an address in another network. When the service discovery is successful but the call fails, you should continue to check the target IP, port and network rules.

2. Call success and business success are two different things.

After configuring business assertions for stress testing, you should first verify the assertions; when analyzing failures, look at both RPC exceptions and the reasons for business assertion failures. Don’t treat a TPS that contains a lot of fast failures as success handling capabilities.

3. Local drafts, server configurations, and stress test results are saved in different locations.

Connection and page settings, history, and request drafts are saved in the local storage of the current client. If you change the domain name, port or clear site data in the Web version, you may see another local data. MCP and HTTP configurations are saved by the server, and the data volume is retained when Docker is updated; the call records are mainly in memory. The stress test results are only on the current page, and the report should be exported to save files.

4. The minimum opening range is more important than “open all the way first”.

MCP and HTTP newly configured authentication are turned off by default. Only experience it in a controlled environment; when using it externally, enable authentication, use HTTPS, and limit callable methods and network sources. Do not conduct unconstrained demonstrations or stress tests on high-risk methods such as writing and deletion directly in the production environment.

9. Summary: Shorten the preparation work and leave time to the interface itself

The value of DubboTester is not to require the business to adapt to a new calling method, but to reuse existing Dubbo capabilities as much as possible:

  • If you want to verify the interface, select the method, change the parameters, and send directly;
  • If you want to quickly check the performance, enter the stress test from the current request and see the indicators and charts on the spot;
  • If you want AI to call the business, configure the method as an MCP tool;
  • If you want to conduct temporary joint debugging across languages, open the HTTP interface on demand.

If you also have Dubbo interface self-testing, joint debugging or troubleshooting in your daily work, you may wish to download the desktop version first, or start a Docker container and try it from the simplest read-only method.

Welcome to the DubboTester GitHub repository to view the source code, ask questions and make suggestions. If it helps you save a piece of temporary calling code, Star support is also welcome.

Download and deployment portal: Desktop Releases · Docker Hub · Project usage documentation.



Source link

Leave a Reply

Your email address will not be published. Required fields are marked *