You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dubbo.apache.org by al...@apache.org on 2025/12/27 08:03:58 UTC

(dubbo-go) branch develop updated: perf(unittest): make the spaghetti code look less terrible (#3144)

This is an automated email from the ASF dual-hosted git repository.

alexstocks pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/dubbo-go.git


The following commit(s) were added to refs/heads/develop by this push:
     new 0f19e85a8 perf(unittest): make the spaghetti code look less terrible (#3144)
0f19e85a8 is described below

commit 0f19e85a8372fce2ce0eed3647dba16c8e6d6c5e
Author: marsevilspirit <ma...@gmail.com>
AuthorDate: Sat Dec 27 16:03:53 2025 +0800

    perf(unittest): make the spaghetti code look less terrible (#3144)
    
    * add testifylint in golangci-lint
---
 .golangci.yml                                      |   1 +
 Makefile                                           |   2 +-
 README.md                                          |   1 -
 README_CN.md                                       |   1 -
 client/action_test.go                              |   2 +-
 client/options_test.go                             | 167 +++++++++++----------
 cluster/cluster/available/cluster_invoker_test.go  |   6 +-
 cluster/cluster/failback/cluster_test.go           |  27 ++--
 cluster/cluster/failfast/cluster_test.go           |   5 +-
 cluster/cluster/failover/cluster_invoker_test.go   |   2 +-
 cluster/cluster/failover/cluster_test.go           |   7 +-
 cluster/cluster/failsafe/cluster_test.go           |   5 +-
 cluster/cluster/forking/cluster_test.go            |   3 +-
 cluster/cluster/zoneaware/cluster_invoker_test.go  |   7 +-
 cluster/directory/static/directory_test.go         |   4 +-
 .../consistenthashing/loadbalance_test.go          |  10 +-
 cluster/loadbalance/random/loadbalance_test.go     |   4 +-
 cluster/loadbalance/roundrobin/loadbalance_test.go |   2 +-
 cluster/router/affinity/router_test.go             |   4 +-
 cluster/router/condition/router_test.go            |  47 +++---
 cluster/router/script/instance/js_instance_test.go |  17 ++-
 cluster/router/tag/router_test.go                  |  71 ++++-----
 common/config/environment_test.go                  |   8 +-
 common/config/utils_test.go                        |   7 +-
 common/host_util_test.go                           |  12 +-
 common/rpc_service_test.go                         |  53 +++----
 common/url_test.go                                 | 121 +++++++--------
 config/application_config_test.go                  |  23 +--
 config/config_loader_options_test.go               |  29 ++--
 config/config_resolver_test.go                     |   7 +-
 config/config_utils_test.go                        |  12 +-
 config/custom_config_test.go                       |  33 ++--
 config/generic/generic_service_test.go             |   2 +-
 config/graceful_shutdown_config_test.go            |  17 ++-
 config/logger_config_test.go                       |  25 +--
 config/metadata_config_test.go                     |   7 +-
 config/mock_rpcservice_test.go                     |   7 +-
 config/otel_config_test.go                         |   3 +-
 config/profiles_config_test.go                     |  21 +--
 config/protocol_config_test.go                     |   5 +-
 config/provider_config_test.go                     |  19 +--
 config/reference_config_test.go                    |   4 +-
 config/registry_config_test.go                     |  19 +--
 config/remote_config_test.go                       |  15 +-
 config/root_config_test.go                         |  10 +-
 config/router_config_test.go                       |  21 +--
 config/service_config_test.go                      |  27 ++--
 config/service_discovery_config_test.go            |   7 +-
 config/service_test.go                             |   4 +-
 config/ssl_config_test.go                          |   4 +-
 config/tls_config_test.go                          |  10 +-
 config/tracing_config_test.go                      |   9 +-
 config_center/apollo/impl_test.go                  |  23 +--
 config_center/configurator/override_test.go        |  17 ++-
 config_center/dynamic_configuration_test.go        |   3 +-
 config_center/file/impl_test.go                    |  45 +++---
 config_center/nacos/client_test.go                 |  10 +-
 config_center/parser/configuration_parser_test.go  |  13 +-
 filter/accesslog/filter_test.go                    |   4 +-
 filter/active/filter_test.go                       |  33 ++--
 filter/adaptivesvc/filter_test.go                  |   7 +-
 filter/adaptivesvc/limiter/hill_climbing_test.go   |  13 +-
 filter/adaptivesvc/limiter_mapper_test.go          |  11 +-
 filter/auth/default_authenticator_test.go          |  21 +--
 filter/auth/sign_util_test.go                      |   9 +-
 filter/echo/filter_test.go                         |   3 +-
 filter/exec_limit/filter_test.go                   |   6 +-
 filter/generic/generalizer/gson_test.go            |  11 +-
 filter/generic/generalizer/map_test.go             |  13 +-
 filter/generic/generalizer/protobuf_json_test.go   |   9 +-
 filter/generic/service_filter_test.go              |   5 +-
 filter/graceful_shutdown/consumer_filter_test.go   |   4 +-
 filter/graceful_shutdown/provider_filter_test.go   |   5 +-
 filter/hystrix/filter_test.go                      |   9 +-
 filter/metrics/filter_test.go                      |   2 +-
 filter/sentinel/filter_test.go                     |  21 +--
 filter/token/filter_test.go                        |   9 +-
 filter/tps/filter_test.go                          |   7 +-
 global/config_test.go                              | 105 ++++++-------
 graceful_shutdown/options_test.go                  |   2 +-
 metadata/client.go                                 |   2 +-
 metadata/client_test.go                            |  13 +-
 metadata/info/metadata_info_test.go                |  45 +++---
 .../mapping/metadata/service_name_mapping_test.go  |  27 ++--
 metadata/metadata_service_test.go                  |  27 ++--
 metadata/metadata_test.go                          |   9 +-
 metadata/report_instance_test.go                   |  72 +++++----
 metrics/api_test.go                                |  26 ++--
 metrics/common_test.go                             |   2 +-
 metrics/config_center/collector_test.go            |   2 +-
 metrics/metadata/collector_test.go                 |   2 +-
 metrics/prometheus/registry_test.go                |  23 +--
 metrics/prometheus/rt_vec_test.go                  |   8 +-
 metrics/registry/event_test.go                     |   2 +-
 otel/trace/exporter_test.go                        |  25 +--
 otel/trace/options_test.go                         |   4 +-
 otel/trace/stdout/exporter_test.go                 |   5 +-
 protocol/base/base_invoker_test.go                 |   3 +-
 protocol/dubbo/dubbo_exporter_test.go              |   2 +-
 protocol/dubbo/dubbo_protocol_test.go              |   9 +-
 protocol/dubbo/hessian2/hessian_dubbo_test.go      |  39 ++---
 protocol/dubbo/hessian2/hessian_request_test.go    |  15 +-
 protocol/dubbo/hessian2/hessian_response_test.go   |  20 +--
 protocol/dubbo/hessian2/java_class.go              |   2 -
 protocol/dubbo/hessian2/java_class_test.go         |  47 +++---
 protocol/dubbo/impl/codec_test.go                  |  25 +--
 protocol/dubbo/impl/hessian_test.go                |  65 ++++----
 protocol/dubbo/impl/package_test.go                |   2 +-
 protocol/dubbo/impl/request_test.go                |   4 +-
 protocol/dubbo/impl/response_test.go               |   7 +-
 protocol/dubbo/impl/serialization_test.go          |   7 +-
 protocol/dubbo/impl/serialize_test.go              |  45 +++---
 protocol/dubbo/opentracing_test.go                 |   9 +-
 protocol/dubbo3/dubbo3_protocol_test.go            |  13 +-
 protocol/grpc/client_test.go                       |  23 +--
 protocol/grpc/grpc_invoker_test.go                 |  23 +--
 protocol/grpc/grpc_protocol_test.go                |   7 +-
 protocol/invocation/rpcinvocation_test.go          |  15 +-
 protocol/jsonrpc/json_test.go                      |  27 ++--
 protocol/jsonrpc/jsonrpc_protocol_test.go          |   5 +-
 .../rest/config/reader/rest_config_reader_test.go  |   9 +-
 .../server/server_impl/go_restful_server_test.go   |   4 +-
 protocol/result/result_test.go                     |  23 +--
 protocol/triple/client_test.go                     |  59 ++++----
 protocol/triple/server_test.go                     |  25 ++-
 protocol/triple/triple_invoker_test.go             | 150 ++----------------
 protocol/triple/triple_protocol/codec.go           |   2 -
 .../triple/triple_protocol/handler_compat_test.go  |   2 +-
 protocol/triple/triple_protocol/server_test.go     |   3 +-
 protocol/triple/triple_protocol/triple.go          |   2 +-
 proxy/proxy_factory/invoker_test.go                |   7 +-
 proxy/proxy_test.go                                |  21 +--
 registry/directory/directory_test.go               |  23 +--
 registry/etcdv3/service_discovery_test.go          |  11 +-
 registry/event_test.go                             |   4 +-
 registry/nacos/service_discovery_test.go           |  19 +--
 registry/protocol/protocol_test.go                 |  12 +-
 .../service_discovery_registry_test.go             |  33 ++--
 registry/zookeeper/service_discovery_test.go       |   5 +-
 remoting/getty/getty_client_test.go                |  19 +--
 remoting/getty/getty_server_test.go                |   5 +-
 remoting/getty/listener_test.go                    |   3 +-
 remoting/getty/readwriter_test.go                  |  25 +--
 remoting/polaris/builder_test.go                   |   3 +-
 remoting/zookeeper/listener_test.go                |   2 +-
 server/action_test.go                              |  10 +-
 server/compat_test.go                              |   2 +-
 server/options_test.go                             |   7 +-
 server/server_test.go                              |  53 +++----
 tls/helper_test.go                                 |  41 ++---
 150 files changed, 1302 insertions(+), 1346 deletions(-)

diff --git a/.golangci.yml b/.golangci.yml
index 7ebac8ac8..fd3c8eebe 100644
--- a/.golangci.yml
+++ b/.golangci.yml
@@ -22,6 +22,7 @@ linters:
     - misspell
     - staticcheck
     - unused
+    - testifylint
   settings:
     depguard:
       rules:
diff --git a/Makefile b/Makefile
index 21ade426c..a9e47cda4 100644
--- a/Makefile
+++ b/Makefile
@@ -68,7 +68,7 @@ lint: install-golangci-lint
 	golangci-lint run ./... --timeout=10m
 
 install-golangci-lint:
-	go install github.com/golangci/golangci-lint/v2/cmd/golangci-lint@v2.4.0
+	go install github.com/golangci/golangci-lint/v2/cmd/golangci-lint@v2.7.2
 
 install-imports-formatter:
 	cd $(IMPORTS_FORMATTER_DIR) && go install
diff --git a/README.md b/README.md
index 1602d54a2..0865b70c5 100644
--- a/README.md
+++ b/README.md
@@ -1,7 +1,6 @@
 # Apache Dubbo for Golang
 
 [![Build Status](https://github.com/apache/dubbo-go/workflows/CI/badge.svg)](https://travis-ci.org/apache/dubbo-go)
-[![codecov](https://codecov.io/gh/apache/dubbo-go/branch/main/graph/badge.svg)](https://codecov.io/gh/apache/dubbo-go)
 [![go.dev reference](https://img.shields.io/badge/go.dev-reference-007d9c?logo=go&logoColor=white&style=flat-square)](https://pkg.go.dev/github.com/apache/dubbo-go/v3?tab=doc)
 [![Go Report Card](https://goreportcard.com/badge/github.com/apache/dubbo-go)](https://goreportcard.com/report/github.com/apache/dubbo-go)
 ![license](https://img.shields.io/badge/license-Apache--2.0-green.svg)
diff --git a/README_CN.md b/README_CN.md
index 2eea8a3eb..a1fbfd2aa 100644
--- a/README_CN.md
+++ b/README_CN.md
@@ -1,7 +1,6 @@
 # Apache Dubbo for Golang
 
 [![Build Status](https://github.com/apache/dubbo-go/workflows/CI/badge.svg)](https://travis-ci.org/apache/dubbo-go)
-[![codecov](https://codecov.io/gh/apache/dubbo-go/branch/main/graph/badge.svg)](https://codecov.io/gh/apache/dubbo-go)
 [![go.dev reference](https://img.shields.io/badge/go.dev-reference-007d9c?logo=go&logoColor=white&style=flat-square)](https://pkg.go.dev/github.com/apache/dubbo-go/v3?tab=doc)
 [![Go Report Card](https://goreportcard.com/badge/github.com/apache/dubbo-go)](https://goreportcard.com/report/github.com/apache/dubbo-go)
 ![license](https://img.shields.io/badge/license-Apache--2.0-green.svg)
diff --git a/client/action_test.go b/client/action_test.go
index c6ef042a6..bb2493c88 100644
--- a/client/action_test.go
+++ b/client/action_test.go
@@ -49,7 +49,7 @@ func TestUpdateOrCreateMeshURL(t *testing.T) {
 			Consumer:  &global.ConsumerConfig{MeshEnabled: false},
 		}
 		updateOrCreateMeshURL(refOpts)
-		require.Equal(t, "", refOpts.Reference.URL)
+		require.Empty(t, refOpts.Reference.URL)
 	})
 
 	t.Run("mesh enabled build url", func(t *testing.T) {
diff --git a/client/options_test.go b/client/options_test.go
index ccb9cb8a4..a05660eee 100644
--- a/client/options_test.go
+++ b/client/options_test.go
@@ -24,6 +24,7 @@ import (
 
 import (
 	"github.com/stretchr/testify/assert"
+	"github.com/stretchr/testify/require"
 )
 
 import (
@@ -58,7 +59,7 @@ func TestWithClientURL(t *testing.T) {
 				WithClientURL("127.0.0.1:20000"),
 			},
 			verify: func(t *testing.T, cli *Client, err error) {
-				assert.Nil(t, err)
+				require.NoError(t, err)
 				assert.Equal(t, "127.0.0.1:20000", cli.cliOpts.overallReference.URL)
 			},
 		},
@@ -74,8 +75,8 @@ func TestWithClientCheck(t *testing.T) {
 				WithClientNoCheck(),
 			},
 			verify: func(t *testing.T, cli *Client, err error) {
-				assert.Nil(t, err)
-				assert.Equal(t, false, cli.cliOpts.Consumer.Check)
+				require.NoError(t, err)
+				assert.False(t, cli.cliOpts.Consumer.Check)
 			},
 		},
 	}
@@ -90,7 +91,7 @@ func TestWithClientFilter(t *testing.T) {
 				WithClientFilter("test_filter"),
 			},
 			verify: func(t *testing.T, cli *Client, err error) {
-				assert.Nil(t, err)
+				require.NoError(t, err)
 				assert.Equal(t, "test_filter", cli.cliOpts.overallReference.Filter)
 			},
 		},
@@ -106,7 +107,7 @@ func TestWithClientRegistryIDs(t *testing.T) {
 				WithClientRegistryIDs("zk", "nacos"),
 			},
 			verify: func(t *testing.T, cli *Client, err error) {
-				assert.Nil(t, err)
+				require.NoError(t, err)
 				assert.Equal(t, []string{"zk", "nacos"}, cli.cliOpts.Consumer.RegistryIDs)
 			},
 		},
@@ -125,7 +126,7 @@ func TestWithClientRegistry(t *testing.T) {
 				),
 			},
 			verify: func(t *testing.T, cli *Client, err error) {
-				assert.Nil(t, err)
+				require.NoError(t, err)
 				reg, ok := cli.cliOpts.Registries[constant.ZookeeperKey]
 				assert.True(t, ok)
 				assert.Equal(t, "127.0.0.1:2181", reg.Address)
@@ -144,7 +145,7 @@ func TestWithClientRegistry(t *testing.T) {
 				),
 			},
 			verify: func(t *testing.T, cli *Client, err error) {
-				assert.Nil(t, err)
+				require.NoError(t, err)
 				reg, ok := cli.cliOpts.Registries["zk"]
 				assert.True(t, ok)
 				assert.Equal(t, "127.0.0.1:2181", reg.Address)
@@ -168,7 +169,7 @@ func TestWithClientRegistry(t *testing.T) {
 				WithClientRegistryIDs("nacos_test"),
 			},
 			verify: func(t *testing.T, cli *Client, err error) {
-				assert.Nil(t, err)
+				require.NoError(t, err)
 				zkReg, ok := cli.cliOpts.Registries[constant.ZookeeperKey]
 				assert.True(t, ok)
 				assert.Equal(t, "127.0.0.1:2181", zkReg.Address)
@@ -195,7 +196,7 @@ func TestWithClientShutdown(t *testing.T) {
 				WithClientShutdown(),
 			},
 			verify: func(t *testing.T, cli *Client, err error) {
-				assert.Nil(t, err)
+				require.NoError(t, err)
 				// we do not verify the internal fields of Shutdown since graceful_shutdown module is in charge of it
 				assert.NotNil(t, cli.cliOpts.Shutdown)
 			},
@@ -210,7 +211,7 @@ func TestWithClientCluster(t *testing.T) {
 			desc: "default Cluster strategy",
 			opts: []ClientOption{},
 			verify: func(t *testing.T, cli *Client, err error) {
-				assert.Nil(t, err)
+				require.NoError(t, err)
 				assert.Equal(t, constant.ClusterKeyFailover, cli.cliOpts.overallReference.Cluster)
 			},
 		},
@@ -220,7 +221,7 @@ func TestWithClientCluster(t *testing.T) {
 				WithClientClusterAvailable(),
 			},
 			verify: func(t *testing.T, cli *Client, err error) {
-				assert.Nil(t, err)
+				require.NoError(t, err)
 				assert.Equal(t, constant.ClusterKeyAvailable, cli.cliOpts.overallReference.Cluster)
 			},
 		},
@@ -230,7 +231,7 @@ func TestWithClientCluster(t *testing.T) {
 				WithClientClusterBroadcast(),
 			},
 			verify: func(t *testing.T, cli *Client, err error) {
-				assert.Nil(t, err)
+				require.NoError(t, err)
 				assert.Equal(t, constant.ClusterKeyBroadcast, cli.cliOpts.overallReference.Cluster)
 			},
 		},
@@ -240,7 +241,7 @@ func TestWithClientCluster(t *testing.T) {
 				WithClientClusterFailBack(),
 			},
 			verify: func(t *testing.T, cli *Client, err error) {
-				assert.Nil(t, err)
+				require.NoError(t, err)
 				assert.Equal(t, constant.ClusterKeyFailback, cli.cliOpts.overallReference.Cluster)
 			},
 		},
@@ -250,7 +251,7 @@ func TestWithClientCluster(t *testing.T) {
 				WithClientClusterFailFast(),
 			},
 			verify: func(t *testing.T, cli *Client, err error) {
-				assert.Nil(t, err)
+				require.NoError(t, err)
 				assert.Equal(t, constant.ClusterKeyFailfast, cli.cliOpts.overallReference.Cluster)
 			},
 		},
@@ -260,7 +261,7 @@ func TestWithClientCluster(t *testing.T) {
 				WithClientClusterFailOver(),
 			},
 			verify: func(t *testing.T, cli *Client, err error) {
-				assert.Nil(t, err)
+				require.NoError(t, err)
 				assert.Equal(t, constant.ClusterKeyFailover, cli.cliOpts.overallReference.Cluster)
 			},
 		},
@@ -270,7 +271,7 @@ func TestWithClientCluster(t *testing.T) {
 				WithClientClusterFailSafe(),
 			},
 			verify: func(t *testing.T, cli *Client, err error) {
-				assert.Nil(t, err)
+				require.NoError(t, err)
 				assert.Equal(t, constant.ClusterKeyFailsafe, cli.cliOpts.overallReference.Cluster)
 			},
 		},
@@ -280,7 +281,7 @@ func TestWithClientCluster(t *testing.T) {
 				WithClientClusterForking(),
 			},
 			verify: func(t *testing.T, cli *Client, err error) {
-				assert.Nil(t, err)
+				require.NoError(t, err)
 				assert.Equal(t, constant.ClusterKeyForking, cli.cliOpts.overallReference.Cluster)
 			},
 		},
@@ -290,7 +291,7 @@ func TestWithClientCluster(t *testing.T) {
 				WithClientClusterZoneAware(),
 			},
 			verify: func(t *testing.T, cli *Client, err error) {
-				assert.Nil(t, err)
+				require.NoError(t, err)
 				assert.Equal(t, constant.ClusterKeyZoneAware, cli.cliOpts.overallReference.Cluster)
 			},
 		},
@@ -300,7 +301,7 @@ func TestWithClientCluster(t *testing.T) {
 				WithClientClusterAdaptiveService(),
 			},
 			verify: func(t *testing.T, cli *Client, err error) {
-				assert.Nil(t, err)
+				require.NoError(t, err)
 				assert.Equal(t, constant.ClusterKeyAdaptiveService, cli.cliOpts.overallReference.Cluster)
 			},
 		},
@@ -325,7 +326,7 @@ func TestWithClientLoadBalance(t *testing.T) {
 				WithClientLoadBalanceConsistentHashing(),
 			},
 			verify: func(t *testing.T, cli *Client, err error) {
-				assert.Nil(t, err)
+				require.NoError(t, err)
 				assert.Equal(t, constant.LoadBalanceKeyConsistentHashing, cli.cliOpts.overallReference.Loadbalance)
 			},
 		},
@@ -335,7 +336,7 @@ func TestWithClientLoadBalance(t *testing.T) {
 				WithClientLoadBalanceLeastActive(),
 			},
 			verify: func(t *testing.T, cli *Client, err error) {
-				assert.Nil(t, err)
+				require.NoError(t, err)
 				assert.Equal(t, constant.LoadBalanceKeyLeastActive, cli.cliOpts.overallReference.Loadbalance)
 			},
 		},
@@ -345,7 +346,7 @@ func TestWithClientLoadBalance(t *testing.T) {
 				WithClientLoadBalanceRandom(),
 			},
 			verify: func(t *testing.T, cli *Client, err error) {
-				assert.Nil(t, err)
+				require.NoError(t, err)
 				assert.Equal(t, constant.LoadBalanceKeyRandom, cli.cliOpts.overallReference.Loadbalance)
 			},
 		},
@@ -355,7 +356,7 @@ func TestWithClientLoadBalance(t *testing.T) {
 				WithClientLoadBalanceRoundRobin(),
 			},
 			verify: func(t *testing.T, cli *Client, err error) {
-				assert.Nil(t, err)
+				require.NoError(t, err)
 				assert.Equal(t, constant.LoadBalanceKeyRoundRobin, cli.cliOpts.overallReference.Loadbalance)
 			},
 		},
@@ -365,7 +366,7 @@ func TestWithClientLoadBalance(t *testing.T) {
 				WithClientLoadBalanceP2C(),
 			},
 			verify: func(t *testing.T, cli *Client, err error) {
-				assert.Nil(t, err)
+				require.NoError(t, err)
 				assert.Equal(t, constant.LoadBalanceKeyP2C, cli.cliOpts.overallReference.Loadbalance)
 			},
 		},
@@ -381,7 +382,7 @@ func TestWithClientRetries(t *testing.T) {
 				WithClientRetries(3),
 			},
 			verify: func(t *testing.T, cli *Client, err error) {
-				assert.Nil(t, err)
+				require.NoError(t, err)
 				assert.Equal(t, "3", cli.cliOpts.overallReference.Retries)
 			},
 		},
@@ -397,7 +398,7 @@ func TestWithClientGroup(t *testing.T) {
 				WithClientGroup("test_group"),
 			},
 			verify: func(t *testing.T, cli *Client, err error) {
-				assert.Nil(t, err)
+				require.NoError(t, err)
 				assert.Equal(t, "test_group", cli.cliOpts.overallReference.Group)
 			},
 		},
@@ -413,7 +414,7 @@ func TestWithClientVersion(t *testing.T) {
 				WithClientVersion("test_version"),
 			},
 			verify: func(t *testing.T, cli *Client, err error) {
-				assert.Nil(t, err)
+				require.NoError(t, err)
 				assert.Equal(t, "test_version", cli.cliOpts.overallReference.Version)
 			},
 		},
@@ -427,7 +428,7 @@ func TestWithClientSerialization(t *testing.T) {
 			desc: "default Serialization",
 			opts: []ClientOption{},
 			verify: func(t *testing.T, cli *Client, err error) {
-				assert.Nil(t, err)
+				require.NoError(t, err)
 				assert.Equal(t, constant.ProtobufSerialization, cli.cliOpts.overallReference.Serialization)
 			},
 		},
@@ -437,7 +438,7 @@ func TestWithClientSerialization(t *testing.T) {
 				WithClientSerializationJSON(),
 			},
 			verify: func(t *testing.T, cli *Client, err error) {
-				assert.Nil(t, err)
+				require.NoError(t, err)
 				assert.Equal(t, constant.JSONSerialization, cli.cliOpts.overallReference.Serialization)
 			},
 		},
@@ -453,7 +454,7 @@ func TestWithClientProvidedBy(t *testing.T) {
 				WithClientProvidedBy("test_instance"),
 			},
 			verify: func(t *testing.T, cli *Client, err error) {
-				assert.Nil(t, err)
+				require.NoError(t, err)
 				assert.Equal(t, "test_instance", cli.cliOpts.overallReference.ProvidedBy)
 			},
 		},
@@ -471,7 +472,7 @@ func TestWithClientParams(t *testing.T) {
 				}),
 			},
 			verify: func(t *testing.T, cli *Client, err error) {
-				assert.Nil(t, err)
+				require.NoError(t, err)
 				assert.Equal(t, map[string]string{"test_key": "test_val"}, cli.cliOpts.overallReference.Params)
 			},
 		},
@@ -481,7 +482,7 @@ func TestWithClientParams(t *testing.T) {
 				WithClientParams(nil),
 			},
 			verify: func(t *testing.T, cli *Client, err error) {
-				assert.Nil(t, err)
+				require.NoError(t, err)
 				assert.Nil(t, cli.cliOpts.overallReference.Params)
 			},
 		},
@@ -491,7 +492,7 @@ func TestWithClientParams(t *testing.T) {
 				WithClientParams((map[string]string)(nil)),
 			},
 			verify: func(t *testing.T, cli *Client, err error) {
-				assert.Nil(t, err)
+				require.NoError(t, err)
 				assert.Nil(t, cli.cliOpts.overallReference.Params)
 			},
 		},
@@ -501,7 +502,7 @@ func TestWithClientParams(t *testing.T) {
 				WithClientParams(map[string]string{}),
 			},
 			verify: func(t *testing.T, cli *Client, err error) {
-				assert.Nil(t, err)
+				require.NoError(t, err)
 				assert.Nil(t, cli.cliOpts.overallReference.Params)
 			},
 		},
@@ -517,7 +518,7 @@ func TestWithClientParam(t *testing.T) {
 				WithClientParam("test_key", "test_val"),
 			},
 			verify: func(t *testing.T, cli *Client, err error) {
-				assert.Nil(t, err)
+				require.NoError(t, err)
 				assert.Equal(t, map[string]string{"test_key": "test_val"}, cli.cliOpts.overallReference.Params)
 			},
 		},
@@ -528,7 +529,7 @@ func TestWithClientParam(t *testing.T) {
 				WithClientParam("test_key1", "test_val1"),
 			},
 			verify: func(t *testing.T, cli *Client, err error) {
-				assert.Nil(t, err)
+				require.NoError(t, err)
 				assert.Equal(t, map[string]string{"test_key": "test_val", "test_key1": "test_val1"}, cli.cliOpts.overallReference.Params)
 			},
 		},
@@ -538,7 +539,7 @@ func TestWithClientParam(t *testing.T) {
 				WithClientParam("", ""),
 			},
 			verify: func(t *testing.T, cli *Client, err error) {
-				assert.Nil(t, err)
+				require.NoError(t, err)
 				assert.Equal(t, map[string]string{"": ""}, cli.cliOpts.overallReference.Params)
 			},
 		},
@@ -554,7 +555,7 @@ func TestWithClientSticky(t *testing.T) {
 				WithClientSticky(),
 			},
 			verify: func(t *testing.T, cli *Client, err error) {
-				assert.Nil(t, err)
+				require.NoError(t, err)
 				assert.True(t, cli.cliOpts.overallReference.Sticky)
 			},
 		},
@@ -568,7 +569,7 @@ func TestWithClientProtocol(t *testing.T) {
 			desc: "default Protocol",
 			opts: []ClientOption{},
 			verify: func(t *testing.T, cli *Client, err error) {
-				assert.Nil(t, err)
+				require.NoError(t, err)
 				assert.Equal(t, "tri", cli.cliOpts.Consumer.Protocol)
 			},
 		},
@@ -578,7 +579,7 @@ func TestWithClientProtocol(t *testing.T) {
 				WithClientProtocolDubbo(),
 			},
 			verify: func(t *testing.T, cli *Client, err error) {
-				assert.Nil(t, err)
+				require.NoError(t, err)
 				assert.Equal(t, constant.DubboProtocol, cli.cliOpts.Consumer.Protocol)
 			},
 		},
@@ -588,7 +589,7 @@ func TestWithClientProtocol(t *testing.T) {
 				WithClientProtocolTriple(),
 			},
 			verify: func(t *testing.T, cli *Client, err error) {
-				assert.Nil(t, err)
+				require.NoError(t, err)
 				assert.Equal(t, "tri", cli.cliOpts.Consumer.Protocol)
 			},
 		},
@@ -598,7 +599,7 @@ func TestWithClientProtocol(t *testing.T) {
 				WithClientProtocolJsonRPC(),
 			},
 			verify: func(t *testing.T, cli *Client, err error) {
-				assert.Nil(t, err)
+				require.NoError(t, err)
 				assert.Equal(t, "jsonrpc", cli.cliOpts.Consumer.Protocol)
 			},
 		},
@@ -614,7 +615,7 @@ func TestWithClientRequestTimeout(t *testing.T) {
 				WithClientRequestTimeout(6 * time.Second),
 			},
 			verify: func(t *testing.T, cli *Client, err error) {
-				assert.Nil(t, err)
+				require.NoError(t, err)
 				assert.Equal(t, "6s", cli.cliOpts.Consumer.RequestTimeout)
 			},
 		},
@@ -623,7 +624,7 @@ func TestWithClientRequestTimeout(t *testing.T) {
 			desc: "default RequestTimeout",
 			opts: []ClientOption{},
 			verify: func(t *testing.T, cli *Client, err error) {
-				assert.Nil(t, err)
+				require.NoError(t, err)
 				assert.Equal(t, "3s", cli.cliOpts.Consumer.RequestTimeout)
 			},
 		},
@@ -639,7 +640,7 @@ func TestWithClientForceTag(t *testing.T) {
 				WithClientForceTag(),
 			},
 			verify: func(t *testing.T, cli *Client, err error) {
-				assert.Nil(t, err)
+				require.NoError(t, err)
 				assert.True(t, cli.cliOpts.overallReference.ForceTag)
 			},
 		},
@@ -655,7 +656,7 @@ func TestWithClientMeshProviderPort(t *testing.T) {
 				WithClientMeshProviderPort(20001),
 			},
 			verify: func(t *testing.T, cli *Client, err error) {
-				assert.Nil(t, err)
+				require.NoError(t, err)
 				assert.Equal(t, 20001, cli.cliOpts.overallReference.MeshProviderPort)
 			},
 		},
@@ -689,7 +690,7 @@ func TestWithCheck(t *testing.T) {
 				WithCheck(),
 			},
 			verify: func(t *testing.T, refOpts *ReferenceOptions, err error) {
-				assert.Nil(t, err)
+				require.NoError(t, err)
 				assert.True(t, *refOpts.Reference.Check)
 			},
 		},
@@ -705,7 +706,7 @@ func TestWithURL(t *testing.T) {
 				WithURL("127.0.0.1:20000"),
 			},
 			verify: func(t *testing.T, refOpts *ReferenceOptions, err error) {
-				assert.Nil(t, err)
+				require.NoError(t, err)
 				assert.Equal(t, "127.0.0.1:20000", refOpts.Reference.URL)
 			},
 		},
@@ -721,7 +722,7 @@ func TestWithFilter(t *testing.T) {
 				WithFilter("test_filter"),
 			},
 			verify: func(t *testing.T, refOpts *ReferenceOptions, err error) {
-				assert.Nil(t, err)
+				require.NoError(t, err)
 				assert.Equal(t, "test_filter", refOpts.Reference.Filter)
 			},
 		},
@@ -737,7 +738,7 @@ func TestWithRegistryIDs(t *testing.T) {
 				WithRegistryIDs("zk", "nacos"),
 			},
 			verify: func(t *testing.T, refOpts *ReferenceOptions, err error) {
-				assert.Nil(t, err)
+				require.NoError(t, err)
 				assert.Equal(t, []string{"zk", "nacos"}, refOpts.Reference.RegistryIDs)
 			},
 		},
@@ -751,7 +752,7 @@ func TestWithCluster(t *testing.T) {
 			desc: "default Cluster strategy",
 			opts: []ReferenceOption{},
 			verify: func(t *testing.T, refOpts *ReferenceOptions, err error) {
-				assert.Nil(t, err)
+				require.NoError(t, err)
 				assert.Equal(t, constant.ClusterKeyFailover, refOpts.Reference.Cluster)
 			},
 		},
@@ -761,7 +762,7 @@ func TestWithCluster(t *testing.T) {
 				WithClusterAvailable(),
 			},
 			verify: func(t *testing.T, refOpts *ReferenceOptions, err error) {
-				assert.Nil(t, err)
+				require.NoError(t, err)
 				assert.Equal(t, constant.ClusterKeyAvailable, refOpts.Reference.Cluster)
 			},
 		},
@@ -771,7 +772,7 @@ func TestWithCluster(t *testing.T) {
 				WithClusterBroadcast(),
 			},
 			verify: func(t *testing.T, refOpts *ReferenceOptions, err error) {
-				assert.Nil(t, err)
+				require.NoError(t, err)
 				assert.Equal(t, constant.ClusterKeyBroadcast, refOpts.Reference.Cluster)
 			},
 		},
@@ -781,7 +782,7 @@ func TestWithCluster(t *testing.T) {
 				WithClusterFailBack(),
 			},
 			verify: func(t *testing.T, refOpts *ReferenceOptions, err error) {
-				assert.Nil(t, err)
+				require.NoError(t, err)
 				assert.Equal(t, constant.ClusterKeyFailback, refOpts.Reference.Cluster)
 			},
 		},
@@ -791,7 +792,7 @@ func TestWithCluster(t *testing.T) {
 				WithClusterFailFast(),
 			},
 			verify: func(t *testing.T, refOpts *ReferenceOptions, err error) {
-				assert.Nil(t, err)
+				require.NoError(t, err)
 				assert.Equal(t, constant.ClusterKeyFailfast, refOpts.Reference.Cluster)
 			},
 		},
@@ -801,7 +802,7 @@ func TestWithCluster(t *testing.T) {
 				WithClusterFailOver(),
 			},
 			verify: func(t *testing.T, refOpts *ReferenceOptions, err error) {
-				assert.Nil(t, err)
+				require.NoError(t, err)
 				assert.Equal(t, constant.ClusterKeyFailover, refOpts.Reference.Cluster)
 			},
 		},
@@ -811,7 +812,7 @@ func TestWithCluster(t *testing.T) {
 				WithClusterFailSafe(),
 			},
 			verify: func(t *testing.T, refOpts *ReferenceOptions, err error) {
-				assert.Nil(t, err)
+				require.NoError(t, err)
 				assert.Equal(t, constant.ClusterKeyFailsafe, refOpts.Reference.Cluster)
 			},
 		},
@@ -821,7 +822,7 @@ func TestWithCluster(t *testing.T) {
 				WithClusterForking(),
 			},
 			verify: func(t *testing.T, refOpts *ReferenceOptions, err error) {
-				assert.Nil(t, err)
+				require.NoError(t, err)
 				assert.Equal(t, constant.ClusterKeyForking, refOpts.Reference.Cluster)
 			},
 		},
@@ -831,7 +832,7 @@ func TestWithCluster(t *testing.T) {
 				WithClusterZoneAware(),
 			},
 			verify: func(t *testing.T, refOpts *ReferenceOptions, err error) {
-				assert.Nil(t, err)
+				require.NoError(t, err)
 				assert.Equal(t, constant.ClusterKeyZoneAware, refOpts.Reference.Cluster)
 			},
 		},
@@ -841,7 +842,7 @@ func TestWithCluster(t *testing.T) {
 				WithClusterAdaptiveService(),
 			},
 			verify: func(t *testing.T, refOpts *ReferenceOptions, err error) {
-				assert.Nil(t, err)
+				require.NoError(t, err)
 				assert.Equal(t, constant.ClusterKeyAdaptiveService, refOpts.Reference.Cluster)
 			},
 		},
@@ -866,7 +867,7 @@ func TestWithLoadBalance(t *testing.T) {
 				WithLoadBalanceConsistentHashing(),
 			},
 			verify: func(t *testing.T, refOpts *ReferenceOptions, err error) {
-				assert.Nil(t, err)
+				require.NoError(t, err)
 				assert.Equal(t, constant.LoadBalanceKeyConsistentHashing, refOpts.Reference.Loadbalance)
 			},
 		},
@@ -876,7 +877,7 @@ func TestWithLoadBalance(t *testing.T) {
 				WithLoadBalanceLeastActive(),
 			},
 			verify: func(t *testing.T, refOpts *ReferenceOptions, err error) {
-				assert.Nil(t, err)
+				require.NoError(t, err)
 				assert.Equal(t, constant.LoadBalanceKeyLeastActive, refOpts.Reference.Loadbalance)
 			},
 		},
@@ -886,7 +887,7 @@ func TestWithLoadBalance(t *testing.T) {
 				WithLoadBalanceRandom(),
 			},
 			verify: func(t *testing.T, refOpts *ReferenceOptions, err error) {
-				assert.Nil(t, err)
+				require.NoError(t, err)
 				assert.Equal(t, constant.LoadBalanceKeyRandom, refOpts.Reference.Loadbalance)
 			},
 		},
@@ -896,7 +897,7 @@ func TestWithLoadBalance(t *testing.T) {
 				WithLoadBalanceRoundRobin(),
 			},
 			verify: func(t *testing.T, refOpts *ReferenceOptions, err error) {
-				assert.Nil(t, err)
+				require.NoError(t, err)
 				assert.Equal(t, constant.LoadBalanceKeyRoundRobin, refOpts.Reference.Loadbalance)
 			},
 		},
@@ -906,7 +907,7 @@ func TestWithLoadBalance(t *testing.T) {
 				WithLoadBalanceP2C(),
 			},
 			verify: func(t *testing.T, refOpts *ReferenceOptions, err error) {
-				assert.Nil(t, err)
+				require.NoError(t, err)
 				assert.Equal(t, constant.LoadBalanceKeyP2C, refOpts.Reference.Loadbalance)
 			},
 		},
@@ -922,7 +923,7 @@ func TestWithRetries(t *testing.T) {
 				WithRetries(3),
 			},
 			verify: func(t *testing.T, refOpts *ReferenceOptions, err error) {
-				assert.Nil(t, err)
+				require.NoError(t, err)
 				assert.Equal(t, "3", refOpts.Reference.Retries)
 			},
 		},
@@ -938,7 +939,7 @@ func TestWithGroup(t *testing.T) {
 				WithGroup("test_group"),
 			},
 			verify: func(t *testing.T, refOpts *ReferenceOptions, err error) {
-				assert.Nil(t, err)
+				require.NoError(t, err)
 				assert.Equal(t, "test_group", refOpts.Reference.Group)
 			},
 		},
@@ -954,7 +955,7 @@ func TestWithVersion(t *testing.T) {
 				WithVersion("test_version"),
 			},
 			verify: func(t *testing.T, refOpts *ReferenceOptions, err error) {
-				assert.Nil(t, err)
+				require.NoError(t, err)
 				assert.Equal(t, "test_version", refOpts.Reference.Version)
 			},
 		},
@@ -968,7 +969,7 @@ func TestWithSerialization(t *testing.T) {
 			desc: "default Serialization",
 			opts: []ReferenceOption{},
 			verify: func(t *testing.T, refOpts *ReferenceOptions, err error) {
-				assert.Nil(t, err)
+				require.NoError(t, err)
 				assert.Equal(t, constant.ProtobufSerialization, refOpts.Reference.Serialization)
 			},
 		},
@@ -978,7 +979,7 @@ func TestWithSerialization(t *testing.T) {
 				WithSerializationJSON(),
 			},
 			verify: func(t *testing.T, refOpts *ReferenceOptions, err error) {
-				assert.Nil(t, err)
+				require.NoError(t, err)
 				assert.Equal(t, constant.JSONSerialization, refOpts.Reference.Serialization)
 			},
 		},
@@ -994,7 +995,7 @@ func TestWithProvidedBy(t *testing.T) {
 				WithProvidedBy("test_instance"),
 			},
 			verify: func(t *testing.T, refOpts *ReferenceOptions, err error) {
-				assert.Nil(t, err)
+				require.NoError(t, err)
 				assert.Equal(t, "test_instance", refOpts.Reference.ProvidedBy)
 			},
 		},
@@ -1012,7 +1013,7 @@ func TestWithParams(t *testing.T) {
 				}),
 			},
 			verify: func(t *testing.T, refOpts *ReferenceOptions, err error) {
-				assert.Nil(t, err)
+				require.NoError(t, err)
 				assert.Equal(t, map[string]string{"test_key": "test_val"}, refOpts.Reference.Params)
 			},
 		},
@@ -1022,7 +1023,7 @@ func TestWithParams(t *testing.T) {
 				WithParams(nil),
 			},
 			verify: func(t *testing.T, refOpts *ReferenceOptions, err error) {
-				assert.Nil(t, err)
+				require.NoError(t, err)
 				assert.Nil(t, refOpts.Reference.Params)
 			},
 		},
@@ -1032,7 +1033,7 @@ func TestWithParams(t *testing.T) {
 				WithParams((map[string]string)(nil)),
 			},
 			verify: func(t *testing.T, refOpts *ReferenceOptions, err error) {
-				assert.Nil(t, err)
+				require.NoError(t, err)
 				assert.Nil(t, refOpts.Reference.Params)
 			},
 		},
@@ -1042,7 +1043,7 @@ func TestWithParams(t *testing.T) {
 				WithParams(map[string]string{}),
 			},
 			verify: func(t *testing.T, refOpts *ReferenceOptions, err error) {
-				assert.Nil(t, err)
+				require.NoError(t, err)
 				assert.Nil(t, refOpts.Reference.Params)
 			},
 		},
@@ -1095,7 +1096,7 @@ func TestWithSticky(t *testing.T) {
 				WithSticky(),
 			},
 			verify: func(t *testing.T, refOpts *ReferenceOptions, err error) {
-				assert.Nil(t, err)
+				require.NoError(t, err)
 				assert.True(t, refOpts.Reference.Sticky)
 			},
 		},
@@ -1109,7 +1110,7 @@ func TestWithProtocol(t *testing.T) {
 			desc: "default Protocol",
 			opts: []ReferenceOption{},
 			verify: func(t *testing.T, refOpts *ReferenceOptions, err error) {
-				assert.Nil(t, err)
+				require.NoError(t, err)
 				assert.Equal(t, "tri", refOpts.Reference.Protocol)
 			},
 		},
@@ -1119,7 +1120,7 @@ func TestWithProtocol(t *testing.T) {
 				WithProtocolDubbo(),
 			},
 			verify: func(t *testing.T, refOpts *ReferenceOptions, err error) {
-				assert.Nil(t, err)
+				require.NoError(t, err)
 				assert.Equal(t, constant.DubboProtocol, refOpts.Reference.Protocol)
 			},
 		},
@@ -1129,7 +1130,7 @@ func TestWithProtocol(t *testing.T) {
 				WithProtocolTriple(),
 			},
 			verify: func(t *testing.T, refOpts *ReferenceOptions, err error) {
-				assert.Nil(t, err)
+				require.NoError(t, err)
 				assert.Equal(t, "tri", refOpts.Reference.Protocol)
 			},
 		},
@@ -1139,7 +1140,7 @@ func TestWithProtocol(t *testing.T) {
 				WithProtocolJsonRPC(),
 			},
 			verify: func(t *testing.T, refOpts *ReferenceOptions, err error) {
-				assert.Nil(t, err)
+				require.NoError(t, err)
 				assert.Equal(t, "jsonrpc", refOpts.Reference.Protocol)
 			},
 		},
@@ -1155,7 +1156,7 @@ func TestWithRequestTimeout(t *testing.T) {
 				WithRequestTimeout(6 * time.Second),
 			},
 			verify: func(t *testing.T, refOpts *ReferenceOptions, err error) {
-				assert.Nil(t, err)
+				require.NoError(t, err)
 				assert.Equal(t, "6s", refOpts.Reference.RequestTimeout)
 			},
 		},
@@ -1171,7 +1172,7 @@ func TestWithForceTag(t *testing.T) {
 				WithForceTag(),
 			},
 			verify: func(t *testing.T, refOpts *ReferenceOptions, err error) {
-				assert.Nil(t, err)
+				require.NoError(t, err)
 				assert.True(t, refOpts.Reference.ForceTag)
 			},
 		},
@@ -1187,7 +1188,7 @@ func TestWithMeshProviderPort(t *testing.T) {
 				WithMeshProviderPort(20001),
 			},
 			verify: func(t *testing.T, refOpts *ReferenceOptions, err error) {
-				assert.Nil(t, err)
+				require.NoError(t, err)
 				assert.Equal(t, 20001, refOpts.Reference.MeshProviderPort)
 			},
 		},
diff --git a/cluster/cluster/available/cluster_invoker_test.go b/cluster/cluster/available/cluster_invoker_test.go
index 035ba5418..8522c53ab 100644
--- a/cluster/cluster/available/cluster_invoker_test.go
+++ b/cluster/cluster/available/cluster_invoker_test.go
@@ -21,7 +21,6 @@ import (
 	"context"
 	"errors"
 	"fmt"
-	"strings"
 	"testing"
 )
 
@@ -29,6 +28,7 @@ import (
 	"github.com/golang/mock/gomock"
 
 	"github.com/stretchr/testify/assert"
+	"github.com/stretchr/testify/require"
 )
 
 import (
@@ -91,7 +91,7 @@ func TestAvailableClusterInvokerNoAvail(t *testing.T) {
 
 	result := clusterInvoker.Invoke(context.TODO(), &invocation.RPCInvocation{})
 
-	assert.NotNil(t, result.Error())
-	assert.True(t, strings.Contains(result.Error().Error(), "no provider available"))
+	require.Error(t, result.Error())
+	assert.Contains(t, result.Error().Error(), "no provider available")
 	assert.Nil(t, result.Result())
 }
diff --git a/cluster/cluster/failback/cluster_test.go b/cluster/cluster/failback/cluster_test.go
index adc09a8e0..53db074c7 100644
--- a/cluster/cluster/failback/cluster_test.go
+++ b/cluster/cluster/failback/cluster_test.go
@@ -31,6 +31,7 @@ import (
 	perrors "github.com/pkg/errors"
 
 	"github.com/stretchr/testify/assert"
+	"github.com/stretchr/testify/require"
 )
 
 import (
@@ -106,15 +107,15 @@ func TestFailbackRetryOneSuccess(t *testing.T) {
 	invoker.EXPECT().IsAvailable().Return(true)
 	invoker.EXPECT().Invoke(gomock.Any(), gomock.Any()).DoAndReturn(func(context.Context, base.Invocation) result.Result {
 		delta := time.Since(now).Nanoseconds() / int64(time.Second)
-		assert.True(t, delta >= 5)
+		assert.GreaterOrEqual(t, delta, int64(5))
 		wg.Done()
 		return mockSuccResult
 	})
 
 	result := clusterInvoker.Invoke(context.Background(), &invocation.RPCInvocation{})
-	assert.Nil(t, result.Error())
+	require.NoError(t, result.Error())
 	assert.Nil(t, result.Result())
-	assert.Equal(t, 0, len(result.Attachments()))
+	assert.Empty(t, result.Attachments())
 
 	// ensure the retry task has been executed
 	assert.Equal(t, int64(1), clusterInvoker.taskList.Len())
@@ -153,7 +154,7 @@ func TestFailbackRetryFailed(t *testing.T) {
 		j := i + 1
 		invoker.EXPECT().Invoke(gomock.Any(), gomock.Any()).DoAndReturn(func(context.Context, base.Invocation) result.Result {
 			delta := time.Since(now).Nanoseconds() / int64(time.Second)
-			assert.True(t, delta >= int64(5*j))
+			assert.GreaterOrEqual(t, delta, int64(5*j))
 			wg.Done()
 			return mockFailedResult
 		})
@@ -161,9 +162,9 @@ func TestFailbackRetryFailed(t *testing.T) {
 
 	// first call should failed.
 	result := clusterInvoker.Invoke(context.Background(), &invocation.RPCInvocation{})
-	assert.Nil(t, result.Error())
+	require.NoError(t, result.Error())
 	assert.Nil(t, result.Result())
-	assert.Equal(t, 0, len(result.Attachments()))
+	assert.Empty(t, result.Attachments())
 
 	wg.Wait()
 	time.Sleep(time.Second)
@@ -197,16 +198,16 @@ func TestFailbackRetryFailed10Times(t *testing.T) {
 	now := time.Now()
 	invoker.EXPECT().Invoke(gomock.Any(), gomock.Any()).DoAndReturn(func(context.Context, base.Invocation) result.Result {
 		delta := time.Since(now).Nanoseconds() / int64(time.Second)
-		assert.True(t, delta >= 5)
+		assert.GreaterOrEqual(t, delta, int64(5))
 		wg.Done()
 		return mockFailedResult
 	}).Times(10)
 
 	for i := 0; i < 10; i++ {
 		result := clusterInvoker.Invoke(context.Background(), &invocation.RPCInvocation{})
-		assert.Nil(t, result.Error())
+		require.NoError(t, result.Error())
 		assert.Nil(t, result.Result())
-		assert.Equal(t, 0, len(result.Attachments()))
+		assert.Empty(t, result.Attachments())
 	}
 
 	wg.Wait()
@@ -235,16 +236,16 @@ func TestFailbackOutOfLimit(t *testing.T) {
 
 	// reached limit
 	result := clusterInvoker.Invoke(context.Background(), &invocation.RPCInvocation{})
-	assert.Nil(t, result.Error())
+	require.NoError(t, result.Error())
 	assert.Nil(t, result.Result())
-	assert.Equal(t, 0, len(result.Attachments()))
+	assert.Empty(t, result.Attachments())
 
 	// all will be out of limit
 	for i := 0; i < 10; i++ {
 		result := clusterInvoker.Invoke(context.Background(), &invocation.RPCInvocation{})
-		assert.Nil(t, result.Error())
+		require.NoError(t, result.Error())
 		assert.Nil(t, result.Result())
-		assert.Equal(t, 0, len(result.Attachments()))
+		assert.Empty(t, result.Attachments())
 
 		assert.Equal(t, int64(1), clusterInvoker.taskList.Len())
 	}
diff --git a/cluster/cluster/failfast/cluster_test.go b/cluster/cluster/failfast/cluster_test.go
index 43d1f3632..40126bcd6 100644
--- a/cluster/cluster/failfast/cluster_test.go
+++ b/cluster/cluster/failfast/cluster_test.go
@@ -29,6 +29,7 @@ import (
 	perrors "github.com/pkg/errors"
 
 	"github.com/stretchr/testify/assert"
+	"github.com/stretchr/testify/require"
 )
 
 import (
@@ -78,7 +79,7 @@ func TestFailfastInvokeSuccess(t *testing.T) {
 	invoker.EXPECT().Invoke(gomock.Any(), gomock.Any()).Return(mockResult).AnyTimes()
 	result := clusterInvoker.Invoke(context.Background(), &invocation.RPCInvocation{})
 
-	assert.NoError(t, result.Error())
+	require.NoError(t, result.Error())
 	res := result.Result().(clusterpkg.Rest)
 	assert.True(t, res.Success)
 	assert.Equal(t, 0, res.Tried)
@@ -99,7 +100,7 @@ func TestFailfastInvokeFail(t *testing.T) {
 	invoker.EXPECT().Invoke(gomock.Any(), gomock.Any()).Return(mockResult).AnyTimes()
 	result := clusterInvoker.Invoke(context.Background(), &invocation.RPCInvocation{})
 
-	assert.NotNil(t, result.Error())
+	require.Error(t, result.Error())
 	assert.Equal(t, "error", result.Error().Error())
 	assert.Nil(t, result.Result())
 }
diff --git a/cluster/cluster/failover/cluster_invoker_test.go b/cluster/cluster/failover/cluster_invoker_test.go
index 35584cdd4..dcca85f72 100644
--- a/cluster/cluster/failover/cluster_invoker_test.go
+++ b/cluster/cluster/failover/cluster_invoker_test.go
@@ -120,7 +120,7 @@ func TestBroadcastInvokeFailedOver(t *testing.T) {
 	result := clusterInvoker.Invoke(context.Background(), &invocation.RPCInvocation{})
 
 	// Assert that the result is the same as the failed result
-	assert.Equal(t, nil, result.Error())
+	assert.NoError(t, result.Error())
 }
 
 func TestBroadcastInvokeFailed(t *testing.T) {
diff --git a/cluster/cluster/failover/cluster_test.go b/cluster/cluster/failover/cluster_test.go
index 6e68746f3..346dfee68 100644
--- a/cluster/cluster/failover/cluster_test.go
+++ b/cluster/cluster/failover/cluster_test.go
@@ -26,6 +26,7 @@ import (
 
 import (
 	"github.com/stretchr/testify/assert"
+	"github.com/stretchr/testify/require"
 )
 
 import (
@@ -103,10 +104,10 @@ func TestFailoverDestroy(t *testing.T) {
 
 	staticDir := static.NewDirectory(invokers)
 	clusterInvoker := failoverCluster.Join(staticDir)
-	assert.Equal(t, true, clusterInvoker.IsAvailable())
+	assert.True(t, clusterInvoker.IsAvailable())
 	result := clusterInvoker.Invoke(context.Background(), &invocation.RPCInvocation{})
-	assert.NoError(t, result.Error())
+	require.NoError(t, result.Error())
 	clusterpkg.Count = 0
 	clusterInvoker.Destroy()
-	assert.Equal(t, false, clusterInvoker.IsAvailable())
+	assert.False(t, clusterInvoker.IsAvailable())
 }
diff --git a/cluster/cluster/failsafe/cluster_test.go b/cluster/cluster/failsafe/cluster_test.go
index 8e7bc6b31..44d224135 100644
--- a/cluster/cluster/failsafe/cluster_test.go
+++ b/cluster/cluster/failsafe/cluster_test.go
@@ -29,6 +29,7 @@ import (
 	perrors "github.com/pkg/errors"
 
 	"github.com/stretchr/testify/assert"
+	"github.com/stretchr/testify/require"
 )
 
 import (
@@ -79,7 +80,7 @@ func TestFailSafeInvokeSuccess(t *testing.T) {
 	invoker.EXPECT().Invoke(gomock.Any(), gomock.Any()).Return(mockResult).AnyTimes()
 	result := clusterInvoker.Invoke(context.Background(), &invocation.RPCInvocation{})
 
-	assert.NoError(t, result.Error())
+	require.NoError(t, result.Error())
 	res := result.Result().(clusterpkg.Rest)
 	assert.True(t, res.Success)
 }
@@ -99,6 +100,6 @@ func TestFailSafeInvokeFail(t *testing.T) {
 	invoker.EXPECT().Invoke(gomock.Any(), gomock.Any()).Return(mockResult).AnyTimes()
 	result := clusterInvoker.Invoke(context.Background(), &invocation.RPCInvocation{})
 
-	assert.NoError(t, result.Error())
+	require.NoError(t, result.Error())
 	assert.Nil(t, result.Result())
 }
diff --git a/cluster/cluster/forking/cluster_test.go b/cluster/cluster/forking/cluster_test.go
index a85a705af..627dad504 100644
--- a/cluster/cluster/forking/cluster_test.go
+++ b/cluster/cluster/forking/cluster_test.go
@@ -30,6 +30,7 @@ import (
 	"github.com/golang/mock/gomock"
 
 	"github.com/stretchr/testify/assert"
+	"github.com/stretchr/testify/require"
 )
 
 import (
@@ -120,7 +121,7 @@ func TestForkingInvokeTimeout(t *testing.T) {
 
 	result := clusterInvoker.Invoke(context.Background(), &invocation.RPCInvocation{})
 	assert.NotNil(t, result)
-	assert.NotNil(t, result.Error())
+	require.Error(t, result.Error())
 	wg.Wait()
 }
 
diff --git a/cluster/cluster/zoneaware/cluster_invoker_test.go b/cluster/cluster/zoneaware/cluster_invoker_test.go
index 4d885e4b5..037f9d3c7 100644
--- a/cluster/cluster/zoneaware/cluster_invoker_test.go
+++ b/cluster/cluster/zoneaware/cluster_invoker_test.go
@@ -27,6 +27,7 @@ import (
 	"github.com/golang/mock/gomock"
 
 	"github.com/stretchr/testify/assert"
+	"github.com/stretchr/testify/require"
 )
 
 import (
@@ -81,7 +82,7 @@ func TestZoneWareInvokerWithPreferredSuccess(t *testing.T) {
 
 	result := clusterInvoker.Invoke(context.Background(), &invocation.RPCInvocation{})
 
-	assert.Equal(t, mockResult, result)
+	assert.NoError(t, result.Error())
 }
 
 func TestZoneWareInvokerWithWeightSuccess(t *testing.T) {
@@ -138,7 +139,7 @@ func TestZoneWareInvokerWithWeightSuccess(t *testing.T) {
 		if w1 == result.Attachment(constant.WeightKey, "0") {
 			w1Count++
 		}
-		assert.NoError(t, result.Error())
+		require.NoError(t, result.Error())
 	}
 	t.Logf("loop count : %d, w1 height : %s | count : %d, w2 height : %s | count : %d", loop,
 		w1, w1Count, w2, w2Count)
@@ -213,5 +214,5 @@ func TestZoneWareInvokerWithZoneForceFail(t *testing.T) {
 
 	result := clusterInvoker.Invoke(context.Background(), inv)
 
-	assert.NotNil(t, result.Error())
+	assert.Error(t, result.Error())
 }
diff --git a/cluster/directory/static/directory_test.go b/cluster/directory/static/directory_test.go
index 9dcf48b6b..8098cf5e3 100644
--- a/cluster/directory/static/directory_test.go
+++ b/cluster/directory/static/directory_test.go
@@ -53,7 +53,7 @@ func TestStaticDirDestroy(t *testing.T) {
 	}
 
 	staticDir := NewDirectory(invokers)
-	assert.Equal(t, true, staticDir.IsAvailable())
+	assert.True(t, staticDir.IsAvailable())
 	staticDir.Destroy()
-	assert.Equal(t, false, staticDir.IsAvailable())
+	assert.False(t, staticDir.IsAvailable())
 }
diff --git a/cluster/loadbalance/consistenthashing/loadbalance_test.go b/cluster/loadbalance/consistenthashing/loadbalance_test.go
index 38c052b70..8104a48d4 100644
--- a/cluster/loadbalance/consistenthashing/loadbalance_test.go
+++ b/cluster/loadbalance/consistenthashing/loadbalance_test.go
@@ -64,7 +64,7 @@ func (s *consistentHashSelectorSuite) SetupTest() {
 
 func (s *consistentHashSelectorSuite) TestToKey() {
 	result := s.selector.toKey([]any{"username", "age"})
-	s.Equal(result, "usernameage")
+	s.Equal("usernameage", result)
 }
 
 func (s *consistentHashSelectorSuite) TestSelectForKey() {
@@ -75,7 +75,7 @@ func (s *consistentHashSelectorSuite) TestSelectForKey() {
 	s.selector.virtualInvokers[9999945] = base.NewBaseInvoker(url2)
 	s.selector.keys = []uint32{99874, 9999945}
 	result := s.selector.selectForKey(9999944)
-	s.Equal(result.GetURL().String(), url8081Short+"?")
+	s.Equal(url8081Short+"?", result.GetURL().String())
 }
 
 func TestConsistentHashLoadBalanceSuite(t *testing.T) {
@@ -97,11 +97,11 @@ type consistentHashLoadBalanceSuite struct {
 func (s *consistentHashLoadBalanceSuite) SetupTest() {
 	var err error
 	s.url1, err = common.NewURL(url8080)
-	s.NoError(err)
+	s.Require().NoError(err)
 	s.url2, err = common.NewURL(url8081)
-	s.NoError(err)
+	s.Require().NoError(err)
 	s.url3, err = common.NewURL(url8082)
-	s.NoError(err)
+	s.Require().NoError(err)
 
 	s.invoker1 = base.NewBaseInvoker(s.url1)
 	s.invoker2 = base.NewBaseInvoker(s.url2)
diff --git a/cluster/loadbalance/random/loadbalance_test.go b/cluster/loadbalance/random/loadbalance_test.go
index 4548758cd..a28a3c9c0 100644
--- a/cluster/loadbalance/random/loadbalance_test.go
+++ b/cluster/loadbalance/random/loadbalance_test.go
@@ -83,7 +83,7 @@ func TestRandomlbSelectWeight(t *testing.T) {
 		}
 		selectedInvoker = append(selectedInvoker, s)
 	}
-	assert.Equal(t, 10000, len(selectedInvoker))
+	assert.Len(t, selectedInvoker, 10000)
 
 	assert.Condition(t, func() bool {
 		// really is 0.9999999999999
@@ -115,7 +115,7 @@ func TestRandomlbSelectWarmup(t *testing.T) {
 		}
 		selectedInvoker = append(selectedInvoker, s)
 	}
-	assert.Equal(t, 10000, len(selectedInvoker))
+	assert.Len(t, selectedInvoker, 10000)
 
 	assert.Condition(t, func() bool {
 		return selected/10000 < 0.1
diff --git a/cluster/loadbalance/roundrobin/loadbalance_test.go b/cluster/loadbalance/roundrobin/loadbalance_test.go
index 89a8a3597..056e67085 100644
--- a/cluster/loadbalance/roundrobin/loadbalance_test.go
+++ b/cluster/loadbalance/roundrobin/loadbalance_test.go
@@ -72,6 +72,6 @@ func TestRoundRobinByWeight(t *testing.T) {
 
 	for _, i := range invokers {
 		w, _ := strconv.Atoi(i.GetURL().GetParam("weight", "-1"))
-		assert.True(t, selected[i] == w)
+		assert.Equal(t, w, selected[i])
 	}
 }
diff --git a/cluster/router/affinity/router_test.go b/cluster/router/affinity/router_test.go
index 0473c765d..41b294b06 100644
--- a/cluster/router/affinity/router_test.go
+++ b/cluster/router/affinity/router_test.go
@@ -223,13 +223,13 @@ affinityAware:
 				// check expect filtrate path
 				ans := tt.invokers_filters.filtrate(tt.args.invokers, tt.args.url, tt.args.invocation)
 				if len(ans) < int(float32(len(providerUrls))*(float32(a.ratio)/100.)) {
-					assert.Equalf(t, 0, len(ans), "route(%v, %v, %v)", tt.args.invokers, tt.args.url, tt.args.invocation)
+					assert.Emptyf(t, ans, "route(%v, %v, %v)", tt.args.invokers, tt.args.url, tt.args.invocation)
 				} else {
 					assert.Equalf(t, ans, res, "route(%v, %v, %v)", tt.args.invokers, tt.args.url, tt.args.invocation)
 				}
 			} else {
 				ans := tt.invokers_filters.filtrate(tt.args.invokers, tt.args.url, tt.args.invocation)
-				assert.Equalf(t, tt.expectLen, len(ans), "route(%v, %v, %v)", tt.args.invokers, tt.args.url, tt.args.invocation)
+				assert.Lenf(t, ans, tt.expectLen, "route(%v, %v, %v)", tt.args.invokers, tt.args.url, tt.args.invocation)
 			}
 		})
 	}
diff --git a/cluster/router/condition/router_test.go b/cluster/router/condition/router_test.go
index 605854c08..7509f591c 100644
--- a/cluster/router/condition/router_test.go
+++ b/cluster/router/condition/router_test.go
@@ -24,6 +24,7 @@ import (
 
 import (
 	"github.com/stretchr/testify/assert"
+	"github.com/stretchr/testify/require"
 )
 
 import (
@@ -126,10 +127,10 @@ func TestRouteMatchWhen(t *testing.T) {
 	for _, data := range testData {
 		t.Run(data.name, func(t *testing.T) {
 			url, err := common.NewURL(conditionAddr)
-			assert.Nil(t, err)
+			require.NoError(t, err)
 			url.AddParam(constant.RuleKey, data.rule)
 			router, err := NewConditionStateRouter(url)
-			assert.Nil(t, err)
+			require.NoError(t, err)
 			resVal := router.matchWhen(data.consumerUrl, rpcInvocation)
 			assert.Equal(t, data.wantVal, resVal)
 		})
@@ -209,12 +210,12 @@ func TestRouteMatchFilter(t *testing.T) {
 	for _, data := range testData {
 		t.Run(data.name, func(t *testing.T) {
 			url, err := common.NewURL(conditionAddr)
-			assert.Nil(t, err)
+			require.NoError(t, err)
 			url.AddParam(constant.RuleKey, data.rule)
 			url.AddParam(constant.ForceKey, "true")
 
 			router, err := NewConditionStateRouter(url)
-			assert.Nil(t, err)
+			require.NoError(t, err)
 
 			filteredInvokers := router.Route(invokerList, data.comsumerURL, rpcInvocation)
 			resVal := len(filteredInvokers)
@@ -260,10 +261,10 @@ func TestRouterMethodRoute(t *testing.T) {
 	for _, data := range testData {
 		t.Run(data.name, func(t *testing.T) {
 			url, err := common.NewURL(conditionAddr)
-			assert.Nil(t, err)
+			require.NoError(t, err)
 			url.AddParam(constant.RuleKey, data.rule)
 			router, err := NewConditionStateRouter(url)
-			assert.Nil(t, err)
+			require.NoError(t, err)
 			consumer, _ := common.NewURL(data.consumerURL)
 			resVal := router.matchWhen(consumer, rpcInvocation)
 			assert.Equal(t, data.wantVal, resVal)
@@ -404,10 +405,10 @@ func TestRouteReturn(t *testing.T) {
 			}
 
 			url, err := common.NewURL(conditionAddr)
-			assert.Nil(t, err)
+			require.NoError(t, err)
 			url.AddParam(constant.RuleKey, data.rule)
 			router, err := NewConditionStateRouter(url)
-			assert.Nil(t, err)
+			require.NoError(t, err)
 
 			filterInvokers := router.Route(invokers, consumerURL, rpcInvocation)
 			resVal := len(filterInvokers)
@@ -470,11 +471,11 @@ func TestRouteArguments(t *testing.T) {
 		t.Run(data.name, func(t *testing.T) {
 
 			url, err := common.NewURL(conditionAddr)
-			assert.Nil(t, err)
+			require.NoError(t, err)
 			url.AddParam(constant.RuleKey, data.rule)
 			url.AddParam(constant.ForceKey, "true")
 			router, err := NewConditionStateRouter(url)
-			assert.Nil(t, err)
+			require.NoError(t, err)
 
 			arguments := make([]any, 0, 1)
 			arguments = append(arguments, data.argument)
@@ -555,11 +556,11 @@ func TestRouteAttachments(t *testing.T) {
 			rpcInvocation.SetAttachment(data.attachmentKey, data.attachmentValue)
 
 			url, err := common.NewURL(conditionAddr)
-			assert.Nil(t, err)
+			require.NoError(t, err)
 			url.AddParam(constant.RuleKey, data.rule)
 			url.AddParam(constant.ForceKey, "true")
 			router, err := NewConditionStateRouter(url)
-			assert.Nil(t, err)
+			require.NoError(t, err)
 
 			filterInvokers := router.Route(invokerList, consumerURL, rpcInvocation)
 
@@ -644,11 +645,11 @@ func TestRouteRangePattern(t *testing.T) {
 			rpcInvocation.SetAttachment(data.attachmentKey, data.attachmentValue)
 
 			url, err := common.NewURL(conditionAddr)
-			assert.Nil(t, err)
+			require.NoError(t, err)
 			url.AddParam(constant.RuleKey, data.rule)
 			url.AddParam(constant.ForceKey, "true")
 			router, err := NewConditionStateRouter(url)
-			assert.Nil(t, err)
+			require.NoError(t, err)
 
 			filterInvokers := router.Route(invokerList, consumerURL, rpcInvocation)
 
@@ -700,14 +701,14 @@ func TestRouteMultipleConditions(t *testing.T) {
 	for _, data := range testData {
 		t.Run(data.name, func(t *testing.T) {
 			consumerUrl, err := common.NewURL(data.consumerURL)
-			assert.Nil(t, err)
+			require.NoError(t, err)
 
 			url, err := common.NewURL(conditionAddr)
-			assert.Nil(t, err)
+			require.NoError(t, err)
 			url.AddParam(constant.RuleKey, data.rule)
 			url.AddParam(constant.ForceKey, "true")
 			router, err := NewConditionStateRouter(url)
-			assert.Nil(t, err)
+			require.NoError(t, err)
 
 			arguments := make([]any, 0, 1)
 			arguments = append(arguments, data.argument)
@@ -759,11 +760,11 @@ conditions:
 
 	rpcInvocation := invocation.NewRPCInvocation("sayHello", nil, nil)
 	invokers := router.Route(invokerList, consumerURL, rpcInvocation)
-	assert.Equal(t, 1, len(invokers))
+	assert.Len(t, invokers, 1)
 
 	rpcInvocation = invocation.NewRPCInvocation("sayHi", nil, nil)
 	invokers = router.Route(invokerList, consumerURL, rpcInvocation)
-	assert.Equal(t, 3, len(invokers))
+	assert.Len(t, invokers, 3)
 }
 
 func TestApplicationRouter(t *testing.T) {
@@ -804,11 +805,11 @@ conditions:
 
 	rpcInvocation := invocation.NewRPCInvocation("sayHello", nil, nil)
 	invokers := router.Route(invokerList, consumerURL, rpcInvocation)
-	assert.Equal(t, 1, len(invokers))
+	assert.Len(t, invokers, 1)
 
 	rpcInvocation = invocation.NewRPCInvocation("sayHi", nil, nil)
 	invokers = router.Route(invokerList, consumerURL, rpcInvocation)
-	assert.Equal(t, 3, len(invokers))
+	assert.Len(t, invokers, 3)
 }
 
 var providerUrls = []string{
@@ -932,7 +933,7 @@ conditions:
 	for _, tt := range tests {
 		t.Run(tt.name, func(t *testing.T) {
 			got, err := parseMultiConditionRoute(tt.args.routeContent)
-			assert.Nil(t, err)
+			require.NoError(t, err)
 			assert.Equalf(t, tt.want, got, "parseMultiConditionRoute(%v)", tt.args.routeContent)
 		})
 	}
@@ -1345,7 +1346,7 @@ conditions:
 					assert.Equalf(t, ans, res, "route(%v, %v, %v)", tt.args.invokers, tt.args.url, tt.args.invocation)
 				} else {
 					// check expect result.length
-					assert.Equalf(t, tt.expResLen, len(res), "route(%v, %v, %v)", tt.args.invokers, tt.args.url, tt.args.invocation)
+					assert.Lenf(t, res, tt.expResLen, "route(%v, %v, %v)", tt.args.invokers, tt.args.url, tt.args.invocation)
 				}
 			} else {
 				// check multiply destination route successfully or not
diff --git a/cluster/router/script/instance/js_instance_test.go b/cluster/router/script/instance/js_instance_test.go
index 2225e2f44..c91d17433 100644
--- a/cluster/router/script/instance/js_instance_test.go
+++ b/cluster/router/script/instance/js_instance_test.go
@@ -31,6 +31,7 @@ import (
 	"github.com/dop251/goja_nodejs/require"
 
 	"github.com/stretchr/testify/assert"
+	testify_require "github.com/stretchr/testify/require"
 )
 
 import (
@@ -467,7 +468,7 @@ function route(invokers, invocation, context) {
 __go_program_get_result = route(invokers,
     invocation, context)
 `)
-	assert.Nil(t, err)
+	testify_require.NoError(t, err)
 }
 
 func TestFuncWithCompile(t *testing.T) {
@@ -483,7 +484,7 @@ func TestFuncWithCompile(t *testing.T) {
 	if err != nil {
 		panic(err)
 	}
-	assert.Equal(t, 2, len(res.Export().([]any)))
+	assert.Len(t, res.Export().([]any), 2)
 	assert.Equal(t, localIp, (*(res.Export().([]any)[0]).(*base.BaseInvoker)).GetURL().Ip)
 }
 
@@ -505,7 +506,7 @@ func TestFuncWithCompileConcurrent(t *testing.T) {
 			if err != nil {
 				panic(err)
 			}
-			assert.Equal(t, 2, len(res.Export().([]any)))
+			assert.Len(t, res.Export().([]any), 2)
 			assert.Equal(t, localIp, (*(res.Export().([]any)[0]).(*base.BaseInvoker)).GetURL().Ip)
 		}()
 	}
@@ -542,7 +543,7 @@ function route(invokers,invocation,context) {
 		if err != nil {
 			panic(err)
 		}
-		assert.Equal(t, 2, len(res.Export().([]any)))
+		assert.Len(t, res.Export().([]any), 2)
 		assert.Equal(t, localIp, (*(res.Export().([]any)[0]).(*base.BaseInvoker)).GetURL().Ip)
 		assert.Equal(t, "20004", (*(res.Export().([]any)[0]).(*base.BaseInvoker)).GetURL().Port)
 	}
@@ -582,7 +583,7 @@ func TestRunScriptInPanic(t *testing.T) {
 	willPanic := func(errScript string) {
 		rt := setRunScriptEnv()
 		pg, err := goja.Compile(``, errScript, true)
-		assert.Nil(t, err)
+		testify_require.NoError(t, err)
 		res, err := func() (res any, err error) {
 			defer func(err *error) {
 				panicReason := recover()
@@ -602,15 +603,15 @@ func TestRunScriptInPanic(t *testing.T) {
 			assert.Equal(t, reflect.ValueOf([]any{}), reflect.ValueOf(testData))
 			return
 		}()
-		assert.NotNil(t, err)
+		testify_require.Error(t, err)
 		assert.Nil(t, res)
 	}
 	wontPanic := func(errScript string) {
 		rt := setRunScriptEnv()
 		pg, err := goja.Compile(``, errScript, true)
-		assert.Nil(t, err)
+		testify_require.NoError(t, err)
 		res, err := rt.RunProgram(pg)
-		assert.Nil(t, err)
+		testify_require.NoError(t, err)
 		assert.NotNil(t, res)
 		data := res.Export()
 		assert.NotNil(t, data)
diff --git a/cluster/router/tag/router_test.go b/cluster/router/tag/router_test.go
index 71316f45f..92538ea7e 100644
--- a/cluster/router/tag/router_test.go
+++ b/cluster/router/tag/router_test.go
@@ -24,6 +24,7 @@ import (
 
 import (
 	"github.com/stretchr/testify/assert"
+	"github.com/stretchr/testify/require"
 )
 
 import (
@@ -60,7 +61,7 @@ func TestRouter(t *testing.T) {
 	falsePointer := &falseValue
 	t.Run("staticEmptyTag", func(t *testing.T) {
 		p, err := NewTagPriorityRouter()
-		assert.Nil(t, err)
+		require.NoError(t, err)
 		ivk := base.NewBaseInvoker(url1)
 		ivk1 := base.NewBaseInvoker(url2)
 		ivk2 := base.NewBaseInvoker(url3)
@@ -69,11 +70,11 @@ func TestRouter(t *testing.T) {
 		invokerList = append(invokerList, ivk1)
 		invokerList = append(invokerList, ivk2)
 		result := p.Route(invokerList, consumerUrl, invocation.NewRPCInvocation("GetUser", nil, nil))
-		assert.True(t, len(result) == 3)
+		assert.Len(t, result, 3)
 	})
 	t.Run("staticEmptyTag_requestHasTag", func(t *testing.T) {
 		p, err := NewTagPriorityRouter()
-		assert.Nil(t, err)
+		require.NoError(t, err)
 		ivk := base.NewBaseInvoker(url1)
 		ivk1 := base.NewBaseInvoker(url2)
 		ivk2 := base.NewBaseInvoker(url3)
@@ -83,11 +84,11 @@ func TestRouter(t *testing.T) {
 		invokerList = append(invokerList, ivk2)
 		attachments := map[string]any{constant.Tagkey: "tag"}
 		result := p.Route(invokerList, consumerUrl, invocation.NewRPCInvocation("GetUser", nil, attachments))
-		assert.True(t, len(result) == 3)
+		assert.Len(t, result, 3)
 	})
 	t.Run("staticEmptyTag_requestHasTag_force", func(t *testing.T) {
 		p, err := NewTagPriorityRouter()
-		assert.Nil(t, err)
+		require.NoError(t, err)
 		ivk := base.NewBaseInvoker(url1)
 		ivk1 := base.NewBaseInvoker(url2)
 		ivk2 := base.NewBaseInvoker(url3)
@@ -97,11 +98,11 @@ func TestRouter(t *testing.T) {
 		invokerList = append(invokerList, ivk2)
 		attachments := map[string]any{constant.Tagkey: "tag", constant.ForceUseTag: "true"}
 		result := p.Route(invokerList, consumerUrl, invocation.NewRPCInvocation("GetUser", nil, attachments))
-		assert.True(t, len(result) == 0)
+		assert.Empty(t, result)
 	})
 	t.Run("staticTag_requestHasTag", func(t *testing.T) {
 		p, err := NewTagPriorityRouter()
-		assert.Nil(t, err)
+		require.NoError(t, err)
 		ivk := base.NewBaseInvoker(url1)
 		ivk1 := base.NewBaseInvoker(url2)
 		ivk2 := base.NewBaseInvoker(url3)
@@ -112,12 +113,12 @@ func TestRouter(t *testing.T) {
 		invokerList = append(invokerList, ivk2)
 		attachments := map[string]any{constant.Tagkey: "tag"}
 		result := p.Route(invokerList, consumerUrl, invocation.NewRPCInvocation("GetUser", nil, attachments))
-		assert.True(t, len(result) == 1)
-		assert.True(t, result[0].GetURL().GetParam(constant.Tagkey, "") == "tag")
+		assert.Len(t, result, 1)
+		assert.Equal(t, "tag", result[0].GetURL().GetParam(constant.Tagkey, ""))
 	})
 	t.Run("staticTag", func(t *testing.T) {
 		p, err := NewTagPriorityRouter()
-		assert.Nil(t, err)
+		require.NoError(t, err)
 		ivk := base.NewBaseInvoker(url1)
 		ivk1 := base.NewBaseInvoker(url2)
 		ivk2 := base.NewBaseInvoker(url3)
@@ -127,13 +128,13 @@ func TestRouter(t *testing.T) {
 		invokerList = append(invokerList, ivk1)
 		invokerList = append(invokerList, ivk2)
 		result := p.Route(invokerList, consumerUrl, invocation.NewRPCInvocation("GetUser", nil, nil))
-		assert.True(t, len(result) == 2)
+		assert.Len(t, result, 2)
 	})
 
 	initUrl()
 	t.Run("dynamicEmptyTag_requestEmptyTag", func(t *testing.T) {
 		p, err := NewTagPriorityRouter()
-		assert.Nil(t, err)
+		require.NoError(t, err)
 		p.routerConfigs.Store(consumerUrl.Service()+constant.TagRouterRuleSuffix, global.RouterConfig{
 			Key:     consumerUrl.Service() + constant.TagRouterRuleSuffix,
 			Force:   falsePointer,
@@ -148,12 +149,12 @@ func TestRouter(t *testing.T) {
 		invokerList = append(invokerList, ivk1)
 		invokerList = append(invokerList, ivk2)
 		result := p.Route(invokerList, consumerUrl, invocation.NewRPCInvocation("GetUser", nil, nil))
-		assert.True(t, len(result) == 3)
+		assert.Len(t, result, 3)
 	})
 
 	t.Run("dynamicEmptyTag_requestHasTag", func(t *testing.T) {
 		p, err := NewTagPriorityRouter()
-		assert.Nil(t, err)
+		require.NoError(t, err)
 		p.routerConfigs.Store(consumerUrl.Service()+constant.TagRouterRuleSuffix, global.RouterConfig{
 			Key:     consumerUrl.Service() + constant.TagRouterRuleSuffix,
 			Force:   falsePointer,
@@ -169,12 +170,12 @@ func TestRouter(t *testing.T) {
 		invokerList = append(invokerList, ivk2)
 		attachments := map[string]any{constant.Tagkey: "tag"}
 		result := p.Route(invokerList, consumerUrl, invocation.NewRPCInvocation("GetUser", nil, attachments))
-		assert.True(t, len(result) == 3)
+		assert.Len(t, result, 3)
 	})
 
 	t.Run("dynamicTag_requestEmptyTag", func(t *testing.T) {
 		p, err := NewTagPriorityRouter()
-		assert.Nil(t, err)
+		require.NoError(t, err)
 		p.routerConfigs.Store(strings.Join([]string{consumerUrl.GetParam(constant.ApplicationKey, ""), constant.TagRouterRuleSuffix}, ""), global.RouterConfig{
 			Key:     consumerUrl.Service() + constant.TagRouterRuleSuffix,
 			Force:   falsePointer,
@@ -193,12 +194,12 @@ func TestRouter(t *testing.T) {
 		invokerList = append(invokerList, ivk1)
 		invokerList = append(invokerList, ivk2)
 		result := p.Route(invokerList, consumerUrl, invocation.NewRPCInvocation("GetUser", nil, nil))
-		assert.True(t, len(result) == 2)
+		assert.Len(t, result, 2)
 	})
 
 	t.Run("dynamicTag_emptyAddress_requestHasTag", func(t *testing.T) {
 		p, err := NewTagPriorityRouter()
-		assert.Nil(t, err)
+		require.NoError(t, err)
 		p.routerConfigs.Store(consumerUrl.Service()+constant.TagRouterRuleSuffix, global.RouterConfig{
 			Key:     consumerUrl.Service() + constant.TagRouterRuleSuffix,
 			Force:   falsePointer,
@@ -217,12 +218,12 @@ func TestRouter(t *testing.T) {
 		invokerList = append(invokerList, ivk2)
 		attachments := map[string]any{constant.Tagkey: "tag"}
 		result := p.Route(invokerList, consumerUrl, invocation.NewRPCInvocation("GetUser", nil, attachments))
-		assert.True(t, len(result) == 3)
+		assert.Len(t, result, 3)
 	})
 
 	t.Run("dynamicTag_address_requestHasTag", func(t *testing.T) {
 		p, err := NewTagPriorityRouter()
-		assert.Nil(t, err)
+		require.NoError(t, err)
 		p.routerConfigs.Store(strings.Join([]string{consumerUrl.GetParam(constant.ApplicationKey, ""), constant.TagRouterRuleSuffix}, ""), global.RouterConfig{
 			Key:     consumerUrl.Service() + constant.TagRouterRuleSuffix,
 			Force:   falsePointer,
@@ -242,12 +243,12 @@ func TestRouter(t *testing.T) {
 		invokerList = append(invokerList, ivk2)
 		attachments := map[string]any{constant.Tagkey: "tag"}
 		result := p.Route(invokerList, consumerUrl, invocation.NewRPCInvocation("GetUser", nil, attachments))
-		assert.True(t, len(result) == 1)
+		assert.Len(t, result, 1)
 	})
 
 	t.Run("dynamicTag_twoAddress_requestHasTag", func(t *testing.T) {
 		p, err := NewTagPriorityRouter()
-		assert.Nil(t, err)
+		require.NoError(t, err)
 		p.routerConfigs.Store(strings.Join([]string{consumerUrl.GetParam(constant.ApplicationKey, ""), constant.TagRouterRuleSuffix}, ""), global.RouterConfig{
 			Key:     consumerUrl.Service() + constant.TagRouterRuleSuffix,
 			Force:   falsePointer,
@@ -267,12 +268,12 @@ func TestRouter(t *testing.T) {
 		invokerList = append(invokerList, ivk2)
 		attachments := map[string]any{constant.Tagkey: "tag"}
 		result := p.Route(invokerList, url3, invocation.NewRPCInvocation("GetUser", nil, attachments))
-		assert.True(t, len(result) == 2)
+		assert.Len(t, result, 2)
 	})
 
 	t.Run("dynamicTag_addressNotMatch_requestHasTag", func(t *testing.T) {
 		p, err := NewTagPriorityRouter()
-		assert.Nil(t, err)
+		require.NoError(t, err)
 		p.routerConfigs.Store(consumerUrl.Service()+constant.TagRouterRuleSuffix, global.RouterConfig{
 			Key:     consumerUrl.Service() + constant.TagRouterRuleSuffix,
 			Force:   falsePointer,
@@ -292,12 +293,12 @@ func TestRouter(t *testing.T) {
 		invokerList = append(invokerList, ivk2)
 		attachments := map[string]any{constant.Tagkey: "tag"}
 		result := p.Route(invokerList, consumerUrl, invocation.NewRPCInvocation("GetUser", nil, attachments))
-		assert.True(t, len(result) == 3)
+		assert.Len(t, result, 3)
 	})
 
 	t.Run("dynamicTag_notValid", func(t *testing.T) {
 		p, err := NewTagPriorityRouter()
-		assert.Nil(t, err)
+		require.NoError(t, err)
 		p.routerConfigs.Store(consumerUrl.Service()+constant.TagRouterRuleSuffix, global.RouterConfig{
 			Key:     consumerUrl.Service() + constant.TagRouterRuleSuffix,
 			Force:   falsePointer,
@@ -317,12 +318,12 @@ func TestRouter(t *testing.T) {
 		invokerList = append(invokerList, ivk2)
 		attachments := map[string]any{constant.Tagkey: "tag"}
 		result := p.Route(invokerList, url3, invocation.NewRPCInvocation("GetUser", nil, attachments))
-		assert.True(t, len(result) == 3)
+		assert.Len(t, result, 3)
 	})
 
 	t.Run("dynamicConfigIsNull", func(t *testing.T) {
 		p, err := NewTagPriorityRouter()
-		assert.Nil(t, err)
+		require.NoError(t, err)
 		ivk := base.NewBaseInvoker(url1)
 		ivk1 := base.NewBaseInvoker(url2)
 		ivk2 := base.NewBaseInvoker(url3)
@@ -331,14 +332,14 @@ func TestRouter(t *testing.T) {
 		invokerList = append(invokerList, ivk1)
 		invokerList = append(invokerList, ivk2)
 		result := p.Route(invokerList, url3, invocation.NewRPCInvocation("GetUser", nil, nil))
-		assert.True(t, len(result) == 3)
+		assert.Len(t, result, 3)
 	})
 }
 
 func TestNotify(t *testing.T) {
 	t.Run("normal", func(t *testing.T) {
 		p, err := NewTagPriorityRouter()
-		assert.Nil(t, err)
+		require.NoError(t, err)
 		initUrl()
 		ivk := base.NewBaseInvoker(url1)
 		ivk1 := base.NewBaseInvoker(url2)
@@ -368,14 +369,14 @@ tags:
 		value, ok := p.routerConfigs.Load(url1.GetParam(constant.ApplicationKey, "") + constant.TagRouterRuleSuffix)
 		assert.True(t, ok)
 		routerCfg := value.(global.RouterConfig)
-		assert.True(t, routerCfg.Key == "org.apache.dubbo.UserProvider.Test")
-		assert.True(t, len(routerCfg.Tags) == 2)
+		assert.Equal(t, "org.apache.dubbo.UserProvider.Test", routerCfg.Key)
+		assert.Len(t, routerCfg.Tags, 2)
 		assert.True(t, *routerCfg.Enabled)
 	})
 
 	t.Run("configNotValid", func(t *testing.T) {
 		p, err := NewTagPriorityRouter()
-		assert.Nil(t, err)
+		require.NoError(t, err)
 		initUrl()
 		ivk := base.NewBaseInvoker(url1)
 		ivk1 := base.NewBaseInvoker(url2)
@@ -394,7 +395,7 @@ tags:
 		common_cfg.GetEnvInstance().SetDynamicConfiguration(dc)
 		p.Notify(invokerList)
 		value, ok := p.routerConfigs.Load(url1.GetParam(constant.ApplicationKey, "") + constant.TagRouterRuleSuffix)
-		assert.True(t, ok == false)
-		assert.True(t, value == nil)
+		assert.False(t, ok)
+		assert.Nil(t, value)
 	})
 }
diff --git a/common/config/environment_test.go b/common/config/environment_test.go
index c2d9b77c4..cf6f4fd0e 100644
--- a/common/config/environment_test.go
+++ b/common/config/environment_test.go
@@ -43,7 +43,7 @@ func TestEnvironmentUpdateExternalConfigMap(t *testing.T) {
 	assert.Equal(t, "b", v)
 	v, ok = GetEnvInstance().externalConfigMap.Load("1")
 	assert.False(t, ok)
-	assert.Equal(t, nil, v)
+	assert.Nil(t, v)
 }
 
 func TestEnvironmentUpdateAppExternalConfigMap(t *testing.T) {
@@ -58,7 +58,7 @@ func TestEnvironmentUpdateAppExternalConfigMap(t *testing.T) {
 	assert.Equal(t, "b", v)
 	v, ok = GetEnvInstance().appExternalConfigMap.Load("1")
 	assert.False(t, ok)
-	assert.Equal(t, nil, v)
+	assert.Nil(t, v)
 }
 
 func TestEnvironmentConfigurationAndGetProperty(t *testing.T) {
@@ -104,7 +104,7 @@ func TestInmemoryConfigurationGetPropertyNilStore(t *testing.T) {
 
 	ok, v := conf.GetProperty("key")
 	assert.False(t, ok)
-	assert.Equal(t, "", v)
+	assert.Empty(t, v)
 }
 
 func TestInmemoryConfigurationGetSubPropertyNilStore(t *testing.T) {
@@ -137,5 +137,5 @@ func TestInmemoryConfigurationGetSubPropertyNoMatch(t *testing.T) {
 
 	result := conf.GetSubProperty("dubbo.")
 	assert.NotNil(t, result)
-	assert.Equal(t, 0, len(result))
+	assert.Empty(t, result)
 }
diff --git a/common/config/utils_test.go b/common/config/utils_test.go
index 13f9e203f..ca287e1d1 100644
--- a/common/config/utils_test.go
+++ b/common/config/utils_test.go
@@ -23,6 +23,7 @@ import (
 
 import (
 	"github.com/stretchr/testify/assert"
+	"github.com/stretchr/testify/require"
 )
 
 import (
@@ -83,17 +84,17 @@ func TestVerify(t *testing.T) {
 	// Valid struct
 	valid := &testStruct{Name: "test", Age: 10}
 	err := Verify(valid)
-	assert.NoError(t, err)
+	require.NoError(t, err)
 
 	// Invalid struct - missing required field
 	invalid := &testStruct{Name: "", Age: 10}
 	err = Verify(invalid)
-	assert.Error(t, err)
+	require.Error(t, err)
 
 	// Invalid struct - negative age
 	invalid2 := &testStruct{Name: "test", Age: -1}
 	err = Verify(invalid2)
-	assert.Error(t, err)
+	require.Error(t, err)
 }
 
 func TestMergeValue(t *testing.T) {
diff --git a/common/host_util_test.go b/common/host_util_test.go
index 36db23db2..5177c3fd4 100644
--- a/common/host_util_test.go
+++ b/common/host_util_test.go
@@ -71,16 +71,16 @@ func TestHandleRegisterIPAndPortWithEnvInvalidPort(t *testing.T) {
 }
 
 func TestIsValidPort(t *testing.T) {
-	assert.Equal(t, false, isValidPort(""))
-	assert.Equal(t, false, isValidPort("abc"))
-	assert.Equal(t, false, isValidPort("0"))
-	assert.Equal(t, false, isValidPort("65536"))
-	assert.Equal(t, true, isValidPort("20000"))
+	assert.False(t, isValidPort(""))
+	assert.False(t, isValidPort("abc"))
+	assert.False(t, isValidPort("0"))
+	assert.False(t, isValidPort("65536"))
+	assert.True(t, isValidPort("20000"))
 }
 
 func TestGetRandomPort(t *testing.T) {
 	port := GetRandomPort("")
-	assert.True(t, port != "")
+	assert.NotEmpty(t, port)
 }
 
 func TestIsMatchGlobPattern(t *testing.T) {
diff --git a/common/rpc_service_test.go b/common/rpc_service_test.go
index 5b1c21e8e..222142582 100644
--- a/common/rpc_service_test.go
+++ b/common/rpc_service_test.go
@@ -25,6 +25,7 @@ import (
 
 import (
 	"github.com/stretchr/testify/assert"
+	"github.com/stretchr/testify/require"
 )
 
 import (
@@ -95,22 +96,22 @@ func TestServiceMapRegister(t *testing.T) {
 	s0 := &testService{}
 	// methods, err := ServiceMap.Register("testporotocol", s0)
 	_, err := ServiceMap.Register(testInterfaceName, "testporotocol", "", "v0", s0)
-	assert.EqualError(t, err, "type testService is not exported")
+	require.EqualError(t, err, "type testService is not exported")
 
 	// succ
 	s := &TestService{}
 	methods, err := ServiceMap.Register(testInterfaceName, "testporotocol", "", "v1", s)
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	assert.Equal(t, "MethodOne,methodOne,MethodThree,methodThree,methodTwo,MethodTwo", methods)
 
 	// repeat
 	_, err = ServiceMap.Register(testInterfaceName, "testporotocol", "", "v1", s)
-	assert.EqualError(t, err, "service already defined: testService:v1")
+	require.EqualError(t, err, "service already defined: testService:v1")
 
 	// no method
 	s1 := &TestService1{}
 	_, err = ServiceMap.Register(testInterfaceName, "testporotocol", "", "v2", s1)
-	assert.EqualError(t, err, "type testService:v2 has no exported methods of suitable type")
+	require.EqualError(t, err, "type testService:v2 has no exported methods of suitable type")
 
 	ServiceMap = &serviceMap{
 		serviceMap:   make(map[string]map[string]*Service),
@@ -121,22 +122,22 @@ func TestServiceMapRegister(t *testing.T) {
 func TestServiceMapUnRegister(t *testing.T) {
 	s := &TestService{}
 	_, err := ServiceMap.Register("TestService", testProtocol, "", "v1", s)
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	assert.NotNil(t, ServiceMap.GetService(testProtocol, "TestService", "", "v1"))
-	assert.Equal(t, 1, len(ServiceMap.GetInterface("TestService")))
+	assert.Len(t, ServiceMap.GetInterface("TestService"), 1)
 
 	err = ServiceMap.UnRegister("", "", ServiceKey("TestService", "", "v1"))
-	assert.EqualError(t, err, "protocol or ServiceKey is nil")
+	require.EqualError(t, err, "protocol or ServiceKey is nil")
 
 	err = ServiceMap.UnRegister("", "protocol", ServiceKey("TestService", "", "v1"))
-	assert.EqualError(t, err, "no services for protocol")
+	require.EqualError(t, err, "no services for protocol")
 
 	err = ServiceMap.UnRegister("", testProtocol, ServiceKey("TestService", "", "v0"))
-	assert.EqualError(t, err, "no service for TestService:v0")
+	require.EqualError(t, err, "no service for TestService:v0")
 
 	// success
 	err = ServiceMap.UnRegister("TestService", testProtocol, ServiceKey("TestService", "", "v1"))
-	assert.NoError(t, err)
+	require.NoError(t, err)
 }
 
 func TestMethodTypeSuiteContext(t *testing.T) {
@@ -182,7 +183,7 @@ func TestSuiteMethod(t *testing.T) {
 	method = methodType.Method()
 	assert.Equal(t, "func(*common.TestService) error", method.Type.String())
 	at = methodType.ArgsType()
-	assert.Equal(t, 0, len(at))
+	assert.Empty(t, at)
 	assert.Nil(t, methodType.CtxType())
 	rt = methodType.ReplyType()
 	assert.Nil(t, rt)
@@ -257,7 +258,7 @@ func TestGetReference(t *testing.T) {
 func TestServiceMethods(t *testing.T) {
 	s := &TestService{}
 	_, err := ServiceMap.Register("TestServiceMethods", testProtocol, "group1", "v1", s)
-	assert.NoError(t, err)
+	require.NoError(t, err)
 
 	service := ServiceMap.GetService(testProtocol, "TestServiceMethods", "group1", "v1")
 	assert.NotNil(t, service)
@@ -265,7 +266,7 @@ func TestServiceMethods(t *testing.T) {
 	// Test Service.Method()
 	methods := service.Method()
 	assert.NotNil(t, methods)
-	assert.True(t, len(methods) > 0)
+	assert.NotEmpty(t, methods)
 
 	// Test Service.Name()
 	assert.Equal(t, "group1/TestServiceMethods:v1", service.Name())
@@ -286,7 +287,7 @@ func TestServiceMethods(t *testing.T) {
 func TestGetServiceByServiceKey(t *testing.T) {
 	s := &TestService{}
 	_, err := ServiceMap.Register("TestGetServiceByKey", testProtocol, "", "v1", s)
-	assert.NoError(t, err)
+	require.NoError(t, err)
 
 	// Test GetServiceByServiceKey - found
 	serviceKey := ServiceKey("TestGetServiceByKey", "", "v1")
@@ -308,12 +309,12 @@ func TestGetServiceByServiceKey(t *testing.T) {
 func TestGetInterface(t *testing.T) {
 	s := &TestService{}
 	_, err := ServiceMap.Register("TestGetInterface", testProtocol, "", "v1", s)
-	assert.NoError(t, err)
+	require.NoError(t, err)
 
 	// Test GetInterface - found
 	services := ServiceMap.GetInterface("TestGetInterface")
 	assert.NotNil(t, services)
-	assert.Equal(t, 1, len(services))
+	assert.Len(t, services, 1)
 
 	// Test GetInterface - not found
 	services = ServiceMap.GetInterface("nonexistent")
@@ -441,14 +442,14 @@ func TestRegisterWithEmptyServiceName(t *testing.T) {
 	// Using a non-struct type
 	var fn func()
 	_, err := ServiceMap.Register("test", "proto", "", "v1", fn)
-	assert.Error(t, err)
+	require.Error(t, err)
 	assert.Contains(t, err.Error(), "no service name")
 }
 
 func TestUnRegisterInterfaceNotFound(t *testing.T) {
 	s := &TestService{}
 	_, err := ServiceMap.Register("TestUnRegisterInterface", testProtocol, "", "v1", s)
-	assert.NoError(t, err)
+	require.NoError(t, err)
 
 	// Manually remove from interfaceMap to simulate inconsistent state
 	ServiceMap.mutex.Lock()
@@ -456,7 +457,7 @@ func TestUnRegisterInterfaceNotFound(t *testing.T) {
 	ServiceMap.mutex.Unlock()
 
 	err = ServiceMap.UnRegister("TestUnRegisterInterface", testProtocol, ServiceKey("TestUnRegisterInterface", "", "v1"))
-	assert.Error(t, err)
+	require.Error(t, err)
 	assert.Contains(t, err.Error(), "no service for TestUnRegisterInterface")
 
 	// Cleanup
@@ -493,7 +494,7 @@ func TestSuiteMethodWithUnexportedMethod(t *testing.T) {
 	assert.True(t, ok)
 
 	// Method should be exported (PkgPath is empty for exported methods)
-	assert.Equal(t, "", method.PkgPath)
+	assert.Empty(t, method.PkgPath)
 
 	mt := suiteMethod(method)
 	assert.NotNil(t, mt)
@@ -516,7 +517,7 @@ func TestServiceInfoStruct(t *testing.T) {
 
 	assert.Equal(t, "com.test.Service", info.InterfaceName)
 	assert.NotNil(t, info.ServiceType)
-	assert.Equal(t, 1, len(info.Methods))
+	assert.Len(t, info.Methods, 1)
 	assert.Equal(t, "TestMethod", info.Methods[0].Name)
 	assert.Equal(t, "unary", info.Methods[0].Type)
 	assert.Equal(t, "value", info.Methods[0].Meta["key"])
@@ -562,14 +563,14 @@ func TestRegisterMultipleServicesForSameInterface(t *testing.T) {
 	s2 := &TestService{}
 
 	_, err := ServiceMap.Register("MultiService", testProtocol, "group1", "v1", s1)
-	assert.NoError(t, err)
+	require.NoError(t, err)
 
 	_, err = ServiceMap.Register("MultiService", testProtocol, "group2", "v1", s2)
-	assert.NoError(t, err)
+	require.NoError(t, err)
 
 	// Should have 2 services for the same interface
 	services := ServiceMap.GetInterface("MultiService")
-	assert.Equal(t, 2, len(services))
+	assert.Len(t, services, 2)
 
 	// Cleanup
 	ServiceMap.UnRegister("MultiService", testProtocol, ServiceKey("MultiService", "group1", "v1"))
@@ -581,7 +582,7 @@ func TestUnRegisterLastServiceInProtocol(t *testing.T) {
 	protocol := "uniqueProtocol"
 
 	_, err := ServiceMap.Register("TestLastService", protocol, "", "v1", s)
-	assert.NoError(t, err)
+	require.NoError(t, err)
 
 	// Verify protocol exists
 	ServiceMap.mutex.RLock()
@@ -591,7 +592,7 @@ func TestUnRegisterLastServiceInProtocol(t *testing.T) {
 
 	// Unregister the only service
 	err = ServiceMap.UnRegister("TestLastService", protocol, ServiceKey("TestLastService", "", "v1"))
-	assert.NoError(t, err)
+	require.NoError(t, err)
 
 	// Protocol should be removed from serviceMap
 	ServiceMap.mutex.RLock()
diff --git a/common/url_test.go b/common/url_test.go
index a2c082a29..887ced1a3 100644
--- a/common/url_test.go
+++ b/common/url_test.go
@@ -41,6 +41,7 @@ import (
 	gxset "github.com/dubbogo/gost/container/set"
 
 	"github.com/stretchr/testify/assert"
+	"github.com/stretchr/testify/require"
 )
 
 import (
@@ -89,8 +90,8 @@ func TestNewURLWithOptions(t *testing.T) {
 	assert.Equal(t, loopbackAddress, u.Ip)
 	assert.Equal(t, "8080", u.Port)
 	assert.Equal(t, methods, u.Methods)
-	assert.Equal(t, 2, len(u.params))
-	assert.Equal(t, 2, len(u.attributes))
+	assert.Len(t, u.params, 2)
+	assert.Len(t, u.attributes, 2)
 }
 
 func TestURL(t *testing.T) {
@@ -99,7 +100,7 @@ func TestURL(t *testing.T) {
 		"environment=dev&interface=com.ikurento.user.UserProvider&ip=192.0.2.56&methods=GetUser%2C&" +
 		"module=dubbogo+user-info+server&org=ikurento.com&owner=ZX&pid=1447&revision=0.0.1&" +
 		"side=provider&timeout=3000&timestamp=1556509797245")
-	assert.NoError(t, err)
+	require.NoError(t, err)
 
 	urlInst := URL{}
 	urlInst.noCopy.Lock()
@@ -112,8 +113,8 @@ func TestURL(t *testing.T) {
 	assert.Equal(t, loopbackAddress, u.Ip)
 	assert.Equal(t, "20000", u.Port)
 	assert.Equal(t, urlInst.Methods, u.Methods)
-	assert.Equal(t, "", u.Username)
-	assert.Equal(t, "", u.Password)
+	assert.Empty(t, u.Username)
+	assert.Empty(t, u.Password)
 	assert.Equal(t, "anyhost=true&application=BDTService&category=providers&default.timeout=10000&dubbo=dubbo-"+
 		"provider-golang-1.0.0&environment=dev&interface=com.ikurento.user.UserProvider&ip=192.0.2.56&methods=GetUser%"+
 		"2C&module=dubbogo+user-info+server&org=ikurento.com&owner=ZX&pid=1447&revision=0.0.1&side=provider&timeout=3000&t"+
@@ -131,7 +132,7 @@ func TestURLWithoutSchema(t *testing.T) {
 		"environment=dev&interface=com.ikurento.user.UserProvider&ip=192.0.2.56&methods=GetUser%2C&"+
 		"module=dubbogo+user-info+server&org=ikurento.com&owner=ZX&pid=1447&revision=0.0.1&"+
 		"side=provider&timeout=3000&timestamp=1556509797245", WithProtocol("dubbo"))
-	assert.NoError(t, err)
+	require.NoError(t, err)
 
 	assert.Equal(t, "/com.ikurento.user.UserProvider", u.Path)
 	assert.Equal(t, "127.0.0.1:20000", u.Location)
@@ -139,8 +140,8 @@ func TestURLWithoutSchema(t *testing.T) {
 	assert.Equal(t, loopbackAddress, u.Ip)
 	assert.Equal(t, "20000", u.Port)
 	assert.Equal(t, URL{}.Methods, u.Methods)
-	assert.Equal(t, "", u.Username)
-	assert.Equal(t, "", u.Password)
+	assert.Empty(t, u.Username)
+	assert.Empty(t, u.Password)
 	assert.Equal(t, "anyhost=true&application=BDTService&category=providers&default.timeout=10000&dubbo=dubbo-"+
 		"provider-golang-1.0.0&environment=dev&interface=com.ikurento.user.UserProvider&ip=192.0.2.56&methods=GetUser%"+
 		"2C&module=dubbogo+user-info+server&org=ikurento.com&owner=ZX&pid=1447&revision=0.0.1&side=provider&timeout=3000&t"+
@@ -154,40 +155,40 @@ func TestURLWithoutSchema(t *testing.T) {
 
 func TestURLEqual(t *testing.T) {
 	u1, err := NewURL("dubbo://127.0.0.1:20000/com.ikurento.user.UserProvider?interface=com.ikurento.user.UserProvider&group=&version=2.6.0")
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	u2, err := NewURL("dubbo://127.0.0.2:20001/com.ikurento.user.UserProvider?interface=com.ikurento.user.UserProvider&group=&version=2.6.0")
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	assert.True(t, u1.URLEqual(u2))
 
 	u3, err := NewURL("dubbo://127.0.0.1:20000/com.ikurento.user.UserProvider?interface=com.ikurento.user.UserProvider&group=gg&version=2.6.0")
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	assert.False(t, u1.URLEqual(u3))
 
 	// urlGroupAnyValue's group is *
 	urlGroupAnyValue, err := NewURL("dubbo://127.0.0.1:20000/com.ikurento.user.UserProvider?interface=com.ikurento.user.UserProvider&group=*&version=2.6.0")
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	assert.True(t, u3.URLEqual(urlGroupAnyValue))
 
 	// test for enabled
 	urlEnabledEmpty, err := NewURL("dubbo://127.0.0.1:20000/com.ikurento.user.UserProvider?interface=com.ikurento.user.UserProvider&group=*&version=2.6.0&enabled=")
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	assert.True(t, u3.URLEqual(urlEnabledEmpty))
 
 	urlEnabledFalse, err := NewURL("dubbo://127.0.0.1:20000/com.ikurento.user.UserProvider?interface=com.ikurento.user.UserProvider&group=*&version=2.6.0&enabled=1")
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	assert.False(t, u3.URLEqual(urlEnabledFalse))
 
 	urlEnabledTrue, err := NewURL("dubbo://127.0.0.1:20000/com.ikurento.user.UserProvider?interface=com.ikurento.user.UserProvider&group=*&version=2.6.0&enabled=true")
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	assert.True(t, u3.URLEqual(urlEnabledTrue))
 
 	urlEnabledAny, err := NewURL("dubbo://127.0.0.1:20000/com.ikurento.user.UserProvider?interface=com.ikurento.user.UserProvider&group=*&version=2.6.0&enabled=*")
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	assert.True(t, u3.URLEqual(urlEnabledAny))
 
 	// test for category
 	categoryAny, err := NewURL("dubbo://127.0.0.1:20000/com.ikurento.user.UserProvider?interface=com.ikurento.user.UserProvider&group=*&version=2.6.0&enabled=*&category=*")
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	assert.True(t, categoryAny.URLEqual(u3))
 }
 
@@ -244,11 +245,11 @@ func TestURLGetParamBool(t *testing.T) {
 	u.SetParams(params)
 
 	v := u.GetParamBool("force", false)
-	assert.Equal(t, true, v)
+	assert.True(t, v)
 
 	u = URL{}
 	v = u.GetParamBool("force", false)
-	assert.Equal(t, false, v)
+	assert.False(t, v)
 }
 
 func TestURLGetParamAndDecoded(t *testing.T) {
@@ -282,7 +283,7 @@ func TestURLToMap(t *testing.T) {
 	u.Password = testPassword // #nosec G101 - test credential
 
 	m := u.ToMap()
-	assert.Equal(t, 7, len(m))
+	assert.Len(t, m, 7)
 	assert.Equal(t, "condition", m["protocol"])
 	assert.Equal(t, anyAddress, m["host"])
 	assert.Equal(t, testPort8080, m["port"])
@@ -330,11 +331,11 @@ func TestURLGetMethodParamBool(t *testing.T) {
 	u.SetParams(params)
 
 	v := u.GetMethodParamBool("GetValue", "async", false)
-	assert.Equal(t, true, v)
+	assert.True(t, v)
 
 	u = URL{}
 	v = u.GetMethodParamBool("GetValue2", "async", false)
-	assert.Equal(t, false, v)
+	assert.False(t, v)
 }
 
 func TestURLGetAttribute(t *testing.T) {
@@ -345,13 +346,13 @@ func TestURLGetAttribute(t *testing.T) {
 	u.SetAttribute(key, val)
 
 	rawVal, ok := u.GetAttribute(key)
-	assert.Equal(t, true, ok)
+	assert.True(t, ok)
 	v, ok := rawVal.(string)
-	assert.Equal(t, true, ok)
+	assert.True(t, ok)
 	assert.Equal(t, val, v)
 
 	rawVal, ok = u.GetAttribute(notExistKey)
-	assert.Equal(t, false, ok)
+	assert.False(t, ok)
 	assert.Nil(t, rawVal)
 }
 
@@ -379,7 +380,7 @@ func TestMergeUrl(t *testing.T) {
 
 func TestURLSetParams(t *testing.T) {
 	u1, err := NewURL("dubbo://127.0.0.1:20000/com.ikurento.user.UserProvider?interface=com.ikurento.user.UserProvider&group=&version=2.6.0&configVersion=1.0")
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	params := url.Values{}
 	params.Set("key", "3")
 	u1.SetParams(params)
@@ -389,23 +390,23 @@ func TestURLSetParams(t *testing.T) {
 
 func TestURLReplaceParams(t *testing.T) {
 	u1, err := NewURL("dubbo://127.0.0.1:20000/com.ikurento.user.UserProvider?interface=com.ikurento.user.UserProvider&group=&version=2.6.0&configVersion=1.0")
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	params := url.Values{}
 	params.Set("key", "3")
 	u1.ReplaceParams(params)
 	assert.Equal(t, "3", u1.GetParam("key", ""))
-	assert.Equal(t, "", u1.GetParam("version", ""))
+	assert.Empty(t, u1.GetParam("version", ""))
 }
 
 func TestClone(t *testing.T) {
 	u1, err := NewURL("dubbo://127.0.0.1:20000/com.ikurento.user.UserProvider?interface=com.ikurento.user.UserProvider&group=&version=2.6.0&configVersion=1.0")
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	u2 := u1.Clone()
-	assert.Equal(t, u2.Protocol, "dubbo")
+	assert.Equal(t, "dubbo", u2.Protocol)
 	assert.Equal(t, "1.0", u2.GetParam("configVersion", ""))
 	u2.Protocol = "provider"
-	assert.Equal(t, u1.Protocol, "dubbo")
-	assert.Equal(t, u2.Protocol, "provider")
+	assert.Equal(t, "dubbo", u1.Protocol)
+	assert.Equal(t, "provider", u2.Protocol)
 }
 
 func TestColonSeparatedKey(t *testing.T) {
@@ -627,19 +628,19 @@ func TestIsAnyCondition(t *testing.T) {
 
 func TestNewURLWithMultiAddr(t *testing.T) {
 	u1, err := NewURL("zookeeper://127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183")
-	assert.Nil(t, err)
+	require.NoError(t, err)
 	assert.Equal(t, "127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183", u1.Location)
 
 	u2, err := NewURL("zookeeper://127.0.0.1:2181 , 127.0.0.1:2182, 127.0.0.1:2183")
-	assert.Nil(t, err)
+	require.NoError(t, err)
 	assert.Equal(t, "127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183", u2.Location)
 
 	u3, err := NewURL("zookeeper://127.0.0.1:2181 , 127.0.0.1:2182, 127.0.0.1:2183,, , , ")
-	assert.Nil(t, err)
+	require.NoError(t, err)
 	assert.Equal(t, "127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183", u3.Location)
 
 	u4, err := NewURL(" , ,127.0.0.1:2181 , 127.0.0.1:2182, 127.0.0.1:2183,, , , ", WithProtocol("zookeeper"))
-	assert.Nil(t, err)
+	require.NoError(t, err)
 	assert.Equal(t, "127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183", u4.Location)
 }
 
@@ -685,7 +686,7 @@ func TestRoleType(t *testing.T) {
 	assert.Equal(t, "providers", RoleType(PROVIDER).String())
 
 	assert.Equal(t, "consumer", RoleType(CONSUMER).Role())
-	assert.Equal(t, "", RoleType(CONFIGURATOR).Role())
+	assert.Empty(t, RoleType(CONFIGURATOR).Role())
 	assert.Equal(t, "routers", RoleType(ROUTER).Role())
 	assert.Equal(t, "provider", RoleType(PROVIDER).Role())
 }
@@ -715,7 +716,7 @@ func TestWithLocation(t *testing.T) {
 func TestWithToken(t *testing.T) {
 	// empty token
 	u1 := NewURLWithOptions(WithToken(""))
-	assert.Equal(t, "", u1.GetParam(constant.TokenKey, ""))
+	assert.Empty(t, u1.GetParam(constant.TokenKey, ""))
 
 	// custom token
 	u2 := NewURLWithOptions(WithToken("my-token"))
@@ -747,11 +748,11 @@ func TestWithWeight(t *testing.T) {
 
 	// zero weight (should not be set)
 	u2 := NewURLWithOptions(WithWeight(0))
-	assert.Equal(t, "", u2.GetParam(constant.WeightKey, ""))
+	assert.Empty(t, u2.GetParam(constant.WeightKey, ""))
 
 	// negative weight (should not be set)
 	u3 := NewURLWithOptions(WithWeight(-1))
-	assert.Equal(t, "", u3.GetParam(constant.WeightKey, ""))
+	assert.Empty(t, u3.GetParam(constant.WeightKey, ""))
 }
 
 func TestMatchKey(t *testing.T) {
@@ -808,7 +809,7 @@ func TestServiceKey(t *testing.T) {
 	assert.Equal(t, "group/interface", ServiceKey("interface", "group", "0.0.0"))
 
 	// empty interface
-	assert.Equal(t, "", ServiceKey("", "group", "version"))
+	assert.Empty(t, ServiceKey("", "group", "version"))
 
 	// URL method
 	u, _ := NewURL("dubbo://127.0.0.1:20000/com.test.Service?interface=com.test.Service&group=g1&version=1.0")
@@ -844,7 +845,7 @@ func TestAddParam(t *testing.T) {
 	// add another value to same key
 	u.AddParam("key1", "value2")
 	params := u.GetParams()
-	assert.Equal(t, 2, len(params["key1"]))
+	assert.Len(t, params["key1"], 2)
 }
 
 func TestAddParamAvoidNil(t *testing.T) {
@@ -856,7 +857,7 @@ func TestAddParamAvoidNil(t *testing.T) {
 func TestDelParam(t *testing.T) {
 	u, _ := NewURL("dubbo://127.0.0.1:20000?key1=value1&key2=value2")
 	u.DelParam("key1")
-	assert.Equal(t, "", u.GetParam("key1", ""))
+	assert.Empty(t, u.GetParam("key1", ""))
 	assert.Equal(t, "value2", u.GetParam("key2", ""))
 
 	// delete from nil params
@@ -873,7 +874,7 @@ func TestGetNonDefaultParam(t *testing.T) {
 
 	v, ok = u.GetNonDefaultParam("nonexistent")
 	assert.False(t, ok)
-	assert.Equal(t, "", v)
+	assert.Empty(t, v)
 }
 
 func TestRangeParams(t *testing.T) {
@@ -992,9 +993,9 @@ func TestCloneExceptParams(t *testing.T) {
 	excludeSet := gxset.NewSet("key1", "key3")
 	cloned := u.CloneExceptParams(excludeSet)
 
-	assert.Equal(t, "", cloned.GetParam("key1", ""))
+	assert.Empty(t, cloned.GetParam("key1", ""))
 	assert.Equal(t, "value2", cloned.GetParam("key2", ""))
-	assert.Equal(t, "", cloned.GetParam("key3", ""))
+	assert.Empty(t, cloned.GetParam("key3", ""))
 	assert.Equal(t, "dubbo", cloned.Protocol)
 }
 
@@ -1006,7 +1007,7 @@ func TestCloneWithParams(t *testing.T) {
 	cloned := u.CloneWithParams([]string{"key1", "key3"})
 
 	assert.Equal(t, "value1", cloned.GetParam("key1", ""))
-	assert.Equal(t, "", cloned.GetParam("key2", ""))
+	assert.Empty(t, cloned.GetParam("key2", ""))
 	assert.Equal(t, "value3", cloned.GetParam("key3", ""))
 	assert.Equal(t, "dubbo", cloned.Protocol)
 	assert.Equal(t, userName, cloned.Username)
@@ -1095,15 +1096,15 @@ func TestGetSubscribeName(t *testing.T) {
 
 func TestNewURLEmptyString(t *testing.T) {
 	u, err := NewURL("")
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	assert.NotNil(t, u)
-	assert.Equal(t, "", u.Protocol)
+	assert.Empty(t, u.Protocol)
 }
 
 func TestNewURLWithCredentials(t *testing.T) {
 	// #nosec G101 - test credential for URL parsing test
 	u, err := NewURL("dubbo://" + userName + ":" + testPassword + "@" + loopbackAddress + ":" + testPort + "/com.test.Service")
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	assert.Equal(t, userName, u.Username)
 	assert.Equal(t, testPassword, u.Password)
 }
@@ -1165,13 +1166,13 @@ func TestURLEqualWithCategory(t *testing.T) {
 
 func TestNewURLWithRegistryGroup(t *testing.T) {
 	u, err := NewURL("dubbo://127.0.0.1:20000/com.test.Service?registry.group=mygroup")
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	assert.Contains(t, u.PrimitiveURL, "mygroup")
 }
 
 func TestColonSeparatedKeyEmpty(t *testing.T) {
 	u := &URL{}
-	assert.Equal(t, "", u.ColonSeparatedKey())
+	assert.Empty(t, u.ColonSeparatedKey())
 }
 
 func TestColonSeparatedKeyWithVersion000(t *testing.T) {
@@ -1195,7 +1196,7 @@ func TestNewURLParseError(t *testing.T) {
 func TestNewURLWithInvalidQuery(t *testing.T) {
 	// URL with special characters that need escaping
 	u, err := NewURL("dubbo://127.0.0.1:20000/com.test.Service?key=value%20with%20space")
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	assert.Equal(t, "value with space", u.GetParam("key", ""))
 }
 
@@ -1265,13 +1266,13 @@ func TestURLWithPathAlreadyHasSlash(t *testing.T) {
 
 func TestServiceKeyWithEmptyInterface(t *testing.T) {
 	u := &URL{}
-	assert.Equal(t, "", u.ServiceKey())
+	assert.Empty(t, u.ServiceKey())
 }
 
 func TestGetRawParamDefault(t *testing.T) {
 	u, _ := NewURL("dubbo://127.0.0.1:20000?customKey=customValue")
 	assert.Equal(t, "customValue", u.GetRawParam("customKey"))
-	assert.Equal(t, "", u.GetRawParam("nonexistent"))
+	assert.Empty(t, u.GetRawParam("nonexistent"))
 }
 
 func TestCloneWithNilParams(t *testing.T) {
@@ -1308,7 +1309,7 @@ func TestSetParamsWithEmptySlice(t *testing.T) {
 
 	u.SetParams(params)
 	// Empty slice should delete the key
-	assert.Equal(t, "", u.GetParam("emptyKey", ""))
+	assert.Empty(t, u.GetParam("emptyKey", ""))
 }
 
 func TestReplaceParams(t *testing.T) {
@@ -1319,7 +1320,7 @@ func TestReplaceParams(t *testing.T) {
 
 	u.ReplaceParams(newParams)
 
-	assert.Equal(t, "", u.GetParam("key1", ""))
+	assert.Empty(t, u.GetParam("key1", ""))
 	assert.Equal(t, "value2", u.GetParam("key2", ""))
 }
 
@@ -1339,9 +1340,9 @@ func TestIsMatchCategoryWithEmptyCategory2(t *testing.T) {
 
 func TestNewURLWithLocationWithoutPort(t *testing.T) {
 	u, err := NewURL("dubbo://hostname/com.test.Service")
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	assert.Equal(t, "hostname", u.Location)
-	assert.Equal(t, "", u.Port)
+	assert.Empty(t, u.Port)
 }
 
 func TestGetParamBoolInvalidValue(t *testing.T) {
@@ -1352,7 +1353,7 @@ func TestGetParamBoolInvalidValue(t *testing.T) {
 	u.SetParams(params)
 
 	v := u.GetParamBool("key", true)
-	assert.Equal(t, true, v) // returns default on parse error
+	assert.True(t, v) // returns default on parse error
 }
 
 func TestGetParamIntInvalidValue(t *testing.T) {
diff --git a/config/application_config_test.go b/config/application_config_test.go
index f2ae9ab68..2a76770eb 100644
--- a/config/application_config_test.go
+++ b/config/application_config_test.go
@@ -23,6 +23,7 @@ import (
 
 import (
 	"github.com/stretchr/testify/assert"
+	"github.com/stretchr/testify/require"
 )
 
 import (
@@ -33,7 +34,7 @@ import (
 func TestApplicationConfig(t *testing.T) {
 
 	err := Load(WithPath("./testdata/config/application/application.yaml"))
-	assert.Nil(t, err)
+	require.NoError(t, err)
 
 	center := rootConfig.Registries
 	assert.NotNil(t, center)
@@ -52,16 +53,16 @@ func TestApplicationConfigBuilder(t *testing.T) {
 		Build()
 
 	err := application.check()
-	assert.Nil(t, err)
+	require.NoError(t, err)
 	err = application.Init()
 
-	assert.Nil(t, err)
-	assert.Equal(t, application.Name, "name")
-	assert.Equal(t, application.Organization, "organization")
-	assert.Equal(t, application.Module, "module")
-	assert.Equal(t, application.Version, "version")
-	assert.Equal(t, application.Owner, "owner")
-	assert.Equal(t, application.Environment, "environment")
-	assert.Equal(t, application.MetadataType, "metadataType")
-	assert.Equal(t, application.Prefix(), constant.ApplicationConfigPrefix)
+	require.NoError(t, err)
+	assert.Equal(t, "name", application.Name)
+	assert.Equal(t, "organization", application.Organization)
+	assert.Equal(t, "module", application.Module)
+	assert.Equal(t, "version", application.Version)
+	assert.Equal(t, "owner", application.Owner)
+	assert.Equal(t, "environment", application.Environment)
+	assert.Equal(t, "metadataType", application.MetadataType)
+	assert.Equal(t, constant.ApplicationConfigPrefix, application.Prefix())
 }
diff --git a/config/config_loader_options_test.go b/config/config_loader_options_test.go
index 7c5e92b0e..501579c2e 100644
--- a/config/config_loader_options_test.go
+++ b/config/config_loader_options_test.go
@@ -24,6 +24,7 @@ import (
 
 import (
 	"github.com/stretchr/testify/assert"
+	"github.com/stretchr/testify/require"
 )
 
 import (
@@ -33,24 +34,24 @@ import (
 func TestCheckGenre(t *testing.T) {
 
 	err := checkFileSuffix("abc")
-	assert.NotNil(t, err)
+	require.Error(t, err)
 
 	err = checkFileSuffix("zc")
-	assert.NotNil(t, err)
+	require.Error(t, err)
 
 	err = checkFileSuffix("json")
-	assert.Nil(t, err)
+	assert.NoError(t, err)
 }
 
 func TestFileGenre(t *testing.T) {
 	conf := NewLoaderConf(WithPath("../config/testdata/config/properties/application.properties"))
-	assert.Equal(t, conf.suffix, "properties")
+	assert.Equal(t, "properties", conf.suffix)
 }
 
 func TestRootConfig(t *testing.T) {
 	rc := NewRootConfigBuilder().SetApplication(NewApplicationConfigBuilder().SetName("test-app").Build()).Build()
 	conf := NewLoaderConf(WithRootConfig(rc))
-	assert.Equal(t, conf.rc.Application.Name, "test-app")
+	assert.Equal(t, "test-app", conf.rc.Application.Name)
 }
 
 func TestNewLoaderConf_WithBytes(t *testing.T) {
@@ -61,7 +62,7 @@ dubbo.services.HelloService.registry=nacos,zk`
 	conf := NewLoaderConf(WithBytes([]byte(str)), WithGenre("properties"))
 
 	assert.NotNil(t, conf)
-	assert.NotNil(t, conf.bytes)
+	assert.NotEmpty(t, conf.bytes)
 }
 
 func TestNewLoaderConf_WithSuffix(t *testing.T) {
@@ -75,19 +76,19 @@ func TestNewLoaderConf_WithSuffix(t *testing.T) {
 
 func TestResolverFilePath(t *testing.T) {
 	name, suffix := resolverFilePath("../config/application.properties")
-	assert.Equal(t, name, "application")
-	assert.Equal(t, suffix, "properties")
+	assert.Equal(t, "application", name)
+	assert.Equal(t, "properties", suffix)
 }
 
 func TestResolverFilePath_Illegal_Path(t *testing.T) {
 	name, suffix := resolverFilePath("application.properties")
-	assert.Equal(t, name, "application")
-	assert.Equal(t, suffix, "properties")
+	assert.Equal(t, "application", name)
+	assert.Equal(t, "properties", suffix)
 }
 
 func TestResolverFilePath_Illegal_Path_Name(t *testing.T) {
 	name, suffix := resolverFilePath("application")
-	assert.Equal(t, name, "application")
+	assert.Equal(t, "application", name)
 	assert.Equal(t, suffix, string(file.YAML))
 }
 
@@ -99,11 +100,11 @@ func Test_getActiveFilePath(t *testing.T) {
 
 	filePath := conf.getActiveFilePath("dev")
 
-	assert.Equal(t, strings.HasSuffix(filePath, "application-dev.properties"), true)
+	assert.True(t, strings.HasSuffix(filePath, "application-dev.properties"))
 
 	exists := pathExists(filePath)
-	assert.Equal(t, exists, false)
+	assert.False(t, exists)
 	exists = pathExists("application.properties")
-	assert.Equal(t, exists, false)
+	assert.False(t, exists)
 
 }
diff --git a/config/config_resolver_test.go b/config/config_resolver_test.go
index 449544744..2f5a0823a 100644
--- a/config/config_resolver_test.go
+++ b/config/config_resolver_test.go
@@ -25,6 +25,7 @@ import (
 	"github.com/knadh/koanf"
 
 	"github.com/stretchr/testify/assert"
+	"github.com/stretchr/testify/require"
 )
 
 func TestResolvePlaceHolder(t *testing.T) {
@@ -33,15 +34,15 @@ func TestResolvePlaceHolder(t *testing.T) {
 		koan := GetConfigResolver(conf)
 		assert.Equal(t, koan.Get("dubbo.config-center.address"), koan.Get("dubbo.registries.nacos.address"))
 		assert.Equal(t, koan.Get("localhost"), koan.Get("dubbo.protocols.dubbo.ip"))
-		assert.Equal(t, "", koan.Get("dubbo.registries.nacos.group"))
+		assert.Empty(t, koan.Get("dubbo.registries.nacos.group"))
 		assert.Equal(t, "dev", koan.Get("dubbo.registries.zk.group"))
 
 		rc := NewRootConfigBuilder().Build()
 		err := koan.UnmarshalWithConf(rc.Prefix(), rc, koanf.UnmarshalConf{Tag: "yaml"})
-		assert.Nil(t, err)
+		require.NoError(t, err)
 		assert.Equal(t, rc.ConfigCenter.Address, rc.Registries["nacos"].Address)
 		//not exist, default
-		assert.Equal(t, "", rc.Registries["nacos"].Group)
+		assert.Empty(t, rc.Registries["nacos"].Group)
 		assert.Equal(t, "dev", rc.Registries["zk"].Group)
 
 	})
diff --git a/config/config_utils_test.go b/config/config_utils_test.go
index 65ad9d390..184d7be76 100644
--- a/config/config_utils_test.go
+++ b/config/config_utils_test.go
@@ -44,22 +44,22 @@ func TestMergeValue(t *testing.T) {
 
 func TestRemoveMinus(t *testing.T) {
 	strList := removeMinus([]string{})
-	assert.Equal(t, strList, "")
+	assert.Empty(t, strList)
 
 	strList = removeMinus([]string{"a", "b", "c", "d", "-a"})
-	assert.Equal(t, strList, "b,c,d")
+	assert.Equal(t, "b,c,d", strList)
 
 	strList = removeMinus([]string{"a", "b", "c", "d", "-a", "-b"})
-	assert.Equal(t, strList, "c,d")
+	assert.Equal(t, "c,d", strList)
 
 	strList = removeMinus([]string{"a", "b", "c", "-c", "-a", "-b"})
-	assert.Equal(t, strList, "")
+	assert.Empty(t, strList)
 
 	strList = removeMinus([]string{"b", "a", "-c", "c"})
-	assert.Equal(t, strList, "b,a")
+	assert.Equal(t, "b,a", strList)
 
 	strList = removeMinus([]string{"c", "b", "a", "d", "c", "-c", "-a", "e", "f"})
-	assert.Equal(t, strList, "b,d,c,e,f")
+	assert.Equal(t, "b,d,c,e,f", strList)
 }
 
 type mockConfig struct {
diff --git a/config/custom_config_test.go b/config/custom_config_test.go
index 01a108a65..c1b33be23 100644
--- a/config/custom_config_test.go
+++ b/config/custom_config_test.go
@@ -24,6 +24,7 @@ import (
 
 import (
 	"github.com/stretchr/testify/assert"
+	"github.com/stretchr/testify/require"
 )
 
 import (
@@ -34,26 +35,26 @@ import (
 func TestCustomInit(t *testing.T) {
 	t.Run("empty use default", func(t *testing.T) {
 		err := Load(WithPath("./testdata/config/custom/empty.yaml"))
-		assert.Nil(t, err)
+		require.NoError(t, err)
 		assert.NotNil(t, rootConfig)
 		customConfig := rootConfig.Custom
 		assert.NotNil(t, customConfig)
 		assert.Equal(t, customConfig.ConfigMap, map[string]any(nil))
-		assert.Equal(t, customConfig.GetDefineValue("test", "test"), "test")
-		assert.Equal(t, GetDefineValue("test", "test"), "test")
+		assert.Equal(t, "test", customConfig.GetDefineValue("test", "test"))
+		assert.Equal(t, "test", GetDefineValue("test", "test"))
 	})
 
 	t.Run("use config", func(t *testing.T) {
 		err := Load(WithPath("./testdata/config/custom/custom.yaml"))
-		assert.Nil(t, err)
+		require.NoError(t, err)
 		assert.NotNil(t, rootConfig)
 		customConfig := rootConfig.Custom
 		assert.NotNil(t, customConfig)
-		assert.Equal(t, customConfig.ConfigMap, map[string]any{"test-config": true})
-		assert.Equal(t, customConfig.GetDefineValue("test-config", false), true)
-		assert.Equal(t, customConfig.GetDefineValue("test-no-config", false), false)
-		assert.Equal(t, GetDefineValue("test-config", false), true)
-		assert.Equal(t, GetDefineValue("test-no-config", false), false)
+		assert.Equal(t, map[string]any{"test-config": true}, customConfig.ConfigMap)
+		assert.Equal(t, true, customConfig.GetDefineValue("test-config", false))
+		assert.Equal(t, false, customConfig.GetDefineValue("test-no-config", false))
+		assert.Equal(t, true, GetDefineValue("test-config", false))
+		assert.Equal(t, false, GetDefineValue("test-no-config", false))
 	})
 
 	t.Run("config builder", func(t *testing.T) {
@@ -61,14 +62,14 @@ func TestCustomInit(t *testing.T) {
 		customConfigBuilder.SetDefineConfig("test-build", true)
 		customConfig := customConfigBuilder.Build()
 		assert.NotNil(t, customConfig)
-		assert.Equal(t, customConfig.GetDefineValue("test-build", false), true)
-		assert.Equal(t, customConfig.GetDefineValue("test-no-build", false), false)
+		assert.Equal(t, true, customConfig.GetDefineValue("test-build", false))
+		assert.Equal(t, false, customConfig.GetDefineValue("test-no-build", false))
 		// todo @(laurence) now we should guarantee rootConfig ptr can't be changed during test
 		tempRootConfig := rootConfig
 		rt := NewRootConfigBuilder().SetCustom(customConfig).Build()
 		SetRootConfig(*rt)
-		assert.Equal(t, GetDefineValue("test-build", false), true)
-		assert.Equal(t, GetDefineValue("test-no-build", false), false)
+		assert.Equal(t, true, GetDefineValue("test-build", false))
+		assert.Equal(t, false, GetDefineValue("test-no-build", false))
 		SetRootConfig(*tempRootConfig)
 	})
 }
@@ -81,9 +82,9 @@ func TestConfigUtils(t *testing.T) {
 	assert.Equal(t, id, strings.Join([]string{constant.RegistryConfigPrefix, "nacos", "127.0.0.1:8848"}, "-"))
 
 	ids := translateIds([]string{"nacos,zk"})
-	assert.Equal(t, ids[0], "nacos")
-	assert.Equal(t, ids[1], "zk")
+	assert.Equal(t, "nacos", ids[0])
+	assert.Equal(t, "zk", ids[1])
 
 	element := removeDuplicateElement([]string{"nacos", "nacos"})
-	assert.Equal(t, len(element), 1)
+	assert.Len(t, element, 1)
 }
diff --git a/config/generic/generic_service_test.go b/config/generic/generic_service_test.go
index d48afb33f..e66145b81 100644
--- a/config/generic/generic_service_test.go
+++ b/config/generic/generic_service_test.go
@@ -28,5 +28,5 @@ import (
 func TestGenericService(t *testing.T) {
 	service := NewGenericService("HelloService")
 	reference := service.Reference()
-	assert.Equal(t, reference, "HelloService")
+	assert.Equal(t, "HelloService", reference)
 }
diff --git a/config/graceful_shutdown_config_test.go b/config/graceful_shutdown_config_test.go
index fe6890d09..30fa36eea 100644
--- a/config/graceful_shutdown_config_test.go
+++ b/config/graceful_shutdown_config_test.go
@@ -24,6 +24,7 @@ import (
 
 import (
 	"github.com/stretchr/testify/assert"
+	"github.com/stretchr/testify/require"
 )
 
 import (
@@ -71,23 +72,23 @@ func TestNewShutDownConfigBuilder(t *testing.T) {
 		SetInternalSignal(false).
 		Build()
 
-	assert.Equal(t, config.Prefix(), constant.ShutdownConfigPrefix)
+	assert.Equal(t, constant.ShutdownConfigPrefix, config.Prefix())
 
 	timeout := config.GetTimeout()
-	assert.Equal(t, timeout, 10*time.Second)
+	assert.Equal(t, 10*time.Second, timeout)
 
 	stepTimeout := config.GetStepTimeout()
-	assert.Equal(t, stepTimeout, 15*time.Second)
+	assert.Equal(t, 15*time.Second, stepTimeout)
 
 	offlineRequestWindowTimeout := config.GetOfflineRequestWindowTimeout()
-	assert.Equal(t, offlineRequestWindowTimeout, 13*time.Second)
+	assert.Equal(t, 13*time.Second, offlineRequestWindowTimeout)
 	err := config.Init()
-	assert.NoError(t, err)
+	require.NoError(t, err)
 
 	waitTime := config.GetConsumerUpdateWaitTime()
-	assert.Equal(t, waitTime, 3*time.Second)
+	assert.Equal(t, 3*time.Second, waitTime)
 
-	assert.Equal(t, config.GetInternalSignal(), false)
+	assert.False(t, config.GetInternalSignal())
 }
 
 func TestGetInternalSignal(t *testing.T) {
@@ -99,5 +100,5 @@ func TestGetInternalSignal(t *testing.T) {
 		SetRejectRequest(true).
 		Build()
 
-	assert.Equal(t, config.GetInternalSignal(), true)
+	assert.True(t, config.GetInternalSignal())
 }
diff --git a/config/logger_config_test.go b/config/logger_config_test.go
index a96a90cc6..5f5c6a486 100644
--- a/config/logger_config_test.go
+++ b/config/logger_config_test.go
@@ -25,12 +25,13 @@ import (
 	"github.com/dubbogo/gost/log/logger"
 
 	"github.com/stretchr/testify/assert"
+	"github.com/stretchr/testify/require"
 )
 
 func TestLoggerInit(t *testing.T) {
 	t.Run("empty use default", func(t *testing.T) {
 		err := Load(WithPath("./testdata/config/logger/empty_log.yaml"))
-		assert.Nil(t, err)
+		require.NoError(t, err)
 		assert.NotNil(t, rootConfig)
 		loggerConfig := rootConfig.Logger
 		assert.NotNil(t, loggerConfig)
@@ -38,7 +39,7 @@ func TestLoggerInit(t *testing.T) {
 
 	t.Run("use config", func(t *testing.T) {
 		err := Load(WithPath("./testdata/config/logger/log.yaml"))
-		assert.Nil(t, err)
+		require.NoError(t, err)
 		loggerConfig := rootConfig.Logger
 		assert.NotNil(t, loggerConfig)
 		// default
@@ -47,7 +48,7 @@ func TestLoggerInit(t *testing.T) {
 
 	t.Run("use config with file", func(t *testing.T) {
 		err := Load(WithPath("./testdata/config/logger/file_log.yaml"))
-		assert.Nil(t, err)
+		require.NoError(t, err)
 		loggerConfig := rootConfig.Logger
 		assert.NotNil(t, loggerConfig)
 		logger.Debug("debug")
@@ -71,15 +72,15 @@ func TestNewLoggerConfigBuilder(t *testing.T) {
 
 	assert.NotNil(t, config)
 
-	assert.Equal(t, config.File.Name, "dubbo.log")
-	assert.Equal(t, config.Driver, "zap")
-	assert.Equal(t, config.Level, "info")
-	assert.Equal(t, config.File.MaxAge, 10)
+	assert.Equal(t, "dubbo.log", config.File.Name)
+	assert.Equal(t, "zap", config.Driver)
+	assert.Equal(t, "info", config.Level)
+	assert.Equal(t, 10, config.File.MaxAge)
 
 	// default value
-	assert.Equal(t, config.Appender, "console")
-	assert.Equal(t, config.Format, "text")
-	assert.Equal(t, config.File.MaxSize, 100)
-	assert.Equal(t, *config.File.Compress, true)
-	assert.Equal(t, config.File.MaxBackups, 5)
+	assert.Equal(t, "console", config.Appender)
+	assert.Equal(t, "text", config.Format)
+	assert.Equal(t, 100, config.File.MaxSize)
+	assert.True(t, *config.File.Compress)
+	assert.Equal(t, 5, config.File.MaxBackups)
 }
diff --git a/config/metadata_config_test.go b/config/metadata_config_test.go
index 1e7caf5ac..51e5594ba 100644
--- a/config/metadata_config_test.go
+++ b/config/metadata_config_test.go
@@ -23,6 +23,7 @@ import (
 
 import (
 	"github.com/stretchr/testify/assert"
+	"github.com/stretchr/testify/require"
 )
 
 import (
@@ -39,9 +40,9 @@ func TestNewMetadataReportConfigBuilder(t *testing.T) {
 		SetGroup("dubbo").
 		Build()
 
-	assert.Equal(t, config.Prefix(), constant.MetadataReportPrefix)
+	assert.Equal(t, constant.MetadataReportPrefix, config.Prefix())
 
 	url, err := config.ToUrl()
-	assert.NoError(t, err)
-	assert.Equal(t, url.GetParam(constant.TimeoutKey, "3s"), "10s")
+	require.NoError(t, err)
+	assert.Equal(t, "10s", url.GetParam(constant.TimeoutKey, "3s"))
 }
diff --git a/config/mock_rpcservice_test.go b/config/mock_rpcservice_test.go
index 3ee85c1e2..b7af8ef78 100644
--- a/config/mock_rpcservice_test.go
+++ b/config/mock_rpcservice_test.go
@@ -24,16 +24,17 @@ import (
 
 import (
 	"github.com/stretchr/testify/assert"
+	"github.com/stretchr/testify/require"
 )
 
 func TestMockService(t *testing.T) {
 
 	mockService := &MockService{}
 	reference := mockService.Reference()
-	assert.Equal(t, reference, "MockService")
+	assert.Equal(t, "MockService", reference)
 
 	err := mockService.GetUser1(context.TODO(), nil, nil)
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	err = mockService.GetUser(context.TODO(), nil, nil)
-	assert.NoError(t, err)
+	require.NoError(t, err)
 }
diff --git a/config/otel_config_test.go b/config/otel_config_test.go
index af1b30292..20f6db6e2 100644
--- a/config/otel_config_test.go
+++ b/config/otel_config_test.go
@@ -23,6 +23,7 @@ import (
 
 import (
 	"github.com/stretchr/testify/assert"
+	"github.com/stretchr/testify/require"
 )
 
 func TestNewOtelConfigBuilder(t *testing.T) {
@@ -32,7 +33,7 @@ func TestNewOtelConfigBuilder(t *testing.T) {
 
 	ac := NewApplicationConfigBuilder().Build()
 	err := config.Init(ac)
-	assert.NoError(t, err)
+	require.NoError(t, err)
 
 	tpc := config.TraceConfig.toTraceProviderConfig(ac)
 	assert.NotNil(t, tpc)
diff --git a/config/profiles_config_test.go b/config/profiles_config_test.go
index 45e31f40b..e16c3a7a1 100644
--- a/config/profiles_config_test.go
+++ b/config/profiles_config_test.go
@@ -25,6 +25,7 @@ import (
 	"github.com/knadh/koanf"
 
 	"github.com/stretchr/testify/assert"
+	"github.com/stretchr/testify/require"
 )
 
 import (
@@ -33,7 +34,7 @@ import (
 
 func TestProfilesConfig_Prefix(t *testing.T) {
 	profiles := &ProfilesConfig{}
-	assert.Equal(t, profiles.Prefix(), constant.ProfilesConfigPrefix)
+	assert.Equal(t, constant.ProfilesConfigPrefix, profiles.Prefix())
 }
 
 func TestLoaderConf_MergeConfig(t *testing.T) {
@@ -43,33 +44,33 @@ func TestLoaderConf_MergeConfig(t *testing.T) {
 	koan = conf.MergeConfig(koan)
 
 	err := koan.UnmarshalWithConf(rc.Prefix(), rc, koanf.UnmarshalConf{Tag: "yaml"})
-	assert.Nil(t, err)
+	require.NoError(t, err)
 
 	registries := rc.Registries
 	assert.NotNil(t, registries)
-	assert.Equal(t, registries["nacos"].Timeout, "10s")
-	assert.Equal(t, registries["nacos"].Address, "nacos://127.0.0.1:8848")
+	assert.Equal(t, "10s", registries["nacos"].Timeout)
+	assert.Equal(t, "nacos://127.0.0.1:8848", registries["nacos"].Address)
 
 	protocols := rc.Protocols
 	assert.NotNil(t, protocols)
-	assert.Equal(t, protocols["dubbo"].Name, "dubbo")
-	assert.Equal(t, protocols["dubbo"].Port, "20000")
+	assert.Equal(t, "dubbo", protocols["dubbo"].Name)
+	assert.Equal(t, "20000", protocols["dubbo"].Port)
 
 	consumer := rc.Consumer
 	assert.NotNil(t, consumer)
-	assert.Equal(t, consumer.References["helloService"].Protocol, "dubbo")
-	assert.Equal(t, consumer.References["helloService"].InterfaceName, "org.github.dubbo.HelloService")
+	assert.Equal(t, "dubbo", consumer.References["helloService"].Protocol)
+	assert.Equal(t, "org.github.dubbo.HelloService", consumer.References["helloService"].InterfaceName)
 }
 
 func Test_getLegalActive(t *testing.T) {
 
 	t.Run("default", func(t *testing.T) {
 		active := getLegalActive("")
-		assert.Equal(t, active, "default")
+		assert.Equal(t, "default", active)
 	})
 
 	t.Run("normal", func(t *testing.T) {
 		active := getLegalActive("active")
-		assert.Equal(t, active, "active")
+		assert.Equal(t, "active", active)
 	})
 }
diff --git a/config/protocol_config_test.go b/config/protocol_config_test.go
index d20c99d72..e209a669d 100644
--- a/config/protocol_config_test.go
+++ b/config/protocol_config_test.go
@@ -23,13 +23,14 @@ import (
 
 import (
 	"github.com/stretchr/testify/assert"
+	"github.com/stretchr/testify/require"
 )
 
 func TestGetProtocolsConfig(t *testing.T) {
 
 	t.Run("empty use default", func(t *testing.T) {
 		err := Load(WithPath("./testdata/config/protocol/empty_application.yaml"))
-		assert.Nil(t, err)
+		require.NoError(t, err)
 		protocols := rootConfig.Protocols
 		assert.NotNil(t, protocols)
 		// default
@@ -40,7 +41,7 @@ func TestGetProtocolsConfig(t *testing.T) {
 
 	t.Run("use config", func(t *testing.T) {
 		err := Load(WithPath("./testdata/config/protocol/application.yaml"))
-		assert.Nil(t, err)
+		require.NoError(t, err)
 		protocols := rootConfig.Protocols
 		assert.NotNil(t, protocols)
 		// default
diff --git a/config/provider_config_test.go b/config/provider_config_test.go
index 8fb7c0ec0..806d26c48 100644
--- a/config/provider_config_test.go
+++ b/config/provider_config_test.go
@@ -23,6 +23,7 @@ import (
 
 import (
 	"github.com/stretchr/testify/assert"
+	"github.com/stretchr/testify/require"
 )
 
 import (
@@ -32,35 +33,35 @@ import (
 
 func TestProviderConfigEmptyRegistry(t *testing.T) {
 	err := Load(WithPath("./testdata/config/provider/empty_registry_application.yaml"))
-	assert.Nil(t, err)
+	require.NoError(t, err)
 	provider := rootConfig.Provider
-	assert.Equal(t, 1, len(provider.RegistryIDs))
+	assert.Len(t, provider.RegistryIDs, 1)
 	assert.Equal(t, "nacos", provider.RegistryIDs[0])
 }
 
 func TestProviderConfigRootRegistry(t *testing.T) {
 	err := Load(WithPath("./testdata/config/provider/registry_application.yaml"))
-	assert.Nil(t, err)
+	require.NoError(t, err)
 	provider := rootConfig.Provider
 	assert.NotNil(t, provider)
 	assert.NotNil(t, provider.Services["HelloService"])
 	assert.NotNil(t, provider.Services["OrderService"])
 
-	assert.Equal(t, 2, len(provider.Services["HelloService"].RegistryIDs))
-	assert.Equal(t, 1, len(provider.Services["OrderService"].RegistryIDs))
+	assert.Len(t, provider.Services["HelloService"].RegistryIDs, 2)
+	assert.Len(t, provider.Services["OrderService"].RegistryIDs, 1)
 }
 
 //
 //func TestConsumerInitWithDefaultProtocol(t *testing.T) {
 //	conPath, err := filepath.Abs("./testdata/consumer_config_withoutProtocol.yml")
-//	assert.NoError(t, err)
+//	require.NoError(t, err)
 //	assert.NoError(t, consumer.ConsumerInit(conPath))
 //	assert.Equal(t, "dubbo", config.consumerConfig.References["UserProvider"].Protocol)
 //}
 //
 //func TestProviderInitWithDefaultProtocol(t *testing.T) {
 //	conPath, err := filepath.Abs("./testdata/provider_config_withoutProtocol.yml")
-//	assert.NoError(t, err)
+//	require.NoError(t, err)
 //	assert.NoError(t, ProviderInit(conPath))
 //	assert.Equal(t, "dubbo", config.referenceConfig.Services["UserProvider"].Protocol)
 //}
@@ -81,6 +82,6 @@ func TestNewProviderConfigBuilder(t *testing.T) {
 		Build()
 
 	err := config.check()
-	assert.NoError(t, err)
-	assert.Equal(t, config.Prefix(), constant.ProviderConfigPrefix)
+	require.NoError(t, err)
+	assert.Equal(t, constant.ProviderConfigPrefix, config.Prefix())
 }
diff --git a/config/reference_config_test.go b/config/reference_config_test.go
index 13a5ed23d..a0205971d 100644
--- a/config/reference_config_test.go
+++ b/config/reference_config_test.go
@@ -455,7 +455,7 @@ func TestNewReferenceConfigBuilder(t *testing.T) {
 	assert.Nil(t, proxy)
 
 	values := config.getURLMap()
-	assert.Equal(t, values.Get(constant.GroupKey), "")
+	assert.Empty(t, values.Get(constant.GroupKey))
 
 	invoker := config.GetInvoker()
 	assert.Nil(t, invoker)
@@ -465,5 +465,5 @@ func TestReferenceConfigInitWithoutConsumerConfig(t *testing.T) {
 	testRootConfig := NewRootConfigBuilder().Build()
 	testRootConfig.Consumer = nil
 	err := NewReferenceConfigBuilder().Build().Init(testRootConfig)
-	assert.Nil(t, err)
+	assert.NoError(t, err)
 }
diff --git a/config/registry_config_test.go b/config/registry_config_test.go
index 83be5ed58..011e08101 100644
--- a/config/registry_config_test.go
+++ b/config/registry_config_test.go
@@ -23,6 +23,7 @@ import (
 
 import (
 	"github.com/stretchr/testify/assert"
+	"github.com/stretchr/testify/require"
 )
 
 import (
@@ -78,7 +79,7 @@ func TestRegistryTypeAll(t *testing.T) {
 		},
 	}
 	urls := LoadRegistries(target, regs, common.PROVIDER)
-	assert.Equal(t, 2, len(urls))
+	assert.Len(t, urls, 2)
 	assert.Equal(t, "service-discovery-registry://127.0.0.2:2181", urls[0].PrimitiveURL)
 }
 
@@ -114,21 +115,21 @@ func TestNewRegistryConfigBuilder(t *testing.T) {
 
 	config.DynamicUpdateProperties(config)
 
-	assert.Equal(t, config.Prefix(), constant.RegistryConfigPrefix)
+	assert.Equal(t, constant.RegistryConfigPrefix, config.Prefix())
 
 	values := config.getUrlMap(common.PROVIDER)
-	assert.Equal(t, values.Get("timeout"), "15s")
+	assert.Equal(t, "15s", values.Get("timeout"))
 
 	url, err := config.toMetadataReportUrl()
-	assert.NoError(t, err)
-	assert.Equal(t, url.GetParam("timeout", "3s"), "10s")
+	require.NoError(t, err)
+	assert.Equal(t, "10s", url.GetParam("timeout", "3s"))
 
 	url, err = config.toURL(common.PROVIDER)
-	assert.NoError(t, err)
-	assert.Equal(t, url.GetParam("timeout", "3s"), "15s")
+	require.NoError(t, err)
+	assert.Equal(t, "15s", url.GetParam("timeout", "3s"))
 
 	address := config.translateRegistryAddress()
-	assert.Equal(t, address, "127.0.0.1:8848")
+	assert.Equal(t, "127.0.0.1:8848", address)
 }
 
 func TestNewRegistryConfig(t *testing.T) {
@@ -145,5 +146,5 @@ func TestNewRegistryConfig(t *testing.T) {
 		WithRegistryWeight(100),
 		WithRegistryParams(map[string]string{"timeout": "3s"}))
 
-	assert.Equal(t, config.Timeout, "10s")
+	assert.Equal(t, "10s", config.Timeout)
 }
diff --git a/config/remote_config_test.go b/config/remote_config_test.go
index 36cb5b3c5..f9433e063 100644
--- a/config/remote_config_test.go
+++ b/config/remote_config_test.go
@@ -24,6 +24,7 @@ import (
 
 import (
 	"github.com/stretchr/testify/assert"
+	"github.com/stretchr/testify/require"
 )
 
 import (
@@ -59,19 +60,19 @@ func TestNewRemoteConfigBuilder(t *testing.T) {
 		Build()
 
 	values := config.getUrlMap()
-	assert.Equal(t, values.Get("timeout"), "15s")
+	assert.Equal(t, "15s", values.Get("timeout"))
 
 	url, err := config.ToURL()
-	assert.NoError(t, err)
-	assert.Equal(t, url.GetParam("timeout", "3s"), "15s")
+	require.NoError(t, err)
+	assert.Equal(t, "15s", url.GetParam("timeout", "3s"))
 
 	err = config.Init()
-	assert.NoError(t, err)
+	require.NoError(t, err)
 
 	timeout := config.GetTimeout()
-	assert.Equal(t, timeout, 10*time.Second)
-	assert.Equal(t, config.Prefix(), constant.RemotePrefix)
+	assert.Equal(t, 10*time.Second, timeout)
+	assert.Equal(t, constant.RemotePrefix, config.Prefix())
 
 	param := config.GetParam("timeout", "3s")
-	assert.Equal(t, param, "15s")
+	assert.Equal(t, "15s", param)
 }
diff --git a/config/root_config_test.go b/config/root_config_test.go
index e49e1456e..9cd9acd4d 100644
--- a/config/root_config_test.go
+++ b/config/root_config_test.go
@@ -41,14 +41,14 @@ func TestGoConfigProcess(t *testing.T) {
 	b := "dubbo:\n  registries:\n    demoZK:\n      protocol: zookeeper\n      timeout: 11s\n      address: 127.0.0.1:2181\n      simplified: abc123"
 	c2 := &config_center.ConfigChangeEvent{Key: "test", Value: b}
 	rc.rootConfig.Process(c2)
-	assert.Equal(t, rc.rootConfig.Registries["demoZK"].Timeout, "10s")
+	assert.Equal(t, "10s", rc.rootConfig.Registries["demoZK"].Timeout)
 
 	// test update registry time out
 	bs, _ := yaml.LoadYMLConfig("./testdata/root_config_test.yml")
 	c := &config_center.ConfigChangeEvent{Key: "test", Value: string(bs)}
 	rc.rootConfig.Process(c)
-	assert.Equal(t, rc.rootConfig.Registries["demoZK"].Timeout, "11s")
-	assert.Equal(t, rc.rootConfig.Consumer.RequestTimeout, "6s")
+	assert.Equal(t, "11s", rc.rootConfig.Registries["demoZK"].Timeout)
+	assert.Equal(t, "6s", rc.rootConfig.Consumer.RequestTimeout)
 
 }
 
@@ -76,9 +76,9 @@ func TestNewRootConfigBuilder(t *testing.T) {
 		SetCacheFile("abc=123").
 		Build()
 
-	assert.Equal(t, rootConfig.Prefix(), constant.Dubbo)
+	assert.Equal(t, constant.Dubbo, rootConfig.Prefix())
 	ids := rootConfig.getRegistryIds()
-	assert.Equal(t, ids[0], "nacos")
+	assert.Equal(t, "nacos", ids[0])
 
 	down := GetShutDown()
 	assert.NotNil(t, down)
diff --git a/config/router_config_test.go b/config/router_config_test.go
index 4c6e40da1..fcaed0670 100644
--- a/config/router_config_test.go
+++ b/config/router_config_test.go
@@ -24,6 +24,7 @@ import (
 
 import (
 	"github.com/stretchr/testify/assert"
+	"github.com/stretchr/testify/require"
 )
 
 import (
@@ -39,19 +40,19 @@ func TestString(t *testing.T) {
 	n1 := strings.SplitN(s1, "=>", 2)
 	n2 := strings.SplitN(s2, "=>", 2)
 
-	assert.Equal(t, n[0], "a1")
-	assert.Equal(t, n[1], "a2")
+	assert.Equal(t, "a1", n[0])
+	assert.Equal(t, "a2", n[1])
 
-	assert.Equal(t, n1[0], "")
-	assert.Equal(t, n1[1], "a2")
+	assert.Empty(t, n1[0])
+	assert.Equal(t, "a2", n1[1])
 
-	assert.Equal(t, n2[0], "a1")
-	assert.Equal(t, n2[1], "")
+	assert.Equal(t, "a1", n2[0])
+	assert.Empty(t, n2[1])
 }
 
 func TestRouterInit(t *testing.T) {
 	//err := RouterInit(testVirtualServiceYML, testDestinationRuleYML)
-	//assert.NoError(t, err)
+	//require.NoError(t, err)
 	//
 	//err = RouterInit(testVirtualServiceYML, errorTestDestinationRuleYML)
 	//assert.Error(t, err)
@@ -78,9 +79,9 @@ func TestNewRouterConfigBuilder(t *testing.T) {
 		Build()
 
 	err := initRouterConfig(rc)
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	err = config.Init()
-	assert.NoError(t, err)
+	require.NoError(t, err)
 
-	assert.Equal(t, config.Prefix(), constant.RouterConfigPrefix)
+	assert.Equal(t, constant.RouterConfigPrefix, config.Prefix())
 }
diff --git a/config/service_config_test.go b/config/service_config_test.go
index 3136b8fc9..634b6562c 100644
--- a/config/service_config_test.go
+++ b/config/service_config_test.go
@@ -25,6 +25,7 @@ import (
 
 import (
 	"github.com/stretchr/testify/assert"
+	"github.com/stretchr/testify/require"
 )
 
 import (
@@ -85,26 +86,26 @@ func TestNewServiceConfigBuilder(t *testing.T) {
 		}
 
 		err := serviceConfig.Init(rc)
-		assert.NoError(t, err)
+		require.NoError(t, err)
 		err = serviceConfig.check()
-		assert.NoError(t, err)
+		require.NoError(t, err)
 
 		assert.Equal(t, serviceConfig.Prefix(), strings.Join([]string{constant.ServiceConfigPrefix, serviceConfig.id}, "."))
-		assert.Equal(t, serviceConfig.IsExport(), false)
+		assert.False(t, serviceConfig.IsExport())
 	})
 
 	t.Run("LoadRegistries&loadProtocol&getRandomPort", func(t *testing.T) {
 		registries := LoadRegistries(serviceConfig.RegistryIDs, serviceConfig.RCRegistriesMap, common.PROVIDER)
-		assert.Equal(t, len(registries), 1)
+		assert.Len(t, registries, 1)
 		assert.Equal(t, "service-discovery-registry", registries[0].Protocol)
-		assert.Equal(t, registries[0].Port, "8848")
-		assert.Equal(t, registries[0].GetParam("registry.role", "1"), "3")
-		assert.Equal(t, registries[0].GetParam("registry", "zk"), "nacos")
+		assert.Equal(t, "8848", registries[0].Port)
+		assert.Equal(t, "3", registries[0].GetParam("registry.role", "1"))
+		assert.Equal(t, "nacos", registries[0].GetParam("registry", "zk"))
 
 		protocols := loadProtocol(serviceConfig.ProtocolIDs, serviceConfig.RCProtocolsMap)
-		assert.Equal(t, len(protocols), 1)
-		assert.Equal(t, protocols[0].Name, "dubbo")
-		assert.Equal(t, protocols[0].Port, "20000")
+		assert.Len(t, protocols, 1)
+		assert.Equal(t, "dubbo", protocols[0].Name)
+		assert.Equal(t, "20000", protocols[0].Port)
 
 		ports := getRandomPort(protocols)
 		nextPort := ports.Front()
@@ -112,9 +113,9 @@ func TestNewServiceConfigBuilder(t *testing.T) {
 	})
 	t.Run("getUrlMap", func(t *testing.T) {
 		values := serviceConfig.getUrlMap()
-		assert.Equal(t, values.Get("methods.Say.weight"), "0")
-		assert.Equal(t, values.Get("methods.Say.tps.limit.rate"), "")
-		assert.Equal(t, values.Get(constant.ServiceFilterKey), "echo,token,accesslog,tps,generic_service,execute,pshutdown")
+		assert.Equal(t, "0", values.Get("methods.Say.weight"))
+		assert.Empty(t, values.Get("methods.Say.tps.limit.rate"))
+		assert.Equal(t, "echo,token,accesslog,tps,generic_service,execute,pshutdown", values.Get(constant.ServiceFilterKey))
 	})
 
 	t.Run("Implement", func(t *testing.T) {
diff --git a/config/service_discovery_config_test.go b/config/service_discovery_config_test.go
index b26c538a5..f94a71588 100644
--- a/config/service_discovery_config_test.go
+++ b/config/service_discovery_config_test.go
@@ -23,6 +23,7 @@ import (
 
 import (
 	"github.com/stretchr/testify/assert"
+	"github.com/stretchr/testify/require"
 )
 
 import (
@@ -38,7 +39,7 @@ func TestNewServiceDiscoveryConfigBuilder(t *testing.T) {
 		Build()
 
 	err := config.Init()
-	assert.Nil(t, err)
-	assert.Equal(t, config.Protocol, "protocol")
-	assert.Equal(t, config.Prefix(), constant.ServiceDiscPrefix)
+	require.NoError(t, err)
+	assert.Equal(t, "protocol", config.Protocol)
+	assert.Equal(t, constant.ServiceDiscPrefix, config.Prefix())
 }
diff --git a/config/service_test.go b/config/service_test.go
index e52ec0478..be94b05c7 100644
--- a/config/service_test.go
+++ b/config/service_test.go
@@ -33,12 +33,12 @@ func TestGetConsumerService(t *testing.T) {
 	service := GetConsumerService("HelloService")
 	reference := service.(*HelloService).Reference()
 
-	assert.Equal(t, reference, "HelloService")
+	assert.Equal(t, "HelloService", reference)
 
 	SetConsumerServiceByInterfaceName("org.apache.dubbo.HelloService", &HelloService{})
 	service = GetConsumerServiceByInterfaceName("org.apache.dubbo.HelloService")
 	reference = service.(*HelloService).Reference()
-	assert.Equal(t, reference, "HelloService")
+	assert.Equal(t, "HelloService", reference)
 
 	callback := GetCallback(reference)
 	assert.Nil(t, callback)
diff --git a/config/ssl_config_test.go b/config/ssl_config_test.go
index 892596ecc..75a37be7e 100644
--- a/config/ssl_config_test.go
+++ b/config/ssl_config_test.go
@@ -39,9 +39,9 @@ func TestServerTlsConfigBuilder(t *testing.T) {
 	vf := reflect.ValueOf(serverTlsConfig)
 	name := reflect.Indirect(vf).Type().Name()
 
-	assert.Equal(t, name, "ServerTlsConfigBuilder")
+	assert.Equal(t, "ServerTlsConfigBuilder", name)
 
 	vf = reflect.ValueOf(clientTlsConfig)
 	name = reflect.Indirect(vf).Type().Name()
-	assert.Equal(t, name, "ClientTlsConfigBuilder")
+	assert.Equal(t, "ClientTlsConfigBuilder", name)
 }
diff --git a/config/tls_config_test.go b/config/tls_config_test.go
index a99c51964..c533fc42c 100644
--- a/config/tls_config_test.go
+++ b/config/tls_config_test.go
@@ -36,10 +36,10 @@ func TestNewTLSConfigBuilder(t *testing.T) {
 		SetTLSServerName("tls_server_name").
 		SetTLSCertFile("tls_cert_file").
 		Build()
-	assert.Equal(t, config.CACertFile, "ca_cert_file")
-	assert.Equal(t, config.TLSCertFile, "tls_cert_file")
-	assert.Equal(t, config.TLSServerName, "tls_server_name")
-	assert.Equal(t, config.TLSKeyFile, "tls_key_file")
-	assert.Equal(t, config.Prefix(), constant.TLSConfigPrefix)
+	assert.Equal(t, "ca_cert_file", config.CACertFile)
+	assert.Equal(t, "tls_cert_file", config.TLSCertFile)
+	assert.Equal(t, "tls_server_name", config.TLSServerName)
+	assert.Equal(t, "tls_key_file", config.TLSKeyFile)
+	assert.Equal(t, constant.TLSConfigPrefix, config.Prefix())
 
 }
diff --git a/config/tracing_config_test.go b/config/tracing_config_test.go
index 0a04ea315..ab89f4c0e 100644
--- a/config/tracing_config_test.go
+++ b/config/tracing_config_test.go
@@ -23,6 +23,7 @@ import (
 
 import (
 	"github.com/stretchr/testify/assert"
+	"github.com/stretchr/testify/require"
 )
 
 import (
@@ -33,8 +34,8 @@ func TestTracingConfig(t *testing.T) {
 
 	tracing := &TracingConfig{}
 	err := tracing.Init()
-	assert.Nil(t, err)
-	assert.Equal(t, tracing.Prefix(), constant.TracingConfigPrefix)
-	assert.Equal(t, tracing.Name, "jaeger")
-	assert.Equal(t, *tracing.UseAgent, false)
+	require.NoError(t, err)
+	assert.Equal(t, constant.TracingConfigPrefix, tracing.Prefix())
+	assert.Equal(t, "jaeger", tracing.Name)
+	assert.False(t, *tracing.UseAgent)
 }
diff --git a/config_center/apollo/impl_test.go b/config_center/apollo/impl_test.go
index a3fee2de2..606122f7e 100644
--- a/config_center/apollo/impl_test.go
+++ b/config_center/apollo/impl_test.go
@@ -39,6 +39,7 @@ import (
 	"github.com/spf13/viper"
 
 	"github.com/stretchr/testify/assert"
+	"github.com/stretchr/testify/require"
 )
 
 import (
@@ -145,13 +146,13 @@ func runMockConfigServer() *httptest.Server {
 func TestGetConfig(t *testing.T) {
 	configuration := initMockApollo(t)
 	configs, err := configuration.GetProperties(mockNamespace, config_center.WithGroup("dubbo"))
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	koan := koanf.New(".")
 	err = koan.Load(rawbytes.Provider([]byte(configs)), yaml.Parser())
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	rc := &config.RootConfig{}
 	err = koan.UnmarshalWithConf(rc.Prefix(), rc, koanf.UnmarshalConf{Tag: "yaml"})
-	assert.NoError(t, err)
+	require.NoError(t, err)
 
 	assert.Equal(t, "demo-server", rc.Application.Name)
 }
@@ -159,13 +160,13 @@ func TestGetConfig(t *testing.T) {
 func TestGetJsonConfig(t *testing.T) {
 	configuration := initMockApollo(t)
 	configs, err := configuration.GetProperties(mockJsonNamespace, config_center.WithGroup("dubbo"))
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	koan := koanf.New(":")
 	err = koan.Load(rawbytes.Provider([]byte(configs)), json.Parser())
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	rc := &config.RootConfig{}
 	err = koan.UnmarshalWithConf(rc.Prefix(), rc, koanf.UnmarshalConf{Tag: "json"})
-	assert.NoError(t, err)
+	require.NoError(t, err)
 
 	assert.Equal(t, "demo-server", rc.Application.Name)
 }
@@ -173,7 +174,7 @@ func TestGetJsonConfig(t *testing.T) {
 func TestGetConfigItem(t *testing.T) {
 	configuration := initMockApollo(t)
 	appName, err := configuration.GetInternalProperty("dubbo.application.name")
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	assert.Equal(t, "demo-server", appName)
 }
 
@@ -194,9 +195,9 @@ func initMockApollo(t *testing.T) *apolloConfiguration {
 	apollo := initApollo()
 	apolloUrl := strings.ReplaceAll(apollo.URL, "http", "apollo")
 	url, err := common.NewURL(apolloUrl, common.WithParams(c.ConfigCenter.GetUrlMap()))
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	configuration, err := newApolloConfiguration(url)
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	return configuration
 }
 
@@ -217,7 +218,7 @@ func TestListener(t *testing.T) {
 	apollo.AddListener(mockNamespace, listener)
 	listener.wg.Wait()
 	assert.Equal(t, "mockDubbogo.yaml", listener.event)
-	assert.Greater(t, listener.count, 0)
+	assert.Positive(t, listener.count)
 
 	// test remove
 	apollo.RemoveListener(mockNamespace, listener)
@@ -230,7 +231,7 @@ func TestListener(t *testing.T) {
 		}
 		return true
 	})
-	assert.Equal(t, listenerCount, 0)
+	assert.Equal(t, 0, listenerCount)
 }
 
 type apolloDataListener struct {
diff --git a/config_center/configurator/override_test.go b/config_center/configurator/override_test.go
index 675800f13..52bfbaaed 100644
--- a/config_center/configurator/override_test.go
+++ b/config_center/configurator/override_test.go
@@ -23,6 +23,7 @@ import (
 
 import (
 	"github.com/stretchr/testify/assert"
+	"github.com/stretchr/testify/require"
 )
 
 import (
@@ -40,47 +41,47 @@ const (
 
 func TestConfigureVersion2p6(t *testing.T) {
 	url, err := common.NewURL("override://0.0.0.0:0/com.xxx.mock.userProvider?group=1&version=1&cluster=failfast&application=BDTService")
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	configurator := extension.GetConfigurator(defaults, url)
 	assert.Equal(t, override, configurator.GetUrl().Protocol)
 
 	providerUrl, err := common.NewURL("jsonrpc://127.0.0.1:20001/com.ikurento.user.UserProvider?anyhost=true&app.version=0.0.1&application=BDTService&category=providers&cluster=failover&dubbo=dubbo-provider-golang-2.6.0&environment=dev&group=&interface=com.ikurento.user.UserProvider&ip=10.32.20.124&loadbalance=random&methods.GetUser.loadbalance=random&methods.GetUser.retries=1&methods.GetUser.weight=0&module=dubbogo+user-info+server&name=BDTService&organization=ikurento.com&owner=ZX&pid=642 [...]
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	configurator.Configure(providerUrl)
 	assert.Equal(t, failfast, providerUrl.GetParam(constant.ClusterKey, ""))
 }
 
 func TestConfigureVersionOverrideAddr(t *testing.T) {
 	url, err := common.NewURL("override://0.0.0.0:0/com.xxx.mock.userProvider?group=1&version=1&cluster=failfast&application=BDTService&providerAddresses=127.0.0.2:20001|127.0.0.3:20001")
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	configurator := extension.GetConfigurator(defaults, url)
 	assert.Equal(t, override, configurator.GetUrl().Protocol)
 
 	providerUrl, err := common.NewURL("jsonrpc://127.0.0.1:20001/com.ikurento.user.UserProvider?anyhost=true&app.version=0.0.1&application=BDTService&category=providers&cluster=failover&dubbo=dubbo-provider-golang-2.6.0&environment=dev&group=&interface=com.ikurento.user.UserProvider&ip=10.32.20.124&loadbalance=random&methods.GetUser.loadbalance=random&methods.GetUser.retries=1&methods.GetUser.weight=0&module=dubbogo+user-info+server&name=BDTService&organization=ikurento.com&owner=ZX&pid=642 [...]
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	configurator.Configure(providerUrl)
 	assert.Equal(t, failover, providerUrl.GetParam(constant.ClusterKey, ""))
 }
 
 func TestConfigureVersion2p6WithIp(t *testing.T) {
 	url, err := common.NewURL("override://127.0.0.1:20001/com.xxx.mock.userProvider?group=1&version=1&cluster=failfast&application=BDTService")
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	configurator := extension.GetConfigurator(defaults, url)
 	assert.Equal(t, override, configurator.GetUrl().Protocol)
 
 	providerUrl, err := common.NewURL("jsonrpc://127.0.0.1:20001/com.ikurento.user.UserProvider?anyhost=true&app.version=0.0.1&application=BDTService&category=providers&cluster=failover&dubbo=dubbo-provider-golang-2.6.0&environment=dev&group=&interface=com.ikurento.user.UserProvider&ip=10.32.20.124&loadbalance=random&methods.GetUser.loadbalance=random&methods.GetUser.retries=1&methods.GetUser.weight=0&module=dubbogo+user-info+server&name=BDTService&organization=ikurento.com&owner=ZX&pid=642 [...]
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	configurator.Configure(providerUrl)
 	assert.Equal(t, failfast, providerUrl.GetParam(constant.ClusterKey, ""))
 }
 
 func TestConfigureVersion2p7(t *testing.T) {
 	url, err := common.NewURL("jsonrpc://0.0.0.0:20001/com.xxx.mock.userProvider?group=1&version=1&cluster=failfast&application=BDTService&configVersion=1.0&side=provider")
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	configurator := extension.GetConfigurator(defaults, url)
 
 	providerUrl, err := common.NewURL("jsonrpc://127.0.0.1:20001/com.ikurento.user.UserProvider?anyhost=true&app.version=0.0.1&application=BDTService&category=providers&cluster=failover&dubbo=dubbo-provider-golang-2.6.0&environment=dev&group=&interface=com.ikurento.user.UserProvider&ip=10.32.20.124&loadbalance=random&methods.GetUser.loadbalance=random&methods.GetUser.retries=1&methods.GetUser.weight=0&module=dubbogo+user-info+server&name=BDTService&organization=ikurento.com&owner=ZX&pid=642 [...]
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	configurator.Configure(providerUrl)
 	assert.Equal(t, failfast, providerUrl.GetParam(constant.ClusterKey, ""))
 }
diff --git a/config_center/dynamic_configuration_test.go b/config_center/dynamic_configuration_test.go
index fa400778e..f3eded982 100644
--- a/config_center/dynamic_configuration_test.go
+++ b/config_center/dynamic_configuration_test.go
@@ -24,6 +24,7 @@ import (
 
 import (
 	"github.com/stretchr/testify/assert"
+	"github.com/stretchr/testify/require"
 )
 
 import (
@@ -42,6 +43,6 @@ func TestWithTimeout(t *testing.T) {
 
 func TestGetRuleKey(t *testing.T) {
 	url, err := common.NewURL("dubbo://192.168.1.1:20000/com.ikurento.user.UserProvider?interface=test&group=groupA&version=0")
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	assert.Equal(t, "test:0:groupA", GetRuleKey(url))
 }
diff --git a/config_center/file/impl_test.go b/config_center/file/impl_test.go
index 9696fd83b..355614e70 100644
--- a/config_center/file/impl_test.go
+++ b/config_center/file/impl_test.go
@@ -26,6 +26,7 @@ import (
 
 import (
 	"github.com/stretchr/testify/assert"
+	"github.com/stretchr/testify/require"
 )
 
 import (
@@ -41,23 +42,23 @@ const (
 func initFileData(t *testing.T) (*FileSystemDynamicConfiguration, error) {
 	urlString := "registry://127.0.0.1:2181"
 	regurl, err := common.NewURL(urlString)
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	factory, err := extension.GetConfigCenterFactory("file")
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	dc, err := factory.GetDynamicConfiguration(regurl)
-	assert.NoError(t, err)
+	require.NoError(t, err)
 
 	return dc.(*FileSystemDynamicConfiguration), err
 }
 
 func TestPublishAndGetConfig(t *testing.T) {
 	file, err := initFileData(t)
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	err = file.PublishConfig(key, "", "A")
-	assert.NoError(t, err)
+	require.NoError(t, err)
 
 	prop, err := file.GetProperties(key)
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	assert.Equal(t, "A", prop)
 
 	defer destroy(file.rootPath, file)
@@ -65,18 +66,18 @@ func TestPublishAndGetConfig(t *testing.T) {
 
 func TestAddListener(t *testing.T) {
 	file, err := initFileData(t)
-	assert.Nil(t, err)
+	require.NoError(t, err)
 	group := "dubbogo"
 	value := "Test Value"
 	err = file.PublishConfig(key, group, value)
-	assert.NoError(t, err)
+	require.NoError(t, err)
 
 	listener := &mockDataListener{}
 	file.AddListener(key, listener, config_center.WithGroup(group))
 
 	value = "Test Value 2"
 	err = file.PublishConfig(key, group, value)
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	// remove need wait a moment
 	time.Sleep(time.Second)
 	defer destroy(file.rootPath, file)
@@ -84,25 +85,25 @@ func TestAddListener(t *testing.T) {
 
 func TestRemoveListener(t *testing.T) {
 	file, err := initFileData(t)
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	group := "dubbogo"
 	value := "Test Value"
 	err = file.PublishConfig(key, group, value)
-	assert.NoError(t, err)
+	require.NoError(t, err)
 
 	listener := &mockDataListener{}
 	file.AddListener(key, listener, config_center.WithGroup(group))
 
 	value = "Test Value 2"
 	err = file.PublishConfig(key, group, value)
-	assert.NoError(t, err)
+	require.NoError(t, err)
 
 	// make sure callback before RemoveListener
 	time.Sleep(time.Second)
 	file.RemoveListener(key, listener, config_center.WithGroup(group))
 	value = "Test Value 3"
 	err = file.PublishConfig(key, group, value)
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	// remove need wait a moment
 	time.Sleep(time.Second)
 	defer destroy(file.rootPath, file)
@@ -110,13 +111,13 @@ func TestRemoveListener(t *testing.T) {
 
 func TestGetConfigKeysByGroup(t *testing.T) {
 	file, err := initFileData(t)
-	assert.Nil(t, err)
+	require.NoError(t, err)
 	group := "dubbogo"
 	value := "Test Value"
 	err = file.PublishConfig(key, group, value)
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	gs, err := file.GetConfigKeysByGroup(group)
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	assert.Equal(t, 1, gs.Size())
 	assert.Equal(t, key, gs.Values()[0])
 	// remove need wait a moment
@@ -126,26 +127,26 @@ func TestGetConfigKeysByGroup(t *testing.T) {
 
 func TestGetConfig(t *testing.T) {
 	file, err := initFileData(t)
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	group := "dubbogo"
 	value := "Test Value"
 	err = file.PublishConfig(key, group, value)
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	prop, err := file.GetProperties(key, config_center.WithGroup(group))
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	assert.Equal(t, value, prop)
 	defer destroy(file.rootPath, file)
 }
 
 func TestPublishConfig(t *testing.T) {
 	file, err := initFileData(t)
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	group := "dubbogo"
 	value := "Test Value"
 	err = file.PublishConfig(key, group, value)
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	prop, err := file.GetInternalProperty(key, config_center.WithGroup(group))
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	assert.Equal(t, value, prop)
 	defer destroy(file.rootPath, file)
 }
diff --git a/config_center/nacos/client_test.go b/config_center/nacos/client_test.go
index fe63f434b..1f7d91f8b 100644
--- a/config_center/nacos/client_test.go
+++ b/config_center/nacos/client_test.go
@@ -24,7 +24,7 @@ import (
 )
 
 import (
-	"github.com/stretchr/testify/assert"
+	"github.com/stretchr/testify/require"
 )
 
 import (
@@ -48,7 +48,7 @@ func TestNewNacosClient(t *testing.T) {
 		done: make(chan struct{}),
 	}
 	err := ValidateNacosClient(c)
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	c.wg.Add(1)
 	go HandleClientRestart(c)
 	go func() {
@@ -79,7 +79,7 @@ func TestSetNacosClient(t *testing.T) {
 	}
 
 	err := ValidateNacosClient(c)
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	c.wg.Add(1)
 	go HandleClientRestart(c)
 	go func() {
@@ -102,13 +102,13 @@ func TestNewNacosClient_connectError(t *testing.T) {
 
 	registryUrl, err := common.NewURL("registry://127.0.0.1:8848", common.WithParams(params))
 
-	assert.Nil(t, err)
+	require.NoError(t, err)
 	c := &nacosDynamicConfiguration{
 		url:  registryUrl,
 		done: make(chan struct{}),
 	}
 	err = ValidateNacosClient(c)
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	c.wg.Add(1)
 	go HandleClientRestart(c)
 	go func() {
diff --git a/config_center/parser/configuration_parser_test.go b/config_center/parser/configuration_parser_test.go
index ffffc8463..c9417f867 100644
--- a/config_center/parser/configuration_parser_test.go
+++ b/config_center/parser/configuration_parser_test.go
@@ -23,13 +23,14 @@ import (
 
 import (
 	"github.com/stretchr/testify/assert"
+	"github.com/stretchr/testify/require"
 )
 
 func TestDefaultConfigurationParserParser(t *testing.T) {
 	parser := &DefaultConfigurationParser{}
 	m, err := parser.Parse("dubbo.registry.address=172.0.0.1\ndubbo.registry.name=test")
-	assert.NoError(t, err)
-	assert.Equal(t, 2, len(m))
+	require.NoError(t, err)
+	assert.Len(t, m, 2)
 	assert.Equal(t, "172.0.0.1", m["dubbo.registry.address"])
 }
 
@@ -52,8 +53,8 @@ configs:
     cluster: mock1
   side: provider`
 	urls, err := parser.ParseToUrls(content)
-	assert.NoError(t, err)
-	assert.Equal(t, 1, len(urls))
+	require.NoError(t, err)
+	assert.Len(t, urls, 1)
 	assert.Equal(t, "org.apache.dubbo-go.mockService", urls[0].GetParam("application", ""))
 	assert.Equal(t, "mock1", urls[0].GetParam("cluster", ""))
 	assert.Equal(t, "override", urls[0].Protocol)
@@ -107,8 +108,8 @@ configs:
     cluster: mock1
   side: provider`
 	urls, err := parser.ParseToUrls(content)
-	assert.NoError(t, err)
-	assert.Equal(t, 1, len(urls))
+	require.NoError(t, err)
+	assert.Len(t, urls, 1)
 	assert.Equal(t, "groupA", urls[0].GetParam("group", ""))
 	assert.Equal(t, "/test", urls[0].Path)
 	assert.Equal(t, "mock1", urls[0].GetParam("cluster", ""))
diff --git a/filter/accesslog/filter_test.go b/filter/accesslog/filter_test.go
index 9c65a85ea..96a4ccd9f 100644
--- a/filter/accesslog/filter_test.go
+++ b/filter/accesslog/filter_test.go
@@ -52,7 +52,7 @@ func TestFilter_Invoke_Not_Config(t *testing.T) {
 
 	filter := &Filter{}
 	invokeResult := filter.Invoke(context.Background(), invoker, inv)
-	assert.Nil(t, invokeResult.Error())
+	assert.NoError(t, invokeResult.Error())
 }
 
 func TestFilterInvokeDefaultConfig(t *testing.T) {
@@ -73,7 +73,7 @@ func TestFilterInvokeDefaultConfig(t *testing.T) {
 
 	filter := &Filter{}
 	invokeResult := filter.Invoke(context.Background(), invoker, inv)
-	assert.Nil(t, invokeResult.Error())
+	assert.NoError(t, invokeResult.Error())
 }
 
 func TestFilterOnResponse(t *testing.T) {
diff --git a/filter/active/filter_test.go b/filter/active/filter_test.go
index a864d27c5..f70bee173 100644
--- a/filter/active/filter_test.go
+++ b/filter/active/filter_test.go
@@ -29,6 +29,7 @@ import (
 	"github.com/golang/mock/gomock"
 
 	"github.com/stretchr/testify/assert"
+	"github.com/stretchr/testify/require"
 )
 
 import (
@@ -50,7 +51,7 @@ func TestFilterInvoke(t *testing.T) {
 	invoker.EXPECT().Invoke(gomock.Any(), gomock.Any()).Return(nil)
 	invoker.EXPECT().GetURL().Return(url).Times(1)
 	filter.Invoke(context.Background(), invoker, invoc)
-	assert.True(t, invoc.GetAttachmentWithDefaultValue(dubboInvokeStartTime, "") != "")
+	assert.NotEmpty(t, invoc.GetAttachmentWithDefaultValue(dubboInvokeStartTime, ""))
 }
 
 func TestFilterOnResponse(t *testing.T) {
@@ -78,10 +79,10 @@ func TestFilterOnResponse(t *testing.T) {
 	assert.Equal(t, int32(1), urlStatus.GetFailed())
 	assert.Equal(t, int32(1), methodStatus.GetSuccessiveRequestFailureCount())
 	assert.Equal(t, int32(1), urlStatus.GetSuccessiveRequestFailureCount())
-	assert.True(t, methodStatus.GetFailedElapsed() >= int64(elapsed))
-	assert.True(t, urlStatus.GetFailedElapsed() >= int64(elapsed))
-	assert.True(t, urlStatus.GetLastRequestFailedTimestamp() != int64(0))
-	assert.True(t, methodStatus.GetLastRequestFailedTimestamp() != int64(0))
+	assert.GreaterOrEqual(t, methodStatus.GetFailedElapsed(), int64(elapsed))
+	assert.GreaterOrEqual(t, urlStatus.GetFailedElapsed(), int64(elapsed))
+	assert.NotEqual(t, int64(0), urlStatus.GetLastRequestFailedTimestamp())
+	assert.NotEqual(t, int64(0), methodStatus.GetLastRequestFailedTimestamp())
 }
 
 func TestFilterOnResponseWithDefer(t *testing.T) {
@@ -114,8 +115,8 @@ func TestFilterOnResponseWithDefer(t *testing.T) {
 		assert.Equal(t, int32(0), urlStatus.GetFailed())
 		assert.Equal(t, int32(0), methodStatus.GetSuccessiveRequestFailureCount())
 		assert.Equal(t, int32(0), urlStatus.GetSuccessiveRequestFailureCount())
-		assert.True(t, methodStatus.GetTotalElapsed() >= int64(0))
-		assert.True(t, urlStatus.GetTotalElapsed() >= int64(0))
+		assert.GreaterOrEqual(t, methodStatus.GetTotalElapsed(), int64(0))
+		assert.GreaterOrEqual(t, urlStatus.GetTotalElapsed(), int64(0))
 	})
 
 	// Test scenario 2: dubboInvokeStartTime is parsed successfully, but the result is incorrect
@@ -147,10 +148,10 @@ func TestFilterOnResponseWithDefer(t *testing.T) {
 		assert.Equal(t, int32(1), urlStatus.GetFailed())
 		assert.Equal(t, int32(1), methodStatus.GetSuccessiveRequestFailureCount())
 		assert.Equal(t, int32(1), urlStatus.GetSuccessiveRequestFailureCount())
-		assert.True(t, methodStatus.GetFailedElapsed() >= int64(0))
-		assert.True(t, urlStatus.GetFailedElapsed() >= int64(0))
-		assert.True(t, urlStatus.GetLastRequestFailedTimestamp() != int64(0))
-		assert.True(t, methodStatus.GetLastRequestFailedTimestamp() != int64(0))
+		assert.GreaterOrEqual(t, methodStatus.GetFailedElapsed(), int64(0))
+		assert.GreaterOrEqual(t, urlStatus.GetFailedElapsed(), int64(0))
+		assert.NotEqual(t, int64(0), urlStatus.GetLastRequestFailedTimestamp())
+		assert.NotEqual(t, int64(0), methodStatus.GetLastRequestFailedTimestamp())
 	})
 
 	// Test Scenario 3: dubboInvokeStartTime parsing failed (non-numeric string)
@@ -169,7 +170,7 @@ func TestFilterOnResponseWithDefer(t *testing.T) {
 		rpcResult := &result.RPCResult{}
 
 		result := filter.OnResponse(context.TODO(), rpcResult, invoker, invoc)
-		assert.NotNil(t, result.Error())
+		require.Error(t, result.Error())
 
 		methodStatus := base.GetMethodStatus(url, "test3")
 		urlStatus := base.GetURLStatus(url)
@@ -181,8 +182,8 @@ func TestFilterOnResponseWithDefer(t *testing.T) {
 		assert.Equal(t, int32(1), urlStatus.GetFailed())
 		assert.Equal(t, int32(1), methodStatus.GetSuccessiveRequestFailureCount())
 		assert.Equal(t, int32(1), urlStatus.GetSuccessiveRequestFailureCount())
-		assert.True(t, methodStatus.GetFailedElapsed() >= int64(1))
-		assert.True(t, urlStatus.GetFailedElapsed() >= int64(1))
+		assert.GreaterOrEqual(t, methodStatus.GetFailedElapsed(), int64(1))
+		assert.GreaterOrEqual(t, urlStatus.GetFailedElapsed(), int64(1))
 	})
 
 	// Test scenario 4: dubboInvokeStartTime does not exist (use the default value 0)
@@ -209,7 +210,7 @@ func TestFilterOnResponseWithDefer(t *testing.T) {
 		assert.Equal(t, int32(0), urlStatus.GetFailed())
 		assert.Equal(t, int32(0), methodStatus.GetSuccessiveRequestFailureCount())
 		assert.Equal(t, int32(0), urlStatus.GetSuccessiveRequestFailureCount())
-		assert.True(t, methodStatus.GetTotalElapsed() > int64(0))
-		assert.True(t, urlStatus.GetTotalElapsed() > int64(0))
+		assert.Positive(t, methodStatus.GetTotalElapsed())
+		assert.Positive(t, urlStatus.GetTotalElapsed())
 	})
 }
diff --git a/filter/adaptivesvc/filter_test.go b/filter/adaptivesvc/filter_test.go
index c95f6dffd..29eb2d8a5 100644
--- a/filter/adaptivesvc/filter_test.go
+++ b/filter/adaptivesvc/filter_test.go
@@ -26,6 +26,7 @@ import (
 	"github.com/golang/mock/gomock"
 
 	"github.com/stretchr/testify/assert"
+	"github.com/stretchr/testify/require"
 )
 
 import (
@@ -62,7 +63,7 @@ func TestAdaptiveServiceProviderFilter_Invoke(t *testing.T) {
 		invoker.EXPECT().Invoke(gomock.Any(), gomock.Any()).Return(&result.RPCResult{Rest: "ok"})
 
 		res := filter.Invoke(context.Background(), invoker, invoc)
-		assert.Nil(t, res.Error())
+		assert.NoError(t, res.Error())
 	})
 
 	t.Run("AdaptiveEnabled_AcquireSuccess", func(t *testing.T) {
@@ -74,7 +75,7 @@ func TestAdaptiveServiceProviderFilter_Invoke(t *testing.T) {
 		invoker.EXPECT().Invoke(gomock.Any(), gomock.Any()).Return(&result.RPCResult{Rest: "ok"})
 
 		res := filter.Invoke(context.Background(), invoker, invoc)
-		assert.Nil(t, res.Error())
+		require.NoError(t, res.Error())
 
 		updater, _ := invoc.GetAttribute(constant.AdaptiveServiceUpdaterKey)
 		assert.NotNil(t, updater)
@@ -122,7 +123,7 @@ func TestAdaptiveServiceProviderFilter_OnResponse(t *testing.T) {
 
 		ret := filter.OnResponse(context.Background(), res, invoker, invoc)
 
-		assert.Nil(t, ret.Error())
+		require.NoError(t, ret.Error())
 		assert.NotEmpty(t, ret.Attachment(constant.AdaptiveServiceRemainingKey, ""))
 		assert.NotEmpty(t, ret.Attachment(constant.AdaptiveServiceInflightKey, ""))
 		assert.True(t, updater.called)
diff --git a/filter/adaptivesvc/limiter/hill_climbing_test.go b/filter/adaptivesvc/limiter/hill_climbing_test.go
index 7ad75666c..24df9f422 100644
--- a/filter/adaptivesvc/limiter/hill_climbing_test.go
+++ b/filter/adaptivesvc/limiter/hill_climbing_test.go
@@ -23,6 +23,7 @@ import (
 
 import (
 	"github.com/stretchr/testify/assert"
+	"github.com/stretchr/testify/require"
 )
 
 // Test for HillClimbing limiter's Acquire method
@@ -35,7 +36,7 @@ func TestHillClimbing_Acquire(t *testing.T) {
 
 	updater, err := limiter.Acquire()
 	assert.NotNil(t, updater)
-	assert.NoError(t, err)
+	require.NoError(t, err)
 
 	// Simulating no remaining capacity
 	limiter.limitation.Store(50)
@@ -43,7 +44,7 @@ func TestHillClimbing_Acquire(t *testing.T) {
 
 	updater, err = limiter.Acquire()
 	assert.Nil(t, updater)
-	assert.Error(t, err, ErrReachLimitation)
+	assert.ErrorIs(t, err, ErrReachLimitation)
 }
 
 // Test the HillClimbingUpdater's DoUpdate method
@@ -64,13 +65,13 @@ func TestHillClimbingUpdater_AdjustLimitation(t *testing.T) {
 
 	// Simulate a scenario where the limiter is set to extend its capacity
 	err := updater.adjustLimitation(HillClimbingOptionExtend)
-	assert.NoError(t, err)
-	assert.True(t, limiter.limitation.Load() > initialLimitation)
+	require.NoError(t, err)
+	assert.Greater(t, limiter.limitation.Load(), initialLimitation)
 
 	// Simulate a scenario where the limiter is set to shrink its capacity
 	err = updater.adjustLimitation(HillClimbingOptionShrink)
-	assert.NoError(t, err)
-	assert.True(t, limiter.limitation.Load() < initialLimitation)
+	require.NoError(t, err)
+	assert.Less(t, limiter.limitation.Load(), initialLimitation)
 }
 
 // Test HillClimbing's Remaining capacity behavior
diff --git a/filter/adaptivesvc/limiter_mapper_test.go b/filter/adaptivesvc/limiter_mapper_test.go
index 13ef47f82..51cddc787 100644
--- a/filter/adaptivesvc/limiter_mapper_test.go
+++ b/filter/adaptivesvc/limiter_mapper_test.go
@@ -23,6 +23,7 @@ import (
 
 import (
 	"github.com/stretchr/testify/assert"
+	"github.com/stretchr/testify/require"
 )
 
 import (
@@ -38,12 +39,12 @@ func TestLimiterMapper_newAndSetMethodLimiter(t *testing.T) {
 
 	// Test creating a new limiter
 	l, err := mapper.newAndSetMethodLimiter(url, methodName, limiter.HillClimbingLimiter)
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	assert.NotNil(t, l)
 
 	// Test that the same limiter is returned if already created
 	l2, err := mapper.newAndSetMethodLimiter(url, methodName, limiter.HillClimbingLimiter)
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	assert.Same(t, l, l2)
 }
 
@@ -55,17 +56,17 @@ func TestLimiterMapper_getMethodLimiter(t *testing.T) {
 
 	// Add a limiter to the mapper
 	_, err := mapper.newAndSetMethodLimiter(url, methodName, limiter.HillClimbingLimiter)
-	assert.NoError(t, err)
+	require.NoError(t, err)
 
 	// Test getting an existing limiter
 	l, err := mapper.getMethodLimiter(url, methodName)
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	assert.NotNil(t, l)
 
 	// Test getting a limiter that does not exist
 	url2 := &common.URL{Path: "/testService2"}
 	l, err = mapper.getMethodLimiter(url2, "nonExistentMethod")
-	assert.Error(t, err)
+	require.Error(t, err)
 	assert.Nil(t, l)
 	assert.Equal(t, ErrLimiterNotFoundOnMapper, err)
 }
diff --git a/filter/auth/default_authenticator_test.go b/filter/auth/default_authenticator_test.go
index dd24d63a5..0a44bc46a 100644
--- a/filter/auth/default_authenticator_test.go
+++ b/filter/auth/default_authenticator_test.go
@@ -27,6 +27,7 @@ import (
 
 import (
 	"github.com/stretchr/testify/assert"
+	"github.com/stretchr/testify/require"
 )
 
 import (
@@ -59,7 +60,7 @@ func TestDefaultAuthenticator_Authenticate(t *testing.T) {
 		constant.AKKey:               access,
 	})
 	err := authenticator.Authenticate(rpcInvocation, testUrl)
-	assert.Nil(t, err)
+	require.NoError(t, err)
 	// modify the params
 	rpcInvocation = invocation.NewRPCInvocation("test", params[:1], map[string]any{
 		constant.RequestSignatureKey: signature,
@@ -68,7 +69,7 @@ func TestDefaultAuthenticator_Authenticate(t *testing.T) {
 		constant.AKKey:               access,
 	})
 	err = authenticator.Authenticate(rpcInvocation, testUrl)
-	assert.NotNil(t, err)
+	require.Error(t, err)
 }
 
 func TestDefaultAuthenticator_Sign(t *testing.T) {
@@ -79,10 +80,10 @@ func TestDefaultAuthenticator_Sign(t *testing.T) {
 	testUrl.SetParam(constant.ParameterSignatureEnableKey, "false")
 	inv := invocation.NewRPCInvocation("test", []any{"OK"}, nil)
 	_ = authenticator.Sign(inv, testUrl)
-	assert.NotEqual(t, inv.GetAttachmentWithDefaultValue(constant.RequestSignatureKey, ""), "")
-	assert.NotEqual(t, inv.GetAttachmentWithDefaultValue(constant.Consumer, ""), "")
-	assert.NotEqual(t, inv.GetAttachmentWithDefaultValue(constant.RequestTimestampKey, ""), "")
-	assert.Equal(t, inv.GetAttachmentWithDefaultValue(constant.AKKey, ""), "akey")
+	assert.NotEmpty(t, inv.GetAttachmentWithDefaultValue(constant.RequestSignatureKey, ""))
+	assert.NotEmpty(t, inv.GetAttachmentWithDefaultValue(constant.Consumer, ""))
+	assert.NotEmpty(t, inv.GetAttachmentWithDefaultValue(constant.RequestTimestampKey, ""))
+	assert.Equal(t, "akey", inv.GetAttachmentWithDefaultValue(constant.AKKey, ""))
 }
 
 func TestDefaultAuthenticator_SignNotAccessKeyIDKeyError(t *testing.T) {
@@ -92,7 +93,7 @@ func TestDefaultAuthenticator_SignNotAccessKeyIDKeyError(t *testing.T) {
 	testUrl.SetParam(constant.ParameterSignatureEnableKey, "false")
 	inv := invocation.NewRPCInvocation("test", []any{"OK"}, nil)
 	err := authenticator.Sign(inv, testUrl)
-	assert.NotNil(t, err)
+	require.Error(t, err)
 }
 
 func Test_getAccessKeyPairSuccess(t *testing.T) {
@@ -102,7 +103,7 @@ func Test_getAccessKeyPairSuccess(t *testing.T) {
 		common.WithParamsValue(constant.AccessKeyIDKey, "akey"))
 	rpcInvocation := invocation.NewRPCInvocation("MethodName", []any{"OK"}, nil)
 	_, e := getAccessKeyPair(rpcInvocation, testUrl)
-	assert.Nil(t, e)
+	require.NoError(t, e)
 }
 
 func Test_getAccessKeyPairFailed(t *testing.T) {
@@ -111,14 +112,14 @@ func Test_getAccessKeyPairFailed(t *testing.T) {
 		common.WithParamsValue(constant.AccessKeyIDKey, "akey"))
 	rpcInvocation := invocation.NewRPCInvocation("MethodName", []any{"OK"}, nil)
 	_, e := getAccessKeyPair(rpcInvocation, testUrl)
-	assert.NotNil(t, e)
+	require.Error(t, e)
 	testUrl = common.NewURLWithOptions(
 		common.WithParams(url.Values{}),
 		common.WithParamsValue(constant.SecretAccessKeyKey, "skey"),
 		common.WithParamsValue(constant.AccessKeyIDKey, "akey"),
 		common.WithParamsValue(constant.AccessKeyStorageKey, "dubbo"))
 	_, e = getAccessKeyPair(rpcInvocation, testUrl)
-	assert.NotNil(t, e)
+	require.Error(t, e)
 	assert.Contains(t, e.Error(), "accessKeyStorages for dubbo is not existing")
 }
 
diff --git a/filter/auth/sign_util_test.go b/filter/auth/sign_util_test.go
index 80b25dd04..c5d76d9b2 100644
--- a/filter/auth/sign_util_test.go
+++ b/filter/auth/sign_util_test.go
@@ -23,6 +23,7 @@ import (
 
 import (
 	"github.com/stretchr/testify/assert"
+	"github.com/stretchr/testify/require"
 )
 
 func TestIsEmpty(t *testing.T) {
@@ -80,7 +81,7 @@ func TestSignWithParams(t *testing.T) {
 		}{"YuYu", 1},
 	}
 	signature, err := SignWithParams(params, metadata, key)
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	assert.False(t, IsEmpty(signature, false))
 }
 
@@ -107,10 +108,10 @@ func Test_toBytes(t *testing.T) {
 		}{"YuYu", 1},
 	}
 	jsonBytes, err := toBytes(params)
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	assert.NotNil(t, jsonBytes)
 	jsonBytes2, err2 := toBytes(params2)
-	assert.NoError(t, err2)
+	require.NoError(t, err2)
 	assert.NotNil(t, jsonBytes2)
-	assert.Equal(t, jsonBytes, jsonBytes2)
+	assert.JSONEq(t, string(jsonBytes), string(jsonBytes2))
 }
diff --git a/filter/echo/filter_test.go b/filter/echo/filter_test.go
index 53d4cc8ef..d7fffa941 100644
--- a/filter/echo/filter_test.go
+++ b/filter/echo/filter_test.go
@@ -24,6 +24,7 @@ import (
 
 import (
 	"github.com/stretchr/testify/assert"
+	"github.com/stretchr/testify/require"
 )
 
 import (
@@ -38,6 +39,6 @@ func TestFilterInvoke(t *testing.T) {
 	assert.Equal(t, "OK", result.Result())
 
 	result = filter.Invoke(context.Background(), base.NewBaseInvoker(&common.URL{}), invocation.NewRPCInvocation("MethodName", []any{"OK"}, nil))
-	assert.Nil(t, result.Error())
+	require.NoError(t, result.Error())
 	assert.Nil(t, result.Result())
 }
diff --git a/filter/exec_limit/filter_test.go b/filter/exec_limit/filter_test.go
index 93322260f..be84af981 100644
--- a/filter/exec_limit/filter_test.go
+++ b/filter/exec_limit/filter_test.go
@@ -46,7 +46,7 @@ func TestFilterInvokeIgnored(t *testing.T) {
 
 	result := limitFilter.Invoke(context.Background(), base.NewBaseInvoker(invokeUrl), invoc)
 	assert.NotNil(t, result)
-	assert.Nil(t, result.Error())
+	assert.NoError(t, result.Error())
 }
 
 func TestFilterInvokeConfigureError(t *testing.T) {
@@ -64,7 +64,7 @@ func TestFilterInvokeConfigureError(t *testing.T) {
 	result := limitFilter.Invoke(context.Background(), base.NewBaseInvoker(invokeUrl), invoc)
 
 	assert.NotNil(t, result)
-	assert.Nil(t, result.Error())
+	assert.NoError(t, result.Error())
 }
 
 func TestFilterInvoke(t *testing.T) {
@@ -81,5 +81,5 @@ func TestFilterInvoke(t *testing.T) {
 
 	result := limitFilter.Invoke(context.Background(), base.NewBaseInvoker(invokeUrl), invoc)
 	assert.NotNil(t, result)
-	assert.Nil(t, result.Error())
+	assert.NoError(t, result.Error())
 }
diff --git a/filter/generic/generalizer/gson_test.go b/filter/generic/generalizer/gson_test.go
index 96006f03b..bcf4c86b6 100644
--- a/filter/generic/generalizer/gson_test.go
+++ b/filter/generic/generalizer/gson_test.go
@@ -24,6 +24,7 @@ import (
 
 import (
 	"github.com/stretchr/testify/assert"
+	"github.com/stretchr/testify/require"
 )
 
 var mockGsonGeneralizer = GetGsonGeneralizer()
@@ -63,11 +64,11 @@ func TestGsonGeneralizer(t *testing.T) {
 	}
 
 	m, err := mockGsonGeneralizer.Generalize(p)
-	assert.Nil(t, err)
-	assert.Equal(t, "{\"Gender\":\"male\",\"Email\":\"enableasync@example.com\",\"Name\":\"enableasync\",\"Age\":30,\"Child\":{\"Gender\":\"male\",\"Email\":\"childName@example.com\",\"Name\":\"childName\",\"Age\":20}}", m)
+	require.NoError(t, err)
+	assert.JSONEq(t, "{\"Gender\":\"male\",\"Email\":\"enableasync@example.com\",\"Name\":\"enableasync\",\"Age\":30,\"Child\":{\"Gender\":\"male\",\"Email\":\"childName@example.com\",\"Name\":\"childName\",\"Age\":20}}", m.(string))
 
 	r, err := mockGsonGeneralizer.Realize(m, reflect.TypeOf(p))
-	assert.Nil(t, err)
+	require.NoError(t, err)
 	rMockParent, ok := r.(*mockGsonParent)
 	assert.True(t, ok)
 	// parent
@@ -87,9 +88,9 @@ func TestGsonPointer(t *testing.T) {
 	}
 
 	m, err := mockMapGeneralizer.Generalize(c)
-	assert.Nil(t, err)
+	require.NoError(t, err)
 	newC, err := mockMapGeneralizer.Realize(m, reflect.TypeOf(c))
-	assert.Nil(t, err)
+	require.NoError(t, err)
 	rMockChild, ok := newC.(*mockGsonChild)
 	assert.True(t, ok)
 	assert.Equal(t, "childName", rMockChild.Name)
diff --git a/filter/generic/generalizer/map_test.go b/filter/generic/generalizer/map_test.go
index c6bd2f372..efcc2a3dd 100644
--- a/filter/generic/generalizer/map_test.go
+++ b/filter/generic/generalizer/map_test.go
@@ -25,6 +25,7 @@ import (
 
 import (
 	"github.com/stretchr/testify/assert"
+	"github.com/stretchr/testify/require"
 )
 
 type testPlainObj struct {
@@ -130,7 +131,7 @@ func TestObjToMap_Map(t *testing.T) {
 	assert.Equal(t, reflect.Map, reflect.TypeOf(mappedStruct["baba"]).Kind())
 	assert.Equal(t, reflect.Map, reflect.TypeOf(mappedStruct["baba"].(map[any]any)["struct"]).Kind())
 	assert.Equal(t, "str", mappedStruct["baba"].(map[any]any)["struct"].(map[string]any)["str"])
-	assert.Equal(t, nil, mappedStruct["baba"].(map[any]any)["nil"])
+	assert.Nil(t, mappedStruct["baba"].(map[any]any)["nil"])
 	assert.Equal(t, reflect.Map, reflect.TypeOf(mappedStruct["caCa"]).Kind())
 	assert.Equal(t, reflect.Map, reflect.TypeOf(mappedStruct["ddDd"]).Kind())
 	intMap := mappedStruct["intMap"]
@@ -175,7 +176,7 @@ func TestPOJOClassName(t *testing.T) {
 	}
 
 	m, err := mockMapGeneralizer.Generalize(p)
-	assert.Nil(t, err)
+	require.NoError(t, err)
 	// parent
 	assert.Equal(t, "xavierniu", m.(map[string]any)["name"].(string))
 	assert.Equal(t, 30, m.(map[string]any)["age"].(int))
@@ -186,7 +187,7 @@ func TestPOJOClassName(t *testing.T) {
 	assert.Equal(t, "org.apache.dubbo.mockChild", m.(map[string]any)["child"].(map[string]any)["class"].(string))
 
 	r, err := mockMapGeneralizer.Realize(m, reflect.TypeOf(p))
-	assert.Nil(t, err)
+	require.NoError(t, err)
 	rMockParent, ok := r.(mockParent)
 	assert.True(t, ok)
 	// parent
@@ -214,14 +215,14 @@ func TestPOJOArray(t *testing.T) {
 	pojoArr := []*mockChild{c1, c2}
 
 	m, err := mockMapGeneralizer.Generalize(pojoArr)
-	assert.Nil(t, err)
+	require.NoError(t, err)
 	assert.Equal(t, "lmc", m.([]any)[0].(map[string]any)["name"].(string))
 	assert.Equal(t, 20, m.([]any)[0].(map[string]any)["age"].(int))
 	assert.Equal(t, "lmc1", m.([]any)[1].(map[string]any)["name"].(string))
 	assert.Equal(t, 21, m.([]any)[1].(map[string]any)["age"].(int))
 
 	r, err := mockMapGeneralizer.Realize(m, reflect.TypeOf(pojoArr))
-	assert.Nil(t, err)
+	require.NoError(t, err)
 	rPojoArr, ok := r.([]*mockChild)
 	assert.True(t, ok)
 	assert.Equal(t, "lmc", rPojoArr[0].Name)
@@ -242,7 +243,7 @@ func TestNullField(t *testing.T) {
 	assert.Nil(t, m.(map[string]any)["child"])
 
 	r, err := mockMapGeneralizer.Realize(m, reflect.TypeOf(p))
-	assert.Nil(t, err)
+	require.NoError(t, err)
 	rMockParent, ok := r.(mockParent)
 	assert.True(t, ok)
 	assert.Nil(t, rMockParent.Child)
diff --git a/filter/generic/generalizer/protobuf_json_test.go b/filter/generic/generalizer/protobuf_json_test.go
index 5a6f92a93..46e013096 100644
--- a/filter/generic/generalizer/protobuf_json_test.go
+++ b/filter/generic/generalizer/protobuf_json_test.go
@@ -24,6 +24,7 @@ import (
 
 import (
 	"github.com/stretchr/testify/assert"
+	"github.com/stretchr/testify/require"
 )
 
 func TestProtobufJsonGeneralizer(t *testing.T) {
@@ -33,9 +34,9 @@ func TestProtobufJsonGeneralizer(t *testing.T) {
 		Id: 1,
 	}
 	reqJson, err := g.Generalize(req)
-	assert.Nil(t, err)
+	require.NoError(t, err)
 	rReq, err := g.Realize(reqJson, reflect.TypeOf(req))
-	assert.Nil(t, err)
+	require.NoError(t, err)
 	reqObj, ok := rReq.(*RequestType)
 	assert.True(t, ok)
 	assert.Equal(t, req.Id, reqObj.GetId())
@@ -47,9 +48,9 @@ func TestProtobufJsonGeneralizer(t *testing.T) {
 		Message: "Nice to meet you",
 	}
 	respJson, err := g.Generalize(resp)
-	assert.Nil(t, err)
+	require.NoError(t, err)
 	rResp, err := g.Realize(respJson, reflect.TypeOf(resp))
-	assert.Nil(t, err)
+	require.NoError(t, err)
 	respObj, ok := rResp.(*ResponseType)
 	assert.True(t, ok)
 	assert.Equal(t, resp.Code, respObj.GetCode())
diff --git a/filter/generic/service_filter_test.go b/filter/generic/service_filter_test.go
index a68723dce..b28d25e05 100644
--- a/filter/generic/service_filter_test.go
+++ b/filter/generic/service_filter_test.go
@@ -32,6 +32,7 @@ import (
 	perrors "github.com/pkg/errors"
 
 	"github.com/stretchr/testify/assert"
+	"github.com/stretchr/testify/require"
 )
 
 import (
@@ -105,7 +106,7 @@ func TestServiceFilter_Invoke(t *testing.T) {
 		"",
 		"",
 		service)
-	assert.Nil(t, err)
+	require.NoError(t, err)
 
 	// mock
 	mockInvoker.EXPECT().GetURL().Return(ivkUrl).Times(3)
@@ -172,7 +173,7 @@ func TestServiceFilter_Invoke(t *testing.T) {
 		}).AnyTimes()
 
 	invokeResult := filter.Invoke(context.Background(), mockInvoker, invocation4)
-	assert.Nil(t, invokeResult.Error())
+	require.NoError(t, invokeResult.Error())
 	assert.Equal(t, "hello, world", invokeResult.Result())
 
 	invokeResult = filter.Invoke(context.Background(), mockInvoker, invocation5)
diff --git a/filter/graceful_shutdown/consumer_filter_test.go b/filter/graceful_shutdown/consumer_filter_test.go
index 9a368336b..3a63e0176 100644
--- a/filter/graceful_shutdown/consumer_filter_test.go
+++ b/filter/graceful_shutdown/consumer_filter_test.go
@@ -53,7 +53,7 @@ func TestConsumerFilterInvokeWithGlobalPackage(t *testing.T) {
 
 	result := filter.Invoke(context.Background(), base.NewBaseInvoker(baseUrl), rpcInvocation)
 	assert.NotNil(t, result)
-	assert.Nil(t, result.Error())
+	assert.NoError(t, result.Error())
 }
 
 // only for compatibility with old config, able to directly remove after config is deleted
@@ -77,5 +77,5 @@ func TestConsumerFilterInvokeWithConfigPackage(t *testing.T) {
 
 	result := filter.Invoke(context.Background(), base.NewBaseInvoker(baseUrl), rpcInvocation)
 	assert.NotNil(t, result)
-	assert.Nil(t, result.Error())
+	assert.NoError(t, result.Error())
 }
diff --git a/filter/graceful_shutdown/provider_filter_test.go b/filter/graceful_shutdown/provider_filter_test.go
index 33ce16d8d..e9cc0a6bb 100644
--- a/filter/graceful_shutdown/provider_filter_test.go
+++ b/filter/graceful_shutdown/provider_filter_test.go
@@ -27,6 +27,7 @@ import (
 	perrors "github.com/pkg/errors"
 
 	"github.com/stretchr/testify/assert"
+	"github.com/stretchr/testify/require"
 )
 
 import (
@@ -61,7 +62,7 @@ func TestProviderFilterInvokeWithGlobalPackage(t *testing.T) {
 
 	invokeResult := providerFilter.Invoke(context.Background(), base.NewBaseInvoker(baseUrl), rpcInvocation)
 	assert.NotNil(t, invokeResult)
-	assert.Nil(t, invokeResult.Error())
+	require.NoError(t, invokeResult.Error())
 
 	opt.Shutdown.RejectRequest.Store(true)
 	invokeResult = providerFilter.Invoke(context.Background(), base.NewBaseInvoker(baseUrl), rpcInvocation)
@@ -95,7 +96,7 @@ func TestProviderFilterInvokeWithConfigPackage(t *testing.T) {
 
 	invokeResult := providerFilter.Invoke(context.Background(), base.NewBaseInvoker(baseUrl), rpcInvocation)
 	assert.NotNil(t, invokeResult)
-	assert.Nil(t, invokeResult.Error())
+	require.NoError(t, invokeResult.Error())
 
 	// only use this way to set the RejectRequest, because the variable is compact to GlobalShutdownConfig
 	providerFilter.shutdownConfig.RejectRequest.Store(true)
diff --git a/filter/hystrix/filter_test.go b/filter/hystrix/filter_test.go
index 404dcf53a..868a93a07 100644
--- a/filter/hystrix/filter_test.go
+++ b/filter/hystrix/filter_test.go
@@ -30,6 +30,7 @@ import (
 	"github.com/pkg/errors"
 
 	"github.com/stretchr/testify/assert"
+	"github.com/stretchr/testify/require"
 )
 
 import (
@@ -155,11 +156,11 @@ func TestHystrixFilterInvokeSuccess(t *testing.T) {
 	hf := &Filter{}
 	testUrl, err := common.NewURL(
 		fmt.Sprintf("dubbo://%s:%d/com.ikurento.user.UserProvider", constant.LocalHostValue, constant.DefaultPort))
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	testInvoker := testMockSuccessInvoker{*base.NewBaseInvoker(testUrl)}
 	invokeResult := hf.Invoke(context.Background(), &testInvoker, &invocation.RPCInvocation{})
 	assert.NotNil(t, invokeResult)
-	assert.NoError(t, invokeResult.Error())
+	require.NoError(t, invokeResult.Error())
 	assert.NotNil(t, invokeResult.Result())
 }
 
@@ -167,11 +168,11 @@ func TestHystrixFilterInvokeFail(t *testing.T) {
 	hf := &Filter{}
 	testUrl, err := common.NewURL(
 		fmt.Sprintf("dubbo://%s:%d/com.ikurento.user.UserProvider", constant.LocalHostValue, constant.DefaultPort))
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	testInvoker := testMockFailInvoker{*base.NewBaseInvoker(testUrl)}
 	invokeResult := hf.Invoke(context.Background(), &testInvoker, &invocation.RPCInvocation{})
 	assert.NotNil(t, invokeResult)
-	assert.Error(t, invokeResult.Error())
+	require.Error(t, invokeResult.Error())
 }
 
 func TestHystrixFilterInvokeCircuitBreak(t *testing.T) {
diff --git a/filter/metrics/filter_test.go b/filter/metrics/filter_test.go
index 11b35263b..7ed42f27a 100644
--- a/filter/metrics/filter_test.go
+++ b/filter/metrics/filter_test.go
@@ -57,6 +57,6 @@ func TestMetricsFilterInvoke(t *testing.T) {
 	result = filter.OnResponse(ctx, nil, invoker, inv)
 	assert.Nil(t, result)
 
-	assert.Equal(t, 2, len(mockChan))
+	assert.Len(t, mockChan, 2)
 	assert.Equal(t, constant.MetricsRpc, (<-mockChan).Type())
 }
diff --git a/filter/sentinel/filter_test.go b/filter/sentinel/filter_test.go
index 555befc5a..adfbb8c10 100644
--- a/filter/sentinel/filter_test.go
+++ b/filter/sentinel/filter_test.go
@@ -32,6 +32,7 @@ import (
 	"github.com/pkg/errors"
 
 	"github.com/stretchr/testify/assert"
+	"github.com/stretchr/testify/require"
 )
 
 import (
@@ -48,7 +49,7 @@ func TestSentinelFilter_QPS(t *testing.T) {
 		"environment=dev&interface=com.ikurento.user.UserProvider&ip=192.168.56.1&methods=GetUser%2C&" +
 		"module=dubbogo+user-info+server&org=ikurento.com&owner=ZX&pid=1447&revision=0.0.1&" +
 		"side=provider&timeout=3000&timestamp=1556509797245&bean.name=UserProvider")
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	mockInvoker := base.NewBaseInvoker(url)
 	interfaceResourceName, _ := getResourceName(mockInvoker,
 		invocation.NewRPCInvocation("hello", []any{"OK"}, make(map[string]any)), "prefix_")
@@ -64,7 +65,7 @@ func TestSentinelFilter_QPS(t *testing.T) {
 			RelationStrategy:       flow.CurrentResource,
 		},
 	})
-	assert.NoError(t, err)
+	require.NoError(t, err)
 
 	wg := sync.WaitGroup{}
 	wg.Add(10)
@@ -121,7 +122,7 @@ func TestSentinelFilter_ErrorCount(t *testing.T) {
 		"environment=dev&interface=com.test.user.UserProvider&ip=192.168.56.1&methods=GetUser%2C&" +
 		"module=dubbogo+user-info+server&org=test.com&owner=ZX&pid=1447&revision=0.0.1&" +
 		"side=provider&timeout=3000&timestamp=1556509797245&bean.name=UserProvider")
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	mockInvoker := &ErrInvoker{base.NewBaseInvoker(url)}
 	_, methodResourceName := getResourceName(mockInvoker,
 		invocation.NewRPCInvocation("hi", []any{"OK"}, make(map[string]any)), DefaultProviderPrefix)
@@ -143,12 +144,12 @@ func TestSentinelFilter_ErrorCount(t *testing.T) {
 			Threshold:                    50,
 		},
 	})
-	assert.NoError(t, err)
+	require.NoError(t, err)
 
 	f := &sentinelProviderFilter{}
 	for i := 0; i < 50; i++ {
 		invokeResult := f.Invoke(context.TODO(), mockInvoker, mockInvocation)
-		assert.Error(t, invokeResult.Error())
+		require.Error(t, invokeResult.Error())
 	}
 	select {
 	case <-time.After(time.Second):
@@ -165,11 +166,11 @@ func TestConsumerFilter_Invoke(t *testing.T) {
 		"environment=dev&interface=com.ikurento.user.UserProvider&ip=192.168.56.1&methods=GetUser%2C&" +
 		"module=dubbogo+user-info+server&org=ikurento.com&owner=ZX&pid=1447&revision=0.0.1&" +
 		"side=provider&timeout=3000&timestamp=1556509797245&bean.name=UserProvider")
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	mockInvoker := base.NewBaseInvoker(url)
 	mockInvocation := invocation.NewRPCInvocation("hello", []any{"OK"}, make(map[string]any))
 	result := f.Invoke(context.TODO(), mockInvoker, mockInvocation)
-	assert.NoError(t, result.Error())
+	require.NoError(t, result.Error())
 }
 
 func TestProviderFilter_Invoke(t *testing.T) {
@@ -179,11 +180,11 @@ func TestProviderFilter_Invoke(t *testing.T) {
 		"environment=dev&interface=com.ikurento.user.UserProvider&ip=192.168.56.1&methods=GetUser%2C&" +
 		"module=dubbogo+user-info+server&org=ikurento.com&owner=ZX&pid=1447&revision=0.0.1&" +
 		"side=provider&timeout=3000&timestamp=1556509797245&bean.name=UserProvider")
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	mockInvoker := base.NewBaseInvoker(url)
 	mockInvocation := invocation.NewRPCInvocation("hello", []any{"OK"}, make(map[string]any))
 	invokeResult := f.Invoke(context.TODO(), mockInvoker, mockInvocation)
-	assert.NoError(t, invokeResult.Error())
+	require.NoError(t, invokeResult.Error())
 }
 
 func TestGetResourceName(t *testing.T) {
@@ -193,7 +194,7 @@ func TestGetResourceName(t *testing.T) {
 		"environment=dev&interface=com.ikurento.user.UserProvider&ip=192.168.56.1&methods=GetUser%2C&" +
 		"module=dubbogo+user-info+server&org=ikurento.com&owner=ZX&pid=1447&revision=0.0.1&" +
 		"side=provider&timeout=3000&timestamp=1556509797245&bean.name=UserProvider")
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	mockInvoker := base.NewBaseInvoker(url)
 	interfaceResourceName, methodResourceName := getResourceName(mockInvoker,
 		invocation.NewRPCInvocation("hello", []any{"OK"}, make(map[string]any)), "prefix_")
diff --git a/filter/token/filter_test.go b/filter/token/filter_test.go
index 2a77c8674..1aa3e7f34 100644
--- a/filter/token/filter_test.go
+++ b/filter/token/filter_test.go
@@ -25,6 +25,7 @@ import (
 
 import (
 	"github.com/stretchr/testify/assert"
+	"github.com/stretchr/testify/require"
 )
 
 import (
@@ -46,7 +47,7 @@ func TestTokenFilterInvoke(t *testing.T) {
 		base.NewBaseInvoker(baseUrl),
 		invocation.NewRPCInvocation("MethodName",
 			[]any{"OK"}, attch))
-	assert.Nil(t, result.Error())
+	require.NoError(t, result.Error())
 	assert.Nil(t, result.Result())
 }
 
@@ -57,7 +58,7 @@ func TestTokenFilterInvokeEmptyToken(t *testing.T) {
 	attch := make(map[string]any)
 	attch[constant.TokenKey] = "ori_key"
 	result := filter.Invoke(context.Background(), base.NewBaseInvoker(&testUrl), invocation.NewRPCInvocation("MethodName", []any{"OK"}, attch))
-	assert.Nil(t, result.Error())
+	require.NoError(t, result.Error())
 	assert.Nil(t, result.Result())
 }
 
@@ -69,7 +70,7 @@ func TestTokenFilterInvokeEmptyAttach(t *testing.T) {
 		common.WithParamsValue(constant.TokenKey, "ori_key"))
 	attch := make(map[string]any)
 	result := filter.Invoke(context.Background(), base.NewBaseInvoker(testUrl), invocation.NewRPCInvocation("MethodName", []any{"OK"}, attch))
-	assert.NotNil(t, result.Error())
+	assert.Error(t, result.Error())
 }
 
 func TestTokenFilterInvokeNotEqual(t *testing.T) {
@@ -82,5 +83,5 @@ func TestTokenFilterInvokeNotEqual(t *testing.T) {
 	attch[constant.TokenKey] = "err_key"
 	result := filter.Invoke(context.Background(),
 		base.NewBaseInvoker(testUrl), invocation.NewRPCInvocation("MethodName", []any{"OK"}, attch))
-	assert.NotNil(t, result.Error())
+	assert.Error(t, result.Error())
 }
diff --git a/filter/tps/filter_test.go b/filter/tps/filter_test.go
index 1369eb0cc..b80aec4ce 100644
--- a/filter/tps/filter_test.go
+++ b/filter/tps/filter_test.go
@@ -27,6 +27,7 @@ import (
 	"github.com/golang/mock/gomock"
 
 	"github.com/stretchr/testify/assert"
+	"github.com/stretchr/testify/require"
 )
 
 import (
@@ -52,7 +53,7 @@ func TestTpsLimitFilterInvokeWithNoTpsLimiter(t *testing.T) {
 		base.NewBaseInvoker(invokeUrl),
 		invocation.NewRPCInvocation("MethodName",
 			[]any{"OK"}, attch))
-	assert.Nil(t, invokeResult.Error())
+	require.NoError(t, invokeResult.Error())
 	assert.Nil(t, invokeResult.Result())
 }
 
@@ -75,7 +76,7 @@ func TestGenericFilterInvokeWithDefaultTpsLimiter(t *testing.T) {
 		base.NewBaseInvoker(invokeUrl),
 		invocation.NewRPCInvocation("MethodName",
 			[]any{"OK"}, attch))
-	assert.Nil(t, invokeResult.Error())
+	require.NoError(t, invokeResult.Error())
 	assert.Nil(t, invokeResult.Result())
 }
 
@@ -105,6 +106,6 @@ func TestGenericFilterInvokeWithDefaultTpsLimiterNotAllow(t *testing.T) {
 	invokeResult := tpsFilter.Invoke(context.Background(),
 		base.NewBaseInvoker(invokeUrl),
 		invocation.NewRPCInvocation("MethodName", []any{"OK"}, attch))
-	assert.Nil(t, invokeResult.Error())
+	require.NoError(t, invokeResult.Error())
 	assert.Nil(t, invokeResult.Result())
 }
diff --git a/global/config_test.go b/global/config_test.go
index 7a7ea21e9..398e4e689 100644
--- a/global/config_test.go
+++ b/global/config_test.go
@@ -24,6 +24,7 @@ import (
 
 import (
 	"github.com/stretchr/testify/assert"
+	"github.com/stretchr/testify/require"
 )
 
 // TestCloneConfig tests the Clone method of the *_config.go files
@@ -280,10 +281,10 @@ func CheckCompleteInequality(t *testing.T, origin any, clone any) {
 			assert.Equal(t, "origin", originField.String())
 
 		case reflect.Bool:
-			assert.Equal(t, true, cloneField.Bool())
+			assert.True(t, cloneField.Bool())
 			cloneField.SetBool(false)
-			assert.Equal(t, false, cloneField.Bool())
-			assert.Equal(t, true, originField.Bool())
+			assert.False(t, cloneField.Bool())
+			assert.True(t, originField.Bool())
 
 		case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:
 			assert.EqualValues(t, 1, cloneField.Int())
@@ -298,10 +299,10 @@ func CheckCompleteInequality(t *testing.T, origin any, clone any) {
 			assert.EqualValues(t, 1, originField.Uint())
 
 		case reflect.Float32, reflect.Float64:
-			assert.EqualValues(t, 1.5, cloneField.Float())
+			assert.InEpsilon(t, 1.5, cloneField.Float(), 1e-9)
 			cloneField.SetFloat(2.5)
-			assert.EqualValues(t, 2.5, cloneField.Float())
-			assert.EqualValues(t, 1.5, originField.Float())
+			assert.InEpsilon(t, 2.5, cloneField.Float(), 1e-9)
+			assert.InEpsilon(t, 1.5, originField.Float(), 1e-9)
 
 		case reflect.Map, reflect.Ptr:
 			if originField.IsNil() {
@@ -354,7 +355,7 @@ func TestReferenceConfigGetOptions(t *testing.T) {
 
 		opts := ref.GetOptions()
 		assert.NotNil(t, opts, "opts should not be nil")
-		assert.True(t, len(opts) > 0, "opts should have items")
+		assert.NotEmpty(t, opts, "opts should have items")
 	})
 
 	t.Run("empty_reference_config", func(t *testing.T) {
@@ -362,7 +363,7 @@ func TestReferenceConfigGetOptions(t *testing.T) {
 		emptyOpts := emptyRef.GetOptions()
 		// An empty config will return nil from GetOptions since all fields are empty
 		if emptyOpts != nil {
-			assert.Equal(t, 0, len(emptyOpts), "empty ref config should have no options")
+			assert.Empty(t, emptyOpts, "empty ref config should have no options")
 		}
 	})
 
@@ -373,7 +374,7 @@ func TestReferenceConfigGetOptions(t *testing.T) {
 		opts := ref.GetOptions()
 		assert.NotNil(t, opts)
 		// Verify that a valid retries value produces at least one option
-		assert.Greater(t, len(opts), 0, "should have at least one option from Retries")
+		assert.NotEmpty(t, opts, "should have at least one option from Retries")
 	})
 
 	t.Run("reference_config_with_invalid_retries", func(t *testing.T) {
@@ -390,7 +391,7 @@ func TestReferenceConfigGetOptions(t *testing.T) {
 		// Since Retries is the only field and it's invalid, no options should be produced
 		if opts != nil {
 			// If opts is returned as a slice, it should be empty since Retries is invalid
-			assert.Equal(t, 0, len(opts), "invalid retries value should not produce any options")
+			assert.Empty(t, opts, "invalid retries value should not produce any options")
 		}
 		// The fact that invalid retries is not in opts confirms it was rejected
 	})
@@ -455,7 +456,7 @@ func TestReferenceConfigOptions(t *testing.T) {
 		ref := &ReferenceConfig{}
 		opt := WithReference_RegistryIDs([]string{"reg1", "reg2"})
 		opt(ref)
-		assert.Equal(t, 2, len(ref.RegistryIDs))
+		assert.Len(t, ref.RegistryIDs, 2)
 		assert.Equal(t, "reg1", ref.RegistryIDs[0])
 		assert.Equal(t, "reg2", ref.RegistryIDs[1])
 	})
@@ -464,7 +465,7 @@ func TestReferenceConfigOptions(t *testing.T) {
 		ref := &ReferenceConfig{}
 		opt := WithReference_RegistryIDs([]string{})
 		opt(ref)
-		assert.Equal(t, 0, len(ref.RegistryIDs))
+		assert.Empty(t, ref.RegistryIDs)
 	})
 
 	t.Run("WithReference_Cluster", func(t *testing.T) {
@@ -607,56 +608,56 @@ func TestRegistryConfigUseAsMetadataReport(t *testing.T) {
 	t.Run("empty_use_as_meta_report_defaults_to_true", func(t *testing.T) {
 		reg := &RegistryConfig{UseAsMetaReport: ""}
 		result, err := reg.UseAsMetadataReport()
-		assert.Nil(t, err)
+		require.NoError(t, err)
 		assert.True(t, result)
 	})
 
 	t.Run("true_string", func(t *testing.T) {
 		reg := &RegistryConfig{UseAsMetaReport: "true"}
 		result, err := reg.UseAsMetadataReport()
-		assert.Nil(t, err)
+		require.NoError(t, err)
 		assert.True(t, result)
 	})
 
 	t.Run("false_string", func(t *testing.T) {
 		reg := &RegistryConfig{UseAsMetaReport: "false"}
 		result, err := reg.UseAsMetadataReport()
-		assert.Nil(t, err)
+		require.NoError(t, err)
 		assert.False(t, result)
 	})
 
 	t.Run("TRUE_uppercase", func(t *testing.T) {
 		reg := &RegistryConfig{UseAsMetaReport: "TRUE"}
 		result, err := reg.UseAsMetadataReport()
-		assert.Nil(t, err)
+		require.NoError(t, err)
 		assert.True(t, result)
 	})
 
 	t.Run("FALSE_uppercase", func(t *testing.T) {
 		reg := &RegistryConfig{UseAsMetaReport: "FALSE"}
 		result, err := reg.UseAsMetadataReport()
-		assert.Nil(t, err)
+		require.NoError(t, err)
 		assert.False(t, result)
 	})
 
 	t.Run("invalid_use_as_meta_report", func(t *testing.T) {
 		reg := &RegistryConfig{UseAsMetaReport: "invalid"}
 		result, err := reg.UseAsMetadataReport()
-		assert.NotNil(t, err)
+		require.Error(t, err)
 		assert.False(t, result)
 	})
 
 	t.Run("1_as_true", func(t *testing.T) {
 		reg := &RegistryConfig{UseAsMetaReport: "1"}
 		result, err := reg.UseAsMetadataReport()
-		assert.Nil(t, err)
+		require.NoError(t, err)
 		assert.True(t, result)
 	})
 
 	t.Run("0_as_false", func(t *testing.T) {
 		reg := &RegistryConfig{UseAsMetaReport: "0"}
 		result, err := reg.UseAsMetadataReport()
-		assert.Nil(t, err)
+		require.NoError(t, err)
 		assert.False(t, result)
 	})
 }
@@ -727,7 +728,7 @@ func TestRegistryConfigClone(t *testing.T) {
 		}
 		cloned := reg.Clone()
 		assert.NotNil(t, cloned)
-		assert.Equal(t, 0, len(cloned.Params))
+		assert.Empty(t, cloned.Params)
 		assert.NotSame(t, reg.Params, cloned.Params)
 	})
 }
@@ -749,7 +750,7 @@ func TestDefaultRegistriesConfig(t *testing.T) {
 	t.Run("default_registries_config", func(t *testing.T) {
 		regs := DefaultRegistriesConfig()
 		assert.NotNil(t, regs)
-		assert.Equal(t, 0, len(regs))
+		assert.Empty(t, regs)
 	})
 }
 
@@ -773,7 +774,7 @@ func TestCloneRegistriesConfig(t *testing.T) {
 			},
 		}
 		cloned := CloneRegistriesConfig(regs)
-		assert.Equal(t, 2, len(cloned))
+		assert.Len(t, cloned, 2)
 		assert.Equal(t, "zookeeper", cloned["reg1"].Protocol)
 		assert.Equal(t, "nacos", cloned["reg2"].Protocol)
 		assert.NotSame(t, regs["reg1"], cloned["reg1"])
@@ -792,7 +793,7 @@ func TestCloneRegistriesConfig(t *testing.T) {
 		regs := make(map[string]*RegistryConfig)
 		cloned := CloneRegistriesConfig(regs)
 		assert.NotNil(t, cloned)
-		assert.Equal(t, 0, len(cloned))
+		assert.Empty(t, cloned)
 		assert.NotSame(t, regs, cloned)
 	})
 
@@ -806,7 +807,7 @@ func TestCloneRegistriesConfig(t *testing.T) {
 			},
 		}
 		cloned := CloneRegistriesConfig(regs)
-		assert.Equal(t, 1, len(cloned))
+		assert.Len(t, cloned, 1)
 		assert.Equal(t, "etcdv3", cloned["reg1"].Protocol)
 		assert.Equal(t, "10s", cloned["reg1"].Timeout)
 		assert.Equal(t, int64(50), cloned["reg1"].Weight)
@@ -860,12 +861,12 @@ func TestRouterConfigClone(t *testing.T) {
 		assert.NotSame(t, router, cloned)
 		assert.NotSame(t, router.Conditions, cloned.Conditions)
 		assert.NotSame(t, router.Tags, cloned.Tags)
-		assert.Equal(t, 2, len(cloned.Conditions))
-		assert.Equal(t, 2, len(cloned.Tags))
+		assert.Len(t, cloned.Conditions, 2)
+		assert.Len(t, cloned.Tags, 2)
 		assert.Equal(t, "tag1", cloned.Tags[0].Name)
 		assert.Equal(t, "tag2", cloned.Tags[1].Name)
-		assert.Equal(t, 2, len(cloned.Tags[0].Addresses))
-		assert.Equal(t, 1, len(cloned.Tags[1].Addresses))
+		assert.Len(t, cloned.Tags[0].Addresses, 2)
+		assert.Len(t, cloned.Tags[1].Addresses, 1)
 	})
 
 	t.Run("clone_nil_router_config", func(t *testing.T) {
@@ -918,8 +919,8 @@ func TestDefaultRouterConfig(t *testing.T) {
 	t.Run("default_router_config", func(t *testing.T) {
 		router := DefaultRouterConfig()
 		assert.NotNil(t, router)
-		assert.Equal(t, 0, len(router.Conditions))
-		assert.Equal(t, 0, len(router.Tags))
+		assert.Empty(t, router.Conditions)
+		assert.Empty(t, router.Tags)
 	})
 }
 
@@ -931,7 +932,7 @@ func TestTagStructure(t *testing.T) {
 			Addresses: []string{"addr1", "addr2"},
 		}
 		assert.Equal(t, "test", tag.Name)
-		assert.Equal(t, 2, len(tag.Addresses))
+		assert.Len(t, tag.Addresses, 2)
 	})
 
 	t.Run("tag_with_empty_addresses", func(t *testing.T) {
@@ -939,7 +940,7 @@ func TestTagStructure(t *testing.T) {
 			Name:      "test",
 			Addresses: []string{},
 		}
-		assert.Equal(t, 0, len(tag.Addresses))
+		assert.Empty(t, tag.Addresses)
 	})
 }
 
@@ -972,7 +973,7 @@ func TestRouterConfigFields(t *testing.T) {
 		router := &RouterConfig{
 			Conditions: []string{"cond1", "cond2", "cond3"},
 		}
-		assert.Equal(t, 3, len(router.Conditions))
+		assert.Len(t, router.Conditions, 3)
 		assert.Equal(t, "cond1", router.Conditions[0])
 		assert.Equal(t, "cond3", router.Conditions[2])
 	})
@@ -1210,7 +1211,7 @@ func TestConsumerConfigClone(t *testing.T) {
 		assert.Equal(t, consumer.AdaptiveService, cloned.AdaptiveService)
 		assert.NotSame(t, consumer, cloned)
 		assert.NotSame(t, consumer.References, cloned.References)
-		assert.Equal(t, 2, len(cloned.References))
+		assert.Len(t, cloned.References, 2)
 		assert.Equal(t, "com.test.Service1", cloned.References["ref1"].InterfaceName)
 	})
 
@@ -1238,7 +1239,7 @@ func TestDefaultConsumerConfig(t *testing.T) {
 		assert.NotNil(t, consumer)
 		assert.True(t, consumer.Check)
 		assert.NotNil(t, consumer.References)
-		assert.Equal(t, 0, len(consumer.References))
+		assert.Empty(t, consumer.References)
 	})
 }
 
@@ -1283,7 +1284,7 @@ func TestConsumerConfigFields(t *testing.T) {
 		consumer := &ConsumerConfig{
 			RegistryIDs: []string{"reg1", "reg2", "reg3"},
 		}
-		assert.Equal(t, 3, len(consumer.RegistryIDs))
+		assert.Len(t, consumer.RegistryIDs, 3)
 	})
 
 	t.Run("consumer_config_mesh_enabled", func(t *testing.T) {
@@ -1344,8 +1345,8 @@ func TestServiceConfigClone(t *testing.T) {
 		assert.NotSame(t, service, cloned)
 		assert.NotSame(t, service.Params, cloned.Params)
 		assert.Equal(t, "value", cloned.Params["key"])
-		assert.Equal(t, 1, len(cloned.ProtocolIDs))
-		assert.Equal(t, 1, len(cloned.RegistryIDs))
+		assert.Len(t, cloned.ProtocolIDs, 1)
+		assert.Len(t, cloned.RegistryIDs, 1)
 	})
 
 	t.Run("clone_nil_service_config", func(t *testing.T) {
@@ -1374,8 +1375,8 @@ func TestServiceConfigClone(t *testing.T) {
 			},
 		}
 		cloned := service.Clone()
-		assert.Equal(t, 2, len(cloned.RCProtocolsMap))
-		assert.Equal(t, 2, len(cloned.RCRegistriesMap))
+		assert.Len(t, cloned.RCProtocolsMap, 2)
+		assert.Len(t, cloned.RCRegistriesMap, 2)
 		assert.NotSame(t, service.RCProtocolsMap, cloned.RCProtocolsMap)
 		assert.NotSame(t, service.RCRegistriesMap, cloned.RCRegistriesMap)
 	})
@@ -1390,8 +1391,8 @@ func TestDefaultServiceConfig(t *testing.T) {
 		assert.NotNil(t, service.Params)
 		assert.NotNil(t, service.RCProtocolsMap)
 		assert.NotNil(t, service.RCRegistriesMap)
-		assert.Equal(t, 0, len(service.Methods))
-		assert.Equal(t, 0, len(service.Params))
+		assert.Empty(t, service.Methods)
+		assert.Empty(t, service.Params)
 	})
 }
 
@@ -1450,14 +1451,14 @@ func TestServiceConfigFields(t *testing.T) {
 		service := &ServiceConfig{
 			ProtocolIDs: []string{"proto1", "proto2"},
 		}
-		assert.Equal(t, 2, len(service.ProtocolIDs))
+		assert.Len(t, service.ProtocolIDs, 2)
 	})
 
 	t.Run("service_config_registry_ids", func(t *testing.T) {
 		service := &ServiceConfig{
 			RegistryIDs: []string{"reg1"},
 		}
-		assert.Equal(t, 1, len(service.RegistryIDs))
+		assert.Len(t, service.RegistryIDs, 1)
 	})
 }
 
@@ -1504,7 +1505,7 @@ func TestProviderConfigClone(t *testing.T) {
 		assert.NotSame(t, provider.Services, cloned.Services)
 
 		// Verify RegistryIDs is a true deep copy by mutating the clone
-		assert.Equal(t, len(provider.RegistryIDs), len(cloned.RegistryIDs))
+		assert.Len(t, cloned.RegistryIDs, len(provider.RegistryIDs))
 		assert.Equal(t, provider.RegistryIDs, cloned.RegistryIDs)
 		if len(cloned.RegistryIDs) > 0 {
 			cloned.RegistryIDs[0] = "modified"
@@ -1514,7 +1515,7 @@ func TestProviderConfigClone(t *testing.T) {
 		assert.NotEqual(t, len(provider.RegistryIDs), len(cloned.RegistryIDs))
 
 		// Verify ProtocolIDs is a true deep copy by mutating the clone
-		assert.Equal(t, len(provider.ProtocolIDs), len(cloned.ProtocolIDs))
+		assert.Len(t, cloned.ProtocolIDs, len(provider.ProtocolIDs))
 		assert.Equal(t, provider.ProtocolIDs, cloned.ProtocolIDs)
 		if len(cloned.ProtocolIDs) > 0 {
 			cloned.ProtocolIDs[0] = "modified"
@@ -1524,7 +1525,7 @@ func TestProviderConfigClone(t *testing.T) {
 		assert.NotEqual(t, len(provider.ProtocolIDs), len(cloned.ProtocolIDs))
 
 		// Verify Services is a true deep copy by mutating the clone
-		assert.Equal(t, len(provider.Services), len(cloned.Services))
+		assert.Len(t, cloned.Services, len(provider.Services))
 		cloned.Services["service2"] = &ServiceConfig{Interface: "com.test.Service2"}
 		assert.NotEqual(t, len(provider.Services), len(cloned.Services))
 		assert.NotContains(t, provider.Services, "service2")
@@ -1560,7 +1561,7 @@ func TestProviderConfigClone(t *testing.T) {
 		// Verify Services is a true deep copy
 		originalServicesLen := len(provider.Services)
 		cloned.Services["new_service"] = &ServiceConfig{Interface: "com.test.NewService"}
-		assert.Equal(t, originalServicesLen, len(provider.Services))
+		assert.Len(t, provider.Services, originalServicesLen)
 		assert.Greater(t, len(cloned.Services), len(provider.Services))
 	})
 }
@@ -1595,14 +1596,14 @@ func TestProviderConfigFields(t *testing.T) {
 		provider := &ProviderConfig{
 			RegistryIDs: []string{"reg1", "reg2"},
 		}
-		assert.Equal(t, 2, len(provider.RegistryIDs))
+		assert.Len(t, provider.RegistryIDs, 2)
 	})
 
 	t.Run("provider_config_protocol_ids", func(t *testing.T) {
 		provider := &ProviderConfig{
 			ProtocolIDs: []string{"proto1"},
 		}
-		assert.Equal(t, 1, len(provider.ProtocolIDs))
+		assert.Len(t, provider.ProtocolIDs, 1)
 	})
 
 	t.Run("provider_config_tracing_key", func(t *testing.T) {
@@ -1628,7 +1629,7 @@ func TestProviderConfigFields(t *testing.T) {
 				"service2": {Interface: "com.test.Service2"},
 			},
 		}
-		assert.Equal(t, 2, len(provider.Services))
+		assert.Len(t, provider.Services, 2)
 		assert.Equal(t, "com.test.Service1", provider.Services["service1"].Interface)
 	})
 
diff --git a/graceful_shutdown/options_test.go b/graceful_shutdown/options_test.go
index f5a262cec..c4a18731f 100644
--- a/graceful_shutdown/options_test.go
+++ b/graceful_shutdown/options_test.go
@@ -37,7 +37,7 @@ func TestDefaultOptions(t *testing.T) {
 	assert.Equal(t, "60s", opts.Shutdown.Timeout)
 	assert.Equal(t, "3s", opts.Shutdown.StepTimeout)
 	assert.Equal(t, "3s", opts.Shutdown.ConsumerUpdateWaitTime)
-	assert.Equal(t, "", opts.Shutdown.OfflineRequestWindowTimeout) // No default value
+	assert.Empty(t, opts.Shutdown.OfflineRequestWindowTimeout) // No default value
 	assert.True(t, *opts.Shutdown.InternalSignal)
 }
 
diff --git a/metadata/client.go b/metadata/client.go
index f0c407e8f..f42a31235 100644
--- a/metadata/client.go
+++ b/metadata/client.go
@@ -254,7 +254,7 @@ func getMetadataServiceUrlParams(ins registry.ServiceInstance) map[string]string
 	if str, ok := ps[constant.MetadataServiceURLParamsPropertyName]; ok && len(str) > 0 {
 		err := json.Unmarshal([]byte(str), &res)
 		if err != nil {
-			logger.Errorf("could not parse the metadata service url parameters to map", err)
+			logger.Errorf("could not parse the metadata service url parameters to map: %v", err)
 		}
 	}
 
diff --git a/metadata/client_test.go b/metadata/client_test.go
index b64b7f9fc..2f065f7b4 100644
--- a/metadata/client_test.go
+++ b/metadata/client_test.go
@@ -27,6 +27,7 @@ import (
 
 	"github.com/stretchr/testify/assert"
 	"github.com/stretchr/testify/mock"
+	"github.com/stretchr/testify/require"
 )
 
 import (
@@ -63,7 +64,7 @@ var (
 func TestGetMetadataFromMetadataReport(t *testing.T) {
 	t.Run("no report instance", func(t *testing.T) {
 		_, err := GetMetadataFromMetadataReport("1", ins)
-		assert.NotNil(t, err)
+		require.Error(t, err)
 	})
 	mockReport := new(mockMetadataReport)
 	defer mockReport.AssertExpectations(t)
@@ -71,13 +72,13 @@ func TestGetMetadataFromMetadataReport(t *testing.T) {
 	t.Run("normal", func(t *testing.T) {
 		mockReport.On("GetAppMetadata").Return(metadataInfo, nil).Once()
 		got, err := GetMetadataFromMetadataReport("1", ins)
-		assert.Nil(t, err)
+		require.NoError(t, err)
 		assert.Equal(t, metadataInfo, got)
 	})
 	t.Run("error", func(t *testing.T) {
 		mockReport.On("GetAppMetadata").Return(metadataInfo, errors.New("mock error")).Once()
 		_, err := GetMetadataFromMetadataReport("1", ins)
-		assert.NotNil(t, err)
+		require.Error(t, err)
 	})
 }
 
@@ -100,13 +101,13 @@ func TestGetMetadataFromRpc(t *testing.T) {
 		mockInvoker.On("Invoke").Return(res).Once()
 		mockInvoker.On("Destroy").Once()
 		metadata, err := GetMetadataFromRpc("111", ins)
-		assert.Nil(t, err)
+		require.NoError(t, err)
 		assert.Equal(t, metadata, res.Rest)
 	})
 	t.Run("refer error", func(t *testing.T) {
 		mockProtocol.On("Refer").Return(nil).Once()
 		_, err := GetMetadataFromRpc("111", ins)
-		assert.NotNil(t, err)
+		require.Error(t, err)
 	})
 	t.Run("invoke timeout", func(t *testing.T) {
 		mockProtocol.On("Refer").Return(mockInvoker).Once()
@@ -117,7 +118,7 @@ func TestGetMetadataFromRpc(t *testing.T) {
 		}).Once()
 		mockInvoker.On("Destroy").Once()
 		_, err := GetMetadataFromRpc("111", ins)
-		assert.NotNil(t, err)
+		require.Error(t, err)
 	})
 }
 
diff --git a/metadata/info/metadata_info_test.go b/metadata/info/metadata_info_test.go
index 94cd6e025..ec8a110c5 100644
--- a/metadata/info/metadata_info_test.go
+++ b/metadata/info/metadata_info_test.go
@@ -28,6 +28,7 @@ import (
 	hessian "github.com/apache/dubbo-go-hessian2"
 
 	"github.com/stretchr/testify/assert"
+	"github.com/stretchr/testify/require"
 )
 
 import (
@@ -56,12 +57,12 @@ func TestMetadataInfoAddService(t *testing.T) {
 
 	url, _ := common.NewURL("dubbo://127.0.0.1:20000?application=foo&category=providers&check=false&dubbo=dubbo-go+v1.5.0&interface=com.foo.Bar&methods=GetPetByID%2CGetPetTypes&organization=Apache&owner=foo&revision=1.0.0&side=provider&version=1.0.0")
 	metadataInfo.AddService(url)
-	assert.True(t, len(metadataInfo.Services) > 0)
-	assert.True(t, len(metadataInfo.GetExportedServiceURLs()) > 0)
+	assert.NotEmpty(t, metadataInfo.Services)
+	assert.NotEmpty(t, metadataInfo.GetExportedServiceURLs())
 
 	metadataInfo.RemoveService(url)
-	assert.True(t, len(metadataInfo.Services) == 0)
-	assert.True(t, len(metadataInfo.GetExportedServiceURLs()) == 0)
+	assert.Empty(t, metadataInfo.Services)
+	assert.Empty(t, metadataInfo.GetExportedServiceURLs())
 }
 
 func TestHessian(t *testing.T) {
@@ -75,27 +76,27 @@ func TestHessian(t *testing.T) {
 	metadataInfo.Services["1"] = NewServiceInfo("dubbo.io", "default", "1.0.0", "dubbo", "", make(map[string]string))
 	e := hessian.NewEncoder()
 	err := e.Encode(metadataInfo)
-	assert.Nil(t, err)
+	require.NoError(t, err)
 	obj, err := hessian.NewDecoder(e.Buffer()).Decode()
-	assert.Nil(t, err)
+	require.NoError(t, err)
 	objJson, _ := json.Marshal(obj)
 	metaJson, _ := json.Marshal(metadataInfo)
-	assert.Equal(t, objJson, metaJson)
+	assert.JSONEq(t, string(metaJson), string(objJson))
 }
 
 func TestMetadataInfoAddSubscribeURL(t *testing.T) {
 	info := NewMetadataInfo("dubbo", "tag")
 	info.AddSubscribeURL(serviceUrl)
-	assert.True(t, len(info.GetSubscribedURLs()) > 0)
+	assert.NotEmpty(t, info.GetSubscribedURLs())
 	info.RemoveSubscribeURL(serviceUrl)
-	assert.True(t, len(info.GetSubscribedURLs()) == 0)
+	assert.Empty(t, info.GetSubscribedURLs())
 }
 
 func TestMetadataInfoCalAndGetRevision(t *testing.T) {
 	metadata := NewAppMetadataInfo("dubbo")
 	assert.Equalf(t, "0", metadata.CalAndGetRevision(), "CalAndGetRevision()")
 	metadata.AddService(serviceUrl)
-	assert.True(t, metadata.CalAndGetRevision() != "0")
+	assert.NotEqual(t, "0", metadata.CalAndGetRevision())
 
 	v := metadata.Revision
 	assert.Equal(t, v, metadata.CalAndGetRevision(), "CalAndGetRevision() test cache")
@@ -104,43 +105,43 @@ func TestMetadataInfoCalAndGetRevision(t *testing.T) {
 	url1 := serviceUrl.Clone()
 	url1.Methods = []string{}
 	metadata.AddService(url1)
-	assert.True(t, metadata.CalAndGetRevision() != "0", "CalAndGetRevision() test empty methods")
+	assert.NotEqual(t, "0", metadata.CalAndGetRevision(), "CalAndGetRevision() test empty methods")
 }
 
 func TestNewMetadataInfo(t *testing.T) {
 	info := NewMetadataInfo("dubbo", "tag")
-	assert.Equal(t, info.App, "dubbo")
-	assert.Equal(t, info.Tag, "tag")
+	assert.Equal(t, "dubbo", info.App)
+	assert.Equal(t, "tag", info.Tag)
 }
 
 func TestNewMetadataInfoWithParams(t *testing.T) {
 	info := NewMetadataInfoWithParams("dubbo", "",
 		map[string]*ServiceInfo{"org.apache.dubbo.samples.proto.GreetService": NewServiceInfoWithURL(serviceUrl)})
-	assert.Equal(t, info.App, "dubbo")
-	assert.Equal(t, info.Revision, "")
-	assert.Equal(t, info.Services, map[string]*ServiceInfo{"org.apache.dubbo.samples.proto.GreetService": NewServiceInfoWithURL(serviceUrl)})
+	assert.Equal(t, "dubbo", info.App)
+	assert.Empty(t, info.Revision)
+	assert.Equal(t, map[string]*ServiceInfo{"org.apache.dubbo.samples.proto.GreetService": NewServiceInfoWithURL(serviceUrl)}, info.Services)
 }
 
 func TestNewServiceInfoWithURL(t *testing.T) {
 	info := NewServiceInfoWithURL(serviceUrl)
-	assert.True(t, info.URL == serviceUrl)
+	assert.Same(t, serviceUrl, info.URL)
 	assert.Equal(t, info.Protocol, serviceUrl.Protocol)
 	assert.Equal(t, info.Name, serviceUrl.Interface())
 	assert.Equal(t, info.Group, serviceUrl.Group())
 	assert.Equal(t, info.Version, serviceUrl.Version())
 	assert.Equal(t, strconv.Itoa(info.Port), serviceUrl.Port)
 	assert.Equal(t, info.Path, strings.TrimPrefix(serviceUrl.Path, "/"))
-	assert.Equal(t, info.Params["Greet.timeout"], "1000")
+	assert.Equal(t, "1000", info.Params["Greet.timeout"])
 }
 
 func TestServiceInfoGetMethods(t *testing.T) {
 	service := NewServiceInfoWithURL(serviceUrl)
-	assert.Equal(t, service.GetMethods(), []string{"Greet", "SayHello"})
+	assert.Equal(t, []string{"Greet", "SayHello"}, service.GetMethods())
 }
 
 func TestServiceInfoGetParams(t *testing.T) {
 	service := NewServiceInfoWithURL(serviceUrl)
-	assert.Equal(t, service.GetParams()["loadbalance"], []string{"random"})
+	assert.Equal(t, []string{"random"}, service.GetParams()["loadbalance"])
 }
 
 func TestServiceInfoGetMatchKey(t *testing.T) {
@@ -148,10 +149,10 @@ func TestServiceInfoGetMatchKey(t *testing.T) {
 	matchKey := si.MatchKey
 	assert.Equal(t, si.GetMatchKey(), matchKey)
 	si.MatchKey = ""
-	assert.True(t, si.GetMatchKey() != "")
+	assert.NotEmpty(t, si.GetMatchKey())
 	si.MatchKey = ""
 	si.ServiceKey = ""
-	assert.True(t, si.GetMatchKey() != "")
+	assert.NotEmpty(t, si.GetMatchKey())
 }
 
 func TestServiceInfoJavaClassName(t *testing.T) {
diff --git a/metadata/mapping/metadata/service_name_mapping_test.go b/metadata/mapping/metadata/service_name_mapping_test.go
index 01b25f569..d1783289a 100644
--- a/metadata/mapping/metadata/service_name_mapping_test.go
+++ b/metadata/mapping/metadata/service_name_mapping_test.go
@@ -28,6 +28,7 @@ import (
 
 	"github.com/stretchr/testify/assert"
 	"github.com/stretchr/testify/mock"
+	"github.com/stretchr/testify/require"
 )
 
 import (
@@ -53,11 +54,11 @@ func TestNoReportInstance(t *testing.T) {
 		common.WithParamsValue(constant.ApplicationKey, "dubbo"),
 	)
 	_, err := ins.Get(serviceUrl, lis)
-	assert.NotNil(t, err, "test Get no report instance")
+	require.Error(t, err, "test Get no report instance")
 	err = ins.Map(serviceUrl)
-	assert.NotNil(t, err, "test Map with no report instance")
+	require.Error(t, err, "test Map with no report instance")
 	err = ins.Remove(serviceUrl)
-	assert.NotNil(t, err, "test Remove with no report instance")
+	require.Error(t, err, "test Remove with no report instance")
 }
 
 func TestServiceNameMappingGet(t *testing.T) {
@@ -68,17 +69,17 @@ func TestServiceNameMappingGet(t *testing.T) {
 		common.WithParamsValue(constant.ApplicationKey, "dubbo"),
 	)
 	mockReport, err := initMock()
-	assert.Nil(t, err)
+	require.NoError(t, err)
 	t.Run("test normal", func(t *testing.T) {
 		mockReport.On("GetServiceAppMapping").Return(gxset.NewSet("dubbo"), nil).Once()
 		apps, er := ins.Get(serviceUrl, lis)
-		assert.Nil(t, er)
-		assert.True(t, !apps.Empty())
+		require.NoError(t, er)
+		assert.False(t, apps.Empty())
 	})
 	t.Run("test error", func(t *testing.T) {
 		mockReport.On("GetServiceAppMapping").Return(gxset.NewSet(), errors.New("mock error")).Once()
 		_, err = ins.Get(serviceUrl, lis)
-		assert.NotNil(t, err)
+		require.Error(t, err)
 	})
 	mockReport.AssertExpectations(t)
 }
@@ -90,16 +91,16 @@ func TestServiceNameMappingMap(t *testing.T) {
 		common.WithParamsValue(constant.ApplicationKey, "dubbo"),
 	)
 	mockReport, err := initMock()
-	assert.Nil(t, err)
+	require.NoError(t, err)
 	t.Run("test normal", func(t *testing.T) {
 		mockReport.On("RegisterServiceAppMapping").Return(nil).Once()
 		err = ins.Map(serviceUrl)
-		assert.Nil(t, err)
+		require.NoError(t, err)
 	})
 	t.Run("test error", func(t *testing.T) {
 		mockReport.On("RegisterServiceAppMapping").Return(errors.New("mock error")).Times(retryTimes)
 		err = ins.Map(serviceUrl)
-		assert.NotNil(t, err, "test mapping error")
+		require.Error(t, err, "test mapping error")
 	})
 	mockReport.AssertExpectations(t)
 }
@@ -111,16 +112,16 @@ func TestServiceNameMappingRemove(t *testing.T) {
 		common.WithParamsValue(constant.ApplicationKey, "dubbo"),
 	)
 	mockReport, err := initMock()
-	assert.Nil(t, err)
+	require.NoError(t, err)
 	t.Run("test normal", func(t *testing.T) {
 		mockReport.On("RemoveServiceAppMappingListener").Return(nil).Once()
 		err = ins.Remove(serviceUrl)
-		assert.Nil(t, err)
+		require.NoError(t, err)
 	})
 	t.Run("test error", func(t *testing.T) {
 		mockReport.On("RemoveServiceAppMappingListener").Return(errors.New("mock error")).Once()
 		err = ins.Remove(serviceUrl)
-		assert.NotNil(t, err)
+		require.Error(t, err)
 	})
 	mockReport.AssertExpectations(t)
 }
diff --git a/metadata/metadata_service_test.go b/metadata/metadata_service_test.go
index 7321d950f..c010457e0 100644
--- a/metadata/metadata_service_test.go
+++ b/metadata/metadata_service_test.go
@@ -24,6 +24,7 @@ import (
 
 import (
 	"github.com/stretchr/testify/assert"
+	"github.com/stretchr/testify/require"
 )
 
 import (
@@ -55,8 +56,8 @@ func TestDefaultMetadataServiceGetExportedServiceURLs(t *testing.T) {
 		metadataMap: newMetadataMap(),
 	}
 	got, err := mts.GetExportedServiceURLs()
-	assert.Nil(t, err)
-	assert.True(t, len(got) == 1)
+	require.NoError(t, err)
+	assert.Len(t, got, 1)
 	assert.Equal(t, url, got[0])
 }
 
@@ -139,7 +140,7 @@ func TestDefaultMetadataServiceGetExportedURLs(t *testing.T) {
 				metadataMap: newMetadataMap(),
 			}
 			got, err := mts.GetExportedURLs(tt.args.serviceInterface, tt.args.group, tt.args.version, tt.args.protocol)
-			assert.Nil(t, err)
+			require.NoError(t, err)
 			assert.Equalf(t, tt.want, got, "GetExportedURLs(%v, %v, %v, %v)", tt.args.serviceInterface, tt.args.group, tt.args.version, tt.args.protocol)
 		})
 	}
@@ -182,7 +183,7 @@ func TestDefaultMetadataServiceGetMetadataInfo(t *testing.T) {
 				metadataMap: newMetadataMap(),
 			}
 			got, err := mts.GetMetadataInfo(tt.args.revision)
-			assert.Nil(t, err)
+			require.NoError(t, err)
 			assert.Equalf(t, tt.want, got, "GetMetadataInfo(%v)", tt.args.revision)
 		})
 	}
@@ -211,7 +212,7 @@ func TestDefaultMetadataServiceGetMetadataServiceURL(t *testing.T) {
 				metadataUrl: tt.fields.metadataUrl,
 			}
 			got, err := mts.GetMetadataServiceURL()
-			assert.Nil(t, err)
+			require.NoError(t, err)
 			assert.Equalf(t, tt.want, got, "GetMetadataServiceURL()")
 		})
 	}
@@ -233,7 +234,7 @@ func TestDefaultMetadataServiceGetSubscribedURLs(t *testing.T) {
 				metadataMap: newMetadataMap(),
 			}
 			got, err := mts.GetSubscribedURLs()
-			assert.Nil(t, err)
+			require.NoError(t, err)
 			assert.Equalf(t, tt.want, got, "GetSubscribedURLs()")
 		})
 	}
@@ -293,7 +294,7 @@ func TestDefaultMetadataServiceSetMetadataServiceURL(t *testing.T) {
 func TestDefaultMetadataServiceVersion(t *testing.T) {
 	mts := &DefaultMetadataService{}
 	got, err := mts.Version()
-	assert.Nil(t, err)
+	require.NoError(t, err)
 	assert.Equal(t, version, got)
 }
 
@@ -308,7 +309,7 @@ func Test_serviceExporterExport(t *testing.T) {
 	t.Run("normal", func(t *testing.T) {
 		port := common.GetRandomPort("")
 		p, err := strconv.Atoi(port)
-		assert.Nil(t, err)
+		require.NoError(t, err)
 		opts := &Options{
 			appName:      "dubbo-app",
 			metadataType: constant.RemoteMetadataStorageType,
@@ -321,13 +322,13 @@ func Test_serviceExporterExport(t *testing.T) {
 			service: &DefaultMetadataService{},
 		}
 		err = e.Export()
-		assert.Nil(t, err)
+		require.NoError(t, err)
 	})
 	// first t.Run has called commom.ServiceMap.Register ,second will fail
 	t.Run("get methods error", func(t *testing.T) {
 		port := common.GetRandomPort("")
 		p, err := strconv.Atoi(port)
-		assert.Nil(t, err)
+		require.NoError(t, err)
 		opts := &Options{
 			appName:      "dubbo-app",
 			metadataType: constant.RemoteMetadataStorageType,
@@ -339,7 +340,7 @@ func Test_serviceExporterExport(t *testing.T) {
 			service: &DefaultMetadataService{},
 		}
 		err = e.Export()
-		assert.NotNil(t, err)
+		require.Error(t, err)
 	})
 	t.Run("port == 0", func(t *testing.T) {
 		opts := &Options{
@@ -351,13 +352,13 @@ func Test_serviceExporterExport(t *testing.T) {
 		// UnRegister first otherwise will fail
 		err := common.ServiceMap.UnRegister(constant.MetadataServiceName, constant.DefaultProtocol,
 			common.ServiceKey(constant.MetadataServiceName, opts.appName, version))
-		assert.Nil(t, err)
+		require.NoError(t, err)
 		dubboProtocol.On("Export").Return(mockExporter).Once()
 		e := &serviceExporter{
 			opts:    opts,
 			service: &DefaultMetadataService{},
 		}
 		err = e.Export()
-		assert.Nil(t, err)
+		require.NoError(t, err)
 	})
 }
diff --git a/metadata/metadata_test.go b/metadata/metadata_test.go
index ae890773a..f55edbcc6 100644
--- a/metadata/metadata_test.go
+++ b/metadata/metadata_test.go
@@ -18,7 +18,6 @@
 package metadata
 
 import (
-	"reflect"
 	"testing"
 )
 
@@ -56,11 +55,11 @@ func TestAddService(t *testing.T) {
 	for _, tt := range tests {
 		t.Run(tt.name, func(t *testing.T) {
 			AddService(tt.args.registryId, tt.args.url)
-			assert.True(t, registryMetadataInfo[tt.args.registryId] != nil)
+			assert.NotNil(t, registryMetadataInfo[tt.args.registryId])
 			meta := registryMetadataInfo[tt.args.registryId]
 			meta.App = tt.args.url.GetParam(constant.ApplicationKey, "")
 			meta.Tag = tt.args.url.GetParam(constant.ApplicationTagKey, "")
-			assert.True(t, reflect.DeepEqual(meta.GetExportedServiceURLs()[0], tt.args.url))
+			assert.Equal(t, tt.args.url, meta.GetExportedServiceURLs()[0])
 		})
 	}
 }
@@ -89,11 +88,11 @@ func TestAddSubscribeURL(t *testing.T) {
 	for _, tt := range tests {
 		t.Run(tt.name, func(t *testing.T) {
 			AddSubscribeURL(tt.args.registryId, tt.args.url)
-			assert.True(t, registryMetadataInfo[tt.args.registryId] != nil)
+			assert.NotNil(t, registryMetadataInfo[tt.args.registryId])
 			meta := registryMetadataInfo[tt.args.registryId]
 			meta.App = tt.args.url.GetParam(constant.ApplicationKey, "")
 			meta.Tag = tt.args.url.GetParam(constant.ApplicationTagKey, "")
-			assert.True(t, reflect.DeepEqual(meta.GetSubscribedURLs()[0], tt.args.url))
+			assert.Equal(t, tt.args.url, meta.GetSubscribedURLs()[0])
 		})
 	}
 }
diff --git a/metadata/report_instance_test.go b/metadata/report_instance_test.go
index 4b89cdec9..88a631a54 100644
--- a/metadata/report_instance_test.go
+++ b/metadata/report_instance_test.go
@@ -18,7 +18,6 @@
 package metadata
 
 import (
-	"reflect"
 	"testing"
 )
 
@@ -30,6 +29,7 @@ import (
 
 	"github.com/stretchr/testify/assert"
 	"github.com/stretchr/testify/mock"
+	"github.com/stretchr/testify/require"
 )
 
 import (
@@ -54,16 +54,14 @@ func TestDelegateMetadataReportGetAppMetadata(t *testing.T) {
 	t.Run("normal", func(t *testing.T) {
 		mockReport.On("GetAppMetadata").Return(metadataInfo, nil).Once()
 		got, err := delegate.GetAppMetadata("dubbo", "1")
-		assert.Nil(t, err)
-		if !reflect.DeepEqual(got, metadataInfo) {
-			t.Errorf("GetAppMetadata() got = %v, want %v", got, metadataInfo)
-		}
-		assert.True(t, len(ch) == 1)
+		require.NoError(t, err)
+		assert.Equal(t, metadataInfo, got)
+		assert.Len(t, ch, 1)
 		metricEvent := <-ch
-		assert.Equal(t, metricEvent.Type(), constant.MetricsMetadata)
+		assert.Equal(t, constant.MetricsMetadata, metricEvent.Type())
 		event, ok := metricEvent.(*metricsMetadata.MetadataMetricEvent)
 		assert.True(t, ok)
-		assert.NotNil(t, event.Name, metricsMetadata.MetadataSub)
+		assert.Equal(t, metricsMetadata.MetadataSub, event.Name)
 		assert.NotNil(t, event.Start)
 		assert.NotNil(t, event.End)
 		assert.True(t, event.Succ)
@@ -71,16 +69,16 @@ func TestDelegateMetadataReportGetAppMetadata(t *testing.T) {
 	t.Run("error", func(t *testing.T) {
 		mockReport.On("GetAppMetadata").Return(info.NewAppMetadataInfo("dubbo"), errors.New("mock error")).Once()
 		_, err := delegate.GetAppMetadata("dubbo", "1111")
-		assert.NotNil(t, err)
-		assert.True(t, len(ch) == 1)
+		require.Error(t, err)
+		assert.Len(t, ch, 1)
 		metricEvent := <-ch
-		assert.Equal(t, metricEvent.Type(), constant.MetricsMetadata)
+		assert.Equal(t, constant.MetricsMetadata, metricEvent.Type())
 		event, ok := metricEvent.(*metricsMetadata.MetadataMetricEvent)
 		assert.True(t, ok)
-		assert.NotNil(t, event.Name, metricsMetadata.MetadataSub)
+		assert.Equal(t, metricsMetadata.MetadataSub, event.Name)
 		assert.NotNil(t, event.Start)
 		assert.NotNil(t, event.End)
-		assert.True(t, !event.Succ)
+		assert.False(t, event.Succ)
 	})
 }
 
@@ -95,13 +93,13 @@ func TestDelegateMetadataReportPublishAppMetadata(t *testing.T) {
 	t.Run("normal", func(t *testing.T) {
 		mockReport.On("PublishAppMetadata").Return(nil).Once()
 		err := delegate.PublishAppMetadata("application", "revision", metadataInfo)
-		assert.Nil(t, err)
-		assert.True(t, len(ch) == 1)
+		require.NoError(t, err)
+		assert.Len(t, ch, 1)
 		metricEvent := <-ch
-		assert.Equal(t, metricEvent.Type(), constant.MetricsMetadata)
+		assert.Equal(t, constant.MetricsMetadata, metricEvent.Type())
 		event, ok := metricEvent.(*metricsMetadata.MetadataMetricEvent)
 		assert.True(t, ok)
-		assert.NotNil(t, event.Name, metricsMetadata.MetadataPush)
+		assert.Equal(t, metricsMetadata.MetadataPush, event.Name)
 		assert.NotNil(t, event.Start)
 		assert.NotNil(t, event.End)
 		assert.True(t, event.Succ)
@@ -109,16 +107,16 @@ func TestDelegateMetadataReportPublishAppMetadata(t *testing.T) {
 	t.Run("error", func(t *testing.T) {
 		mockReport.On("PublishAppMetadata").Return(errors.New("mock error")).Once()
 		err := delegate.PublishAppMetadata("application", "revision", metadataInfo)
-		assert.NotNil(t, err)
-		assert.True(t, len(ch) == 1)
+		require.Error(t, err)
+		assert.Len(t, ch, 1)
 		metricEvent := <-ch
-		assert.Equal(t, metricEvent.Type(), constant.MetricsMetadata)
+		assert.Equal(t, constant.MetricsMetadata, metricEvent.Type())
 		event, ok := metricEvent.(*metricsMetadata.MetadataMetricEvent)
 		assert.True(t, ok)
-		assert.NotNil(t, event.Name, metricsMetadata.MetadataPush)
+		assert.Equal(t, metricsMetadata.MetadataPush, event.Name)
 		assert.NotNil(t, event.Start)
 		assert.NotNil(t, event.End)
-		assert.True(t, !event.Succ)
+		assert.False(t, event.Succ)
 	})
 }
 
@@ -129,13 +127,13 @@ func TestDelegateMetadataReportGetServiceAppMapping(t *testing.T) {
 	t.Run("normal", func(t *testing.T) {
 		mockReport.On("GetServiceAppMapping").Return(gxset.NewSet(), nil).Once()
 		got, err := delegate.GetServiceAppMapping("dubbo", "dev", &listener{})
-		assert.Nil(t, err)
+		require.NoError(t, err)
 		assert.True(t, got.Empty())
 	})
 	t.Run("error", func(t *testing.T) {
 		mockReport.On("GetServiceAppMapping").Return(gxset.NewSet(), errors.New("mock error")).Once()
 		_, err := delegate.GetServiceAppMapping("dubbo", "dev", &listener{})
-		assert.NotNil(t, err)
+		require.Error(t, err)
 	})
 }
 
@@ -146,12 +144,12 @@ func TestDelegateMetadataReportRegisterServiceAppMapping(t *testing.T) {
 	t.Run("normal", func(t *testing.T) {
 		mockReport.On("RegisterServiceAppMapping").Return(nil).Once()
 		err := delegate.RegisterServiceAppMapping("interfaceName", "group", "application")
-		assert.Nil(t, err)
+		require.NoError(t, err)
 	})
 	t.Run("error", func(t *testing.T) {
 		mockReport.On("RegisterServiceAppMapping").Return(errors.New("mock error")).Once()
 		err := delegate.RegisterServiceAppMapping("interfaceName", "group", "application")
-		assert.NotNil(t, err)
+		require.Error(t, err)
 	})
 }
 
@@ -162,12 +160,12 @@ func TestDelegateMetadataReportRemoveServiceAppMappingListener(t *testing.T) {
 	t.Run("normal", func(t *testing.T) {
 		mockReport.On("RemoveServiceAppMappingListener").Return(nil).Once()
 		err := delegate.RemoveServiceAppMappingListener("interfaceName", "group")
-		assert.Nil(t, err)
+		require.NoError(t, err)
 	})
 	t.Run("error", func(t *testing.T) {
 		mockReport.On("RemoveServiceAppMappingListener").Return(errors.New("mock error")).Once()
 		err := delegate.RemoveServiceAppMappingListener("interfaceName", "group")
-		assert.NotNil(t, err)
+		require.Error(t, err)
 	})
 }
 
@@ -189,19 +187,19 @@ func TestGetMetadataReportByRegistry(t *testing.T) {
 
 func TestGetMetadataReports(t *testing.T) {
 	instances = make(map[string]report.MetadataReport)
-	assert.True(t, len(GetMetadataReports()) == 0)
+	assert.Empty(t, GetMetadataReports())
 	instances["default"] = new(mockMetadataReport)
-	assert.True(t, len(GetMetadataReports()) == 1)
+	assert.Len(t, GetMetadataReports(), 1)
 }
 
 func TestGetMetadataType(t *testing.T) {
-	assert.Equal(t, GetMetadataType(), constant.DefaultMetadataStorageType)
+	assert.Equal(t, constant.DefaultMetadataStorageType, GetMetadataType())
 	metadataOptions = &Options{}
-	assert.Equal(t, GetMetadataType(), constant.DefaultMetadataStorageType)
+	assert.Equal(t, constant.DefaultMetadataStorageType, GetMetadataType())
 	metadataOptions = &Options{
 		metadataType: constant.RemoteMetadataStorageType,
 	}
-	assert.Equal(t, GetMetadataType(), constant.RemoteMetadataStorageType)
+	assert.Equal(t, constant.RemoteMetadataStorageType, GetMetadataType())
 }
 
 func TestAddMetadataReport(t *testing.T) {
@@ -209,15 +207,15 @@ func TestAddMetadataReport(t *testing.T) {
 		common.WithProtocol("registryId"),
 	)
 	err := addMetadataReport("registryId", url)
-	assert.Nil(t, err)
-	assert.True(t, instances["registryId"] == nil)
+	require.NoError(t, err)
+	assert.Nil(t, instances["registryId"])
 	mockReport := new(mockMetadataReport)
 	extension.SetMetadataReportFactory("registryId", func() report.MetadataReportFactory {
 		return mockReport
 	})
 	err = addMetadataReport("registryId", url)
-	assert.Nil(t, err)
-	assert.True(t, instances["registryId"] != nil)
+	require.NoError(t, err)
+	assert.NotNil(t, instances["registryId"])
 }
 
 type mockMetadataReport struct {
diff --git a/metrics/api_test.go b/metrics/api_test.go
index edcac2a73..baebf1225 100644
--- a/metrics/api_test.go
+++ b/metrics/api_test.go
@@ -145,7 +145,7 @@ func TestMetricIdTagKeys(t *testing.T) {
 		t.Run(tt.name, func(t *testing.T) {
 			m := &MetricId{Name: "test_metric", Tags: tt.tags}
 			got := m.TagKeys()
-			assert.Equal(t, tt.want, len(got))
+			assert.Len(t, got, tt.want)
 			for k := range tt.tags {
 				assert.Contains(t, got, k)
 			}
@@ -171,10 +171,10 @@ func TestBaseCollectorStateCount(t *testing.T) {
 
 		assert.NotNil(t, total)
 		assert.NotNil(t, succ)
-		assert.Equal(t, float64(1), total.value)
-		assert.Equal(t, float64(1), succ.value)
+		assert.InDelta(t, 1.0, total.value, 0.01)
+		assert.InDelta(t, 1.0, succ.value, 0.01)
 		if fail != nil {
-			assert.Equal(t, float64(0), fail.value)
+			assert.InDelta(t, 0.0, fail.value, 0.01)
 		}
 	})
 
@@ -186,8 +186,8 @@ func TestBaseCollectorStateCount(t *testing.T) {
 
 		assert.NotNil(t, total)
 		assert.NotNil(t, fail)
-		assert.Equal(t, float64(2), total.value)
-		assert.Equal(t, float64(1), fail.value)
+		assert.InDelta(t, 2.0, total.value, 0.01)
+		assert.InDelta(t, 1.0, fail.value, 0.01)
 	})
 }
 
@@ -201,7 +201,7 @@ func TestDefaultCounterVec(t *testing.T) {
 		counterVec.Inc(labels)
 		metricId := NewMetricIdByLabels(key, labels)
 		counter := registry.Counter(metricId).(*mockCounterMetric)
-		assert.Equal(t, float64(1), counter.value)
+		assert.InDelta(t, 1.0, counter.value, 0.01)
 	})
 
 	t.Run("Add", func(t *testing.T) {
@@ -210,7 +210,7 @@ func TestDefaultCounterVec(t *testing.T) {
 		counterVec.Add(labels, 5.0)
 		metricId := NewMetricIdByLabels(key, labels)
 		counter := registry.Counter(metricId).(*mockCounterMetric)
-		assert.Equal(t, float64(5), counter.value)
+		assert.InDelta(t, 5.0, counter.value, 0.01)
 	})
 }
 
@@ -223,7 +223,7 @@ func TestDefaultGaugeVec(t *testing.T) {
 		gaugeVec := NewGaugeVec(registry, key)
 		gaugeVec.Set(labels, 100.0)
 		gauge := registry.Gauge(NewMetricIdByLabels(key, labels)).(*mockGaugeMetric)
-		assert.Equal(t, float64(100), gauge.value)
+		assert.InDelta(t, 100.0, gauge.value, 0.01)
 	})
 
 	t.Run("Inc", func(t *testing.T) {
@@ -232,7 +232,7 @@ func TestDefaultGaugeVec(t *testing.T) {
 		gaugeVec.Set(labels, 100.0)
 		gaugeVec.Inc(labels)
 		gauge := registry.Gauge(NewMetricIdByLabels(key, labels)).(*mockGaugeMetric)
-		assert.Equal(t, float64(101), gauge.value)
+		assert.InDelta(t, 101.0, gauge.value, 0.01)
 	})
 
 	t.Run("Dec", func(t *testing.T) {
@@ -241,7 +241,7 @@ func TestDefaultGaugeVec(t *testing.T) {
 		gaugeVec.Set(labels, 100.0)
 		gaugeVec.Dec(labels)
 		gauge := registry.Gauge(NewMetricIdByLabels(key, labels)).(*mockGaugeMetric)
-		assert.Equal(t, float64(99), gauge.value)
+		assert.InDelta(t, 99.0, gauge.value, 0.01)
 	})
 
 	t.Run("Add", func(t *testing.T) {
@@ -250,7 +250,7 @@ func TestDefaultGaugeVec(t *testing.T) {
 		gaugeVec.Set(labels, 100.0)
 		gaugeVec.Add(labels, 50.0)
 		gauge := registry.Gauge(NewMetricIdByLabels(key, labels)).(*mockGaugeMetric)
-		assert.Equal(t, float64(150), gauge.value)
+		assert.InDelta(t, 150.0, gauge.value, 0.01)
 	})
 
 	t.Run("Sub", func(t *testing.T) {
@@ -259,7 +259,7 @@ func TestDefaultGaugeVec(t *testing.T) {
 		gaugeVec.Set(labels, 100.0)
 		gaugeVec.Sub(labels, 30.0)
 		gauge := registry.Gauge(NewMetricIdByLabels(key, labels)).(*mockGaugeMetric)
-		assert.Equal(t, float64(70), gauge.value)
+		assert.InDelta(t, 70.0, gauge.value, 0.01)
 	})
 }
 
diff --git a/metrics/common_test.go b/metrics/common_test.go
index b3d943ea0..dc5ffa9e1 100644
--- a/metrics/common_test.go
+++ b/metrics/common_test.go
@@ -54,7 +54,7 @@ func TestApplicationMetricLevelTags(t *testing.T) {
 	assert.Equal(t, "1.0.0", tags[constant.TagApplicationVersion])
 	assert.NotEmpty(t, tags[constant.TagIp])
 	assert.NotEmpty(t, tags[constant.TagHostname])
-	assert.Equal(t, "", tags[constant.TagGitCommitId])
+	assert.Empty(t, tags[constant.TagGitCommitId])
 }
 
 func TestServiceMetricLevelTags(t *testing.T) {
diff --git a/metrics/config_center/collector_test.go b/metrics/config_center/collector_test.go
index 5cb965d22..f6011ed31 100644
--- a/metrics/config_center/collector_test.go
+++ b/metrics/config_center/collector_test.go
@@ -89,5 +89,5 @@ func TestNewIncMetricEvent(t *testing.T) {
 	assert.Equal(t, "test-group", event.group)
 	assert.Equal(t, remoting.EventTypeAdd, event.changeType)
 	assert.Equal(t, Nacos, event.configCenter)
-	assert.Equal(t, 1.0, event.size)
+	assert.InDelta(t, 1.0, event.size, 0.01)
 }
diff --git a/metrics/metadata/collector_test.go b/metrics/metadata/collector_test.go
index d0dda338e..59c29ba90 100644
--- a/metrics/metadata/collector_test.go
+++ b/metrics/metadata/collector_test.go
@@ -50,7 +50,7 @@ func TestMetadataMetricEventCostMs(t *testing.T) {
 	}
 
 	cost := event.CostMs()
-	assert.Equal(t, 10.0, cost)
+	assert.InDelta(t, 10.0, cost, 0.01)
 }
 
 func TestNewMetadataMetricTimeEvent(t *testing.T) {
diff --git a/metrics/prometheus/registry_test.go b/metrics/prometheus/registry_test.go
index 525b7c35b..c08d1f54e 100644
--- a/metrics/prometheus/registry_test.go
+++ b/metrics/prometheus/registry_test.go
@@ -29,6 +29,7 @@ import (
 	prom "github.com/prometheus/client_golang/prometheus"
 
 	"github.com/stretchr/testify/assert"
+	"github.com/stretchr/testify/require"
 )
 
 import (
@@ -60,7 +61,7 @@ func TestPromMetricRegistryCounter(t *testing.T) {
 	p := NewPromMetricRegistry(prom.NewRegistry(), url)
 	p.Counter(metricId).Inc()
 	text, err := p.Scrape()
-	assert.Nil(t, err)
+	require.NoError(t, err)
 	assert.Contains(t, text, "# HELP dubbo_request request\n# TYPE dubbo_request counter")
 	assert.Contains(t, text, `dubbo_request{app="dubbo",version="1.0.0"} 1`)
 }
@@ -69,7 +70,7 @@ func TestPromMetricRegistryGauge(t *testing.T) {
 	p := NewPromMetricRegistry(prom.NewRegistry(), url)
 	p.Gauge(metricId).Set(100)
 	text, err := p.Scrape()
-	assert.Nil(t, err)
+	require.NoError(t, err)
 	assert.Contains(t, text, "# HELP dubbo_request request\n# TYPE dubbo_request gauge")
 	assert.Contains(t, text, `dubbo_request{app="dubbo",version="1.0.0"} 100`)
 
@@ -79,7 +80,7 @@ func TestPromMetricRegistryHistogram(t *testing.T) {
 	p := NewPromMetricRegistry(prom.NewRegistry(), url)
 	p.Histogram(metricId).Observe(100)
 	text, err := p.Scrape()
-	assert.Nil(t, err)
+	require.NoError(t, err)
 	assert.Contains(t, text, "# HELP dubbo_request request\n# TYPE dubbo_request histogram")
 	assert.Contains(t, text, `dubbo_request_bucket{app="dubbo",version="1.0.0",le="+Inf"} 1`)
 	assert.Contains(t, text, `dubbo_request_sum{app="dubbo",version="1.0.0"} 100`)
@@ -90,7 +91,7 @@ func TestPromMetricRegistrySummary(t *testing.T) {
 	p := NewPromMetricRegistry(prom.NewRegistry(), url)
 	p.Summary(metricId).Observe(100)
 	text, err := p.Scrape()
-	assert.Nil(t, err)
+	require.NoError(t, err)
 	assert.Contains(t, text, "# HELP dubbo_request request\n# TYPE dubbo_request summary")
 	assert.Contains(t, text, "dubbo_request_sum{app=\"dubbo\",version=\"1.0.0\"} 100")
 	assert.Contains(t, text, "dubbo_request_count{app=\"dubbo\",version=\"1.0.0\"} 1")
@@ -102,7 +103,7 @@ func TestPromMetricRegistryRt(t *testing.T) {
 		p.Rt(metricId, &metrics.RtOpts{}).Observe(10 * float64(i))
 	}
 	text, err := p.Scrape()
-	assert.Nil(t, err)
+	require.NoError(t, err)
 	assert.Contains(t, text, "# HELP dubbo_request_avg Average request\n# TYPE dubbo_request_avg gauge\ndubbo_request_avg{app=\"dubbo\",version=\"1.0.0\"} 45")
 	assert.Contains(t, text, "# HELP dubbo_request_last Last request\n# TYPE dubbo_request_last gauge\ndubbo_request_last{app=\"dubbo\",version=\"1.0.0\"} 90")
 	assert.Contains(t, text, "# HELP dubbo_request_max Max request\n# TYPE dubbo_request_max gauge\ndubbo_request_max{app=\"dubbo\",version=\"1.0.0\"} 90")
@@ -114,7 +115,7 @@ func TestPromMetricRegistryRt(t *testing.T) {
 		p.Rt(metricId, &metrics.RtOpts{Aggregate: true, BucketNum: 10, TimeWindowSeconds: 60}).Observe(10 * float64(i))
 	}
 	text, err = p.Scrape()
-	assert.Nil(t, err)
+	require.NoError(t, err)
 	assert.Contains(t, text, "# HELP dubbo_request_avg_milliseconds_aggregate The average request\n# TYPE dubbo_request_avg_milliseconds_aggregate gauge\ndubbo_request_avg_milliseconds_aggregate{app=\"dubbo\",version=\"1.0.0\"} 45")
 	assert.Contains(t, text, "# HELP dubbo_request_max_milliseconds_aggregate The maximum request\n# TYPE dubbo_request_max_milliseconds_aggregate gauge\ndubbo_request_max_milliseconds_aggregate{app=\"dubbo\",version=\"1.0.0\"} 90")
 	assert.Contains(t, text, "# HELP dubbo_request_min_milliseconds_aggregate The minimum request\n# TYPE dubbo_request_min_milliseconds_aggregate gauge\ndubbo_request_min_milliseconds_aggregate{app=\"dubbo\",version=\"1.0.0\"} 0")
@@ -132,7 +133,7 @@ func TestPromMetricRegistryCounterConcurrent(t *testing.T) {
 	}
 	wg.Wait()
 	text, err := p.Scrape()
-	assert.Nil(t, err)
+	require.NoError(t, err)
 	assert.Contains(t, text, "# HELP dubbo_request request\n# TYPE dubbo_request counter")
 	assert.Contains(t, text, `dubbo_request{app="dubbo",version="1.0.0"} 10`)
 }
@@ -153,12 +154,12 @@ func TestPromMetricRegistryExport(t *testing.T) {
 		err := http.ListenAndServe(url.GetParam(constant.PrometheusPushgatewayBaseUrlKey, ""),
 			http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
 				bodyBytes, err := io.ReadAll(r.Body)
-				assert.Nil(t, err)
+				assert.NoError(t, err)
 				text := string(bodyBytes)
 				assert.Contains(t, text, "dubbo_request_avg")
 				wg.Done()
 			}))
-		assert.Nil(t, err)
+		assert.NoError(t, err)
 	}()
 	timeout := url.GetParamByIntValue(constant.PrometheusPushgatewayPushIntervalKey, constant.PrometheusDefaultPushInterval)
 	if waitTimeout(&wg, time.Duration(timeout+1)*time.Second) {
@@ -169,10 +170,10 @@ func TestPromMetricRegistryExport(t *testing.T) {
 		url.GetParam(constant.PrometheusExporterMetricsPortKey, constant.PrometheusDefaultMetricsPort) +
 		url.GetParam(constant.PrometheusExporterMetricsPathKey, constant.PrometheusDefaultMetricsPath),
 	)
-	assert.Nil(t, err)
+	require.NoError(t, err)
 	defer resp.Body.Close()
 	bodyBytes, err := io.ReadAll(resp.Body)
-	assert.Nil(t, err)
+	require.NoError(t, err)
 	text := string(bodyBytes)
 	assert.Contains(t, text, "dubbo_request_avg")
 }
diff --git a/metrics/prometheus/rt_vec_test.go b/metrics/prometheus/rt_vec_test.go
index 8964798f9..504bc6a82 100644
--- a/metrics/prometheus/rt_vec_test.go
+++ b/metrics/prometheus/rt_vec_test.go
@@ -47,7 +47,7 @@ func TestRtVecCollect(t *testing.T) {
 		ch := make(chan prom.Metric, len(r.metrics))
 		r.Collect(ch)
 		close(ch)
-		assert.Equal(t, len(ch), len(r.metrics))
+		assert.Len(t, ch, len(r.metrics))
 		for _, m := range r.metrics {
 			metric, ok := <-ch
 			if !ok {
@@ -76,7 +76,7 @@ func TestRtVecDescribe(t *testing.T) {
 		ch := make(chan *prom.Desc, len(r.metrics))
 		r.Describe(ch)
 		close(ch)
-		assert.Equal(t, len(ch), len(r.metrics))
+		assert.Len(t, ch, len(r.metrics))
 		for _, m := range r.metrics {
 			desc, ok := <-ch
 			if !ok {
@@ -136,7 +136,7 @@ func TestRtVecWith(t *testing.T) {
 	for _, r := range vecs {
 		first := r.With(tags)
 		second := r.With(tags)
-		assert.True(t, first == second) // init once
+		assert.Equal(t, first, second) // init once
 	}
 }
 
@@ -161,6 +161,6 @@ func TestRtVecWithConcurrent(t *testing.T) {
 		}
 		wg.Wait()
 		res := r.With(labelValues).(*Rt).obs.result()
-		assert.True(t, res.Count == uint64(10))
+		assert.Equal(t, uint64(10), res.Count)
 	}
 }
diff --git a/metrics/registry/event_test.go b/metrics/registry/event_test.go
index b7d2236de..d244a7913 100644
--- a/metrics/registry/event_test.go
+++ b/metrics/registry/event_test.go
@@ -50,7 +50,7 @@ func TestRegistryMetricsEventCostMs(t *testing.T) {
 	}
 
 	cost := event.CostMs()
-	assert.Equal(t, 10.0, cost)
+	assert.InDelta(t, 10.0, cost, 0.01)
 }
 
 func TestNewRegisterEvent(t *testing.T) {
diff --git a/otel/trace/exporter_test.go b/otel/trace/exporter_test.go
index 675b8610c..750fc9acd 100644
--- a/otel/trace/exporter_test.go
+++ b/otel/trace/exporter_test.go
@@ -25,6 +25,7 @@ import (
 
 import (
 	"github.com/stretchr/testify/assert"
+	"github.com/stretchr/testify/require"
 
 	"go.opentelemetry.io/otel/exporters/stdout/stdouttrace"
 
@@ -63,7 +64,7 @@ func TestNewExporter_NilConfig(t *testing.T) {
 	tracerProvider, propagator, err := NewExporter(nil, customFunc)
 	assert.Nil(t, tracerProvider)
 	assert.Nil(t, propagator)
-	assert.Error(t, err)
+	require.Error(t, err)
 	assert.Contains(t, err.Error(), "otel exporter config is nil")
 }
 
@@ -82,7 +83,7 @@ func TestNewExporter_CustomFuncError(t *testing.T) {
 	tracerProvider, propagator, err := NewExporter(config, customFunc)
 	assert.Nil(t, tracerProvider)
 	assert.Nil(t, propagator)
-	assert.Error(t, err)
+	require.Error(t, err)
 	assert.Contains(t, err.Error(), "failed to create test exporter")
 }
 
@@ -102,7 +103,7 @@ func TestNewExporter_InvalidSampleMode(t *testing.T) {
 	tracerProvider, propagator, err := NewExporter(config, customFunc)
 	assert.Nil(t, tracerProvider)
 	assert.Nil(t, propagator)
-	assert.Error(t, err)
+	require.Error(t, err)
 	assert.Contains(t, err.Error(), "otel sample mode invalid-mode not supported")
 }
 
@@ -121,7 +122,7 @@ func TestNewExporter_SampleModeRatio(t *testing.T) {
 	}
 
 	tracerProvider, propagator, err := NewExporter(config, customFunc)
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	assert.NotNil(t, tracerProvider)
 	defer tracerProvider.Shutdown(context.Background())
 	assert.NotNil(t, propagator)
@@ -141,7 +142,7 @@ func TestNewExporter_SampleModeAlways(t *testing.T) {
 	}
 
 	tracerProvider, propagator, err := NewExporter(config, customFunc)
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	assert.NotNil(t, tracerProvider)
 	defer tracerProvider.Shutdown(context.Background())
 	assert.NotNil(t, propagator)
@@ -161,7 +162,7 @@ func TestNewExporter_SampleModeNever(t *testing.T) {
 	}
 
 	tracerProvider, propagator, err := NewExporter(config, customFunc)
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	assert.NotNil(t, tracerProvider)
 	defer tracerProvider.Shutdown(context.Background())
 	assert.NotNil(t, propagator)
@@ -181,7 +182,7 @@ func TestNewExporter_PropagatorW3c(t *testing.T) {
 	}
 
 	tracerProvider, propagator, err := NewExporter(config, customFunc)
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	assert.NotNil(t, tracerProvider)
 	defer tracerProvider.Shutdown(context.Background())
 	assert.NotNil(t, propagator)
@@ -201,7 +202,7 @@ func TestNewExporter_PropagatorB3(t *testing.T) {
 	}
 
 	tracerProvider, propagator, err := NewExporter(config, customFunc)
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	assert.NotNil(t, tracerProvider)
 	defer tracerProvider.Shutdown(context.Background())
 	assert.NotNil(t, propagator)
@@ -221,7 +222,7 @@ func TestNewExporter_PropagatorEmpty(t *testing.T) {
 	}
 
 	tracerProvider, propagator, err := NewExporter(config, customFunc)
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	assert.NotNil(t, tracerProvider)
 	defer tracerProvider.Shutdown(context.Background())
 	// When propagator is empty or unknown, it should be nil
@@ -242,7 +243,7 @@ func TestNewExporter_PropagatorUnknown(t *testing.T) {
 	}
 
 	tracerProvider, propagator, err := NewExporter(config, customFunc)
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	assert.NotNil(t, tracerProvider)
 	defer tracerProvider.Shutdown(context.Background())
 	// When propagator is unknown, it should be nil
@@ -264,7 +265,7 @@ func TestNewExporter_WithServiceInfo(t *testing.T) {
 	}
 
 	tracerProvider, propagator, err := NewExporter(config, customFunc)
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	assert.NotNil(t, tracerProvider)
 	defer tracerProvider.Shutdown(context.Background())
 	assert.NotNil(t, propagator)
@@ -288,7 +289,7 @@ func TestNewExporter_CompleteConfig(t *testing.T) {
 	}
 
 	tracerProvider, propagator, err := NewExporter(config, customFunc)
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	assert.NotNil(t, tracerProvider)
 	defer tracerProvider.Shutdown(context.Background())
 	assert.NotNil(t, propagator)
diff --git a/otel/trace/options_test.go b/otel/trace/options_test.go
index 45ab61f8e..3d4c422b5 100644
--- a/otel/trace/options_test.go
+++ b/otel/trace/options_test.go
@@ -165,7 +165,7 @@ func TestWithRatio(t *testing.T) {
 	for _, c := range cases {
 		t.Run(c.name, func(t *testing.T) {
 			opts := NewOptions(WithRatio(c.ratio))
-			assert.Equal(t, c.ratio, opts.Otel.TracingConfig.SampleRatio)
+			assert.InDelta(t, c.ratio, opts.Otel.TracingConfig.SampleRatio, 0.01)
 		})
 	}
 }
@@ -268,7 +268,7 @@ func TestMultipleOptions(t *testing.T) {
 	assert.Equal(t, "jaeger", opts.Otel.TracingConfig.Exporter)
 	assert.Equal(t, "w3c", opts.Otel.TracingConfig.Propagator)
 	assert.Equal(t, "ratio", opts.Otel.TracingConfig.SampleMode)
-	assert.Equal(t, 0.75, opts.Otel.TracingConfig.SampleRatio)
+	assert.InDelta(t, 0.75, opts.Otel.TracingConfig.SampleRatio, 0.01)
 	assert.Equal(t, "localhost:14268", opts.Otel.TracingConfig.Endpoint)
 	assert.True(t, opts.Otel.TracingConfig.Insecure)
 }
diff --git a/otel/trace/stdout/exporter_test.go b/otel/trace/stdout/exporter_test.go
index 9c2d059e4..beb7f5546 100644
--- a/otel/trace/stdout/exporter_test.go
+++ b/otel/trace/stdout/exporter_test.go
@@ -23,6 +23,7 @@ import (
 
 import (
 	"github.com/stretchr/testify/assert"
+	"github.com/stretchr/testify/require"
 )
 
 import (
@@ -38,7 +39,7 @@ func TestNewStdoutExporter(t *testing.T) {
 	}
 
 	exporter, err := newStdoutExporter(config)
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	assert.NotNil(t, exporter)
 	assert.NotNil(t, exporter.GetTracerProvider())
 	assert.NotNil(t, exporter.GetPropagator())
@@ -55,7 +56,7 @@ func TestNewStdoutExporter_WithConfig(t *testing.T) {
 	}
 
 	exporter, err := newStdoutExporter(config)
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	assert.NotNil(t, exporter)
 	assert.NotNil(t, exporter.GetTracerProvider())
 	assert.NotNil(t, exporter.GetPropagator())
diff --git a/protocol/base/base_invoker_test.go b/protocol/base/base_invoker_test.go
index 7182a49cf..e1c00a7f8 100644
--- a/protocol/base/base_invoker_test.go
+++ b/protocol/base/base_invoker_test.go
@@ -24,6 +24,7 @@ import (
 
 import (
 	"github.com/stretchr/testify/assert"
+	"github.com/stretchr/testify/require"
 )
 
 import (
@@ -32,7 +33,7 @@ import (
 
 func TestBaseInvoker(t *testing.T) {
 	url, err := common.NewURL("dubbo://localhost:9090")
-	assert.Nil(t, err)
+	require.NoError(t, err)
 
 	ivk := NewBaseInvoker(url)
 	assert.NotNil(t, ivk.GetURL())
diff --git a/protocol/dubbo/dubbo_exporter_test.go b/protocol/dubbo/dubbo_exporter_test.go
index d54bb2a3a..9ffbf0df7 100644
--- a/protocol/dubbo/dubbo_exporter_test.go
+++ b/protocol/dubbo/dubbo_exporter_test.go
@@ -205,7 +205,7 @@ func TestDubboExporterMultipleExporters(t *testing.T) {
 	}
 
 	// Verify all exporters coexist in memory - validate the count
-	assert.Equal(t, len(tests), len(exporters), "all exporters should coexist in the exporters map")
+	assert.Len(t, exporters, len(tests), "all exporters should coexist in the exporters map")
 
 	// Verify each exporter has the correct invoker and can be accessed independently
 	for _, test := range tests {
diff --git a/protocol/dubbo/dubbo_protocol_test.go b/protocol/dubbo/dubbo_protocol_test.go
index 15a83e9a1..f697cd07c 100644
--- a/protocol/dubbo/dubbo_protocol_test.go
+++ b/protocol/dubbo/dubbo_protocol_test.go
@@ -23,6 +23,7 @@ import (
 
 import (
 	"github.com/stretchr/testify/assert"
+	"github.com/stretchr/testify/require"
 )
 
 import (
@@ -86,7 +87,7 @@ func TestDubboProtocol_Export(t *testing.T) {
 	// Export
 	proto := GetProtocol()
 	url, err := common.NewURL(mockCommonUrl)
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	exporter := proto.Export(base.NewBaseInvoker(url))
 	// make sure url
 	eq := exporter.GetInvoker().GetURL().URLEqual(url)
@@ -94,7 +95,7 @@ func TestDubboProtocol_Export(t *testing.T) {
 
 	// second service: the same path and the different version
 	url2, err := common.NewURL(mockCommonUrl, common.WithParamsValue(constant.VersionKey, "v1.1"))
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	exporter2 := proto.Export(base.NewBaseInvoker(url2))
 	// make sure url
 	eq2 := exporter2.GetInvoker().GetURL().URLEqual(url2)
@@ -120,7 +121,7 @@ func TestDubboProtocolReferNoConnect(t *testing.T) {
 	initDubboInvokerTest()
 	proto := GetProtocol()
 	url, err := common.NewURL(mockCommonUrl)
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	invoker := proto.Refer(url)
 	assert.Nil(t, invoker)
 }
@@ -136,7 +137,7 @@ func TestDubboProtocol_Refer(t *testing.T) {
 	proto.Export(&proxy_factory.ProxyInvoker{
 		BaseInvoker: *base.NewBaseInvoker(url),
 	})
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	invoker := proto.Refer(url)
 	// make sure url
 	eq := invoker.GetURL().URLEqual(url)
diff --git a/protocol/dubbo/hessian2/hessian_dubbo_test.go b/protocol/dubbo/hessian2/hessian_dubbo_test.go
index 668c3f67a..3514d78c6 100644
--- a/protocol/dubbo/hessian2/hessian_dubbo_test.go
+++ b/protocol/dubbo/hessian2/hessian_dubbo_test.go
@@ -29,6 +29,7 @@ import (
 	hessian "github.com/apache/dubbo-go-hessian2"
 
 	"github.com/stretchr/testify/assert"
+	"github.com/stretchr/testify/require"
 )
 
 type Case struct {
@@ -75,19 +76,19 @@ func doTestHessianEncodeHeader(t *testing.T, packageType PackageType, responseSt
 		ID:             1,
 		ResponseStatus: responseStatus,
 	}, body)
-	assert.Nil(t, err)
+	require.NoError(t, err)
 	return resp, err
 }
 
 func doTestResponse(t *testing.T, packageType PackageType, responseStatus byte, body any, decodedResponse *DubboResponse, assertFunc func()) {
 	resp, err := doTestHessianEncodeHeader(t, packageType, responseStatus, body)
-	assert.NoError(t, err)
+	require.NoError(t, err)
 
 	codecR := NewHessianCodec(bufio.NewReader(bytes.NewReader(resp)))
 
 	h := &DubboHeader{}
 	err = codecR.ReadHeader(h)
-	assert.Nil(t, err)
+	require.NoError(t, err)
 
 	assert.Equal(t, byte(2), h.SerialID)
 	assert.Equal(t, packageType, h.Type&(PackageRequest|PackageResponse|PackageHeartbeat))
@@ -95,7 +96,7 @@ func doTestResponse(t *testing.T, packageType PackageType, responseStatus byte,
 	assert.Equal(t, responseStatus, h.ResponseStatus)
 
 	err = codecR.ReadBody(decodedResponse)
-	assert.Nil(t, err)
+	require.NoError(t, err)
 	t.Log(decodedResponse)
 
 	if assertFunc != nil {
@@ -126,7 +127,7 @@ func TestResponse(t *testing.T) {
 			t.Errorf("expect []*Case, but get %s", reflect.TypeOf(decodedResponse.RspObj).String())
 			return
 		}
-		assert.Equal(t, 1, len(arrRes))
+		assert.Len(t, arrRes, 1)
 		assert.Equal(t, &caseObj, arrRes[0])
 	})
 
@@ -171,20 +172,20 @@ func TestResponse(t *testing.T) {
 		if !ok {
 			assert.FailNow(t, "invalid decoded response map value", "expect []*Case, but get %v", reflect.TypeOf(c))
 		}
-		assert.Equal(t, 1, len(mapValueArr))
+		assert.Len(t, mapValueArr, 1)
 		assert.Equal(t, &caseObj, mapValueArr[0])
 	})
 }
 
 func doTestRequest(t *testing.T, packageType PackageType, responseStatus byte, body any) {
 	resp, err := doTestHessianEncodeHeader(t, packageType, responseStatus, body)
-	assert.NoError(t, err)
+	require.NoError(t, err)
 
 	codecR := NewHessianCodec(bufio.NewReader(bytes.NewReader(resp)))
 
 	h := &DubboHeader{}
 	err = codecR.ReadHeader(h)
-	assert.Nil(t, err)
+	require.NoError(t, err)
 	assert.Equal(t, byte(2), h.SerialID)
 	assert.Equal(t, packageType, h.Type&(PackageRequest|PackageResponse|PackageHeartbeat))
 	assert.Equal(t, int64(1), h.ID)
@@ -192,9 +193,9 @@ func doTestRequest(t *testing.T, packageType PackageType, responseStatus byte, b
 
 	c := make([]any, 7)
 	err = codecR.ReadBody(c)
-	assert.Nil(t, err)
+	require.NoError(t, err)
 	t.Log(c)
-	assert.True(t, len(body.([]any)) == len(c[5].([]any)))
+	assert.Len(t, c[5].([]any), len(body.([]any)))
 }
 
 func TestRequest(t *testing.T) {
@@ -216,20 +217,20 @@ func TestHessianCodec_ReadAttachments(t *testing.T) {
 		Attachments: map[string]any{DUBBO_VERSION_KEY: "2.6.4", "att": AttachTestObject{ID: 23, Name: "haha"}},
 	}
 	resp, err := doTestHessianEncodeHeader(t, PackageResponse, Response_OK, body)
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	hessian.UnRegisterPOJOs(&CaseB{}, &CaseA{})
 	codecR1 := NewHessianCodec(bufio.NewReader(bytes.NewReader(resp)))
 	codecR2 := NewHessianCodec(bufio.NewReader(bytes.NewReader(resp)))
 	h := &DubboHeader{}
-	assert.NoError(t, codecR1.ReadHeader(h))
+	require.NoError(t, codecR1.ReadHeader(h))
 	t.Log(h)
-	assert.NoError(t, codecR2.ReadHeader(h))
+	require.NoError(t, codecR2.ReadHeader(h))
 	t.Log(h)
 
 	err = codecR1.ReadBody(body)
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	attrs, err := codecR2.ReadAttachments()
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	assert.Equal(t, "2.6.4", attrs[DUBBO_VERSION_KEY])
 	assert.Equal(t, AttachTestObject{ID: 23, Name: "haha"}, *(attrs["att"].(*AttachTestObject)))
 	assert.NotEqual(t, AttachTestObject{ID: 24, Name: "nohaha"}, *(attrs["att"].(*AttachTestObject)))
@@ -280,12 +281,12 @@ func TestDecodeFromTcpStream(t *testing.T) {
 		ResponseStatus: Zero,
 	}
 	resp, err := codecW.Write(service, header, []any{cs})
-	assert.NoError(t, err)
+	require.NoError(t, err)
 
 	// set reader buffer = 1024 to split resp into two parts
 	codec := NewStreamHessianCodecCustom(0, bufio.NewReaderSize(bytes.NewReader(resp), 1024), 0)
 	h := &DubboHeader{}
-	assert.NoError(t, codec.ReadHeader(h))
+	require.NoError(t, codec.ReadHeader(h))
 	assert.Equal(t, h.SerialID, header.SerialID)
 	assert.Equal(t, h.Type, header.Type)
 	assert.Equal(t, h.ID, header.ID)
@@ -294,7 +295,7 @@ func TestDecodeFromTcpStream(t *testing.T) {
 	reqBody := make([]any, 7)
 
 	err = codec.ReadBody(reqBody)
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	assert.Equal(t, reqBody[1], service.Path)
 	assert.Equal(t, reqBody[2], service.Version)
 	assert.Equal(t, reqBody[3], service.Method)
@@ -302,7 +303,7 @@ func TestDecodeFromTcpStream(t *testing.T) {
 	if list, ok := reqBody[5].([]any); ok {
 		assert.Len(t, list, 1)
 		if infoPtr, ok2 := list[0].(*CaseStream); ok2 {
-			assert.Equal(t, len(infoPtr.Payload), 1024)
+			assert.Len(t, infoPtr.Payload, 1024)
 		}
 	}
 
diff --git a/protocol/dubbo/hessian2/hessian_request_test.go b/protocol/dubbo/hessian2/hessian_request_test.go
index 00f3a14d6..7a9d70ead 100644
--- a/protocol/dubbo/hessian2/hessian_request_test.go
+++ b/protocol/dubbo/hessian2/hessian_request_test.go
@@ -28,6 +28,7 @@ import (
 	hessian "github.com/apache/dubbo-go-hessian2"
 
 	"github.com/stretchr/testify/assert"
+	"github.com/stretchr/testify/require"
 )
 
 type TestEnumGender hessian.JavaEnum
@@ -82,7 +83,7 @@ func TestPackRequest(t *testing.T) {
 		ID:       123,
 	}, []any{1, 2})
 
-	assert.Nil(t, err)
+	require.NoError(t, err)
 
 	if bytes != nil {
 		t.Logf("pack request: %s", string(bytes))
@@ -92,34 +93,34 @@ func TestPackRequest(t *testing.T) {
 func TestGetArgsTypeList(t *testing.T) {
 	type Test struct{}
 	str, err := getArgsTypeList([]any{nil, 1, []int{2}, true, []bool{false}, "a", []string{"b"}, Test{}, &Test{}, []Test{}, map[string]Test{}, TestEnumGender(MAN)})
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	assert.Equal(t, "VJ[JZ[ZLjava/lang/String;[Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;[Ljava/lang/Object;Ljava/util/Map;Lcom/ikurento/test/TestEnumGender;", str)
 }
 
 func TestDescRegex(t *testing.T) {
 	results := DescRegex.FindAllString("Ljava/lang/String;", -1)
-	assert.Equal(t, 1, len(results))
+	assert.Len(t, results, 1)
 	assert.Equal(t, "Ljava/lang/String;", results[0])
 
 	results = DescRegex.FindAllString("Ljava/lang/String;I", -1)
-	assert.Equal(t, 2, len(results))
+	assert.Len(t, results, 2)
 	assert.Equal(t, "Ljava/lang/String;", results[0])
 	assert.Equal(t, "I", results[1])
 
 	results = DescRegex.FindAllString("ILjava/lang/String;", -1)
-	assert.Equal(t, 2, len(results))
+	assert.Len(t, results, 2)
 	assert.Equal(t, "I", results[0])
 	assert.Equal(t, "Ljava/lang/String;", results[1])
 
 	results = DescRegex.FindAllString("ILjava/lang/String;IZ", -1)
-	assert.Equal(t, 4, len(results))
+	assert.Len(t, results, 4)
 	assert.Equal(t, "I", results[0])
 	assert.Equal(t, "Ljava/lang/String;", results[1])
 	assert.Equal(t, "I", results[2])
 	assert.Equal(t, "Z", results[3])
 
 	results = DescRegex.FindAllString("[Ljava/lang/String;[I", -1)
-	assert.Equal(t, 2, len(results))
+	assert.Len(t, results, 2)
 	assert.Equal(t, "[Ljava/lang/String;", results[0])
 	assert.Equal(t, "[I", results[1])
 }
diff --git a/protocol/dubbo/hessian2/hessian_response_test.go b/protocol/dubbo/hessian2/hessian_response_test.go
index 3c4294360..21005dae7 100644
--- a/protocol/dubbo/hessian2/hessian_response_test.go
+++ b/protocol/dubbo/hessian2/hessian_response_test.go
@@ -26,14 +26,12 @@ import (
 	hessian "github.com/apache/dubbo-go-hessian2"
 
 	"github.com/stretchr/testify/assert"
+	"github.com/stretchr/testify/require"
 )
 
 func doTestReflectResponse(t *testing.T, in any, out any) {
 	err := ReflectResponse(in, out)
-	if err != nil {
-		t.Error(err)
-		t.FailNow()
-	}
+	require.NoError(t, err)
 
 	result := hessian.UnpackPtrValue(reflect.ValueOf(out)).Interface()
 
@@ -129,12 +127,9 @@ func TestCopyMap(t *testing.T) {
 	m3["go"] = r2
 
 	err := ReflectResponse(m3, &m3r)
-	if err != nil {
-		t.Error(err)
-		t.FailNow()
-	}
+	require.NoError(t, err)
 
-	assert.Equal(t, 2, len(m3r))
+	assert.Len(t, m3r, 2)
 
 	rr1, ok := m3r["dubbo"]
 	assert.True(t, ok)
@@ -159,12 +154,9 @@ func TestCopySlice(t *testing.T) {
 	var s1r []any
 
 	err := ReflectResponse(s1, &s1r)
-	if err != nil {
-		t.Error(err)
-		t.FailNow()
-	}
+	require.NoError(t, err)
 
-	assert.Equal(t, 2, len(s1r))
+	assert.Len(t, s1r, 2)
 	assert.True(t, reflect.DeepEqual(r1, s1r[0]))
 	assert.True(t, reflect.DeepEqual(r2, s1r[1]))
 }
diff --git a/protocol/dubbo/hessian2/java_class.go b/protocol/dubbo/hessian2/java_class.go
index 4f51180f3..ad579d893 100644
--- a/protocol/dubbo/hessian2/java_class.go
+++ b/protocol/dubbo/hessian2/java_class.go
@@ -118,8 +118,6 @@ func GetClassDesc(v any) string {
 
 	switch v := v.(type) {
 	// Serialized tags for base types
-	case nil:
-		return "V"
 	case bool:
 		return "Z"
 	case []bool:
diff --git a/protocol/dubbo/hessian2/java_class_test.go b/protocol/dubbo/hessian2/java_class_test.go
index 246f13999..7743c3b2c 100644
--- a/protocol/dubbo/hessian2/java_class_test.go
+++ b/protocol/dubbo/hessian2/java_class_test.go
@@ -23,6 +23,7 @@ import (
 
 import (
 	"github.com/stretchr/testify/assert"
+	"github.com/stretchr/testify/require"
 )
 
 func TestGetJavaName(t *testing.T) {
@@ -31,85 +32,85 @@ func TestGetJavaName(t *testing.T) {
 
 	typ, err := GetJavaName(true)
 	assert.Equal(t, "boolean", typ)
-	assert.Nil(t, err)
+	require.NoError(t, err)
 
 	typ, err = GetJavaName(1)
 	assert.Equal(t, "long", typ)
-	assert.Nil(t, err)
+	require.NoError(t, err)
 	typ, err = GetJavaName(int64(1))
 	assert.Equal(t, "long", typ)
-	assert.Nil(t, err)
+	require.NoError(t, err)
 
 	typ, err = GetJavaName(int32(1))
 	assert.Equal(t, "int", typ)
-	assert.Nil(t, err)
+	require.NoError(t, err)
 
 	typ, err = GetJavaName(int16(1))
 	assert.Equal(t, "short", typ)
-	assert.Nil(t, err)
+	require.NoError(t, err)
 	typ, err = GetJavaName(int8(1))
 	assert.Equal(t, "short", typ)
-	assert.Nil(t, err)
+	require.NoError(t, err)
 
 	typ, err = GetJavaName(uint(1))
 	assert.Equal(t, "unsigned long", typ)
-	assert.Nil(t, err)
+	require.NoError(t, err)
 	typ, err = GetJavaName(uint64(1))
 	assert.Equal(t, "unsigned long", typ)
-	assert.Nil(t, err)
+	require.NoError(t, err)
 
 	typ, err = GetJavaName(uint32(1))
 	assert.Equal(t, "unsigned int", typ)
-	assert.Nil(t, err)
+	require.NoError(t, err)
 
 	typ, err = GetJavaName(uint16(1))
 	assert.Equal(t, "unsigned short", typ)
-	assert.Nil(t, err)
+	require.NoError(t, err)
 	typ, err = GetJavaName(byte('a'))
 	assert.Equal(t, "char", typ)
-	assert.Nil(t, err)
+	require.NoError(t, err)
 
 	typ, err = GetJavaName(float32(1.0))
 	assert.Equal(t, "float", typ)
-	assert.Nil(t, err)
+	require.NoError(t, err)
 
 	typ, err = GetJavaName(1.0)
 	assert.Equal(t, "double", typ)
-	assert.Nil(t, err)
+	require.NoError(t, err)
 
 	typ, err = GetJavaName("hello")
 	assert.Equal(t, "java.lang.String", typ)
-	assert.Nil(t, err)
+	require.NoError(t, err)
 
 	typ, err = GetJavaName([]string{"hello"})
 	assert.Equal(t, "java.lang.String[]", typ)
-	assert.Nil(t, err)
+	require.NoError(t, err)
 	typ, err = GetJavaName([]*mockPOJOPtr{{}})
 	assert.Equal(t, "org.apache.dubbo.mockPOJOPtr[]", typ)
-	assert.Nil(t, err)
+	require.NoError(t, err)
 	typ, err = GetJavaName([]mockPOJO{{}})
 	assert.Equal(t, "org.apache.dubbo.mockPOJO[]", typ)
-	assert.Nil(t, err)
+	require.NoError(t, err)
 	typ, err = GetJavaName([][]string{{"hello"}})
 	assert.Equal(t, "java.lang.String[][]", typ)
-	assert.Nil(t, err)
+	require.NoError(t, err)
 	typ, err = GetJavaName([][]*mockPOJOPtr{{&mockPOJOPtr{}}})
 	assert.Equal(t, "org.apache.dubbo.mockPOJOPtr[][]", typ)
-	assert.Nil(t, err)
+	require.NoError(t, err)
 	typ, err = GetJavaName([1]string{"hello"})
 	assert.Equal(t, "java.lang.String[]", typ)
-	assert.Nil(t, err)
+	require.NoError(t, err)
 
 	typ, err = GetJavaName(map[string]string{"key1": "value1"})
 	assert.Equal(t, "java.util.Map", typ)
-	assert.Nil(t, err)
+	require.NoError(t, err)
 
 	typ, err = GetJavaName(mockPOJO{})
 	assert.Equal(t, "org.apache.dubbo.mockPOJO", typ)
-	assert.Nil(t, err)
+	require.NoError(t, err)
 	typ, err = GetJavaName(&mockPOJOPtr{})
 	assert.Equal(t, "org.apache.dubbo.mockPOJOPtr", typ)
-	assert.Nil(t, err)
+	require.NoError(t, err)
 
 	_, err = GetJavaName(&mockNonPOJO{})
 	assert.Equal(t, UnexpectedTypeError, err)
diff --git a/protocol/dubbo/impl/codec_test.go b/protocol/dubbo/impl/codec_test.go
index 1248df844..4ae1bfd21 100644
--- a/protocol/dubbo/impl/codec_test.go
+++ b/protocol/dubbo/impl/codec_test.go
@@ -24,6 +24,7 @@ import (
 
 import (
 	"github.com/stretchr/testify/assert"
+	"github.com/stretchr/testify/require"
 )
 
 import (
@@ -40,18 +41,18 @@ func TestDubboPackage_MarshalAndUnmarshal(t *testing.T) {
 
 	// heartbeat
 	data, err := pkg.Marshal()
-	assert.NoError(t, err)
+	require.NoError(t, err)
 
 	pkgres := NewDubboPackage(data)
 	pkgres.SetSerializer(HessianSerializer{})
 
 	pkgres.Body = []any{}
 	err = pkgres.Unmarshal()
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	assert.Equal(t, PackageHeartbeat|PackageRequest|PackageRequest_TwoWay, pkgres.Header.Type)
 	assert.Equal(t, constant.SHessian2, pkgres.Header.SerialID)
 	assert.Equal(t, int64(10086), pkgres.Header.ID)
-	assert.Equal(t, 0, len(pkgres.Body.([]any)))
+	assert.Empty(t, pkgres.Body.([]any))
 
 	// request
 	pkg.Header.Type = PackageRequest
@@ -61,14 +62,14 @@ func TestDubboPackage_MarshalAndUnmarshal(t *testing.T) {
 	pkg.Service.Method = "Method"
 	pkg.Service.Timeout = time.Second
 	data, err = pkg.Marshal()
-	assert.NoError(t, err)
+	require.NoError(t, err)
 
 	pkgres = NewDubboPackage(data)
 	pkgres.SetSerializer(HessianSerializer{})
 	pkgres.Body = make([]any, 7)
 	err = pkgres.Unmarshal()
 	reassembleBody := pkgres.GetBody().(map[string]any)
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	assert.Equal(t, PackageRequest, pkgres.Header.Type)
 	assert.Equal(t, constant.SHessian2, pkgres.Header.SerialID)
 	assert.Equal(t, int64(10086), pkgres.Header.ID)
@@ -98,7 +99,7 @@ func TestEncodeHeaderHeartbeat(t *testing.T) {
 
 	header := codec.EncodeHeader(*pkg)
 	assert.NotNil(t, header)
-	assert.Greater(t, len(header), 0)
+	assert.NotEmpty(t, header)
 	assert.Equal(t, MAGIC_HIGH, header[0])
 	assert.Equal(t, MAGIC_LOW, header[1])
 }
@@ -143,7 +144,7 @@ func TestEncodeHeaderRequestTwoWay(t *testing.T) {
 
 	header := codec.EncodeHeader(*pkg)
 	assert.NotNil(t, header)
-	assert.Greater(t, len(header), 0)
+	assert.NotEmpty(t, header)
 }
 
 // TestProtocolCodecSetSerializer tests SetSerializer method of ProtocolCodec
@@ -174,7 +175,7 @@ func TestPackageResponseWorkflow(t *testing.T) {
 	assert.False(t, pkg.IsResponseWithException())
 
 	data, err := pkg.Marshal()
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	assert.NotNil(t, data)
 }
 
@@ -198,7 +199,7 @@ func TestPackageRequestWorkflow(t *testing.T) {
 	assert.False(t, pkg.IsResponse())
 
 	data, err := pkg.Marshal()
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	assert.NotNil(t, data)
 }
 
@@ -304,10 +305,10 @@ func TestDubboPackageIntegrationWithLoadSerializer(t *testing.T) {
 	pkg.Body = []any{"test"}
 
 	err := LoadSerializer(pkg)
-	assert.NoError(t, err)
+	require.NoError(t, err)
 
 	data, err := pkg.Marshal()
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	assert.NotNil(t, data)
-	assert.Greater(t, data.Len(), 0)
+	assert.Positive(t, data.Len())
 }
diff --git a/protocol/dubbo/impl/hessian_test.go b/protocol/dubbo/impl/hessian_test.go
index 5cc4303f3..494683318 100644
--- a/protocol/dubbo/impl/hessian_test.go
+++ b/protocol/dubbo/impl/hessian_test.go
@@ -28,6 +28,7 @@ import (
 	"github.com/apache/dubbo-go-hessian2/java_exception"
 
 	"github.com/stretchr/testify/assert"
+	"github.com/stretchr/testify/require"
 )
 
 import (
@@ -221,29 +222,29 @@ func TestGetArgsTypeList(t *testing.T) {
 	t.Run("multiple types", func(t *testing.T) {
 		args := []any{int32(1), "test", true, float64(1.0)}
 		types, err := GetArgsTypeList(args)
-		assert.NoError(t, err)
+		require.NoError(t, err)
 		assert.Equal(t, "ILjava/lang/String;ZD", types)
 	})
 
 	t.Run("with pojo", func(t *testing.T) {
 		args := []any{&Pojo{}, "test"}
 		types, err := GetArgsTypeList(args)
-		assert.NoError(t, err)
+		require.NoError(t, err)
 		assert.Equal(t, "Lorg/apache/dubbo/pojo;Ljava/lang/String;", types)
 	})
 
 	t.Run("with array", func(t *testing.T) {
 		args := []any{[]string{"a", "b"}}
 		types, err := GetArgsTypeList(args)
-		assert.NoError(t, err)
+		require.NoError(t, err)
 		assert.Equal(t, "[Ljava/lang/String;", types)
 	})
 
 	t.Run("empty args", func(t *testing.T) {
 		args := []any{}
 		types, err := GetArgsTypeList(args)
-		assert.NoError(t, err)
-		assert.Equal(t, "", types)
+		require.NoError(t, err)
+		assert.Empty(t, types)
 	})
 }
 
@@ -264,7 +265,7 @@ func TestToMapStringInterface(t *testing.T) {
 			"key2": "value2",
 		}
 		result := ToMapStringInterface(origin)
-		assert.Equal(t, "", result["key1"])
+		assert.Empty(t, result["key1"])
 		assert.Equal(t, "value2", result["key2"])
 	})
 
@@ -274,7 +275,7 @@ func TestToMapStringInterface(t *testing.T) {
 			"key2": "value2",
 		}
 		result := ToMapStringInterface(origin)
-		assert.Equal(t, 1, len(result))
+		assert.Len(t, result, 1)
 		assert.Equal(t, "value2", result["key2"])
 	})
 }
@@ -344,7 +345,7 @@ func TestMarshalRequestWithTypedNilPointer(t *testing.T) {
 	}
 
 	data, err := marshalRequest(encoder, pkg)
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	assert.NotNil(t, data)
 }
 
@@ -366,7 +367,7 @@ func TestMarshalRequestWithNonNilPointer(t *testing.T) {
 	}
 
 	data, err := marshalRequest(encoder, pkg)
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	assert.NotNil(t, data)
 }
 
@@ -389,7 +390,7 @@ func TestMarshalRequest(t *testing.T) {
 		}
 
 		data, err := marshalRequest(encoder, pkg)
-		assert.NoError(t, err)
+		require.NoError(t, err)
 		assert.NotNil(t, data)
 	})
 
@@ -426,7 +427,7 @@ func TestMarshalResponse(t *testing.T) {
 		}
 
 		data, err := marshalResponse(encoder, pkg)
-		assert.NoError(t, err)
+		require.NoError(t, err)
 		assert.NotNil(t, data)
 	})
 
@@ -444,7 +445,7 @@ func TestMarshalResponse(t *testing.T) {
 		}
 
 		data, err := marshalResponse(encoder, pkg)
-		assert.NoError(t, err)
+		require.NoError(t, err)
 		assert.NotNil(t, data)
 	})
 
@@ -462,7 +463,7 @@ func TestMarshalResponse(t *testing.T) {
 		}
 
 		data, err := marshalResponse(encoder, pkg)
-		assert.NoError(t, err)
+		require.NoError(t, err)
 		assert.NotNil(t, data)
 	})
 
@@ -480,7 +481,7 @@ func TestMarshalResponse(t *testing.T) {
 		}
 
 		data, err := marshalResponse(encoder, pkg)
-		assert.NoError(t, err)
+		require.NoError(t, err)
 		assert.NotNil(t, data)
 	})
 
@@ -498,7 +499,7 @@ func TestMarshalResponse(t *testing.T) {
 		}
 
 		data, err := marshalResponse(encoder, pkg)
-		assert.NoError(t, err)
+		require.NoError(t, err)
 		assert.NotNil(t, data)
 	})
 
@@ -519,7 +520,7 @@ func TestMarshalResponse(t *testing.T) {
 		}
 
 		data, err := marshalResponse(encoder, pkg)
-		assert.NoError(t, err)
+		require.NoError(t, err)
 		assert.NotNil(t, data)
 	})
 
@@ -536,7 +537,7 @@ func TestMarshalResponse(t *testing.T) {
 		}
 
 		data, err := marshalResponse(encoder, pkg)
-		assert.NoError(t, err)
+		require.NoError(t, err)
 		assert.NotNil(t, data)
 	})
 }
@@ -555,7 +556,7 @@ func TestUnmarshalRequestBody(t *testing.T) {
 
 		pkg := &DubboPackage{}
 		err := unmarshalRequestBody(encoder.Buffer(), pkg)
-		assert.NoError(t, err)
+		require.NoError(t, err)
 		assert.NotNil(t, pkg.Body)
 
 		body, ok := pkg.Body.(map[string]any)
@@ -578,12 +579,12 @@ func TestUnmarshalRequestBody(t *testing.T) {
 
 		pkg := &DubboPackage{}
 		err := unmarshalRequestBody(encoder.Buffer(), pkg)
-		assert.NoError(t, err)
+		require.NoError(t, err)
 
 		body, ok := pkg.GetBody().(map[string]any)
 		assert.True(t, ok)
 		args := body["args"].([]any)
-		assert.Equal(t, 2, len(args))
+		assert.Len(t, args, 2)
 	})
 
 	t.Run("request with nil attachments", func(t *testing.T) {
@@ -615,7 +616,7 @@ func TestUnmarshalResponseBody(t *testing.T) {
 			},
 		}
 		err := unmarshalResponseBody(encoder.Buffer(), pkg)
-		assert.NoError(t, err)
+		require.NoError(t, err)
 		assert.Equal(t, "test response", rspObj)
 	})
 
@@ -632,7 +633,7 @@ func TestUnmarshalResponseBody(t *testing.T) {
 			},
 		}
 		err := unmarshalResponseBody(encoder.Buffer(), pkg)
-		assert.NoError(t, err)
+		require.NoError(t, err)
 
 		response := EnsureResponsePayload(pkg.Body)
 		assert.NotNil(t, response.Attachments)
@@ -646,10 +647,10 @@ func TestUnmarshalResponseBody(t *testing.T) {
 
 		pkg := &DubboPackage{}
 		err := unmarshalResponseBody(encoder.Buffer(), pkg)
-		assert.NoError(t, err)
+		require.NoError(t, err)
 
 		response := EnsureResponsePayload(pkg.Body)
-		assert.NotNil(t, response.Exception)
+		assert.Error(t, response.Exception)
 	})
 
 	t.Run("response with exception and attachments", func(t *testing.T) {
@@ -660,10 +661,10 @@ func TestUnmarshalResponseBody(t *testing.T) {
 
 		pkg := &DubboPackage{}
 		err := unmarshalResponseBody(encoder.Buffer(), pkg)
-		assert.NoError(t, err)
+		require.NoError(t, err)
 
 		response := EnsureResponsePayload(pkg.Body)
-		assert.NotNil(t, response.Exception)
+		require.Error(t, response.Exception)
 		assert.NotNil(t, response.Attachments)
 	})
 
@@ -683,7 +684,7 @@ func TestUnmarshalResponseBody(t *testing.T) {
 
 		pkg := &DubboPackage{}
 		err := unmarshalResponseBody(encoder.Buffer(), pkg)
-		assert.NoError(t, err)
+		require.NoError(t, err)
 
 		response := EnsureResponsePayload(pkg.Body)
 		assert.NotNil(t, response.Attachments)
@@ -696,10 +697,10 @@ func TestUnmarshalResponseBody(t *testing.T) {
 
 		pkg := &DubboPackage{}
 		err := unmarshalResponseBody(encoder.Buffer(), pkg)
-		assert.NoError(t, err)
+		require.NoError(t, err)
 
 		response := EnsureResponsePayload(pkg.Body)
-		assert.NotNil(t, response.Exception)
+		assert.Error(t, response.Exception)
 	})
 
 	t.Run("response with invalid attachments", func(t *testing.T) {
@@ -778,7 +779,7 @@ func TestHessianSerializer_Marshal(t *testing.T) {
 		}
 
 		data, err := serializer.Marshal(pkg)
-		assert.NoError(t, err)
+		require.NoError(t, err)
 		assert.NotNil(t, data)
 	})
 
@@ -795,7 +796,7 @@ func TestHessianSerializer_Marshal(t *testing.T) {
 		}
 
 		data, err := serializer.Marshal(pkg)
-		assert.NoError(t, err)
+		require.NoError(t, err)
 		assert.NotNil(t, data)
 	})
 }
@@ -849,7 +850,7 @@ func TestHessianSerializer_Unmarshal(t *testing.T) {
 		}
 
 		err := serializer.Unmarshal(encoder.Buffer(), pkg)
-		assert.NoError(t, err)
+		require.NoError(t, err)
 		assert.Equal(t, "test", rspObj)
 	})
 }
diff --git a/protocol/dubbo/impl/package_test.go b/protocol/dubbo/impl/package_test.go
index 7d3beea1e..a6a14d8f3 100644
--- a/protocol/dubbo/impl/package_test.go
+++ b/protocol/dubbo/impl/package_test.go
@@ -61,7 +61,7 @@ func TestNewDubboPackage(t *testing.T) {
 				assert.NotNil(t, pkg)
 				assert.NotNil(t, pkg.Codec)
 				assert.Nil(t, pkg.Body)
-				assert.Nil(t, pkg.Err)
+				assert.NoError(t, pkg.Err)
 			}
 		})
 	}
diff --git a/protocol/dubbo/impl/request_test.go b/protocol/dubbo/impl/request_test.go
index 87017f7be..2598f6827 100644
--- a/protocol/dubbo/impl/request_test.go
+++ b/protocol/dubbo/impl/request_test.go
@@ -147,7 +147,7 @@ func TestNewRequestPayloadNilAttachments(t *testing.T) {
 	payload := NewRequestPayload("args", nil)
 
 	assert.NotNil(t, payload.Attachments)
-	assert.Equal(t, 0, len(payload.Attachments))
+	assert.Empty(t, payload.Attachments)
 }
 
 // TestRequestPayloadFields tests that RequestPayload fields are correctly set
@@ -202,5 +202,5 @@ func TestEnsureRequestPayloadCreateNewPayload(t *testing.T) {
 	assert.NotNil(t, payload)
 	assert.Equal(t, testArgs, payload.Params)
 	assert.NotNil(t, payload.Attachments)
-	assert.Equal(t, 0, len(payload.Attachments))
+	assert.Empty(t, payload.Attachments)
 }
diff --git a/protocol/dubbo/impl/response_test.go b/protocol/dubbo/impl/response_test.go
index 76ed20d93..59ef39b2e 100644
--- a/protocol/dubbo/impl/response_test.go
+++ b/protocol/dubbo/impl/response_test.go
@@ -24,6 +24,7 @@ import (
 
 import (
 	"github.com/stretchr/testify/assert"
+	"github.com/stretchr/testify/require"
 )
 
 // TestNewResponsePayload tests creating a new ResponsePayload with various inputs
@@ -86,9 +87,9 @@ func TestNewResponsePayload(t *testing.T) {
 			assert.NotNil(t, payload)
 			assert.Equal(t, test.expectRspObj, payload.RspObj)
 			if test.expectException != nil {
-				assert.Error(t, payload.Exception)
+				require.Error(t, payload.Exception)
 			} else {
-				assert.NoError(t, payload.Exception)
+				require.NoError(t, payload.Exception)
 			}
 			assert.NotNil(t, payload.Attachments)
 		})
@@ -166,7 +167,7 @@ func TestNewResponsePayloadNilAttachments(t *testing.T) {
 	payload := NewResponsePayload("response", nil, nil)
 
 	assert.NotNil(t, payload.Attachments)
-	assert.Equal(t, 0, len(payload.Attachments))
+	assert.Empty(t, payload.Attachments)
 }
 
 // TestResponsePayloadFields tests that ResponsePayload fields are correctly set
diff --git a/protocol/dubbo/impl/serialization_test.go b/protocol/dubbo/impl/serialization_test.go
index ec95117e4..468bc455c 100644
--- a/protocol/dubbo/impl/serialization_test.go
+++ b/protocol/dubbo/impl/serialization_test.go
@@ -23,6 +23,7 @@ import (
 
 import (
 	"github.com/stretchr/testify/assert"
+	"github.com/stretchr/testify/require"
 )
 
 import (
@@ -108,7 +109,7 @@ func TestSetSerializer(t *testing.T) {
 
 	// After setting, GetSerializerById should return the same serializer
 	result, err := GetSerializerById(constant.SHessian2)
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	assert.Equal(t, mockSerializer, result)
 }
 
@@ -137,7 +138,7 @@ func TestSetSerializerWithMultipleNames(t *testing.T) {
 
 	// Verify it's registered
 	result, err := GetSerializerById(constant.SHessian2)
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	assert.Equal(t, hessianSerializer, result)
 }
 
@@ -152,6 +153,6 @@ func TestSetSerializerNotNil(t *testing.T) {
 
 	// Verify the serializer is set correctly
 	result, err := GetSerializerById(constant.SHessian2)
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	assert.NotNil(t, result)
 }
diff --git a/protocol/dubbo/impl/serialize_test.go b/protocol/dubbo/impl/serialize_test.go
index 12a21264e..c71d71625 100644
--- a/protocol/dubbo/impl/serialize_test.go
+++ b/protocol/dubbo/impl/serialize_test.go
@@ -25,6 +25,7 @@ import (
 
 import (
 	"github.com/stretchr/testify/assert"
+	"github.com/stretchr/testify/require"
 )
 
 import (
@@ -40,7 +41,7 @@ func TestLoadSerializerWithDefaultHessian2(t *testing.T) {
 	pkg.Header.SerialID = 0 // Default SerialID
 
 	err := LoadSerializer(pkg)
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	assert.NotNil(t, pkg.Codec)
 }
 
@@ -53,7 +54,7 @@ func TestLoadSerializerWithHessian2(t *testing.T) {
 	pkg.Header.SerialID = constant.SHessian2
 
 	err := LoadSerializer(pkg)
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	assert.NotNil(t, pkg.Codec)
 }
 
@@ -66,7 +67,7 @@ func TestLoadSerializerWithDifferentValidID(t *testing.T) {
 	pkg.Header.SerialID = constant.SHessian2
 
 	err := LoadSerializer(pkg)
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	assert.NotNil(t, pkg.Codec)
 }
 
@@ -92,7 +93,7 @@ func TestLoadSerializerWithZeroIDDefaultsToHessian2(t *testing.T) {
 	pkg.Header.SerialID = 0
 
 	err := LoadSerializer(pkg)
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	// Verify that the loaded serializer is for Hessian2
 	assert.NotNil(t, pkg.Codec)
 }
@@ -141,7 +142,7 @@ func TestLoadSerializerWithBufferedData(t *testing.T) {
 	pkg.Header.SerialID = constant.SHessian2
 
 	err := LoadSerializer(pkg)
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	assert.NotNil(t, pkg.Codec)
 }
 
@@ -195,7 +196,7 @@ func TestLoadSerializerSetsSerializerInCodec(t *testing.T) {
 	pkg.Header.SerialID = constant.SHessian2
 
 	err := LoadSerializer(pkg)
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	assert.NotNil(t, pkg.Codec)
 	assert.NotNil(t, pkg.Codec.serializer)
 }
@@ -237,7 +238,7 @@ func TestLoadSerializerReplacesExistingSerializer(t *testing.T) {
 	pkg.Header.SerialID = constant.SHessian2
 
 	err1 := LoadSerializer(pkg)
-	assert.NoError(t, err1)
+	require.NoError(t, err1)
 
 	// Create a new mock serializer and replace
 	mockSerializer2 := &HessianSerializer{}
@@ -264,7 +265,7 @@ func TestLoadSerializerWithAllBytesValues(t *testing.T) {
 
 			if byteVal == 0 || byteVal == constant.SHessian2 {
 				err := LoadSerializer(pkg)
-				assert.NoError(t, err)
+				require.NoError(t, err)
 				assert.NotNil(t, pkg.Codec)
 			}
 		})
@@ -318,7 +319,7 @@ func TestLoadSerializerCodecIsNotNil(t *testing.T) {
 	assert.NotNil(t, pkg.Codec)
 
 	err := LoadSerializer(pkg)
-	assert.NoError(t, err)
+	require.NoError(t, err)
 
 	// After LoadSerializer, Codec should still exist
 	assert.NotNil(t, pkg.Codec)
@@ -336,7 +337,7 @@ func TestLoadSerializerWithHeaderData(t *testing.T) {
 	pkg.Header.Type = PackageRequest
 
 	err := LoadSerializer(pkg)
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	assert.Equal(t, constant.SHessian2, pkg.Header.SerialID)
 	assert.Equal(t, int64(12345), pkg.Header.ID)
 }
@@ -352,7 +353,7 @@ func TestLoadSerializerSequentialCalls(t *testing.T) {
 		pkg.Header.ID = int64(i)
 
 		err := LoadSerializer(pkg)
-		assert.NoError(t, err)
+		require.NoError(t, err)
 		assert.NotNil(t, pkg.Codec)
 	}
 }
@@ -368,7 +369,7 @@ func TestLoadSerializerWithDataBuffer(t *testing.T) {
 	pkg.Header.SerialID = constant.SHessian2
 
 	err := LoadSerializer(pkg)
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	assert.NotNil(t, pkg.Codec)
 }
 
@@ -388,9 +389,9 @@ func TestHessianSerializerMarshalRequest(t *testing.T) {
 	pkg.SetSerializer(serializer)
 
 	data, err := pkg.Marshal()
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	assert.NotNil(t, data)
-	assert.Greater(t, data.Len(), 0)
+	assert.Positive(t, data.Len())
 }
 
 // TestHessianSerializerMarshalResponse tests Hessian serializer marshal for response
@@ -407,9 +408,9 @@ func TestHessianSerializerMarshalResponse(t *testing.T) {
 	pkg.SetSerializer(serializer)
 
 	data, err := pkg.Marshal()
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	assert.NotNil(t, data)
-	assert.Greater(t, data.Len(), 0)
+	assert.Positive(t, data.Len())
 }
 
 // TestHessianSerializerMarshalResponseWithException tests Hessian marshaling for exception response
@@ -426,7 +427,7 @@ func TestHessianSerializerMarshalResponseWithException(t *testing.T) {
 	pkg.SetSerializer(serializer)
 
 	data, err := pkg.Marshal()
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	assert.NotNil(t, data)
 }
 
@@ -443,9 +444,9 @@ func TestHessianSerializerMarshalHeartbeat(t *testing.T) {
 	pkg.SetSerializer(serializer)
 
 	data, err := pkg.Marshal()
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	assert.NotNil(t, data)
-	assert.Greater(t, data.Len(), 0)
+	assert.Positive(t, data.Len())
 }
 
 // TestLoadSerializerWithMultipleCalls tests LoadSerializer consistency
@@ -459,7 +460,7 @@ func TestLoadSerializerWithMultipleCalls(t *testing.T) {
 		pkg.Header.SerialID = constant.SHessian2
 
 		err := LoadSerializer(pkg)
-		assert.NoError(t, err)
+		require.NoError(t, err)
 		assert.NotNil(t, pkg.Codec.serializer)
 	}
 }
@@ -477,10 +478,10 @@ func TestLoadSerializerPackageInheritance(t *testing.T) {
 	pkg.Body = []any{"test"}
 
 	err := LoadSerializer(pkg)
-	assert.NoError(t, err)
+	require.NoError(t, err)
 
 	// Verify serializer is accessible for marshaling
 	data, err := pkg.Marshal()
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	assert.NotNil(t, data)
 }
diff --git a/protocol/dubbo/opentracing_test.go b/protocol/dubbo/opentracing_test.go
index 35319bdbf..887eef115 100644
--- a/protocol/dubbo/opentracing_test.go
+++ b/protocol/dubbo/opentracing_test.go
@@ -26,6 +26,7 @@ import (
 	"github.com/opentracing/opentracing-go/mocktracer"
 
 	"github.com/stretchr/testify/assert"
+	"github.com/stretchr/testify/require"
 )
 
 import (
@@ -97,7 +98,7 @@ func TestFilterContext(t *testing.T) {
 	for _, test := range tests {
 		t.Run(test.desc, func(t *testing.T) {
 			result := filterContext(test.attachments)
-			assert.Equal(t, test.expectedLen, len(result))
+			assert.Len(t, result, test.expectedLen)
 			for k, v := range test.expectedContains {
 				assert.Equal(t, v, result[k])
 			}
@@ -168,7 +169,7 @@ func TestFillTraceAttachments(t *testing.T) {
 	for _, test := range tests {
 		t.Run(test.desc, func(t *testing.T) {
 			fillTraceAttachments(test.initialAttachments, test.traceAttachment)
-			assert.Equal(t, len(test.expectedAttachments), len(test.initialAttachments))
+			assert.Len(t, test.initialAttachments, len(test.expectedAttachments))
 			for k, v := range test.expectedAttachments {
 				assert.Equal(t, v, test.initialAttachments[k])
 			}
@@ -219,7 +220,7 @@ func TestInjectTraceCtx(t *testing.T) {
 			if test.expectError {
 				assert.Error(t, err)
 			} else {
-				assert.NoError(t, err)
+				require.NoError(t, err)
 				assert.NotNil(t, inv.Attachments())
 			}
 		})
@@ -262,7 +263,7 @@ func TestInjectTraceCtxIntegration(t *testing.T) {
 			err := injectTraceCtx(span, inv)
 			span.Finish()
 
-			assert.NoError(t, err)
+			require.NoError(t, err)
 			finalAttachments := inv.Attachments()
 			assert.NotNil(t, finalAttachments)
 
diff --git a/protocol/dubbo3/dubbo3_protocol_test.go b/protocol/dubbo3/dubbo3_protocol_test.go
index f81008822..c9fc4b5d6 100644
--- a/protocol/dubbo3/dubbo3_protocol_test.go
+++ b/protocol/dubbo3/dubbo3_protocol_test.go
@@ -28,6 +28,7 @@ import (
 	hessian "github.com/apache/dubbo-go-hessian2"
 
 	"github.com/stretchr/testify/assert"
+	"github.com/stretchr/testify/require"
 )
 
 import (
@@ -49,7 +50,7 @@ func TestDubboProtocolExport(t *testing.T) {
 
 	proto := GetProtocol()
 	url, err := common.NewURL(mockDubbo3CommonUrl)
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	exporter := proto.Export(base.NewBaseInvoker(url))
 	time.Sleep(time.Second)
 
@@ -75,7 +76,7 @@ func TestDubboProtocolExport(t *testing.T) {
 func TestDubboProtocolRefer(t *testing.T) {
 	proto := GetProtocol()
 	url, err := common.NewURL(mockDubbo3CommonUrl)
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	invoker := proto.Refer(url)
 
 	// make sure url
@@ -126,12 +127,12 @@ func TestDubbo3UnaryService_GetReqParamsInterfaces(t *testing.T) {
 	err := enc.Encode(&MockUser{
 		Name: "laurence",
 	})
-	assert.Nil(t, err)
+	require.NoError(t, err)
 	data := enc.Buffer()
 	decoder := hessian.NewDecoder(data)
 	val, err := decoder.Decode()
-	assert.Nil(t, err)
-	assert.Equal(t, 2, len(paramsInterfaces))
+	require.NoError(t, err)
+	assert.Len(t, paramsInterfaces, 2)
 	subTest(t, val, paramsInterfaces)
 	args := make([]any, 0, 1)
 	for _, v := range paramsInterfaces {
@@ -146,6 +147,6 @@ func subTest(t *testing.T, val, paramsInterfaces any) {
 	list := paramsInterfaces.([]any)
 	for k := range list {
 		err := hessian.ReflectResponse(val, list[k])
-		assert.Nil(t, err)
+		require.NoError(t, err)
 	}
 }
diff --git a/protocol/grpc/client_test.go b/protocol/grpc/client_test.go
index 0b87c1283..34e4e34a4 100644
--- a/protocol/grpc/client_test.go
+++ b/protocol/grpc/client_test.go
@@ -27,6 +27,7 @@ import (
 	"github.com/dustin/go-humanize"
 
 	"github.com/stretchr/testify/assert"
+	"github.com/stretchr/testify/require"
 )
 
 import (
@@ -37,40 +38,40 @@ import (
 
 func TestUnaryClient(t *testing.T) {
 	server, err := helloworld.NewServer("127.0.0.1:30000")
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	go server.Start()
 	defer server.Stop()
 
 	url, err := common.NewURL(helloworldURL)
-	assert.NoError(t, err)
+	require.NoError(t, err)
 
 	cli, err := NewClient(url)
-	assert.NoError(t, err)
+	require.NoError(t, err)
 
 	impl := &helloworld.GreeterClientImpl{}
 	client := impl.GetDubboStub(cli.ClientConn)
 	result, err := client.SayHello(context.Background(), &helloworld.HelloRequest{Name: "request name"})
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	assert.Equal(t, &helloworld.HelloReply{Message: "Hello request name"}, result)
 }
 
 func TestStreamClient(t *testing.T) {
 	server, err := routeguide.NewServer("127.0.0.1:30000")
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	go server.Start()
 	defer server.Stop()
 
 	url, err := common.NewURL(routeguideURL)
-	assert.NoError(t, err)
+	require.NoError(t, err)
 
 	cli, err := NewClient(url)
-	assert.NoError(t, err)
+	require.NoError(t, err)
 
 	impl := &routeguide.RouteGuideClientImpl{}
 	client := impl.GetDubboStub(cli.ClientConn)
 
 	result, err := client.GetFeature(context.Background(), &routeguide.Point{Latitude: 409146138, Longitude: -746188906})
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	assert.Equal(t, &routeguide.Feature{
 		Name:     "Berkshire Valley Management Area Trail, Jefferson, NJ, USA",
 		Location: &routeguide.Point{Latitude: 409146138, Longitude: -746188906},
@@ -80,15 +81,15 @@ func TestStreamClient(t *testing.T) {
 		Lo: &routeguide.Point{Latitude: 400000000, Longitude: -750000000},
 		Hi: &routeguide.Point{Latitude: 420000000, Longitude: -730000000},
 	})
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	routeguide.PrintFeatures(listFeaturesStream)
 
 	recordRouteStream, err := client.RecordRoute(context.Background())
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	routeguide.RunRecordRoute(recordRouteStream)
 
 	routeChatStream, err := client.RouteChat(context.Background())
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	routeguide.RunRouteChat(routeChatStream)
 }
 
diff --git a/protocol/grpc/grpc_invoker_test.go b/protocol/grpc/grpc_invoker_test.go
index b936f3f38..9245b76ae 100644
--- a/protocol/grpc/grpc_invoker_test.go
+++ b/protocol/grpc/grpc_invoker_test.go
@@ -25,6 +25,7 @@ import (
 
 import (
 	"github.com/stretchr/testify/assert"
+	"github.com/stretchr/testify/require"
 )
 
 import (
@@ -50,15 +51,15 @@ const (
 
 func TestUnaryInvoke(t *testing.T) {
 	server, err := helloworld.NewServer("127.0.0.1:30000")
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	go server.Start()
 	defer server.Stop()
 
 	url, err := common.NewURL(helloworldURL)
-	assert.NoError(t, err)
+	require.NoError(t, err)
 
 	cli, err := NewClient(url)
-	assert.NoError(t, err)
+	require.NoError(t, err)
 
 	var args []reflect.Value
 	args = append(args, reflect.ValueOf(&helloworld.HelloRequest{Name: "request name"}))
@@ -71,22 +72,22 @@ func TestUnaryInvoke(t *testing.T) {
 
 	invoker := NewGrpcInvoker(url, cli)
 	res := invoker.Invoke(context.Background(), invo)
-	assert.NoError(t, res.Error())
+	require.NoError(t, res.Error())
 	assert.Equal(t, &helloworld.HelloReply{Message: "Hello request name"}, res.Result().(reflect.Value).Interface())
 	assert.Equal(t, &helloworld.HelloReply{Message: "Hello request name"}, bizReply)
 }
 
 func TestStreamInvoke(t *testing.T) {
 	server, err := routeguide.NewServer("127.0.0.1:30000")
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	go server.Start()
 	defer server.Stop()
 
 	url, err := common.NewURL(routeguideURL)
-	assert.NoError(t, err)
+	require.NoError(t, err)
 
 	cli, err := NewClient(url)
-	assert.NoError(t, err)
+	require.NoError(t, err)
 
 	invoker := NewGrpcInvoker(url, cli)
 
@@ -100,7 +101,7 @@ func TestStreamInvoke(t *testing.T) {
 		invocation.WithReply(bizReply),
 	)
 	res := invoker.Invoke(context.Background(), invo)
-	assert.NoError(t, res.Error())
+	require.NoError(t, res.Error())
 	assert.Equal(t, &routeguide.Feature{
 		Name:     "Berkshire Valley Management Area Trail, Jefferson, NJ, USA",
 		Location: &routeguide.Point{Latitude: 409146138, Longitude: -746188906},
@@ -121,7 +122,7 @@ func TestStreamInvoke(t *testing.T) {
 		invocation.WithParameterValues(args),
 	)
 	res = invoker.Invoke(context.Background(), invo)
-	assert.ErrorIs(t, res.Error(), errNoReply)
+	require.ErrorIs(t, res.Error(), errNoReply)
 	listFeaturesStream := res.Result().(reflect.Value).Interface().(routeguide.RouteGuide_ListFeaturesClient)
 	routeguide.PrintFeatures(listFeaturesStream)
 
@@ -131,7 +132,7 @@ func TestStreamInvoke(t *testing.T) {
 		invocation.WithParameterValues(args),
 	)
 	res = invoker.Invoke(context.Background(), invo)
-	assert.ErrorIs(t, res.Error(), errNoReply)
+	require.ErrorIs(t, res.Error(), errNoReply)
 	recordRouteStream := res.Result().(reflect.Value).Interface().(routeguide.RouteGuide_RecordRouteClient)
 	routeguide.RunRecordRoute(recordRouteStream)
 
@@ -141,7 +142,7 @@ func TestStreamInvoke(t *testing.T) {
 		invocation.WithParameterValues(args),
 	)
 	res = invoker.Invoke(context.Background(), invo)
-	assert.ErrorIs(t, res.Error(), errNoReply)
+	require.ErrorIs(t, res.Error(), errNoReply)
 	routeChatStream := res.Result().(reflect.Value).Interface().(routeguide.RouteGuide_RouteChatClient)
 	routeguide.RunRouteChat(routeChatStream)
 }
diff --git a/protocol/grpc/grpc_protocol_test.go b/protocol/grpc/grpc_protocol_test.go
index 5f4558809..b95a76bfd 100644
--- a/protocol/grpc/grpc_protocol_test.go
+++ b/protocol/grpc/grpc_protocol_test.go
@@ -24,6 +24,7 @@ import (
 
 import (
 	"github.com/stretchr/testify/assert"
+	"github.com/stretchr/testify/require"
 )
 
 import (
@@ -73,7 +74,7 @@ func TestGrpcProtocolExport(t *testing.T) {
 	doInitProvider()
 
 	url, err := common.NewURL(helloworldURL)
-	assert.NoError(t, err)
+	require.NoError(t, err)
 
 	proto := GetProtocol()
 	exporter := proto.Export(base.NewBaseInvoker(url))
@@ -100,12 +101,12 @@ func TestGrpcProtocolExport(t *testing.T) {
 
 func TestGrpcProtocolRefer(t *testing.T) {
 	server, err := helloworld.NewServer("127.0.0.1:30000")
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	go server.Start()
 	defer server.Stop()
 
 	url, err := common.NewURL(helloworldURL)
-	assert.NoError(t, err)
+	require.NoError(t, err)
 
 	proto := GetProtocol()
 	invoker := proto.Refer(url)
diff --git a/protocol/invocation/rpcinvocation_test.go b/protocol/invocation/rpcinvocation_test.go
index 534197bcc..c20ac483d 100644
--- a/protocol/invocation/rpcinvocation_test.go
+++ b/protocol/invocation/rpcinvocation_test.go
@@ -28,6 +28,7 @@ import (
 
 import (
 	"github.com/stretchr/testify/assert"
+	"github.com/stretchr/testify/require"
 )
 
 import (
@@ -57,11 +58,11 @@ func TestRPCInvocation_ServiceKey(t *testing.T) {
 		"side=provider&timeout=3000&timestamp=1556509797245"
 
 	providerUrl, err := common.NewURL(providerURL)
-	assert.NoError(t, err)
+	require.NoError(t, err)
 
 	// invocation with same interface and path value
 	sameInfPathConsumerUrl, err := common.NewURL(sameInfPathConsumerURL)
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	invocation := NewRPCInvocationWithOptions(WithAttachments(map[string]any{
 		constant.InterfaceKey: sameInfPathConsumerUrl.GetParam(constant.InterfaceKey, ""),
 		constant.PathKey:      sameInfPathConsumerUrl.Path,
@@ -72,7 +73,7 @@ func TestRPCInvocation_ServiceKey(t *testing.T) {
 
 	// invocation with different interface and path value
 	diffInfPathConsumerUrl, err := common.NewURL(diffInfPathConsumerURL)
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	invocation = NewRPCInvocationWithOptions(WithAttachments(map[string]any{
 		constant.InterfaceKey: diffInfPathConsumerUrl.GetParam(constant.InterfaceKey, ""),
 		constant.PathKey:      diffInfPathConsumerUrl.Path,
@@ -347,7 +348,7 @@ func TestRPCInvocation_SetAndGetInvoker(t *testing.T) {
 
 	// Create a mock invoker
 	url, err := common.NewURL("dubbo://127.0.0.1:20000/test")
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	mockInvoker := &mockInvoker{url: url}
 
 	invocation.SetInvoker(mockInvoker)
@@ -405,7 +406,7 @@ func TestRPCInvocation_MergeAttachmentFromContext(t *testing.T) {
 	assert.NotNil(t, valInterface)
 	valArray, ok := valInterface.([]string)
 	assert.True(t, ok)
-	assert.Equal(t, 2, len(valArray))
+	assert.Len(t, valArray, 2)
 
 	// Test with nil context header (context without outgoing header)
 	invocation2 := NewRPCInvocationWithOptions()
@@ -432,7 +433,7 @@ func TestRPCInvocation_WithAttachment(t *testing.T) {
 
 func TestRPCInvocation_WithInvoker(t *testing.T) {
 	url, err := common.NewURL("dubbo://127.0.0.1:20000/test")
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	mockInvoker := &mockInvoker{url: url}
 
 	invocation := NewRPCInvocationWithOptions(WithInvoker(mockInvoker))
@@ -540,7 +541,7 @@ func TestRPCInvocation_ConcurrentAccess(t *testing.T) {
 	// and concurrent read/write would cause data races (which is a limitation of the current implementation).
 	// Testing concurrent writes only is still useful to verify SetInvoker's lock works correctly.
 	url, err := common.NewURL("dubbo://127.0.0.1:20000/test")
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	mockInvoker := &mockInvoker{url: url}
 
 	wg.Add(numGoroutines)
diff --git a/protocol/jsonrpc/json_test.go b/protocol/jsonrpc/json_test.go
index 524ba34fb..98289c9e6 100644
--- a/protocol/jsonrpc/json_test.go
+++ b/protocol/jsonrpc/json_test.go
@@ -24,6 +24,7 @@ import (
 
 import (
 	"github.com/stretchr/testify/assert"
+	"github.com/stretchr/testify/require"
 )
 
 type TestData struct {
@@ -38,12 +39,12 @@ func TestJsonClientCodecWrite(t *testing.T) {
 	}
 	codec := newJsonClientCodec()
 	data, err := codec.Write(cd)
-	assert.NoError(t, err)
-	assert.Equal(t, "{\"jsonrpc\":\"2.0\",\"method\":\"GetUser\",\"params\":[\"args\",2],\"id\":1}\n", string(data))
+	require.NoError(t, err)
+	assert.JSONEq(t, "{\"jsonrpc\":\"2.0\",\"method\":\"GetUser\",\"params\":[\"args\",2],\"id\":1}\n", string(data))
 
 	cd.Args = 1
 	_, err = codec.Write(cd)
-	assert.EqualError(t, err, "unsupported param type: int")
+	require.EqualError(t, err, "unsupported param type: int")
 }
 
 func TestJsonClientCodecRead(t *testing.T) {
@@ -51,13 +52,13 @@ func TestJsonClientCodecRead(t *testing.T) {
 	codec.pending[1] = "GetUser"
 	rsp := &TestData{}
 	err := codec.Read([]byte("{\"jsonrpc\":\"2.0\",\"id\":1,\"result\":{\"Test\":\"test\"}}\n"), rsp)
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	assert.Equal(t, "test", rsp.Test)
 
 	// error
 	codec.pending[1] = "GetUser"
 	err = codec.Read([]byte("{\"jsonrpc\":\"2.0\",\"id\":1,\"error\":{\"code\":-32000,\"message\":\"error\"}}\n"), rsp)
-	assert.EqualError(t, err, "{\"code\":-32000,\"message\":\"error\"}")
+	require.EqualError(t, err, "{\"code\":-32000,\"message\":\"error\"}")
 }
 
 func TestServerCodecWrite(t *testing.T) {
@@ -65,23 +66,23 @@ func TestServerCodecWrite(t *testing.T) {
 	a := json.RawMessage([]byte("1"))
 	codec.req = serverRequest{Version: "1.0", Method: "GetUser", ID: &a}
 	data, err := codec.Write("error", &TestData{Test: "test"})
-	assert.NoError(t, err)
-	assert.Equal(t, "{\"jsonrpc\":\"2.0\",\"id\":1,\"result\":{\"Test\":\"test\"},\"error\":{\"code\":-32000,\"message\":\"error\"}}\n", string(data))
+	require.NoError(t, err)
+	assert.JSONEq(t, "{\"jsonrpc\":\"2.0\",\"id\":1,\"result\":{\"Test\":\"test\"},\"error\":{\"code\":-32000,\"message\":\"error\"}}\n", string(data))
 
 	data, err = codec.Write("{\"code\":-32000,\"message\":\"error\"}", &TestData{Test: "test"})
-	assert.NoError(t, err)
-	assert.Equal(t, "{\"jsonrpc\":\"2.0\",\"id\":1,\"result\":{\"Test\":\"test\"},\"error\":{\"code\":-32000,\"message\":\"error\"}}\n", string(data))
+	require.NoError(t, err)
+	assert.JSONEq(t, "{\"jsonrpc\":\"2.0\",\"id\":1,\"result\":{\"Test\":\"test\"},\"error\":{\"code\":-32000,\"message\":\"error\"}}\n", string(data))
 }
 
 func TestServerCodecRead(t *testing.T) {
 	codec := newServerCodec()
 	header := map[string]string{}
 	err := codec.ReadHeader(header, []byte("{\"jsonrpc\":\"2.0\",\"method\":\"GetUser\",\"params\":[\"args\",2],\"id\":1}\n"))
-	assert.EqualError(t, err, "{\"code\":-32601,\"message\":\"Method not found\"}")
+	require.EqualError(t, err, "{\"code\":-32601,\"message\":\"Method not found\"}")
 
 	header["HttpMethod"] = "POST"
 	err = codec.ReadHeader(header, []byte("{\"jsonrpc\":\"2.0\",\"method\":\"GetUser\",\"params\":[\"args\",2],\"id\":1}\n"))
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	assert.Equal(t, "1", string([]byte(*codec.req.ID)))
 	assert.Equal(t, "GetUser", codec.req.Method)
 	assert.Equal(t, "2.0", codec.req.Version)
@@ -89,7 +90,7 @@ func TestServerCodecRead(t *testing.T) {
 
 	req := []any{}
 	err = codec.ReadBody(&req)
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	assert.Equal(t, "args", req[0])
-	assert.Equal(t, float64(2), req[1])
+	assert.InEpsilon(t, 2.0, req[1], 1e-9)
 }
diff --git a/protocol/jsonrpc/jsonrpc_protocol_test.go b/protocol/jsonrpc/jsonrpc_protocol_test.go
index 5990689ce..dfdcfb70b 100644
--- a/protocol/jsonrpc/jsonrpc_protocol_test.go
+++ b/protocol/jsonrpc/jsonrpc_protocol_test.go
@@ -25,6 +25,7 @@ import (
 
 import (
 	"github.com/stretchr/testify/assert"
+	"github.com/stretchr/testify/require"
 )
 
 import (
@@ -41,7 +42,7 @@ func TestJsonrpcProtocolExport(t *testing.T) {
 		"environment=dev&interface=com.ikurento.user.UserProvider&ip=192.168.56.1&methods=GetUser%2C&" +
 		"module=dubbogo+user-info+server&org=ikurento.com&owner=ZX&pid=1447&revision=0.0.1&" +
 		"side=provider&timeout=3000&timestamp=1556509797245")
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	exporter := proto.Export(base.NewBaseInvoker(url))
 
 	// make sure url
@@ -73,7 +74,7 @@ func TestJsonrpcProtocolRefer(t *testing.T) {
 		"environment=dev&interface=com.ikurento.user.UserProvider&ip=192.168.56.1&methods=GetUser%2C&" +
 		"module=dubbogo+user-info+server&org=ikurento.com&owner=ZX&pid=1447&revision=0.0.1&" +
 		"side=provider&timeout=3000&timestamp=1556509797245")
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	// TODO: Temporary compatibility with old APIs, can be removed later
 	con := config.ConsumerConfig{
 		RequestTimeout: "5s",
diff --git a/protocol/rest/config/reader/rest_config_reader_test.go b/protocol/rest/config/reader/rest_config_reader_test.go
index 71f8a0b12..a5744ba80 100644
--- a/protocol/rest/config/reader/rest_config_reader_test.go
+++ b/protocol/rest/config/reader/rest_config_reader_test.go
@@ -26,6 +26,7 @@ import (
 	"github.com/dubbogo/gost/encoding/yaml"
 
 	"github.com/stretchr/testify/assert"
+	"github.com/stretchr/testify/require"
 )
 
 import (
@@ -34,18 +35,18 @@ import (
 
 func TestRestConfigReaderReadConsumerConfig(t *testing.T) {
 	bs, err := yaml.LoadYMLConfig("./testdata/consumer_config.yml")
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	configReader := NewRestConfigReader()
 	err = configReader.ReadConsumerConfig(bytes.NewBuffer(bs))
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	assert.NotEmpty(t, config.GetRestConsumerServiceConfigMap())
 }
 
 func TestRestConfigReaderReadProviderConfig(t *testing.T) {
 	bs, err := yaml.LoadYMLConfig("./testdata/provider_config.yml")
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	configReader := NewRestConfigReader()
 	err = configReader.ReadProviderConfig(bytes.NewBuffer(bs))
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	assert.NotEmpty(t, config.GetRestProviderServiceConfigMap())
 }
diff --git a/protocol/rest/server/server_impl/go_restful_server_test.go b/protocol/rest/server/server_impl/go_restful_server_test.go
index 4a87c88d6..010a2efae 100644
--- a/protocol/rest/server/server_impl/go_restful_server_test.go
+++ b/protocol/rest/server/server_impl/go_restful_server_test.go
@@ -22,7 +22,7 @@ import (
 )
 
 import (
-	"github.com/stretchr/testify/assert"
+	"github.com/stretchr/testify/require"
 )
 
 import (
@@ -34,7 +34,7 @@ import (
 func TestGoRestfulServerDeploySameUrl(t *testing.T) {
 	grs := NewGoRestfulServer()
 	url, err := common.NewURL("http://127.0.0.1:43121")
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	grs.Start(url)
 	rmc := &config.RestMethodConfig{
 		Produces:   "*/*",
diff --git a/protocol/result/result_test.go b/protocol/result/result_test.go
index 2257489c9..d3c06993a 100644
--- a/protocol/result/result_test.go
+++ b/protocol/result/result_test.go
@@ -25,6 +25,7 @@ import (
 
 import (
 	"github.com/stretchr/testify/assert"
+	"github.com/stretchr/testify/require"
 )
 
 func TestRPCResult_SetError(t *testing.T) {
@@ -56,9 +57,9 @@ func TestRPCResult_SetError(t *testing.T) {
 			r.SetError(tt.err)
 
 			if tt.expected == nil {
-				assert.Nil(t, r.Error())
+				assert.NoError(t, r.Error())
 			} else {
-				assert.NotNil(t, r.Error())
+				require.Error(t, r.Error())
 				assert.Equal(t, tt.expected.Error(), r.Error().Error())
 			}
 		})
@@ -94,7 +95,7 @@ func TestRPCResult_Error(t *testing.T) {
 			r := tt.setup()
 
 			if tt.expected == nil {
-				assert.Nil(t, r.Error())
+				assert.NoError(t, r.Error())
 			} else {
 				assert.Equal(t, tt.expected.Error(), r.Error().Error())
 			}
@@ -126,7 +127,7 @@ func TestRPCResult_SetBizError(t *testing.T) {
 			r.SetBizError(tt.err)
 
 			if tt.expected == nil {
-				assert.Nil(t, r.BizError())
+				assert.NoError(t, r.BizError())
 			} else {
 				assert.Equal(t, tt.expected.Error(), r.BizError().Error())
 			}
@@ -163,7 +164,7 @@ func TestRPCResult_BizError(t *testing.T) {
 			r := tt.setup()
 
 			if tt.expected == nil {
-				assert.Nil(t, r.BizError())
+				assert.NoError(t, r.BizError())
 			} else {
 				assert.Equal(t, tt.expected.Error(), r.BizError().Error())
 			}
@@ -381,7 +382,7 @@ func TestRPCResult_Attachments_Initialization(t *testing.T) {
 	attachments := r.Attachments()
 	assert.NotNil(t, attachments)
 	assert.NotNil(t, r.Attrs)
-	assert.Equal(t, 0, len(attachments))
+	assert.Empty(t, attachments)
 }
 
 func TestRPCResult_AddAttachment(t *testing.T) {
@@ -504,7 +505,7 @@ func TestRPCResult_AddAttachment_Multiple(t *testing.T) {
 	r.AddAttachment("key2", 123)
 	r.AddAttachment("key3", true)
 
-	assert.Equal(t, 3, len(r.Attrs))
+	assert.Len(t, r.Attrs, 3)
 	assert.Equal(t, "value1", r.Attrs["key1"])
 	assert.Equal(t, 123, r.Attrs["key2"])
 	assert.Equal(t, true, r.Attrs["key3"])
@@ -735,9 +736,9 @@ func TestRPCResult_ChainedOperations(t *testing.T) {
 
 	// Verify all operations worked
 	assert.Equal(t, "result", r.Result())
-	assert.NotNil(t, r.Error())
-	assert.NotNil(t, r.BizError())
-	assert.Equal(t, 2, len(r.Attachments()))
+	require.Error(t, r.Error())
+	require.Error(t, r.BizError())
+	assert.Len(t, r.Attachments(), 2)
 	assert.Equal(t, "value1", r.Attachment("key1", nil))
 	assert.Equal(t, "value2", r.Attachment("key2", nil))
 }
@@ -754,7 +755,7 @@ func TestRPCResult_EdgeCases(t *testing.T) {
 		for i := 0; i < 1000; i++ {
 			r.AddAttachment(fmt.Sprintf("key-%d", i), i)
 		}
-		assert.Equal(t, 1000, len(r.Attachments()))
+		assert.Len(t, r.Attachments(), 1000)
 	})
 
 	t.Run("overwrite with nil", func(t *testing.T) {
diff --git a/protocol/triple/client_test.go b/protocol/triple/client_test.go
index 4f40e6f74..87fe23db0 100644
--- a/protocol/triple/client_test.go
+++ b/protocol/triple/client_test.go
@@ -26,6 +26,7 @@ import (
 
 import (
 	"github.com/stretchr/testify/assert"
+	"github.com/stretchr/testify/require"
 )
 
 import (
@@ -138,11 +139,11 @@ func TestClientManager_GetClient(t *testing.T) {
 		t.Run(test.desc, func(t *testing.T) {
 			client, err := test.cm.getClient(test.method)
 			if test.expectErr {
-				assert.NotNil(t, err)
+				require.Error(t, err)
 				assert.Nil(t, client)
 				assert.Contains(t, err.Error(), "missing triple client")
 			} else {
-				assert.Nil(t, err)
+				require.NoError(t, err)
 				assert.NotNil(t, client)
 			}
 		})
@@ -159,7 +160,7 @@ func TestClientManager_Close(t *testing.T) {
 	}
 
 	err := cm.close()
-	assert.Nil(t, err)
+	require.NoError(t, err)
 }
 
 func TestClientManager_CallMethods_MissingClient(t *testing.T) {
@@ -170,27 +171,27 @@ func TestClientManager_CallMethods_MissingClient(t *testing.T) {
 
 	t.Run("callUnary missing client", func(t *testing.T) {
 		err := cm.callUnary(ctx, "NonExist", nil, nil)
-		assert.NotNil(t, err)
+		require.Error(t, err)
 		assert.Contains(t, err.Error(), "missing triple client")
 	})
 
 	t.Run("callClientStream missing client", func(t *testing.T) {
 		stream, err := cm.callClientStream(ctx, "NonExist")
-		assert.NotNil(t, err)
+		require.Error(t, err)
 		assert.Nil(t, stream)
 		assert.Contains(t, err.Error(), "missing triple client")
 	})
 
 	t.Run("callServerStream missing client", func(t *testing.T) {
 		stream, err := cm.callServerStream(ctx, "NonExist", nil)
-		assert.NotNil(t, err)
+		require.Error(t, err)
 		assert.Nil(t, stream)
 		assert.Contains(t, err.Error(), "missing triple client")
 	})
 
 	t.Run("callBidiStream missing client", func(t *testing.T) {
 		stream, err := cm.callBidiStream(ctx, "NonExist")
-		assert.NotNil(t, err)
+		require.Error(t, err)
 		assert.Nil(t, stream)
 		assert.Contains(t, err.Error(), "missing triple client")
 	})
@@ -285,10 +286,10 @@ func Test_genKeepAliveOptions(t *testing.T) {
 		t.Run(test.desc, func(t *testing.T) {
 			opts, interval, timeout, err := genKeepAliveOptions(test.url, test.tripleConf)
 			if test.expectErr {
-				assert.NotNil(t, err)
+				require.Error(t, err)
 			} else {
-				assert.Nil(t, err)
-				assert.Equal(t, test.expectOptsLen, len(opts))
+				require.NoError(t, err)
+				assert.Len(t, opts, test.expectOptsLen)
 				assert.Equal(t, test.expectInterval, interval)
 				assert.Equal(t, test.expectTimeout, timeout)
 			}
@@ -349,7 +350,7 @@ func Test_newClientManager_Serialization(t *testing.T) {
 				})
 			} else {
 				cm, err := newClientManager(url)
-				assert.Nil(t, err)
+				require.NoError(t, err)
 				assert.NotNil(t, cm)
 				assert.Equal(t, test.expectIDL, cm.isIDL)
 			}
@@ -365,7 +366,7 @@ func Test_newClientManager_NoMethods(t *testing.T) {
 	)
 
 	cm, err := newClientManager(url)
-	assert.NotNil(t, err)
+	require.Error(t, err)
 	assert.Nil(t, cm)
 	assert.Contains(t, err.Error(), "can't get methods")
 }
@@ -378,9 +379,9 @@ func Test_newClientManager_WithMethods(t *testing.T) {
 	)
 
 	cm, err := newClientManager(url)
-	assert.Nil(t, err)
+	require.NoError(t, err)
 	assert.NotNil(t, cm)
-	assert.Equal(t, 3, len(cm.triClients))
+	assert.Len(t, cm.triClients, 3)
 	assert.Contains(t, cm.triClients, "Method1")
 	assert.Contains(t, cm.triClients, "Method2")
 	assert.Contains(t, cm.triClients, "Method3")
@@ -396,7 +397,7 @@ func Test_newClientManager_WithGroupAndVersion(t *testing.T) {
 	)
 
 	cm, err := newClientManager(url)
-	assert.Nil(t, err)
+	require.NoError(t, err)
 	assert.NotNil(t, cm)
 }
 
@@ -409,7 +410,7 @@ func Test_newClientManager_WithTimeout(t *testing.T) {
 	)
 
 	cm, err := newClientManager(url)
-	assert.Nil(t, err)
+	require.NoError(t, err)
 	assert.NotNil(t, cm)
 }
 
@@ -423,7 +424,7 @@ func Test_newClientManager_InvalidTLSConfig(t *testing.T) {
 	url.SetAttribute(constant.TLSConfigKey, "invalid-type")
 
 	cm, err := newClientManager(url)
-	assert.NotNil(t, err)
+	require.Error(t, err)
 	assert.Nil(t, cm)
 	assert.Contains(t, err.Error(), "TLSConfig configuration failed")
 }
@@ -443,7 +444,7 @@ func Test_newClientManager_HTTP3WithoutTLS(t *testing.T) {
 	url.SetAttribute(constant.TripleConfigKey, tripleConfig)
 
 	cm, err := newClientManager(url)
-	assert.NotNil(t, err)
+	require.Error(t, err)
 	assert.Nil(t, cm)
 	assert.Contains(t, err.Error(), "must have TLS config")
 }
@@ -472,10 +473,10 @@ func Test_newClientManager_WithRpcService(t *testing.T) {
 	url.SetAttribute(constant.RpcServiceKey, &mockService{})
 
 	cm, err := newClientManager(url)
-	assert.Nil(t, err)
+	require.NoError(t, err)
 	assert.NotNil(t, cm)
 	// Should have methods from mockService (Reference, TestMethod1, TestMethod2)
-	assert.True(t, len(cm.triClients) >= 2)
+	assert.GreaterOrEqual(t, len(cm.triClients), 2)
 }
 
 func TestDualTransport_Structure(t *testing.T) {
@@ -549,9 +550,9 @@ func Test_newClientManager_URLPrefixHandling(t *testing.T) {
 			)
 
 			cm, err := newClientManager(url)
-			assert.Nil(t, err)
+			require.NoError(t, err)
 			assert.NotNil(t, cm)
-			assert.Equal(t, 1, len(cm.triClients))
+			assert.Len(t, cm.triClients, 1)
 		})
 	}
 }
@@ -570,7 +571,7 @@ func Test_newClientManager_KeepAliveError(t *testing.T) {
 	url.SetAttribute(constant.TripleConfigKey, tripleConfig)
 
 	cm, err := newClientManager(url)
-	assert.NotNil(t, err)
+	require.Error(t, err)
 	assert.Nil(t, cm)
 }
 
@@ -583,7 +584,7 @@ func Test_newClientManager_DefaultProtocol(t *testing.T) {
 	)
 
 	cm, err := newClientManager(url)
-	assert.Nil(t, err)
+	require.NoError(t, err)
 	assert.NotNil(t, cm)
 }
 
@@ -599,7 +600,7 @@ func Test_newClientManager_EmptyTripleConfig(t *testing.T) {
 	url.SetAttribute(constant.TripleConfigKey, tripleConfig)
 
 	cm, err := newClientManager(url)
-	assert.Nil(t, err)
+	require.NoError(t, err)
 	assert.NotNil(t, cm)
 }
 
@@ -619,7 +620,7 @@ func Test_newClientManager_Http3Disabled(t *testing.T) {
 	url.SetAttribute(constant.TripleConfigKey, tripleConfig)
 
 	cm, err := newClientManager(url)
-	assert.Nil(t, err)
+	require.NoError(t, err)
 	assert.NotNil(t, cm)
 }
 
@@ -632,9 +633,9 @@ func Test_newClientManager_MultipleMethods(t *testing.T) {
 	)
 
 	cm, err := newClientManager(url)
-	assert.Nil(t, err)
+	require.NoError(t, err)
 	assert.NotNil(t, cm)
-	assert.Equal(t, len(methods), len(cm.triClients))
+	assert.Len(t, cm.triClients, len(methods))
 
 	for _, method := range methods {
 		_, exists := cm.triClients[method]
@@ -651,6 +652,6 @@ func Test_newClientManager_InterfaceName(t *testing.T) {
 	)
 
 	cm, err := newClientManager(url)
-	assert.Nil(t, err)
+	require.NoError(t, err)
 	assert.NotNil(t, cm)
 }
diff --git a/protocol/triple/server_test.go b/protocol/triple/server_test.go
index d6129fea6..32f1d8a4a 100644
--- a/protocol/triple/server_test.go
+++ b/protocol/triple/server_test.go
@@ -49,7 +49,7 @@ func Test_generateAttachments(t *testing.T) {
 				return http.Header{}
 			},
 			expect: func(t *testing.T, res map[string]any) {
-				assert.Zero(t, len(res))
+				assert.Empty(t, res)
 			},
 		},
 		{
@@ -62,7 +62,7 @@ func Test_generateAttachments(t *testing.T) {
 				return header
 			},
 			expect: func(t *testing.T, res map[string]any) {
-				assert.Equal(t, 2, len(res))
+				assert.Len(t, res, 2)
 				assert.Equal(t, []string{"val1"}, res["key1"])
 				assert.Equal(t, []string{"val2_1", "val2_2"}, res["key2"])
 			},
@@ -77,7 +77,7 @@ func Test_generateAttachments(t *testing.T) {
 				return header
 			},
 			expect: func(t *testing.T, res map[string]any) {
-				assert.Equal(t, 2, len(res))
+				assert.Len(t, res, 2)
 				assert.Equal(t, []string{"val1"}, res["key1"])
 				assert.Equal(t, []string{"val2_1", "val2_2"}, res["key2"])
 			},
@@ -106,9 +106,8 @@ func TestServer_StartWithHttp2AndHttp3(t *testing.T) {
 	// when Enable is set to true
 	// Note: We can't actually start the server in a unit test due to port binding
 	// but we can verify the configuration logic
-
 	assert.NotNil(t, server)
-	assert.Equal(t, tripleConfig, server.cfg)
+	assert.Equal(t, tripleConfig.Http3.Enable, server.cfg.Http3.Enable)
 }
 
 func TestServer_ProtocolSelection(t *testing.T) {
@@ -214,7 +213,7 @@ func TestServer_GetServiceInfo(t *testing.T) {
 
 		info := server.GetServiceInfo()
 		assert.NotNil(t, info)
-		assert.Equal(t, 1, len(info))
+		assert.Len(t, info, 1)
 		assert.Contains(t, info, "test.Service")
 	})
 
@@ -251,7 +250,7 @@ func TestServer_SaveServiceInfo(t *testing.T) {
 			expect: func(t *testing.T, server *Server) {
 				info := server.GetServiceInfo()
 				assert.Contains(t, info, "test.UnaryService")
-				assert.Equal(t, 1, len(info["test.UnaryService"].Methods))
+				assert.Len(t, info["test.UnaryService"].Methods, 1)
 				assert.Equal(t, "UnaryMethod", info["test.UnaryService"].Methods[0].Name)
 				assert.False(t, info["test.UnaryService"].Methods[0].IsClientStream)
 				assert.False(t, info["test.UnaryService"].Methods[0].IsServerStream)
@@ -316,7 +315,7 @@ func TestServer_SaveServiceInfo(t *testing.T) {
 			expect: func(t *testing.T, server *Server) {
 				info := server.GetServiceInfo()
 				assert.Contains(t, info, "test.MultiMethodService")
-				assert.Equal(t, 4, len(info["test.MultiMethodService"].Methods))
+				assert.Len(t, info["test.MultiMethodService"].Methods, 4)
 			},
 		},
 	}
@@ -349,7 +348,7 @@ func TestServer_SaveServiceInfo_Concurrent(t *testing.T) {
 	}
 
 	wg.Wait()
-	assert.Equal(t, concurrency, len(server.GetServiceInfo()))
+	assert.Len(t, server.GetServiceInfo(), concurrency)
 }
 
 func Test_getHanOpts(t *testing.T) {
@@ -397,7 +396,7 @@ func Test_getHanOpts(t *testing.T) {
 	for _, test := range tests {
 		t.Run(test.desc, func(t *testing.T) {
 			opts := getHanOpts(test.url, test.tripleConf)
-			assert.Equal(t, test.expectLen, len(opts))
+			assert.Len(t, opts, test.expectLen)
 		})
 	}
 }
@@ -454,13 +453,13 @@ func Test_createServiceInfoWithReflection(t *testing.T) {
 				assert.NotNil(t, params)
 				paramsSlice, ok := params.([]any)
 				assert.True(t, ok)
-				assert.Equal(t, 1, len(paramsSlice)) // only req param (ctx is excluded)
+				assert.Len(t, paramsSlice, 1) // only req param (ctx is excluded)
 			}
 			if m.Name == "TestMethodWithMultipleArgs" {
 				params := m.ReqInitFunc()
 				paramsSlice, ok := params.([]any)
 				assert.True(t, ok)
-				assert.Equal(t, 2, len(paramsSlice)) // arg1 and arg2
+				assert.Len(t, paramsSlice, 2) // arg1 and arg2
 			}
 		}
 	})
@@ -483,6 +482,6 @@ func Test_createServiceInfoWithReflection(t *testing.T) {
 		params := invokeMethod.ReqInitFunc()
 		paramsSlice, ok := params.([]any)
 		assert.True(t, ok)
-		assert.Equal(t, 3, len(paramsSlice)) // methodName, argv types, argv
+		assert.Len(t, paramsSlice, 3) // methodName, argv types, argv
 	})
 }
diff --git a/protocol/triple/triple_invoker_test.go b/protocol/triple/triple_invoker_test.go
index 9f8575aaa..2f5a02004 100644
--- a/protocol/triple/triple_invoker_test.go
+++ b/protocol/triple/triple_invoker_test.go
@@ -26,6 +26,7 @@ import (
 
 import (
 	"github.com/stretchr/testify/assert"
+	"github.com/stretchr/testify/require"
 )
 
 import (
@@ -54,7 +55,7 @@ func Test_parseInvocation(t *testing.T) {
 				return invocation.NewRPCInvocationWithOptions()
 			},
 			expect: func(t *testing.T, callType string, inRaw []any, methodName string, err error) {
-				assert.NotNil(t, err)
+				require.Error(t, err)
 				assert.Contains(t, err.Error(), "miss CallType")
 			},
 		},
@@ -70,7 +71,7 @@ func Test_parseInvocation(t *testing.T) {
 				return iv
 			},
 			expect: func(t *testing.T, callType string, inRaw []any, methodName string, err error) {
-				assert.NotNil(t, err)
+				require.Error(t, err)
 				assert.Contains(t, err.Error(), "CallType should be string")
 			},
 		},
@@ -86,90 +87,10 @@ func Test_parseInvocation(t *testing.T) {
 				return iv
 			},
 			expect: func(t *testing.T, callType string, inRaw []any, methodName string, err error) {
-				assert.NotNil(t, err)
+				require.Error(t, err)
 				assert.Contains(t, err.Error(), "miss MethodName")
 			},
 		},
-		{
-			desc: "success with CallUnary",
-			ctx: func() context.Context {
-				return context.Background()
-			},
-			url: common.NewURLWithOptions(),
-			invo: func() base.Invocation {
-				iv := invocation.NewRPCInvocationWithOptions(
-					invocation.WithMethodName("TestMethod"),
-					invocation.WithParameterRawValues([]any{"req", "resp"}),
-				)
-				iv.SetAttribute(constant.CallTypeKey, constant.CallUnary)
-				return iv
-			},
-			expect: func(t *testing.T, callType string, inRaw []any, methodName string, err error) {
-				assert.Nil(t, err)
-				assert.Equal(t, constant.CallUnary, callType)
-				assert.Equal(t, "TestMethod", methodName)
-				assert.Equal(t, 2, len(inRaw))
-			},
-		},
-		{
-			desc: "success with CallClientStream",
-			ctx: func() context.Context {
-				return context.Background()
-			},
-			url: common.NewURLWithOptions(),
-			invo: func() base.Invocation {
-				iv := invocation.NewRPCInvocationWithOptions(
-					invocation.WithMethodName("StreamMethod"),
-				)
-				iv.SetAttribute(constant.CallTypeKey, constant.CallClientStream)
-				return iv
-			},
-			expect: func(t *testing.T, callType string, inRaw []any, methodName string, err error) {
-				assert.Nil(t, err)
-				assert.Equal(t, constant.CallClientStream, callType)
-				assert.Equal(t, "StreamMethod", methodName)
-			},
-		},
-		{
-			desc: "success with CallServerStream",
-			ctx: func() context.Context {
-				return context.Background()
-			},
-			url: common.NewURLWithOptions(),
-			invo: func() base.Invocation {
-				iv := invocation.NewRPCInvocationWithOptions(
-					invocation.WithMethodName("ServerStreamMethod"),
-					invocation.WithParameterRawValues([]any{"req"}),
-				)
-				iv.SetAttribute(constant.CallTypeKey, constant.CallServerStream)
-				return iv
-			},
-			expect: func(t *testing.T, callType string, inRaw []any, methodName string, err error) {
-				assert.Nil(t, err)
-				assert.Equal(t, constant.CallServerStream, callType)
-				assert.Equal(t, "ServerStreamMethod", methodName)
-				assert.Equal(t, 1, len(inRaw))
-			},
-		},
-		{
-			desc: "success with CallBidiStream",
-			ctx: func() context.Context {
-				return context.Background()
-			},
-			url: common.NewURLWithOptions(),
-			invo: func() base.Invocation {
-				iv := invocation.NewRPCInvocationWithOptions(
-					invocation.WithMethodName("BidiStreamMethod"),
-				)
-				iv.SetAttribute(constant.CallTypeKey, constant.CallBidiStream)
-				return iv
-			},
-			expect: func(t *testing.T, callType string, inRaw []any, methodName string, err error) {
-				assert.Nil(t, err)
-				assert.Equal(t, constant.CallBidiStream, callType)
-				assert.Equal(t, "BidiStreamMethod", methodName)
-			},
-		},
 	}
 
 	for _, test := range tests {
@@ -201,7 +122,7 @@ func Test_parseAttachments(t *testing.T) {
 				return invocation.NewRPCInvocationWithOptions()
 			},
 			expect: func(t *testing.T, ctx context.Context, err error) {
-				assert.Nil(t, err)
+				require.NoError(t, err)
 				header := http.Header(tri.ExtractFromOutgoingContext(ctx))
 				assert.NotNil(t, header)
 				assert.Equal(t, "interface", header.Get(constant.InterfaceKey))
@@ -221,7 +142,7 @@ func Test_parseAttachments(t *testing.T) {
 				return invocation.NewRPCInvocationWithOptions()
 			},
 			expect: func(t *testing.T, ctx context.Context, err error) {
-				assert.Nil(t, err)
+				require.NoError(t, err)
 				header := http.Header(tri.ExtractFromOutgoingContext(ctx))
 				assert.NotNil(t, header)
 				assert.Equal(t, "val1", header.Get("key1"))
@@ -240,55 +161,10 @@ func Test_parseAttachments(t *testing.T) {
 				return invocation.NewRPCInvocationWithOptions()
 			},
 			expect: func(t *testing.T, ctx context.Context, err error) {
-				assert.NotNil(t, err)
+				require.Error(t, err)
 				assert.Contains(t, err.Error(), "invalid")
 			},
 		},
-		{
-			desc: "url has timeout key",
-			ctx: func() context.Context {
-				return context.Background()
-			},
-			url: common.NewURLWithOptions(
-				common.WithParamsValue(constant.TimeoutKey, "3000"),
-			),
-			invo: func() base.Invocation {
-				return invocation.NewRPCInvocationWithOptions()
-			},
-			expect: func(t *testing.T, ctx context.Context, err error) {
-				assert.Nil(t, err)
-				header := http.Header(tri.ExtractFromOutgoingContext(ctx))
-				assert.NotNil(t, header)
-				assert.Equal(t, "3000", header.Get(constant.TimeoutKey))
-			},
-		},
-		{
-			desc: "empty context attachments",
-			ctx: func() context.Context {
-				return context.Background()
-			},
-			url: common.NewURLWithOptions(),
-			invo: func() base.Invocation {
-				return invocation.NewRPCInvocationWithOptions()
-			},
-			expect: func(t *testing.T, ctx context.Context, err error) {
-				assert.Nil(t, err)
-			},
-		},
-		{
-			desc: "context with non-map attachment value",
-			ctx: func() context.Context {
-				return context.WithValue(context.Background(), constant.AttachmentKey, "not-a-map")
-			},
-			url: common.NewURLWithOptions(),
-			invo: func() base.Invocation {
-				return invocation.NewRPCInvocationWithOptions()
-			},
-			expect: func(t *testing.T, ctx context.Context, err error) {
-				// non-map attachment should be ignored
-				assert.Nil(t, err)
-			},
-		},
 	}
 
 	for _, test := range tests {
@@ -512,7 +388,7 @@ func TestTripleInvoker_Invoke(t *testing.T) {
 				assert.Equal(t, test.expectErr, result.Error())
 			}
 			if test.expectErrMsg != "" {
-				assert.NotNil(t, result.Error())
+				require.Error(t, result.Error())
 				assert.Contains(t, result.Error().Error(), test.expectErrMsg)
 			}
 		})
@@ -558,7 +434,7 @@ func Test_mergeAttachmentToOutgoing(t *testing.T) {
 				return inv
 			},
 			expect: func(t *testing.T, ctx context.Context, err error) {
-				assert.Nil(t, err)
+				require.NoError(t, err)
 				timeout := ctx.Value(tri.TimeoutKey{})
 				assert.Equal(t, "5000", timeout)
 			},
@@ -573,7 +449,7 @@ func Test_mergeAttachmentToOutgoing(t *testing.T) {
 				return inv
 			},
 			expect: func(t *testing.T, ctx context.Context, err error) {
-				assert.Nil(t, err)
+				require.NoError(t, err)
 				header := http.Header(tri.ExtractFromOutgoingContext(ctx))
 				assert.Equal(t, "custom-value", header.Get("custom-key"))
 			},
@@ -588,7 +464,7 @@ func Test_mergeAttachmentToOutgoing(t *testing.T) {
 				return inv
 			},
 			expect: func(t *testing.T, ctx context.Context, err error) {
-				assert.Nil(t, err)
+				require.NoError(t, err)
 				header := http.Header(tri.ExtractFromOutgoingContext(ctx))
 				assert.Equal(t, []string{"val1", "val2"}, header.Values("multi-key"))
 			},
@@ -603,7 +479,7 @@ func Test_mergeAttachmentToOutgoing(t *testing.T) {
 				return inv
 			},
 			expect: func(t *testing.T, ctx context.Context, err error) {
-				assert.NotNil(t, err)
+				require.Error(t, err)
 				assert.Contains(t, err.Error(), "invalid")
 			},
 		},
@@ -614,7 +490,7 @@ func Test_mergeAttachmentToOutgoing(t *testing.T) {
 				return invocation.NewRPCInvocationWithOptions()
 			},
 			expect: func(t *testing.T, ctx context.Context, err error) {
-				assert.Nil(t, err)
+				assert.NoError(t, err)
 			},
 		},
 	}
diff --git a/protocol/triple/triple_protocol/codec.go b/protocol/triple/triple_protocol/codec.go
index 343e93d9b..0e3852162 100644
--- a/protocol/triple/triple_protocol/codec.go
+++ b/protocol/triple/triple_protocol/codec.go
@@ -358,8 +358,6 @@ func getArgType(v any) string {
 
 	switch v := v.(type) {
 	// Serialized tags for base types
-	case nil:
-		return "V"
 	case bool:
 		return "boolean"
 	case []bool:
diff --git a/protocol/triple/triple_protocol/handler_compat_test.go b/protocol/triple/triple_protocol/handler_compat_test.go
index 19189e3d5..93339f3af 100644
--- a/protocol/triple/triple_protocol/handler_compat_test.go
+++ b/protocol/triple/triple_protocol/handler_compat_test.go
@@ -34,5 +34,5 @@ func TestCompatError(t *testing.T) {
 	assert.True(t, ok)
 	assert.Equal(t, Code(1234), triErr.Code())
 	assert.Equal(t, "user defined", triErr.Message())
-	assert.Equal(t, 1, len(triErr.Details()))
+	assert.Len(t, triErr.Details(), 1)
 }
diff --git a/protocol/triple/triple_protocol/server_test.go b/protocol/triple/triple_protocol/server_test.go
index dd8b8cc3e..33e024236 100644
--- a/protocol/triple/triple_protocol/server_test.go
+++ b/protocol/triple/triple_protocol/server_test.go
@@ -25,6 +25,7 @@ import (
 
 import (
 	"github.com/stretchr/testify/assert"
+	"github.com/stretchr/testify/require"
 )
 
 import (
@@ -89,7 +90,7 @@ func TestServer_RegisterMuxHandle(t *testing.T) {
 	})
 	for _, test := range tests {
 		err := srv.RegisterUnaryHandler(test.path, nil, nil)
-		assert.Nil(t, err)
+		require.NoError(t, err)
 		_, pattern := srv.mux.Handler(&http.Request{
 			URL: &url.URL{
 				Path: test.path,
diff --git a/protocol/triple/triple_protocol/triple.go b/protocol/triple/triple_protocol/triple.go
index 99228209e..3ee8f0ce4 100644
--- a/protocol/triple/triple_protocol/triple.go
+++ b/protocol/triple/triple_protocol/triple.go
@@ -340,7 +340,7 @@ func receiveUnaryResponse(conn StreamingClientConn, response AnyResponse) error
 	// trailers, try to read another message from the stream.
 	if err := conn.Receive(resp.Msg); err == nil {
 		return NewError(CodeUnknown, errors.New("unary stream has multiple messages"))
-	} else if err != nil && !errors.Is(err, io.EOF) {
+	} else if !errors.Is(err, io.EOF) {
 		return NewError(CodeUnknown, err)
 	}
 	resp.header = conn.ResponseHeader()
diff --git a/proxy/proxy_factory/invoker_test.go b/proxy/proxy_factory/invoker_test.go
index 11230b0c2..5757f6e53 100644
--- a/proxy/proxy_factory/invoker_test.go
+++ b/proxy/proxy_factory/invoker_test.go
@@ -27,6 +27,7 @@ import (
 
 import (
 	"github.com/stretchr/testify/assert"
+	"github.com/stretchr/testify/require"
 )
 
 import (
@@ -55,7 +56,7 @@ func (s *PassThroughService) Service(method string, argTypes []string, args [][]
 func registerService(t *testing.T, protocol, interfaceName string, svc common.RPCService) {
 	t.Helper()
 	_, err := common.ServiceMap.Register(interfaceName, protocol, "", "", svc)
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	t.Cleanup(func() {
 		_ = common.ServiceMap.UnRegister(interfaceName, protocol, common.ServiceKey(interfaceName, "", ""))
 	})
@@ -86,7 +87,7 @@ func TestProxyInvoker_Invoke(t *testing.T) {
 			invocation.WithAttachments(map[string]any{"trace": "t1"}),
 		)
 		result := invoker.Invoke(context.Background(), inv)
-		assert.NoError(t, result.Error())
+		require.NoError(t, result.Error())
 		assert.Equal(t, "hello:world", result.Result())
 		assert.Equal(t, "t1", result.Attachments()["trace"])
 	})
@@ -133,7 +134,7 @@ func TestPassThroughProxyInvoker_Invoke(t *testing.T) {
 			}),
 		)
 		result := invoker.Invoke(context.Background(), inv)
-		assert.NoError(t, result.Error())
+		require.NoError(t, result.Error())
 		assert.Equal(t, "RawMethod|bytes|payload", result.Result())
 		assert.Equal(t, "abc", result.Attachments()["trace"])
 	})
diff --git a/proxy/proxy_test.go b/proxy/proxy_test.go
index 049c9b00e..b2a04136b 100644
--- a/proxy/proxy_test.go
+++ b/proxy/proxy_test.go
@@ -28,6 +28,7 @@ import (
 	perrors "github.com/pkg/errors"
 
 	"github.com/stretchr/testify/assert"
+	"github.com/stretchr/testify/require"
 )
 
 import (
@@ -66,22 +67,22 @@ func TestProxyImplement(t *testing.T) {
 	p.Implement(s)
 
 	err := p.Get().(*TestService).MethodOne(nil, 0, false, nil)
-	assert.NoError(t, err)
+	require.NoError(t, err)
 
 	err = p.Get().(*TestService).MethodTwo(nil)
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	ret, err := p.Get().(*TestService).MethodThree(0, false)
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	assert.Nil(t, ret) // ret is nil, because it doesn't be injection yet
 
 	ret2, err := p.Get().(*TestService).MethodFour(0, false)
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	assert.Equal(t, "*interface {}", reflect.TypeOf(ret2).String())
 	err = p.Get().(*TestService).Echo(nil, nil)
-	assert.NoError(t, err)
+	require.NoError(t, err)
 
 	err = p.Get().(*TestService).MethodFive()
-	assert.NoError(t, err)
+	require.NoError(t, err)
 
 	// inherit & lowercase
 	p.rpc = nil
@@ -94,9 +95,9 @@ func TestProxyImplement(t *testing.T) {
 	}}
 	p.Implement(s1)
 	err = s1.MethodOne(nil, 0, false, nil)
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	err = s1.methodOne(nil, nil, nil)
-	assert.EqualError(t, err, "errors")
+	require.EqualError(t, err, "errors")
 
 	// no struct
 	p.rpc = nil
@@ -138,8 +139,8 @@ func TestProxyImplementForContext(t *testing.T) {
 	context := context.WithValue(context.Background(), constant.AttachmentKey, attachments1)
 	r, err := p.Get().(*TestService).MethodSix(context, "xxx")
 	v1 := r.(map[string]any)
-	assert.NoError(t, err)
-	assert.Equal(t, v1["TestProxyInvoker"], "TestProxyInvokerValue")
+	require.NoError(t, err)
+	assert.Equal(t, "TestProxyInvokerValue", v1["TestProxyInvoker"])
 }
 
 type TestProxyInvoker struct {
diff --git a/registry/directory/directory_test.go b/registry/directory/directory_test.go
index 4856d2597..03d321ca7 100644
--- a/registry/directory/directory_test.go
+++ b/registry/directory/directory_test.go
@@ -25,6 +25,7 @@ import (
 
 import (
 	"github.com/stretchr/testify/assert"
+	"github.com/stretchr/testify/require"
 )
 
 import (
@@ -51,7 +52,7 @@ func TestSubscribe_InvalidUrl(t *testing.T) {
 	url, _ := common.NewURL("mock://127.0.0.1:1111")
 	mockRegistry, _ := registry.NewMockRegistry(&common.URL{})
 	_, err := NewRegistryDirectory(url, mockRegistry)
-	assert.Error(t, err)
+	require.Error(t, err)
 }
 
 func Test_Destroy(t *testing.T) {
@@ -59,11 +60,11 @@ func Test_Destroy(t *testing.T) {
 
 	time.Sleep(3e9)
 	assert.Len(t, registryDirectory.cacheInvokers, 3)
-	assert.Equal(t, true, registryDirectory.IsAvailable())
+	assert.True(t, registryDirectory.IsAvailable())
 
 	registryDirectory.Destroy()
-	assert.Len(t, registryDirectory.cacheInvokers, 0)
-	assert.Equal(t, false, registryDirectory.IsAvailable())
+	assert.Empty(t, registryDirectory.cacheInvokers)
+	assert.False(t, registryDirectory.IsAvailable())
 }
 
 func Test_List(t *testing.T) {
@@ -71,7 +72,7 @@ func Test_List(t *testing.T) {
 
 	time.Sleep(6e9)
 	assert.Len(t, registryDirectory.List(&invocation.RPCInvocation{}), 3)
-	assert.Equal(t, true, registryDirectory.IsAvailable())
+	assert.True(t, registryDirectory.IsAvailable())
 }
 
 func Test_MergeProviderUrl(t *testing.T) {
@@ -108,7 +109,7 @@ Loop1:
 				if len(registryDirectory.cacheInvokers) > 0 {
 					if registryDirectory.cacheInvokers[0].GetURL().GetParam(constant.ClusterKey, "") == "mock1" {
 						assert.Len(t, registryDirectory.cacheInvokers, 1)
-						assert.True(t, true)
+
 						break Loop2
 					} else {
 						time.Sleep(500 * time.Millisecond)
@@ -147,7 +148,7 @@ func Test_RefreshUrl(t *testing.T) {
 	// clear all address
 	mockRegistry.MockEvents([]*registry.ServiceEvent{})
 	time.Sleep(1e9)
-	assert.Len(t, registryDirectory.cacheInvokers, 0)
+	assert.Empty(t, registryDirectory.cacheInvokers)
 }
 
 func normalRegistryDir(noMockEvent ...bool) (*RegistryDirectory, *registry.MockRegistry) {
@@ -195,14 +196,14 @@ func TestToGroupInvokers(t *testing.T) {
 			common.WithParamsValue(constant.VersionKey, "1.0.0"))
 		mockRegistry.MockEvent(&registry.ServiceEvent{Action: remoting.EventTypeAdd, Service: providerUrl})
 		time.Sleep(1e9)
-		assert.True(t, len(registryDirectory.toGroupInvokers()) == 1)
+		assert.Len(t, registryDirectory.toGroupInvokers(), 1)
 		providerUrl1, _ := common.NewURL("dubbo://0.0.0.0:20001/org.apache.dubbo-go.mockService",
 			common.WithParamsValue(constant.ClusterKey, "mock1"),
 			common.WithParamsValue(constant.GroupKey, "group"),
 			common.WithParamsValue(constant.VersionKey, "1.0.0"))
 		mockRegistry.MockEvent(&registry.ServiceEvent{Action: remoting.EventTypeAdd, Service: providerUrl1})
 		time.Sleep(1e9)
-		assert.True(t, len(registryDirectory.toGroupInvokers()) == 2)
+		assert.Len(t, registryDirectory.toGroupInvokers(), 2)
 	})
 	t.Run("DifferentGroup", func(t *testing.T) {
 		extension.SetCluster("mock", cluster.NewMockCluster)
@@ -214,7 +215,7 @@ func TestToGroupInvokers(t *testing.T) {
 			common.WithParamsValue(constant.VersionKey, "1.0.0"))
 		mockRegistry.MockEvent(&registry.ServiceEvent{Action: remoting.EventTypeAdd, Service: providerUrl})
 		time.Sleep(1e9)
-		assert.True(t, len(registryDirectory.toGroupInvokers()) == 1)
+		assert.Len(t, registryDirectory.toGroupInvokers(), 1)
 
 		providerUrl1, _ := common.NewURL("dubbo://0.0.0.0:20000/org.apache.dubbo-go.mockService",
 			common.WithParamsValue(constant.ClusterKey, "mock1"),
@@ -222,6 +223,6 @@ func TestToGroupInvokers(t *testing.T) {
 			common.WithParamsValue(constant.VersionKey, "1.0.0"))
 		mockRegistry.MockEvent(&registry.ServiceEvent{Action: remoting.EventTypeAdd, Service: providerUrl1})
 		time.Sleep(1e9)
-		assert.True(t, len(registryDirectory.toGroupInvokers()) == 2)
+		assert.Len(t, registryDirectory.toGroupInvokers(), 2)
 	})
 }
diff --git a/registry/etcdv3/service_discovery_test.go b/registry/etcdv3/service_discovery_test.go
index 175cc488f..a7003c52b 100644
--- a/registry/etcdv3/service_discovery_test.go
+++ b/registry/etcdv3/service_discovery_test.go
@@ -24,6 +24,7 @@ import (
 
 import (
 	"github.com/stretchr/testify/assert"
+	"github.com/stretchr/testify/require"
 )
 
 import (
@@ -40,9 +41,9 @@ const testName = "test"
 func TestNewEtcdV3ServiceDiscovery(t *testing.T) {
 	url, _ := common.NewURL("dubbo://127.0.0.1:2379")
 	sd, err := newEtcdV3ServiceDiscovery(url)
-	assert.Nil(t, err)
+	require.NoError(t, err)
 	err = sd.Destroy()
-	assert.Nil(t, err)
+	require.NoError(t, err)
 }
 
 func TestEtcdV3ServiceDiscoveryGetDefaultPageSize(t *testing.T) {
@@ -73,7 +74,7 @@ func TestFunction(t *testing.T) {
 	}
 	ins.Metadata = map[string]string{"t1": "test12", constant.MetadataServiceURLParamsPropertyName: `{"protocol":"mock","timeout":"10000","version":"1.0.0","dubbo":"2.0.2","release":"2.7.6","port":"2233"}`}
 	err := sd.Register(ins)
-	assert.Nil(t, err)
+	require.NoError(t, err)
 
 	ins = &registry.DefaultServiceInstance{
 		ID:          "testID",
@@ -86,9 +87,9 @@ func TestFunction(t *testing.T) {
 	}
 	ins.Metadata = map[string]string{"t1": "test12", constant.MetadataServiceURLParamsPropertyName: `{"protocol":"mock","timeout":"10000","version":"1.0.0","dubbo":"2.0.2","release":"2.7.6","port":"2233"}`}
 	err = sd.Update(ins)
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	err = sd.Unregister(ins)
-	assert.NoError(t, err)
+	require.NoError(t, err)
 }
 
 type mockProtocol struct{}
diff --git a/registry/event_test.go b/registry/event_test.go
index 50d3cebb2..049c0d6d1 100644
--- a/registry/event_test.go
+++ b/registry/event_test.go
@@ -34,13 +34,13 @@ func TestKey(t *testing.T) {
 	se := ServiceEvent{
 		Service: u1,
 	}
-	assert.Equal(t, se.Key(), "dubbo://:@127.0.0.1:20000/?interface=com.ikurento.user.UserProvider&group=&version=2.0&timestamp=&meshClusterID=")
+	assert.Equal(t, "dubbo://:@127.0.0.1:20000/?interface=com.ikurento.user.UserProvider&group=&version=2.0&timestamp=&meshClusterID=", se.Key())
 
 	se2 := ServiceEvent{
 		Service: u1,
 		KeyFunc: defineKey,
 	}
-	assert.Equal(t, se2.Key(), "Hello Key")
+	assert.Equal(t, "Hello Key", se2.Key())
 }
 
 func defineKey(url *common.URL) string {
diff --git a/registry/nacos/service_discovery_test.go b/registry/nacos/service_discovery_test.go
index 1f02b1e29..1c068a2bc 100644
--- a/registry/nacos/service_discovery_test.go
+++ b/registry/nacos/service_discovery_test.go
@@ -36,6 +36,7 @@ import (
 	perrors "github.com/pkg/errors"
 
 	"github.com/stretchr/testify/assert"
+	"github.com/stretchr/testify/require"
 )
 
 import (
@@ -56,9 +57,9 @@ func TestNewNacosServiceDiscovery(t *testing.T) {
 	url, _ := common.NewURL("dubbo://127.0.0.1:8848",
 		common.WithParamsValue(constant.ClientNameKey, "nacos-client"))
 	sd, err := newNacosServiceDiscovery(url)
-	assert.Nil(t, err)
+	require.NoError(t, err)
 	err = sd.Destroy()
-	assert.Nil(t, err)
+	require.NoError(t, err)
 }
 
 // Registration side: toRegisterInstance writes Weight into param
@@ -74,7 +75,7 @@ func TestWeight_RegisterParam(t *testing.T) {
 		Weight:      77,
 	}
 	param := sd.toRegisterInstance(si)
-	assert.Equal(t, 77.0, param.Weight)
+	assert.InEpsilon(t, 77.0, param.Weight, 1e-9)
 }
 
 //Subscription side: convertInstances writes Weight back
@@ -138,7 +139,7 @@ func TestFunction(t *testing.T) {
 	}
 	ins.Metadata = map[string]string{"t1": "test12", constant.MetadataServiceURLParamsPropertyName: `{"protocol":"mock","timeout":"10000","version":"1.0.0","dubbo":"2.0.2","release":"2.7.6","port":"2233"}`}
 	err := sd.Register(ins)
-	assert.Nil(t, err)
+	require.NoError(t, err)
 
 	wg := &sync.WaitGroup{}
 	wg.Add(1)
@@ -152,7 +153,7 @@ func TestFunction(t *testing.T) {
 	sicl := servicediscovery.NewServiceInstancesChangedListener("test_app", hs)
 	sicl.AddListenerAndNotify(testName, tn)
 	err = sd.AddListener(sicl)
-	assert.NoError(t, err)
+	require.NoError(t, err)
 
 	ins = &registry.DefaultServiceInstance{
 		ID:          "testID",
@@ -165,9 +166,9 @@ func TestFunction(t *testing.T) {
 	}
 	ins.Metadata = map[string]string{"t1": "test12", constant.MetadataServiceURLParamsPropertyName: `{"protocol":"mock","timeout":"10000","version":"1.0.0","dubbo":"2.0.2","release":"2.7.6","port":"2233"}`}
 	err = sd.Update(ins)
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	err = sd.Unregister(ins)
-	assert.Nil(t, err)
+	require.NoError(t, err)
 }
 
 func TestBatchRegisterInstances(t *testing.T) {
@@ -207,7 +208,7 @@ func TestBatchRegisterInstances(t *testing.T) {
 		parmjosn, _ := json.Marshal(params)
 		ins.Metadata = map[string]string{"t1": "test", constant.MetadataServiceURLParamsPropertyName: string(parmjosn)}
 		err := sd.Register(ins)
-		assert.Nil(t, err)
+		require.NoError(t, err)
 	}
 
 	url3, _ := common.NewURL("tri://127.0.0.1:8848")
@@ -235,7 +236,7 @@ func TestBatchRegisterInstances(t *testing.T) {
 	parmjosn, _ := json.Marshal(params)
 	ins.Metadata = map[string]string{"t1": "test", constant.MetadataServiceURLParamsPropertyName: string(parmjosn)}
 	err := sd.Register(ins)
-	assert.Nil(t, err)
+	require.NoError(t, err)
 
 }
 
diff --git a/registry/protocol/protocol_test.go b/registry/protocol/protocol_test.go
index d2776431d..ed6591a1d 100644
--- a/registry/protocol/protocol_test.go
+++ b/registry/protocol/protocol_test.go
@@ -98,7 +98,7 @@ func TestMultiRegRefer(t *testing.T) {
 		count++
 		return true
 	})
-	assert.Equal(t, count, 2)
+	assert.Equal(t, 2, count)
 }
 
 func TestOneRegRefer(t *testing.T) {
@@ -119,7 +119,7 @@ func TestOneRegRefer(t *testing.T) {
 		count++
 		return true
 	})
-	assert.Equal(t, count, 1)
+	assert.Equal(t, 1, count)
 }
 
 func exporterNormal(t *testing.T, regProtocol *registryProtocol) *common.URL {
@@ -203,14 +203,14 @@ func TestMultiRegAndMultiProtoExporter(t *testing.T) {
 		count++
 		return true
 	})
-	assert.Equal(t, count, 2)
+	assert.Equal(t, 2, count)
 
 	var count2 int
 	regProtocol.bounds.Range(func(key, value any) bool {
 		count2++
 		return true
 	})
-	assert.Equal(t, count2, 2)
+	assert.Equal(t, 2, count2)
 }
 
 func TestOneRegAndProtoExporter(t *testing.T) {
@@ -267,7 +267,7 @@ func TestOneRegAndProtoExporter(t *testing.T) {
 		count++
 		return true
 	})
-	assert.Equal(t, count, 1)
+	assert.Equal(t, 1, count)
 
 	var count2 int
 	regProtocol.bounds.Range(func(key, value any) bool {
@@ -275,7 +275,7 @@ func TestOneRegAndProtoExporter(t *testing.T) {
 		return true
 	})
 	// Should still be 1 because we're exporting the same service (same cache key)
-	assert.Equal(t, count2, 1)
+	assert.Equal(t, 1, count2)
 }
 
 func TestDestroy(t *testing.T) {
diff --git a/registry/servicediscovery/service_discovery_registry_test.go b/registry/servicediscovery/service_discovery_registry_test.go
index 592ad1c3e..a1fa492f7 100644
--- a/registry/servicediscovery/service_discovery_registry_test.go
+++ b/registry/servicediscovery/service_discovery_registry_test.go
@@ -31,6 +31,7 @@ import (
 	gxpage "github.com/dubbogo/gost/hash/page"
 
 	"github.com/stretchr/testify/assert"
+	"github.com/stretchr/testify/require"
 )
 
 import (
@@ -61,10 +62,10 @@ func TestServiceDiscoveryRegistryRegister(t *testing.T) {
 	registryURL, err := common.NewURL(testRegistryURL,
 		common.WithParamsValue(constant.RegistryKey, "mock"),
 		common.WithParamsValue(constant.RegistryIdKey, regID))
-	assert.NoError(t, err)
+	require.NoError(t, err)
 
 	reg, err := newServiceDiscoveryRegistry(registryURL)
-	assert.NoError(t, err)
+	require.NoError(t, err)
 
 	providerURL, _ := common.NewURL("dubbo://127.0.0.1:20880/",
 		common.WithParamsValue(constant.ApplicationKey, testApp),
@@ -74,7 +75,7 @@ func TestServiceDiscoveryRegistryRegister(t *testing.T) {
 
 	// Interface Mapping
 	err = reg.Register(providerURL)
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	assert.True(t, mockMapping.mapCalled, "ServiceNameMapping.Map should be called")
 
 	// Instance Registration
@@ -82,7 +83,7 @@ func TestServiceDiscoveryRegistryRegister(t *testing.T) {
 	assert.True(t, ok)
 
 	err = sdReg.RegisterService()
-	assert.NoError(t, err)
+	require.NoError(t, err)
 
 	assert.True(t, mockSD.registerCalled, "ServiceDiscovery.Register should be called")
 
@@ -103,7 +104,7 @@ func TestServiceDiscoveryRegistrySubscribe(t *testing.T) {
 		common.WithParamsValue(constant.RegistryKey, "mock"))
 
 	reg, err := newServiceDiscoveryRegistry(registryURL)
-	assert.NoError(t, err)
+	require.NoError(t, err)
 
 	consumerURL, _ := common.NewURL("dubbo://127.0.0.1:20000/",
 		common.WithInterface(testInterface),
@@ -113,7 +114,7 @@ func TestServiceDiscoveryRegistrySubscribe(t *testing.T) {
 
 	mockSD.wg.Add(1)
 	err = reg.Subscribe(consumerURL, &mockNotifyListener{})
-	assert.NoError(t, err)
+	require.NoError(t, err)
 
 	assert.True(t, mockMapping.getCalled)
 	assert.Equal(t, testApp, mockSD.capturedAppName)
@@ -131,7 +132,7 @@ func TestServiceDiscoveryRegistryUnSubscribe(t *testing.T) {
 		common.WithParamsValue(constant.RegistryKey, "mock"))
 
 	reg, err := newServiceDiscoveryRegistry(registryURL)
-	assert.NoError(t, err)
+	require.NoError(t, err)
 
 	consumerURL, _ := common.NewURL("dubbo://127.0.0.1:20000/",
 		common.WithInterface(testInterface),
@@ -143,7 +144,7 @@ func TestServiceDiscoveryRegistryUnSubscribe(t *testing.T) {
 	mockSD.wg.Wait()
 
 	err = reg.UnSubscribe(consumerURL, &mockNotifyListener{})
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	assert.True(t, mockMapping.removeCalled)
 }
 
@@ -309,7 +310,7 @@ func TestServiceDiscoveryRegistryUnRegister_AllSuccess(t *testing.T) {
 		common.WithParamsValue(constant.RegistryKey, "mock"))
 
 	reg, err := newServiceDiscoveryRegistry(registryURL)
-	assert.NoError(t, err)
+	require.NoError(t, err)
 
 	sdReg, ok := reg.(*serviceDiscoveryRegistry)
 	assert.True(t, ok)
@@ -337,7 +338,7 @@ func TestServiceDiscoveryRegistryUnRegister_AllSuccess(t *testing.T) {
 	mockSD.unregisterErrByID = nil
 
 	err = sdReg.UnRegisterService()
-	assert.NoError(t, err)
+	require.NoError(t, err)
 
 	// all instances should be removed after successful deregister
 	assert.Empty(t, sdReg.instances)
@@ -355,7 +356,7 @@ func TestServiceDiscoveryRegistryUnRegister_PartialFail(t *testing.T) {
 		common.WithParamsValue(constant.RegistryKey, "mock"))
 
 	reg, err := newServiceDiscoveryRegistry(registryURL)
-	assert.NoError(t, err)
+	require.NoError(t, err)
 
 	sdReg, ok := reg.(*serviceDiscoveryRegistry)
 	assert.True(t, ok)
@@ -384,10 +385,10 @@ func TestServiceDiscoveryRegistryUnRegister_PartialFail(t *testing.T) {
 	}
 
 	err = sdReg.UnRegisterService()
-	assert.Error(t, err)
+	require.Error(t, err)
 
 	// failed instance should remain, successful one removed
-	assert.Equal(t, 1, len(sdReg.instances))
+	assert.Len(t, sdReg.instances, 1)
 	assert.Equal(t, "inst-1", sdReg.instances[0].GetID())
 
 	// still called for both
@@ -403,7 +404,7 @@ func TestServiceDiscoveryRegistryUnRegister_NoInstances(t *testing.T) {
 		common.WithParamsValue(constant.RegistryKey, "mock"))
 
 	reg, err := newServiceDiscoveryRegistry(registryURL)
-	assert.NoError(t, err)
+	require.NoError(t, err)
 
 	sdReg, ok := reg.(*serviceDiscoveryRegistry)
 	assert.True(t, ok)
@@ -411,7 +412,7 @@ func TestServiceDiscoveryRegistryUnRegister_NoInstances(t *testing.T) {
 	sdReg.instances = []registry.ServiceInstance{}
 
 	err = sdReg.UnRegisterService()
-	assert.NoError(t, err)
+	require.NoError(t, err)
 
 	// should stay empty
 	assert.Empty(t, sdReg.instances)
@@ -429,7 +430,7 @@ func TestServiceDiscoveryRegistryUnRegister_Concurrent(t *testing.T) {
 		common.WithParamsValue(constant.RegistryKey, "mock"))
 
 	reg, err := newServiceDiscoveryRegistry(registryURL)
-	assert.NoError(t, err)
+	require.NoError(t, err)
 
 	sdReg, ok := reg.(*serviceDiscoveryRegistry)
 	assert.True(t, ok)
diff --git a/registry/zookeeper/service_discovery_test.go b/registry/zookeeper/service_discovery_test.go
index cfeec8328..c4ee07665 100644
--- a/registry/zookeeper/service_discovery_test.go
+++ b/registry/zookeeper/service_discovery_test.go
@@ -23,6 +23,7 @@ import (
 
 import (
 	"github.com/stretchr/testify/assert"
+	"github.com/stretchr/testify/require"
 )
 
 import (
@@ -35,9 +36,9 @@ func Test_newZookeeperServiceDiscovery(t *testing.T) {
 	url, _ := common.NewURL("dubbo://127.0.0.1:2181",
 		common.WithParamsValue(constant.ClientNameKey, "zk-client"))
 	sd, err := newZookeeperServiceDiscovery(url)
-	assert.Nil(t, err)
+	require.NoError(t, err)
 	err = sd.Destroy()
-	assert.Nil(t, err)
+	require.NoError(t, err)
 
 }
 func Test_zookeeperServiceDiscovery_DataChange(t *testing.T) {
diff --git a/remoting/getty/getty_client_test.go b/remoting/getty/getty_client_test.go
index 0667d695c..1b1d3fd28 100644
--- a/remoting/getty/getty_client_test.go
+++ b/remoting/getty/getty_client_test.go
@@ -32,6 +32,7 @@ import (
 	perrors "github.com/pkg/errors"
 
 	"github.com/stretchr/testify/assert"
+	"github.com/stretchr/testify/require"
 )
 
 import (
@@ -65,7 +66,7 @@ func testRequestOneWay(t *testing.T, client *Client) {
 	request.Event = false
 	request.TwoWay = false
 	err := client.Request(request, 3*time.Second, nil)
-	assert.NoError(t, err)
+	require.NoError(t, err)
 }
 
 func createInvocation(methodName string, callback any, reply any, arguments []any,
@@ -115,7 +116,7 @@ func testClient_AsyncCall(t *testing.T, client *Client) {
 	}
 	wg.Add(1)
 	err := client.Request(request, 3*time.Second, rsp)
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	assert.Equal(t, User{}, *user)
 	wg.Done()
 }
@@ -125,7 +126,7 @@ func InitTest(t *testing.T) (*Server, *common.URL) {
 	remoting.RegistryCodec("dubbo", &DubboTestCodec{})
 
 	methods, err := common.ServiceMap.Register("com.ikurento.user.UserProvider", "dubbo", "", "", &UserProvider{})
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	assert.Equal(t, "GetBigPkg,getBigPkg,GetUser,getUser,GetUser0,getUser0,GetUser1,getUser1,GetUser2,getUser2,GetUser3,getUser3,GetUser4,getUser4,GetUser5,getUser5,GetUser6,getUser6", methods)
 
 	// config
@@ -147,7 +148,7 @@ func InitTest(t *testing.T) (*Server, *common.URL) {
 			SessionName:      "client",
 		},
 	})
-	assert.NoError(t, clientConf.CheckValidity())
+	require.NoError(t, clientConf.CheckValidity())
 	SetServerConfig(ServerConfig{
 		SessionNumber:  700,
 		SessionTimeout: "20s",
@@ -165,18 +166,18 @@ func InitTest(t *testing.T) (*Server, *common.URL) {
 			SessionName:      "server",
 		},
 	})
-	assert.NoError(t, srvConf.CheckValidity())
+	require.NoError(t, srvConf.CheckValidity())
 
 	url, err := common.NewURL("dubbo://127.0.0.1:20060/com.ikurento.user.UserProvider?anyhost=true&" +
 		"application=BDTService&category=providers&default.timeout=10000&dubbo=dubbo-provider-golang-1.0.0&" +
 		"environment=dev&interface=com.ikurento.user.UserProvider&ip=127.0.0.1&methods=GetUser%2C&" +
 		"module=dubbogo+user-info+server&org=ikurento.com&owner=ZX&pid=1447&revision=0.0.1&" +
 		"side=provider&timeout=3000&timestamp=1556509797245&bean.name=UserProvider")
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	// init server
 	userProvider := &UserProvider{}
 	_, err = common.ServiceMap.Register("", url.Protocol, "", "0.0.1", userProvider)
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	invoker := &proxy_factory.ProxyInvoker{
 		BaseInvoker: *base.NewBaseInvoker(url),
 	}
@@ -286,7 +287,7 @@ func TestInitClientOldApi(t *testing.T) {
 	}
 	config.SetRootConfig(rootConf)
 	url, err := common.NewURL("dubbo://127.0.0.1:20003/test")
-	assert.Nil(t, err)
+	require.NoError(t, err)
 	initClient(url)
 	config.SetRootConfig(*originRootConf)
 	assert.NotNil(t, srvConf)
@@ -294,7 +295,7 @@ func TestInitClientOldApi(t *testing.T) {
 
 func TestInitClient(t *testing.T) {
 	url, err := common.NewURL("dubbo://127.0.0.1:20003/test")
-	assert.Nil(t, err)
+	require.NoError(t, err)
 	url.SetAttribute(constant.ProtocolConfigKey, map[string]*global.ProtocolConfig{
 		"dubbo": {
 			Name: "dubbo",
diff --git a/remoting/getty/getty_server_test.go b/remoting/getty/getty_server_test.go
index 3eebf7033..4f7121a54 100644
--- a/remoting/getty/getty_server_test.go
+++ b/remoting/getty/getty_server_test.go
@@ -23,6 +23,7 @@ import (
 
 import (
 	"github.com/stretchr/testify/assert"
+	"github.com/stretchr/testify/require"
 )
 
 import (
@@ -46,7 +47,7 @@ func TestInitServerOldApi(t *testing.T) {
 	}
 	config.SetRootConfig(rootConf)
 	url, err := common.NewURL("dubbo://127.0.0.1:20003/test")
-	assert.Nil(t, err)
+	require.NoError(t, err)
 	initServer(url)
 	config.SetRootConfig(*originRootConf)
 	assert.NotNil(t, srvConf)
@@ -54,7 +55,7 @@ func TestInitServerOldApi(t *testing.T) {
 
 func TestInitServer(t *testing.T) {
 	url, err := common.NewURL("dubbo://127.0.0.1:20003/test")
-	assert.Nil(t, err)
+	require.NoError(t, err)
 	url.SetAttribute(constant.ProtocolConfigKey, map[string]*global.ProtocolConfig{
 		"dubbo": {
 			Name: "dubbo",
diff --git a/remoting/getty/listener_test.go b/remoting/getty/listener_test.go
index 9348fbbb8..6b76bd803 100644
--- a/remoting/getty/listener_test.go
+++ b/remoting/getty/listener_test.go
@@ -27,6 +27,7 @@ import (
 	"github.com/opentracing/opentracing-go/mocktracer"
 
 	"github.com/stretchr/testify/assert"
+	"github.com/stretchr/testify/require"
 )
 
 import (
@@ -50,7 +51,7 @@ func TestRebuildCtx(t *testing.T) {
 	span, ctx := opentracing.StartSpanFromContext(ctx, "Test-Client")
 	assert.NotNil(t, ctx)
 	err := injectTraceCtx(span, inv)
-	assert.NoError(t, err)
+	require.NoError(t, err)
 
 	// rebuild the context success
 	inv = invocation.NewRPCInvocation("MethodName", []any{"OK", "Hello"}, attach)
diff --git a/remoting/getty/readwriter_test.go b/remoting/getty/readwriter_test.go
index 11c73cc7f..d0f6d5842 100644
--- a/remoting/getty/readwriter_test.go
+++ b/remoting/getty/readwriter_test.go
@@ -28,6 +28,7 @@ import (
 	hessian "github.com/apache/dubbo-go-hessian2"
 
 	"github.com/stretchr/testify/assert"
+	"github.com/stretchr/testify/require"
 )
 
 import (
@@ -65,20 +66,20 @@ func testDecodeTCPPackage(t *testing.T, svr *Server, client *Client) {
 
 	pkgWriteHandler := NewRpcClientPackageHandler(client)
 	pkgBytes, err := pkgWriteHandler.Write(nil, request)
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	pkgReadHandler := NewRpcServerPackageHandler(svr)
 	_, pkgLen, err := pkgReadHandler.Read(nil, pkgBytes)
-	assert.NoError(t, err)
-	assert.Equal(t, pkgLen, len(pkgBytes))
+	require.NoError(t, err)
+	assert.Len(t, pkgBytes, pkgLen)
 
 	// simulate incomplete tcp package
 	incompletePkgLen := len(pkgBytes) - 10
-	assert.True(t, incompletePkgLen >= impl.HEADER_LENGTH, "header buffer too short")
+	assert.GreaterOrEqual(t, incompletePkgLen, impl.HEADER_LENGTH, "header buffer too short")
 	incompletePkg := pkgBytes[0 : incompletePkgLen-1]
 	pkg, pkgLen, err := pkgReadHandler.Read(nil, incompletePkg)
-	assert.Equal(t, err.Error(), "body buffer too short")
-	assert.Equal(t, pkg.(*remoting.DecodeResult).Result, nil)
-	assert.Equal(t, pkgLen, 0)
+	assert.Equal(t, "body buffer too short", err.Error())
+	assert.Nil(t, pkg.(*remoting.DecodeResult).Result)
+	assert.Equal(t, 0, pkgLen)
 }
 
 func getServer(t *testing.T) (*Server, *common.URL) {
@@ -86,7 +87,7 @@ func getServer(t *testing.T) (*Server, *common.URL) {
 	remoting.RegistryCodec("dubbo", &DubboTestCodec{})
 
 	methods, err := common.ServiceMap.Register("com.ikurento.user.AdminProvider", "dubbo", "", "", &AdminProvider{})
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	assert.Equal(t, "GetAdmin,getAdmin", methods)
 
 	// config
@@ -108,7 +109,7 @@ func getServer(t *testing.T) (*Server, *common.URL) {
 			SessionName:      "client",
 		},
 	})
-	assert.NoError(t, clientConf.CheckValidity())
+	require.NoError(t, clientConf.CheckValidity())
 	SetServerConfig(ServerConfig{
 		SessionNumber:  700,
 		SessionTimeout: "20s",
@@ -126,18 +127,18 @@ func getServer(t *testing.T) (*Server, *common.URL) {
 			SessionName:      "server",
 		},
 	})
-	assert.NoError(t, srvConf.CheckValidity())
+	require.NoError(t, srvConf.CheckValidity())
 
 	url, err := common.NewURL("dubbo://127.0.0.1:20061/com.ikurento.user.AdminProvider?anyhost=true&" +
 		"application=BDTService&category=providers&default.timeout=10000&dubbo=dubbo-provider-golang-1.0.0&" +
 		"environment=dev&interface=com.ikurento.user.AdminProvider&ip=127.0.0.1&methods=GetAdmin%2C&" +
 		"module=dubbogo+user-info+server&org=ikurento.com&owner=ZX&pid=1447&revision=0.0.1&" +
 		"side=provider&timeout=3000&timestamp=1556509797245&bean.name=AdminProvider")
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	// init server
 	adminProvider := &AdminProvider{}
 	_, err = common.ServiceMap.Register("com.ikurento.user.AdminProvider", url.Protocol, "", "0.0.1", adminProvider)
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	invoker := &proxy_factory.ProxyInvoker{
 		BaseInvoker: *base.NewBaseInvoker(url),
 	}
diff --git a/remoting/polaris/builder_test.go b/remoting/polaris/builder_test.go
index 6a27f3307..4de32af7d 100644
--- a/remoting/polaris/builder_test.go
+++ b/remoting/polaris/builder_test.go
@@ -24,6 +24,7 @@ import (
 
 import (
 	"github.com/stretchr/testify/assert"
+	"github.com/stretchr/testify/require"
 )
 
 import (
@@ -34,7 +35,7 @@ func TestGetPolarisConfigByUrl(t *testing.T) {
 	regurl := getRegUrl()
 	err := InitSDKContext(regurl)
 
-	assert.Nil(t, err)
+	require.NoError(t, err)
 	assert.ElementsMatch(t, []string{"127.0.0.1:8091"}, sdkCtx.GetConfig().GetGlobal().GetServerConnector().GetAddresses(), "server address")
 }
 
diff --git a/remoting/zookeeper/listener_test.go b/remoting/zookeeper/listener_test.go
index 9e30846dc..64e042b85 100644
--- a/remoting/zookeeper/listener_test.go
+++ b/remoting/zookeeper/listener_test.go
@@ -29,5 +29,5 @@ import (
 func TestZkPath(t *testing.T) {
 	zkPath := "io.grpc.examples.helloworld.GreeterGrpc$IGreeter"
 	zkPath = url.QueryEscape(zkPath)
-	assert.Equal(t, zkPath, "io.grpc.examples.helloworld.GreeterGrpc%24IGreeter")
+	assert.Equal(t, "io.grpc.examples.helloworld.GreeterGrpc%24IGreeter", zkPath)
 }
diff --git a/server/action_test.go b/server/action_test.go
index 17c29f9e6..24014b0b4 100644
--- a/server/action_test.go
+++ b/server/action_test.go
@@ -215,7 +215,7 @@ func TestRemoveDuplicateElementEmpty(t *testing.T) {
 	items := []string{}
 	result := removeDuplicateElement(items)
 
-	assert.Len(t, result, 0)
+	assert.Empty(t, result)
 }
 
 // Test removeDuplicateElement with only empty strings
@@ -223,7 +223,7 @@ func TestRemoveDuplicateElementOnlyEmpty(t *testing.T) {
 	items := []string{"", "", ""}
 	result := removeDuplicateElement(items)
 
-	assert.Len(t, result, 0)
+	assert.Empty(t, result)
 }
 
 // Test removeDuplicateElement with mixed content
@@ -259,7 +259,7 @@ func TestGetRegistryIdsEmpty(t *testing.T) {
 
 	ids := getRegistryIds(registries)
 
-	assert.Len(t, ids, 0)
+	assert.Empty(t, ids)
 }
 
 // Test GetExportedUrls when not exported
@@ -281,7 +281,7 @@ func TestGetExportedUrlsExportedEmpty(t *testing.T) {
 	}
 
 	urls := svcOpts.GetExportedUrls()
-	assert.Len(t, urls, 0)
+	assert.Empty(t, urls)
 }
 
 // Test getUrlMap basic functionality
@@ -480,7 +480,7 @@ func TestLoadProtocolNoMatch(t *testing.T) {
 	protocolIDs := []string{"non-existent"}
 	result := loadProtocol(protocolIDs, protocols)
 
-	assert.Len(t, result, 0)
+	assert.Empty(t, result)
 }
 
 // Test setRegistrySubURL
diff --git a/server/compat_test.go b/server/compat_test.go
index f58fe6f68..7151d0d61 100644
--- a/server/compat_test.go
+++ b/server/compat_test.go
@@ -223,7 +223,7 @@ func TestCompatRegistryConfigWithParams(t *testing.T) {
 	result := compatRegistryConfig(regCfg)
 
 	assert.NotNil(t, result)
-	assert.Equal(t, 3, len(result.Params))
+	assert.Len(t, result.Params, 3)
 	assert.Equal(t, "value1", result.Params["key1"])
 	assert.Equal(t, "value2", result.Params["key2"])
 	assert.Equal(t, "value3", result.Params["key3"])
diff --git a/server/options_test.go b/server/options_test.go
index ae148017d..aa511818e 100644
--- a/server/options_test.go
+++ b/server/options_test.go
@@ -24,6 +24,7 @@ import (
 
 import (
 	"github.com/stretchr/testify/assert"
+	"github.com/stretchr/testify/require"
 )
 
 import (
@@ -49,7 +50,7 @@ func TestDefaultServerOptions(t *testing.T) {
 func TestServerOptionsInit(t *testing.T) {
 	opts := defaultServerOptions()
 	err := opts.init()
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	assert.NotNil(t, opts.Provider)
 }
 
@@ -58,7 +59,7 @@ func TestServerOptionsInitWithOptions(t *testing.T) {
 	opts := defaultServerOptions()
 	testOpt := WithServerGroup("test-group")
 	err := opts.init(testOpt)
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	assert.Equal(t, "test-group", opts.Provider.Group)
 }
 
@@ -947,7 +948,7 @@ func TestWithMethod(t *testing.T) {
 	opt(opts)
 	assert.NotNil(t, opts.Service.Methods)
 	// Verify that a method was actually added
-	assert.Equal(t, 1, len(opts.Service.Methods))
+	assert.Len(t, opts.Service.Methods, 1)
 }
 
 // Test WithProtocolIDs for ServiceOptions
diff --git a/server/server_test.go b/server/server_test.go
index 57555e343..b5a3093c2 100644
--- a/server/server_test.go
+++ b/server/server_test.go
@@ -25,6 +25,7 @@ import (
 
 import (
 	"github.com/stretchr/testify/assert"
+	"github.com/stretchr/testify/require"
 )
 
 import (
@@ -35,7 +36,7 @@ import (
 // Test NewServer creates a server successfully
 func TestNewServer(t *testing.T) {
 	srv, err := NewServer()
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	assert.NotNil(t, srv)
 
 	// Verify server is properly initialized by using public API
@@ -57,13 +58,13 @@ func TestNewServerWithOptions(t *testing.T) {
 		SetServerApplication(appCfg),
 		WithServerGroup("test-group"),
 	)
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	assert.NotNil(t, srv)
 
 	// Verify configuration by registering a service and checking its options
 	handler := &mockServerRPCService{}
 	err = srv.Register(handler, nil)
-	assert.NoError(t, err)
+	require.NoError(t, err)
 
 	svcOpts := srv.GetServiceOptions(handler.Reference())
 	assert.NotNil(t, svcOpts)
@@ -73,7 +74,7 @@ func TestNewServerWithOptions(t *testing.T) {
 // Test GetServiceOptions
 func TestGetServiceOptions(t *testing.T) {
 	srv, err := NewServer()
-	assert.NoError(t, err)
+	require.NoError(t, err)
 
 	svcOpts := defaultServiceOptions()
 	svcOpts.Id = "test-service"
@@ -87,7 +88,7 @@ func TestGetServiceOptions(t *testing.T) {
 // Test GetServiceOptions returns nil for non-existent service
 func TestGetServiceOptionsNotFound(t *testing.T) {
 	srv, err := NewServer()
-	assert.NoError(t, err)
+	require.NoError(t, err)
 
 	retrieved := srv.GetServiceOptions("non-existent")
 	assert.Nil(t, retrieved)
@@ -96,7 +97,7 @@ func TestGetServiceOptionsNotFound(t *testing.T) {
 // Test GetServiceInfo
 func TestGetServiceInfo(t *testing.T) {
 	srv, err := NewServer()
-	assert.NoError(t, err)
+	require.NoError(t, err)
 
 	svcOpts := defaultServiceOptions()
 	svcOpts.Id = "test-service"
@@ -113,7 +114,7 @@ func TestGetServiceInfo(t *testing.T) {
 // Test GetServiceInfo returns nil for non-existent service
 func TestGetServiceInfoNotFound(t *testing.T) {
 	srv, err := NewServer()
-	assert.NoError(t, err)
+	require.NoError(t, err)
 
 	info := srv.GetServiceInfo("non-existent")
 	assert.Nil(t, info)
@@ -122,7 +123,7 @@ func TestGetServiceInfoNotFound(t *testing.T) {
 // Test GetRPCService
 func TestGetRPCService(t *testing.T) {
 	srv, err := NewServer()
-	assert.NoError(t, err)
+	require.NoError(t, err)
 
 	svcOpts := defaultServiceOptions()
 	svcOpts.Id = "test-service"
@@ -138,7 +139,7 @@ func TestGetRPCService(t *testing.T) {
 // Test GetRPCService returns nil for non-existent service
 func TestGetRPCServiceNotFound(t *testing.T) {
 	srv, err := NewServer()
-	assert.NoError(t, err)
+	require.NoError(t, err)
 
 	rpcService := srv.GetRPCService("non-existent")
 	assert.Nil(t, rpcService)
@@ -147,7 +148,7 @@ func TestGetRPCServiceNotFound(t *testing.T) {
 // Test GetServiceOptionsByInterfaceName
 func TestGetServiceOptionsByInterfaceName(t *testing.T) {
 	srv, err := NewServer()
-	assert.NoError(t, err)
+	require.NoError(t, err)
 
 	svcOpts := defaultServiceOptions()
 	svcOpts.Id = "test-service"
@@ -162,7 +163,7 @@ func TestGetServiceOptionsByInterfaceName(t *testing.T) {
 // Test GetServiceOptionsByInterfaceName returns nil for non-existent interface
 func TestGetServiceOptionsByInterfaceNameNotFound(t *testing.T) {
 	srv, err := NewServer()
-	assert.NoError(t, err)
+	require.NoError(t, err)
 
 	retrieved := srv.GetServiceOptionsByInterfaceName("non.existent.Service")
 	assert.Nil(t, retrieved)
@@ -171,7 +172,7 @@ func TestGetServiceOptionsByInterfaceNameNotFound(t *testing.T) {
 // Test registerServiceOptions
 func TestRegisterServiceOptions(t *testing.T) {
 	srv, err := NewServer()
-	assert.NoError(t, err)
+	require.NoError(t, err)
 
 	svcOpts := defaultServiceOptions()
 	svcOpts.Id = "test-service"
@@ -192,7 +193,7 @@ func TestRegisterServiceOptions(t *testing.T) {
 // Test registerServiceOptions with empty interface
 func TestRegisterServiceOptionsEmptyInterface(t *testing.T) {
 	srv, err := NewServer()
-	assert.NoError(t, err)
+	require.NoError(t, err)
 
 	svcOpts := defaultServiceOptions()
 	svcOpts.Id = "test-service"
@@ -274,7 +275,7 @@ func TestSetProviderServicesEmptyName(t *testing.T) {
 	// Access the global variable safely with lock
 	internalProLock.Lock()
 	defer internalProLock.Unlock()
-	assert.Len(t, internalProServices, 0)
+	assert.Empty(t, internalProServices)
 }
 
 // Test enhanceServiceInfo with nil info
@@ -297,7 +298,7 @@ func TestEnhanceServiceInfo(t *testing.T) {
 	result := enhanceServiceInfo(info)
 	assert.NotNil(t, result)
 	// Should have doubled methods (original + case-swapped)
-	assert.Equal(t, 2, len(result.Methods))
+	assert.Len(t, result.Methods, 2)
 	assert.Equal(t, "sayHello", result.Methods[0].Name)
 	// The swapped version should have capitalized first letter
 	assert.Equal(t, "SayHello", result.Methods[1].Name)
@@ -359,7 +360,7 @@ func (m *mockServerRPCService) Reference() string {
 // Test concurrency: multiple goroutines registering services
 func TestConcurrentServiceRegistration(t *testing.T) {
 	srv, err := NewServer()
-	assert.NoError(t, err)
+	require.NoError(t, err)
 
 	var wg sync.WaitGroup
 	for i := 0; i < 10; i++ {
@@ -386,7 +387,7 @@ func TestConcurrentServiceRegistration(t *testing.T) {
 // Test Register with ServiceInfo
 func TestRegisterWithServiceInfo(t *testing.T) {
 	srv, err := NewServer()
-	assert.NoError(t, err)
+	require.NoError(t, err)
 
 	handler := &mockServerRPCService{}
 	info := &common.ServiceInfo{
@@ -397,7 +398,7 @@ func TestRegisterWithServiceInfo(t *testing.T) {
 	}
 
 	err = srv.Register(handler, info)
-	assert.NoError(t, err)
+	require.NoError(t, err)
 
 	// Service should be registered
 	svcOpts := srv.GetServiceOptions(handler.Reference())
@@ -407,11 +408,11 @@ func TestRegisterWithServiceInfo(t *testing.T) {
 // Test RegisterService without ServiceInfo
 func TestRegisterService(t *testing.T) {
 	srv, err := NewServer()
-	assert.NoError(t, err)
+	require.NoError(t, err)
 
 	handler := &mockServerRPCService{}
 	err = srv.RegisterService(handler)
-	assert.NoError(t, err)
+	require.NoError(t, err)
 
 	// Service should be registered with handler reference name
 	svcOpts := srv.GetServiceOptions(handler.Reference())
@@ -421,7 +422,7 @@ func TestRegisterService(t *testing.T) {
 // Test Register with handler that has method config
 func TestRegisterWithMethodConfig(t *testing.T) {
 	srv, err := NewServer()
-	assert.NoError(t, err)
+	require.NoError(t, err)
 
 	handler := &mockServerRPCService{}
 	info := &common.ServiceInfo{
@@ -435,7 +436,7 @@ func TestRegisterWithMethodConfig(t *testing.T) {
 		WithGroup("test-group"),
 		WithVersion("1.0.0"),
 	)
-	assert.NoError(t, err)
+	require.NoError(t, err)
 
 	svcOpts := srv.GetServiceOptions(handler.Reference())
 	assert.NotNil(t, svcOpts)
@@ -451,14 +452,14 @@ func TestGenSvcOptsWithMissingServerConfig(t *testing.T) {
 
 	handler := &mockServerRPCService{}
 	_, err := srv.genSvcOpts(handler, nil)
-	assert.Error(t, err)
+	require.Error(t, err)
 	assert.Contains(t, err.Error(), "has not been initialized")
 }
 
 // Test exportServices with empty service map
 func TestExportServicesEmpty(t *testing.T) {
 	srv, err := NewServer()
-	assert.NoError(t, err)
+	require.NoError(t, err)
 
 	err = srv.exportServices()
 	assert.NoError(t, err)
@@ -467,13 +468,13 @@ func TestExportServicesEmpty(t *testing.T) {
 // Test NewServer with custom group option
 func TestNewServerWithCustomGroup(t *testing.T) {
 	srv, err := NewServer(WithServerGroup("test"))
-	assert.NoError(t, err)
+	require.NoError(t, err)
 	assert.NotNil(t, srv)
 
 	// Verify the group option by registering a service and checking its configuration
 	handler := &mockServerRPCService{}
 	err = srv.Register(handler, nil)
-	assert.NoError(t, err)
+	require.NoError(t, err)
 
 	svcOpts := srv.GetServiceOptions(handler.Reference())
 	assert.NotNil(t, svcOpts)
diff --git a/tls/helper_test.go b/tls/helper_test.go
index 98c4d4efb..9e63aeb9b 100644
--- a/tls/helper_test.go
+++ b/tls/helper_test.go
@@ -33,6 +33,7 @@ import (
 
 import (
 	"github.com/stretchr/testify/assert"
+	"github.com/stretchr/testify/require"
 )
 
 import (
@@ -52,11 +53,11 @@ type testCertFiles struct {
 // generateTestCerts generates self-signed CA, server, and client certificates for testing
 func generateTestCerts(t *testing.T) *testCertFiles {
 	tempDir, err := os.MkdirTemp("", "tls_test")
-	assert.NoError(t, err)
+	require.NoError(t, err)
 
 	// Generate CA key pair
 	caKey, err := rsa.GenerateKey(rand.Reader, 2048)
-	assert.NoError(t, err)
+	require.NoError(t, err)
 
 	caTemplate := &x509.Certificate{
 		SerialNumber: big.NewInt(1),
@@ -72,18 +73,18 @@ func generateTestCerts(t *testing.T) *testCertFiles {
 	}
... 118 lines suppressed ...