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

albumenj pushed a commit to branch 3.0
in repository https://gitbox.apache.org/repos/asf/dubbo.git


The following commit(s) were added to refs/heads/3.0 by this push:
     new 3469842  perf: Clear all TestingServer and replace it with global 
registry center. (#9231)
3469842 is described below

commit 34698423ca87bd42e2ee95325dd0a1e0926b65f1
Author: Pin Xiong <[email protected]>
AuthorDate: Wed Nov 17 20:05:53 2021 +0800

    perf: Clear all TestingServer and replace it with global registry center. 
(#9231)
---
 dubbo-config/dubbo-config-api/pom.xml              |  12 --
 .../dubbo/config/bootstrap/DubboBootstrapTest.java |  19 +--
 dubbo-config/dubbo-config-spring/pom.xml           |  22 ----
 .../dubbo-configcenter-zookeeper/pom.xml           |   5 -
 .../ZookeeperDynamicConfigurationTest.java         |  23 ++--
 dubbo-dependencies-bom/pom.xml                     |  12 --
 dubbo-metadata/dubbo-metadata-api/pom.xml          |   8 +-
 dubbo-metadata/dubbo-metadata-report-redis/pom.xml |   5 -
 .../dubbo-metadata-report-zookeeper/pom.xml        |   5 -
 .../zookeeper/ZookeeperMetadataReportTest.java     |  19 ++-
 dubbo-registry/dubbo-registry-multiple/pom.xml     |   5 -
 .../multiple/MultipleRegistry2S2RTest.java         |  61 +++------
 dubbo-registry/dubbo-registry-zookeeper/pom.xml    |   5 -
 .../registry/zookeeper/ZookeeperRegistryTest.java  |  24 ++--
 .../zookeeper/ZookeeperServiceDiscoveryTest.java   |  18 ++-
 .../zookeeper/util/CuratorFrameworkUtilsTest.java  |  18 +--
 .../dubbo-remoting-zookeeper-curator5/pom.xml      |   6 -
 .../curator5/Curator5ZookeeperClientTest.java      |  27 ++--
 .../curator5/Curator5ZookeeperTransporterTest.java |  21 ++--
 .../support/AbstractZookeeperTransporterTest.java  | 134 +++++++-------------
 dubbo-remoting/dubbo-remoting-zookeeper/pom.xml    |   5 -
 .../curator/CuratorZookeeperClientTest.java        |  27 ++--
 .../curator/CuratorZookeeperTransporterTest.java   |  22 ++--
 .../support/AbstractZookeeperTransporterTest.java  | 137 ++++++++-------------
 dubbo-test/dubbo-test-check/pom.xml                |  16 ---
 ...bstractRegistryCenterTestExecutionListener.java |   7 ++
 dubbo-test/dubbo-test-common/pom.xml               |  12 --
 27 files changed, 200 insertions(+), 475 deletions(-)

diff --git a/dubbo-config/dubbo-config-api/pom.xml 
b/dubbo-config/dubbo-config-api/pom.xml
index 5b1066c..b77dd5d 100644
--- a/dubbo-config/dubbo-config-api/pom.xml
+++ b/dubbo-config/dubbo-config-api/pom.xml
@@ -172,18 +172,6 @@
         </dependency>
 
         <dependency>
-            <groupId>org.apache.curator</groupId>
-            <artifactId>curator-test</artifactId>
-            <scope>test</scope>
-            <exclusions>
-                <exclusion>
-                    <groupId>com.google.guava</groupId>
-                    <artifactId>guava</artifactId>
-                </exclusion>
-            </exclusions>
-        </dependency>
-
-        <dependency>
             <groupId>org.testcontainers</groupId>
             <artifactId>testcontainers</artifactId>
             <version>1.15.3</version>
diff --git 
a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/DubboBootstrapTest.java
 
b/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/DubboBootstrapTest.java
index c238c0d..15707bd 100644
--- 
a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/DubboBootstrapTest.java
+++ 
b/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/DubboBootstrapTest.java
@@ -43,7 +43,6 @@ import org.apache.dubbo.rpc.Exporter;
 import org.apache.dubbo.rpc.model.ApplicationModel;
 import org.apache.dubbo.rpc.protocol.dubbo.DubboProtocol;
 
-import org.apache.curator.test.TestingServer;
 import 
org.apache.dubbo.test.check.registrycenter.config.ZookeeperRegistryCenterConfig;
 import org.junit.jupiter.api.AfterAll;
 import org.junit.jupiter.api.AfterEach;
@@ -79,20 +78,12 @@ import static org.hamcrest.Matchers.is;
 public class DubboBootstrapTest {
 
     private static File dubboProperties;
-    private static TestingServer server;
-    private static int zkServerPort = 
NetUtils.getAvailablePort(NetUtils.getRandomPort());
-    private static String zkServerAddress = "zookeeper://127.0.0.1:" + 
zkServerPort;
+    private static String zkServerAddress;
 
     @BeforeAll
     public static void setUp(@TempDir Path folder) {
         DubboBootstrap.reset();
-        try {
-            server = new TestingServer(zkServerPort, true);
-            server.start();
-        } catch (Exception e) {
-            e.printStackTrace();
-            Assertions.fail(e.getMessage());
-        }
+        zkServerAddress = System.getProperty("zookeeper.connection.address.1");
         dubboProperties = 
folder.resolve(CommonConstants.DUBBO_PROPERTIES_KEY).toFile();
         System.setProperty(CommonConstants.DUBBO_PROPERTIES_KEY, 
dubboProperties.getAbsolutePath());
     }
@@ -100,12 +91,6 @@ public class DubboBootstrapTest {
     @AfterAll
     public static void tearDown() {
         System.clearProperty(CommonConstants.DUBBO_PROPERTIES_KEY);
-        try {
-            server.stop();
-        } catch (IOException e) {
-            e.printStackTrace();
-            Assertions.fail(e.getMessage());
-        }
     }
 
     @AfterEach
diff --git a/dubbo-config/dubbo-config-spring/pom.xml 
b/dubbo-config/dubbo-config-spring/pom.xml
index 5d607c4..648d6e3 100644
--- a/dubbo-config/dubbo-config-spring/pom.xml
+++ b/dubbo-config/dubbo-config-spring/pom.xml
@@ -194,12 +194,6 @@
         </dependency>
         <dependency>
             <groupId>org.apache.curator</groupId>
-            <artifactId>curator-framework</artifactId>
-            <version>${curator5_version}</version>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.curator</groupId>
             <artifactId>curator-recipes</artifactId>
             <version>${curator5_version}</version>
             <scope>test</scope>
@@ -216,22 +210,6 @@
             <version>${zookeeper_version}</version>
             <scope>test</scope>
         </dependency>
-        <dependency>
-            <groupId>org.apache.curator</groupId>
-            <artifactId>curator-test</artifactId>
-            <version>${curator5_version}</version>
-            <scope>test</scope>
-            <exclusions>
-                <exclusion>
-                    <groupId>com.google.guava</groupId>
-                    <artifactId>guava</artifactId>
-                </exclusion>
-                <exclusion>
-                    <groupId>org.apache.zookeeper</groupId>
-                    <artifactId>zookeeper</artifactId>
-                </exclusion>
-            </exclusions>
-        </dependency>
 
         <!-- Nacos dependencies for testing -->
         <dependency>
diff --git a/dubbo-configcenter/dubbo-configcenter-zookeeper/pom.xml 
b/dubbo-configcenter/dubbo-configcenter-zookeeper/pom.xml
index 8fd6b83..8e51bba 100644
--- a/dubbo-configcenter/dubbo-configcenter-zookeeper/pom.xml
+++ b/dubbo-configcenter/dubbo-configcenter-zookeeper/pom.xml
@@ -43,10 +43,5 @@
             <artifactId>dubbo-remoting-zookeeper-curator5</artifactId>
             <version>${project.parent.version}</version>
         </dependency>
-        <dependency>
-            <groupId>org.apache.curator</groupId>
-            <artifactId>curator-test</artifactId>
-            <scope>test</scope>
-        </dependency>
     </dependencies>
 </project>
diff --git 
a/dubbo-configcenter/dubbo-configcenter-zookeeper/src/test/java/org/apache/dubbo/configcenter/support/zookeeper/ZookeeperDynamicConfigurationTest.java
 
b/dubbo-configcenter/dubbo-configcenter-zookeeper/src/test/java/org/apache/dubbo/configcenter/support/zookeeper/ZookeeperDynamicConfigurationTest.java
index 52e6969..2275e46 100644
--- 
a/dubbo-configcenter/dubbo-configcenter-zookeeper/src/test/java/org/apache/dubbo/configcenter/support/zookeeper/ZookeeperDynamicConfigurationTest.java
+++ 
b/dubbo-configcenter/dubbo-configcenter-zookeeper/src/test/java/org/apache/dubbo/configcenter/support/zookeeper/ZookeeperDynamicConfigurationTest.java
@@ -23,13 +23,10 @@ import 
org.apache.dubbo.common.config.configcenter.ConfigurationListener;
 import org.apache.dubbo.common.config.configcenter.DynamicConfiguration;
 import org.apache.dubbo.common.config.configcenter.DynamicConfigurationFactory;
 import org.apache.dubbo.common.extension.ExtensionLoader;
-import org.apache.dubbo.common.utils.NetUtils;
 
 import org.apache.curator.framework.CuratorFramework;
 import org.apache.curator.framework.CuratorFrameworkFactory;
 import org.apache.curator.retry.ExponentialBackoffRetry;
-import org.apache.curator.test.TestingServer;
-import org.junit.jupiter.api.AfterAll;
 import org.junit.jupiter.api.Assertions;
 import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.Disabled;
@@ -54,16 +51,18 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
 public class ZookeeperDynamicConfigurationTest {
     private static CuratorFramework client;
 
-    private static final int zkServerPort = NetUtils.getAvailablePort();
-    private static TestingServer zkServer;
+    private static URL configUrl;
     private static DynamicConfiguration configuration;
+    private static int zookeeperServerPort1;
+    private static String zookeeperConnectionAddress1;
 
     @BeforeAll
     public static void setUp() throws Exception {
-        zkServer = new TestingServer(zkServerPort, true);
+        zookeeperConnectionAddress1 = 
System.getProperty("zookeeper.connection.address.1");
+        zookeeperServerPort1 = 
Integer.parseInt(zookeeperConnectionAddress1.substring(zookeeperConnectionAddress1.lastIndexOf(":")
 + 1));
 
-        client = CuratorFrameworkFactory.newClient("127.0.0.1:" + 
zkServerPort, 60 * 1000, 60 * 1000,
-            new ExponentialBackoffRetry(1000, 3));
+        client = CuratorFrameworkFactory.newClient("127.0.0.1:" + 
zookeeperServerPort1, 60 * 1000, 60 * 1000,
+                new ExponentialBackoffRetry(1000, 3));
         client.start();
 
         try {
@@ -76,17 +75,11 @@ public class ZookeeperDynamicConfigurationTest {
             e.printStackTrace();
         }
 
-        URL configUrl = URL.valueOf("zookeeper://127.0.0.1:" + zkServerPort);
-
+        configUrl = URL.valueOf(zookeeperConnectionAddress1);
         configuration = 
ExtensionLoader.getExtensionLoader(DynamicConfigurationFactory.class).getExtension(configUrl.getProtocol())
             .getDynamicConfiguration(configUrl);
     }
 
-    @AfterAll
-    public static void tearDown() throws Exception {
-        zkServer.stop();
-    }
-
     private static void setData(String path, String data) throws Exception {
         if (client.checkExists().forPath(path) == null) {
             client.create().creatingParentsIfNeeded().forPath(path);
diff --git a/dubbo-dependencies-bom/pom.xml b/dubbo-dependencies-bom/pom.xml
index 539a7cb..922445f 100644
--- a/dubbo-dependencies-bom/pom.xml
+++ b/dubbo-dependencies-bom/pom.xml
@@ -633,18 +633,6 @@
 
             <!-- Test lib -->
             <dependency>
-                <groupId>org.apache.curator</groupId>
-                <artifactId>curator-test</artifactId>
-                <version>${curator_test_version}</version>
-                <exclusions>
-                    <exclusion>
-                        <groupId>org.apache.zookeeper</groupId>
-                        <artifactId>zookeeper</artifactId>
-                    </exclusion>
-                </exclusions>
-                <scope>test</scope>
-            </dependency>
-            <dependency>
                 <groupId>com.github.codemonstur</groupId>
                 <artifactId>embedded-redis</artifactId>
                 <version>${embedded_redis_version}</version>
diff --git a/dubbo-metadata/dubbo-metadata-api/pom.xml 
b/dubbo-metadata/dubbo-metadata-api/pom.xml
index 9caf31e..3903f38 100644
--- a/dubbo-metadata/dubbo-metadata-api/pom.xml
+++ b/dubbo-metadata/dubbo-metadata-api/pom.xml
@@ -58,12 +58,6 @@
             <scope>test</scope>
         </dependency>
 
-        <dependency>
-            <groupId>org.apache.curator</groupId>
-            <artifactId>curator-test</artifactId>
-            <scope>test</scope>
-        </dependency>
-
         <!-- JAX-RS API -->
         <dependency>
             <groupId>javax.ws.rs</groupId>
@@ -87,4 +81,4 @@
 
     </dependencies>
 
-</project>
\ No newline at end of file
+</project>
diff --git a/dubbo-metadata/dubbo-metadata-report-redis/pom.xml 
b/dubbo-metadata/dubbo-metadata-report-redis/pom.xml
index 81d162d..994ef6c 100644
--- a/dubbo-metadata/dubbo-metadata-report-redis/pom.xml
+++ b/dubbo-metadata/dubbo-metadata-report-redis/pom.xml
@@ -39,11 +39,6 @@
             <version>${jedis.version}</version>
         </dependency>
         <dependency>
-            <groupId>org.apache.curator</groupId>
-            <artifactId>curator-test</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
             <groupId>com.github.codemonstur</groupId>
             <artifactId>embedded-redis</artifactId>
             <scope>test</scope>
diff --git a/dubbo-metadata/dubbo-metadata-report-zookeeper/pom.xml 
b/dubbo-metadata/dubbo-metadata-report-zookeeper/pom.xml
index 9a9fc34..ab146ae 100644
--- a/dubbo-metadata/dubbo-metadata-report-zookeeper/pom.xml
+++ b/dubbo-metadata/dubbo-metadata-report-zookeeper/pom.xml
@@ -37,10 +37,5 @@
             <artifactId>dubbo-configcenter-zookeeper</artifactId>
             <version>${project.parent.version}</version>
         </dependency>
-        <dependency>
-            <groupId>org.apache.curator</groupId>
-            <artifactId>curator-test</artifactId>
-            <scope>test</scope>
-        </dependency>
     </dependencies>
 </project>
diff --git 
a/dubbo-metadata/dubbo-metadata-report-zookeeper/src/test/java/org/apache/dubbo/metadata/store/zookeeper/ZookeeperMetadataReportTest.java
 
b/dubbo-metadata/dubbo-metadata-report-zookeeper/src/test/java/org/apache/dubbo/metadata/store/zookeeper/ZookeeperMetadataReportTest.java
index 57cc6ee..86732aa 100644
--- 
a/dubbo-metadata/dubbo-metadata-report-zookeeper/src/test/java/org/apache/dubbo/metadata/store/zookeeper/ZookeeperMetadataReportTest.java
+++ 
b/dubbo-metadata/dubbo-metadata-report-zookeeper/src/test/java/org/apache/dubbo/metadata/store/zookeeper/ZookeeperMetadataReportTest.java
@@ -17,7 +17,6 @@
 package org.apache.dubbo.metadata.store.zookeeper;
 
 import com.google.gson.Gson;
-import org.apache.curator.test.TestingServer;
 import org.apache.dubbo.common.URL;
 import org.apache.dubbo.common.config.configcenter.ConfigItem;
 import org.apache.dubbo.common.utils.NetUtils;
@@ -30,9 +29,9 @@ import 
org.apache.dubbo.metadata.report.identifier.MetadataIdentifier;
 import org.apache.dubbo.metadata.report.identifier.ServiceMetadataIdentifier;
 import 
org.apache.dubbo.metadata.report.identifier.SubscriberMetadataIdentifier;
 import org.apache.dubbo.rpc.model.ApplicationModel;
-import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.Assertions;
 import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.Test;
 
 import java.util.Arrays;
@@ -52,26 +51,24 @@ import static 
org.apache.dubbo.metadata.ServiceNameMapping.DEFAULT_MAPPING_GROUP
  * 2018/10/9
  */
 public class ZookeeperMetadataReportTest {
-    private TestingServer zkServer;
     private ZookeeperMetadataReport zookeeperMetadataReport;
     private URL registryUrl;
     private ZookeeperMetadataReportFactory zookeeperMetadataReportFactory;
+    private static String zookeeperConnectionAddress1;
+
+    @BeforeAll
+    public static void beforeAll() {
+        zookeeperConnectionAddress1 = 
System.getProperty("zookeeper.connection.address.1");
+    }
 
     @BeforeEach
     public void setUp() throws Exception {
-        int zkServerPort = NetUtils.getAvailablePort();
-        this.zkServer = new TestingServer(zkServerPort, true);
-        this.registryUrl = URL.valueOf("zookeeper://127.0.0.1:" + 
zkServerPort);
+        this.registryUrl = URL.valueOf(zookeeperConnectionAddress1);
 
         zookeeperMetadataReportFactory = new 
ZookeeperMetadataReportFactory(ApplicationModel.defaultModel());
         this.zookeeperMetadataReport = (ZookeeperMetadataReport) 
zookeeperMetadataReportFactory.getMetadataReport(registryUrl);
     }
 
-    @AfterEach
-    public void tearDown() throws Exception {
-        zkServer.stop();
-    }
-
     private void deletePath(MetadataIdentifier metadataIdentifier, 
ZookeeperMetadataReport zookeeperMetadataReport) {
         String category = zookeeperMetadataReport.toRootDir() + 
metadataIdentifier.getUniqueKey(KeyTypeEnum.PATH);
         zookeeperMetadataReport.zkClient.delete(category);
diff --git a/dubbo-registry/dubbo-registry-multiple/pom.xml 
b/dubbo-registry/dubbo-registry-multiple/pom.xml
index 5a8c005..c3df6a3 100644
--- a/dubbo-registry/dubbo-registry-multiple/pom.xml
+++ b/dubbo-registry/dubbo-registry-multiple/pom.xml
@@ -42,11 +42,6 @@
             <scope>test</scope>
         </dependency>
         <dependency>
-            <groupId>org.apache.curator</groupId>
-            <artifactId>curator-test</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
             <groupId>org.apache.commons</groupId>
             <artifactId>commons-lang3</artifactId>
             <scope>test</scope>
diff --git 
a/dubbo-registry/dubbo-registry-multiple/src/test/java/org/apache/dubbo/registry/multiple/MultipleRegistry2S2RTest.java
 
b/dubbo-registry/dubbo-registry-multiple/src/test/java/org/apache/dubbo/registry/multiple/MultipleRegistry2S2RTest.java
index 0dafdab..d60af42 100644
--- 
a/dubbo-registry/dubbo-registry-multiple/src/test/java/org/apache/dubbo/registry/multiple/MultipleRegistry2S2RTest.java
+++ 
b/dubbo-registry/dubbo-registry-multiple/src/test/java/org/apache/dubbo/registry/multiple/MultipleRegistry2S2RTest.java
@@ -17,19 +17,14 @@
 package org.apache.dubbo.registry.multiple;
 
 import org.apache.dubbo.common.URL;
-import org.apache.dubbo.common.utils.NetUtils;
 import org.apache.dubbo.registry.NotifyListener;
 import org.apache.dubbo.registry.Registry;
 import org.apache.dubbo.registry.zookeeper.ZookeeperRegistry;
 import org.apache.dubbo.remoting.zookeeper.ZookeeperClient;
 import org.apache.dubbo.remoting.zookeeper.curator.CuratorZookeeperClient;
-
-import org.apache.curator.test.TestingServer;
-import org.junit.jupiter.api.AfterAll;
 import org.junit.jupiter.api.Assertions;
 import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.Test;
-
 import java.util.ArrayList;
 import java.util.List;
 
@@ -41,14 +36,6 @@ public class MultipleRegistry2S2RTest {
     private static final String SERVICE_NAME = 
"org.apache.dubbo.registry.MultipleService2S2R";
     private static final String SERVICE2_NAME = 
"org.apache.dubbo.registry.MultipleService2S2R2";
 
-    private static TestingServer zkServer;
-    private static TestingServer zkServer2;
-    static int zkServerPort;
-    static int zkServerPort2;
-
-    private static String zookeeperRegistryURLStr;
-    private static String zookeeperRegistryURLStr2;
-
     private static MultipleRegistry multipleRegistry;
     // for test content
     private static ZookeeperClient zookeeperClient;
@@ -58,56 +45,46 @@ public class MultipleRegistry2S2RTest {
     private static ZookeeperRegistry zookeeperRegistry2;
 
 
-    @BeforeAll
-    public static void setUp() throws Exception {
-        zkServerPort = NetUtils.getAvailablePort();
-        zkServer = new TestingServer(zkServerPort, true);
-        zookeeperRegistryURLStr = "zookeeper://127.0.0.1:" + zkServerPort;
-
-        zkServerPort2 = NetUtils.getAvailablePort();
-        zkServer2 = new TestingServer(zkServerPort2, true);
-        zookeeperRegistryURLStr2 = "zookeeper://127.0.0.1:" + zkServerPort2;
+    private static String zookeeperConnectionAddress1, 
zookeeperConnectionAddress2;
 
+    @BeforeAll
+    public static void beforeAll() {
+        zookeeperConnectionAddress1 = 
System.getProperty("zookeeper.connection.address.1");
+        zookeeperConnectionAddress2 = 
System.getProperty("zookeeper.connection.address.2");
 
         URL url = URL.valueOf("multiple://127.0.0.1?application=vic&" +
-                MultipleRegistry.REGISTRY_FOR_SERVICE + "=" + 
zookeeperRegistryURLStr + "," + zookeeperRegistryURLStr2 + "&"
-                + MultipleRegistry.REGISTRY_FOR_REFERENCE + "=" + 
zookeeperRegistryURLStr + "," + zookeeperRegistryURLStr2);
+            MultipleRegistry.REGISTRY_FOR_SERVICE + "=" + 
zookeeperConnectionAddress1 + "," + zookeeperConnectionAddress2 + "&"
+            + MultipleRegistry.REGISTRY_FOR_REFERENCE + "=" + 
zookeeperConnectionAddress1 + "," + zookeeperConnectionAddress2);
         multipleRegistry = (MultipleRegistry) new 
MultipleRegistryFactory().createRegistry(url);
 
         // for test validation
-        zookeeperClient = new 
CuratorZookeeperClient(URL.valueOf(zookeeperRegistryURLStr));
+        zookeeperClient = new 
CuratorZookeeperClient(URL.valueOf(zookeeperConnectionAddress1));
         zookeeperRegistry = 
MultipleRegistryTestUtil.getZookeeperRegistry(multipleRegistry.getServiceRegistries().values());
-        zookeeperClient2 = new 
CuratorZookeeperClient(URL.valueOf(zookeeperRegistryURLStr2));
+        zookeeperClient2 = new 
CuratorZookeeperClient(URL.valueOf(zookeeperConnectionAddress2));
         zookeeperRegistry2 = 
MultipleRegistryTestUtil.getZookeeperRegistry(multipleRegistry.getServiceRegistries().values());
     }
 
-    @AfterAll
-    public static void tearDown() throws Exception {
-        zkServer.stop();
-        zkServer2.stop();
-    }
-
     @Test
     public void testParamConfig() {
 
         Assertions.assertEquals(2, 
multipleRegistry.origReferenceRegistryURLs.size());
-        
Assertions.assertTrue(multipleRegistry.origReferenceRegistryURLs.contains(zookeeperRegistryURLStr));
-        
Assertions.assertTrue(multipleRegistry.origReferenceRegistryURLs.contains(zookeeperRegistryURLStr2));
+        
Assertions.assertTrue(multipleRegistry.origReferenceRegistryURLs.contains(zookeeperConnectionAddress1));
+        
Assertions.assertTrue(multipleRegistry.origReferenceRegistryURLs.contains(zookeeperConnectionAddress2));
 
         Assertions.assertEquals(2, 
multipleRegistry.origServiceRegistryURLs.size());
-        
Assertions.assertTrue(multipleRegistry.origServiceRegistryURLs.contains(zookeeperRegistryURLStr));
-        
Assertions.assertTrue(multipleRegistry.origServiceRegistryURLs.contains(zookeeperRegistryURLStr2));
+        
Assertions.assertTrue(multipleRegistry.origServiceRegistryURLs.contains(zookeeperConnectionAddress1));
+        
Assertions.assertTrue(multipleRegistry.origServiceRegistryURLs.contains(zookeeperConnectionAddress2));
 
         Assertions.assertEquals(2, 
multipleRegistry.effectReferenceRegistryURLs.size());
-        
Assertions.assertTrue(multipleRegistry.effectReferenceRegistryURLs.contains(zookeeperRegistryURLStr));
-        
Assertions.assertTrue(multipleRegistry.effectReferenceRegistryURLs.contains(zookeeperRegistryURLStr2));
+        
Assertions.assertTrue(multipleRegistry.effectReferenceRegistryURLs.contains(zookeeperConnectionAddress1));
+        
Assertions.assertTrue(multipleRegistry.effectReferenceRegistryURLs.contains(zookeeperConnectionAddress2));
 
         Assertions.assertEquals(2, 
multipleRegistry.effectServiceRegistryURLs.size());
-        
Assertions.assertTrue(multipleRegistry.effectServiceRegistryURLs.contains(zookeeperRegistryURLStr));
-        
Assertions.assertTrue(multipleRegistry.effectServiceRegistryURLs.contains(zookeeperRegistryURLStr2));
+        
Assertions.assertTrue(multipleRegistry.effectServiceRegistryURLs.contains(zookeeperConnectionAddress1));
+        
Assertions.assertTrue(multipleRegistry.effectServiceRegistryURLs.contains(zookeeperConnectionAddress2));
 
-        
Assertions.assertTrue(multipleRegistry.getServiceRegistries().containsKey(zookeeperRegistryURLStr));
-        
Assertions.assertTrue(multipleRegistry.getServiceRegistries().containsKey(zookeeperRegistryURLStr2));
+        
Assertions.assertTrue(multipleRegistry.getServiceRegistries().containsKey(zookeeperConnectionAddress1));
+        
Assertions.assertTrue(multipleRegistry.getServiceRegistries().containsKey(zookeeperConnectionAddress2));
         Assertions.assertEquals(2, 
multipleRegistry.getServiceRegistries().values().size());
 //        java.util.Iterator<Registry> registryIterable = 
multipleRegistry.getServiceRegistries().values().iterator();
 //        Registry firstRegistry = registryIterable.next();
diff --git a/dubbo-registry/dubbo-registry-zookeeper/pom.xml 
b/dubbo-registry/dubbo-registry-zookeeper/pom.xml
index 81cdbc5..0fb6675 100644
--- a/dubbo-registry/dubbo-registry-zookeeper/pom.xml
+++ b/dubbo-registry/dubbo-registry-zookeeper/pom.xml
@@ -49,10 +49,5 @@
             <groupId>org.apache.curator</groupId>
             <artifactId>curator-x-discovery</artifactId>
         </dependency>
-        <dependency>
-            <groupId>org.apache.curator</groupId>
-            <artifactId>curator-test</artifactId>
-            <scope>test</scope>
-        </dependency>
     </dependencies>
 </project>
diff --git 
a/dubbo-registry/dubbo-registry-zookeeper/src/test/java/org/apache/dubbo/registry/zookeeper/ZookeeperRegistryTest.java
 
b/dubbo-registry/dubbo-registry-zookeeper/src/test/java/org/apache/dubbo/registry/zookeeper/ZookeeperRegistryTest.java
index 3cf5d80..18350df 100644
--- 
a/dubbo-registry/dubbo-registry-zookeeper/src/test/java/org/apache/dubbo/registry/zookeeper/ZookeeperRegistryTest.java
+++ 
b/dubbo-registry/dubbo-registry-zookeeper/src/test/java/org/apache/dubbo/registry/zookeeper/ZookeeperRegistryTest.java
@@ -16,20 +16,18 @@
  */
 package org.apache.dubbo.registry.zookeeper;
 
-import org.apache.curator.test.TestingServer;
 import org.apache.dubbo.common.URL;
 import org.apache.dubbo.common.status.Status;
-import org.apache.dubbo.common.utils.NetUtils;
 import org.apache.dubbo.registry.NotifyListener;
 import org.apache.dubbo.registry.Registry;
 import org.apache.dubbo.registry.status.RegistryStatusChecker;
 import org.apache.dubbo.rpc.RpcException;
 import org.apache.dubbo.rpc.model.ApplicationModel;
-import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.Assertions;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Disabled;
 import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.BeforeAll;
 
 import java.util.List;
 import java.util.Map;
@@ -45,7 +43,7 @@ import static org.junit.jupiter.api.Assertions.fail;
 import static org.mockito.Mockito.mock;
 
 public class ZookeeperRegistryTest {
-    private TestingServer zkServer;
+    private static String zookeeperConnectionAddress1;
     private ZookeeperRegistry zookeeperRegistry;
     private String service = "org.apache.dubbo.test.injvmServie";
     private URL serviceUrl = URL.valueOf("zookeeper://zookeeper/" + service + 
"?notify=false&methods=test1,test2");
@@ -54,22 +52,18 @@ public class ZookeeperRegistryTest {
     private ZookeeperRegistryFactory zookeeperRegistryFactory;
     private NotifyListener listener;
 
+    @BeforeAll
+    public static void beforeAll() {
+        zookeeperConnectionAddress1 = 
System.getProperty("zookeeper.connection.address.1");
+    }
+
     @BeforeEach
     public void setUp() throws Exception {
-        int zkServerPort = NetUtils.getAvailablePort();
-        this.zkServer = new TestingServer(zkServerPort, true);
-        this.zkServer.start();
-
-        this.registryUrl = URL.valueOf("zookeeper://localhost:" + 
zkServerPort);
+        this.registryUrl = URL.valueOf(zookeeperConnectionAddress1);
         zookeeperRegistryFactory = new 
ZookeeperRegistryFactory(ApplicationModel.defaultModel());
         this.zookeeperRegistry = (ZookeeperRegistry) 
zookeeperRegistryFactory.createRegistry(registryUrl);
     }
 
-    @AfterEach
-    public void tearDown() throws Exception {
-        zkServer.stop();
-    }
-
     @Test
     public void testAnyHost() {
         Assertions.assertThrows(IllegalStateException.class, () -> {
@@ -119,7 +113,7 @@ public class ZookeeperRegistryTest {
     @Test
     public void testLookup() {
         List<URL> lookup = zookeeperRegistry.lookup(serviceUrl);
-        assertThat(lookup.size(), is(0));
+        assertThat(lookup.size(), is(1));
 
         zookeeperRegistry.register(serviceUrl);
         lookup = zookeeperRegistry.lookup(serviceUrl);
diff --git 
a/dubbo-registry/dubbo-registry-zookeeper/src/test/java/org/apache/dubbo/registry/zookeeper/ZookeeperServiceDiscoveryTest.java
 
b/dubbo-registry/dubbo-registry-zookeeper/src/test/java/org/apache/dubbo/registry/zookeeper/ZookeeperServiceDiscoveryTest.java
index de2545f..52d5fee 100644
--- 
a/dubbo-registry/dubbo-registry-zookeeper/src/test/java/org/apache/dubbo/registry/zookeeper/ZookeeperServiceDiscoveryTest.java
+++ 
b/dubbo-registry/dubbo-registry-zookeeper/src/test/java/org/apache/dubbo/registry/zookeeper/ZookeeperServiceDiscoveryTest.java
@@ -26,9 +26,9 @@ import 
org.apache.dubbo.registry.client.event.listener.ServiceInstancesChangedLi
 import org.apache.dubbo.rpc.model.ApplicationModel;
 import org.apache.dubbo.rpc.model.ScopeModelUtil;
 
-import org.apache.curator.test.TestingServer;
 import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.Test;
 import org.mockito.internal.util.collections.Sets;
 
@@ -39,7 +39,6 @@ import java.util.Map;
 import java.util.concurrent.CountDownLatch;
 
 import static java.util.Arrays.asList;
-import static org.apache.dubbo.common.utils.NetUtils.getAvailablePort;
 import static 
org.apache.dubbo.registry.client.metadata.ServiceInstanceMetadataUtils.INSTANCE_REVISION_UPDATED_KEY;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertFalse;
@@ -56,19 +55,19 @@ public class ZookeeperServiceDiscoveryTest {
 
     private static final String LOCALHOST = "127.0.0.1";
 
-    private TestingServer zkServer;
-    private int zkServerPort;
     private URL registryUrl;
 
     private ZookeeperServiceDiscovery discovery;
+    private static String zookeeperConnectionAddress1;
+
+    @BeforeAll
+    public static void beforeAll() {
+        zookeeperConnectionAddress1 = 
System.getProperty("zookeeper.connection.address.1");
+    }
 
     @BeforeEach
     public void init() throws Exception {
-        zkServerPort = getAvailablePort();
-        zkServer = new TestingServer(zkServerPort, true);
-        zkServer.start();
-
-        this.registryUrl = URL.valueOf("zookeeper://127.0.0.1:" + 
zkServerPort);
+        this.registryUrl = URL.valueOf(zookeeperConnectionAddress1);
         registryUrl.setScopeModel(ApplicationModel.defaultModel());
         this.discovery = new ZookeeperServiceDiscovery();
         this.discovery.initialize(registryUrl);
@@ -77,7 +76,6 @@ public class ZookeeperServiceDiscoveryTest {
     @AfterEach
     public void close() throws Exception {
         discovery.destroy();
-        zkServer.stop();
     }
 
     @Test
diff --git 
a/dubbo-registry/dubbo-registry-zookeeper/src/test/java/org/apache/dubbo/registry/zookeeper/util/CuratorFrameworkUtilsTest.java
 
b/dubbo-registry/dubbo-registry-zookeeper/src/test/java/org/apache/dubbo/registry/zookeeper/util/CuratorFrameworkUtilsTest.java
index 6b2d9d5..71ad98f 100644
--- 
a/dubbo-registry/dubbo-registry-zookeeper/src/test/java/org/apache/dubbo/registry/zookeeper/util/CuratorFrameworkUtilsTest.java
+++ 
b/dubbo-registry/dubbo-registry-zookeeper/src/test/java/org/apache/dubbo/registry/zookeeper/util/CuratorFrameworkUtilsTest.java
@@ -17,14 +17,12 @@
 package org.apache.dubbo.registry.zookeeper.util;
 
 import org.apache.curator.framework.CuratorFramework;
-import org.apache.curator.test.TestingServer;
 import org.apache.curator.x.discovery.ServiceDiscovery;
 import org.apache.dubbo.common.URL;
 import org.apache.dubbo.registry.client.DefaultServiceInstance;
 import org.apache.dubbo.registry.client.ServiceInstance;
 import org.apache.dubbo.registry.zookeeper.ZookeeperInstance;
 import org.apache.dubbo.rpc.model.ApplicationModel;
-import org.junit.jupiter.api.AfterAll;
 import org.junit.jupiter.api.Assertions;
 import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.Test;
@@ -32,8 +30,6 @@ import org.junit.jupiter.api.Test;
 import java.util.Arrays;
 import java.util.List;
 import java.util.Map;
-
-import static org.apache.dubbo.common.utils.NetUtils.getAvailablePort;
 import static 
org.apache.dubbo.registry.client.metadata.ServiceInstanceMetadataUtils.EXPORTED_SERVICES_REVISION_PROPERTY_NAME;
 import static 
org.apache.dubbo.registry.client.metadata.ServiceInstanceMetadataUtils.METADATA_STORAGE_TYPE_PROPERTY_NAME;
 import static 
org.apache.dubbo.registry.zookeeper.util.CuratorFrameworkParams.ROOT_PATH;
@@ -42,25 +38,17 @@ import static 
org.apache.dubbo.registry.zookeeper.util.CuratorFrameworkParams.RO
  * {@link CuratorFrameworkUtils} Test
  */
 class CuratorFrameworkUtilsTest {
-    private static TestingServer zkServer;
     private static URL registryUrl;
+    private static String zookeeperConnectionAddress1;
 
     @BeforeAll
     public static void init() throws Exception {
-        int zkServerPort = getAvailablePort();
-        zkServer = new TestingServer(zkServerPort, true);
-        zkServer.start();
+        zookeeperConnectionAddress1 = 
System.getProperty("zookeeper.connection.address.1");
 
-        registryUrl = URL.valueOf("zookeeper://127.0.0.1:" + zkServerPort);
+        registryUrl = URL.valueOf(zookeeperConnectionAddress1);
         registryUrl.setScopeModel(ApplicationModel.defaultModel());
     }
 
-    @AfterAll
-    public static void tearDown() throws Exception {
-        zkServer.stop();
-    }
-
-
     @Test
     void testBuildCuratorFramework() throws Exception {
         CuratorFramework curatorFramework = 
CuratorFrameworkUtils.buildCuratorFramework(registryUrl);
diff --git a/dubbo-remoting/dubbo-remoting-zookeeper-curator5/pom.xml 
b/dubbo-remoting/dubbo-remoting-zookeeper-curator5/pom.xml
index cd5f401..7a246c9 100644
--- a/dubbo-remoting/dubbo-remoting-zookeeper-curator5/pom.xml
+++ b/dubbo-remoting/dubbo-remoting-zookeeper-curator5/pom.xml
@@ -59,11 +59,5 @@
             <artifactId>zookeeper</artifactId>
             <version>${zookeeper_version}</version>
         </dependency>
-        <dependency>
-            <groupId>org.apache.curator</groupId>
-            <artifactId>curator-test</artifactId>
-            <version>${curator5_version}</version>
-            <scope>test</scope>
-        </dependency>
     </dependencies>
 </project>
diff --git 
a/dubbo-remoting/dubbo-remoting-zookeeper-curator5/src/test/java/org/apache/dubbo/remoting/zookeeper/curator5/Curator5ZookeeperClientTest.java
 
b/dubbo-remoting/dubbo-remoting-zookeeper-curator5/src/test/java/org/apache/dubbo/remoting/zookeeper/curator5/Curator5ZookeeperClientTest.java
index a36b9f6..6254532 100644
--- 
a/dubbo-remoting/dubbo-remoting-zookeeper-curator5/src/test/java/org/apache/dubbo/remoting/zookeeper/curator5/Curator5ZookeeperClientTest.java
+++ 
b/dubbo-remoting/dubbo-remoting-zookeeper-curator5/src/test/java/org/apache/dubbo/remoting/zookeeper/curator5/Curator5ZookeeperClientTest.java
@@ -17,25 +17,19 @@
 package org.apache.dubbo.remoting.zookeeper.curator5;
 
 import org.apache.dubbo.common.URL;
-import org.apache.dubbo.common.utils.NetUtils;
 import org.apache.dubbo.remoting.zookeeper.ChildListener;
-
 import org.apache.curator.framework.CuratorFramework;
 import org.apache.curator.framework.CuratorFrameworkFactory;
 import org.apache.curator.retry.ExponentialBackoffRetry;
-import org.apache.curator.test.TestingServer;
 import org.apache.zookeeper.WatchedEvent;
 import org.junit.jupiter.api.AfterAll;
 import org.junit.jupiter.api.Assertions;
 import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.Timeout;
-
-import java.io.IOException;
 import java.util.List;
 import java.util.concurrent.CountDownLatch;
 import java.util.concurrent.atomic.AtomicInteger;
-
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.hamcrest.core.Is.is;
 import static org.junit.jupiter.api.Assertions.assertEquals;
@@ -43,17 +37,18 @@ import static org.junit.jupiter.api.Assertions.assertNull;
 import static org.mockito.Mockito.mock;
 
 public class Curator5ZookeeperClientTest {
-    private static TestingServer zkServer;
     private static Curator5ZookeeperClient curatorClient;
     private static CuratorFramework client = null;
 
+    private static int zookeeperServerPort1;
+    private static String zookeeperConnectionAddress1;
+
     @BeforeAll
     public static void setUp() throws Exception {
-        int zkServerPort = NetUtils.getAvailablePort();
-        zkServer = new TestingServer(zkServerPort, true);
-        curatorClient = new 
Curator5ZookeeperClient(URL.valueOf("zookeeper://127.0.0.1:" +
-                zkServerPort + "/org.apache.dubbo.registry.RegistryService"));
-        client = 
CuratorFrameworkFactory.newClient(zkServer.getConnectString(), new 
ExponentialBackoffRetry(1000, 3));
+        zookeeperConnectionAddress1 = 
System.getProperty("zookeeper.connection.address.1");
+        zookeeperServerPort1 = 
Integer.parseInt(zookeeperConnectionAddress1.substring(zookeeperConnectionAddress1.lastIndexOf(":")
 + 1));
+        curatorClient = new 
Curator5ZookeeperClient(URL.valueOf(zookeeperConnectionAddress1 + 
"/org.apache.dubbo.registry.RegistryService"));
+        client = 
CuratorFrameworkFactory.newClient("127.0.0.1:"+zookeeperServerPort1, new 
ExponentialBackoffRetry(1000, 3));
         client.start();
     }
 
@@ -181,13 +176,7 @@ public class Curator5ZookeeperClientTest {
 
 
     @AfterAll
-    public static void testWithStoppedServer() throws IOException {
-        Assertions.assertThrows(IllegalStateException.class, () -> {
-            curatorClient.create("/testPath", true);
-            zkServer.stop();
-            curatorClient.delete("/testPath");
-        });
-        
+    public static void testWithStoppedServer() {
         curatorClient.close();
     }
 }
diff --git 
a/dubbo-remoting/dubbo-remoting-zookeeper-curator5/src/test/java/org/apache/dubbo/remoting/zookeeper/curator5/Curator5ZookeeperTransporterTest.java
 
b/dubbo-remoting/dubbo-remoting-zookeeper-curator5/src/test/java/org/apache/dubbo/remoting/zookeeper/curator5/Curator5ZookeeperTransporterTest.java
index 44c8b7b..9ef660c 100644
--- 
a/dubbo-remoting/dubbo-remoting-zookeeper-curator5/src/test/java/org/apache/dubbo/remoting/zookeeper/curator5/Curator5ZookeeperTransporterTest.java
+++ 
b/dubbo-remoting/dubbo-remoting-zookeeper-curator5/src/test/java/org/apache/dubbo/remoting/zookeeper/curator5/Curator5ZookeeperTransporterTest.java
@@ -20,27 +20,27 @@ import org.apache.dubbo.common.URL;
 import org.apache.dubbo.common.utils.NetUtils;
 import org.apache.dubbo.remoting.zookeeper.ZookeeperClient;
 
-import org.apache.curator.test.TestingServer;
-import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.BeforeAll;
 
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.hamcrest.core.IsNot.not;
 import static org.hamcrest.core.IsNull.nullValue;
 
 public class Curator5ZookeeperTransporterTest {
-    private TestingServer zkServer;
     private ZookeeperClient zookeeperClient;
     private Curator5ZookeeperTransporter curatorZookeeperTransporter;
-    private int zkServerPort;
+    private static String zookeeperConnectionAddress1;
+
+    @BeforeAll
+    public static void beforeAll() {
+        zookeeperConnectionAddress1 = 
System.getProperty("zookeeper.connection.address.1");
+    }
 
     @BeforeEach
     public void setUp() throws Exception {
-        zkServerPort = NetUtils.getAvailablePort();
-        zkServer = new TestingServer(zkServerPort, true);
-        zookeeperClient = new 
Curator5ZookeeperTransporter().connect(URL.valueOf("zookeeper://127.0.0.1:" +
-                zkServerPort + "/service"));
+        zookeeperClient = new 
Curator5ZookeeperTransporter().connect(URL.valueOf(zookeeperConnectionAddress1 
+ "/service"));
         curatorZookeeperTransporter = new Curator5ZookeeperTransporter();
     }
 
@@ -49,9 +49,4 @@ public class Curator5ZookeeperTransporterTest {
         assertThat(zookeeperClient, not(nullValue()));
         zookeeperClient.close();
     }
-
-    @AfterEach
-    public void tearDown() throws Exception {
-        zkServer.stop();
-    }
 }
diff --git 
a/dubbo-remoting/dubbo-remoting-zookeeper-curator5/src/test/java/org/apache/dubbo/remoting/zookeeper/curator5/support/AbstractZookeeperTransporterTest.java
 
b/dubbo-remoting/dubbo-remoting-zookeeper-curator5/src/test/java/org/apache/dubbo/remoting/zookeeper/curator5/support/AbstractZookeeperTransporterTest.java
index 5bb45cf..1f8aaa7 100644
--- 
a/dubbo-remoting/dubbo-remoting-zookeeper-curator5/src/test/java/org/apache/dubbo/remoting/zookeeper/curator5/support/AbstractZookeeperTransporterTest.java
+++ 
b/dubbo-remoting/dubbo-remoting-zookeeper-curator5/src/test/java/org/apache/dubbo/remoting/zookeeper/curator5/support/AbstractZookeeperTransporterTest.java
@@ -17,19 +17,14 @@
 package org.apache.dubbo.remoting.zookeeper.curator5.support;
 
 import org.apache.dubbo.common.URL;
-import org.apache.dubbo.common.utils.NetUtils;
 import org.apache.dubbo.remoting.zookeeper.AbstractZookeeperTransporter;
 import org.apache.dubbo.remoting.zookeeper.ZookeeperClient;
 import 
org.apache.dubbo.remoting.zookeeper.curator5.Curator5ZookeeperTransporter;
-
-import org.apache.curator.test.TestingServer;
-import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.Assertions;
 import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.Test;
-
 import java.util.List;
-
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.hamcrest.core.IsNot.not;
 import static org.hamcrest.core.IsNull.nullValue;
@@ -38,26 +33,26 @@ import static org.hamcrest.core.IsNull.nullValue;
  * AbstractZookeeperTransporterTest
  */
 public class AbstractZookeeperTransporterTest {
-    private TestingServer zkServer;
     private ZookeeperClient zookeeperClient;
     private AbstractZookeeperTransporter abstractZookeeperTransporter;
-    private int zkServerPort;
+
+    private static int zookeeperServerPort1, zookeeperServerPort2;
+    private static String zookeeperConnectionAddress1, 
zookeeperConnectionAddress2;
+
+    @BeforeAll
+    public static void beforeAll() {
+        zookeeperConnectionAddress1 = 
System.getProperty("zookeeper.connection.address.1");
+        zookeeperConnectionAddress2 = 
System.getProperty("zookeeper.connection.address.2");
+        zookeeperServerPort1 = 
Integer.parseInt(zookeeperConnectionAddress1.substring(zookeeperConnectionAddress1.lastIndexOf(":")
 + 1));
+        zookeeperServerPort2 = 
Integer.parseInt(zookeeperConnectionAddress2.substring(zookeeperConnectionAddress2.lastIndexOf(":")
 + 1));
+    }
 
     @BeforeEach
     public void setUp() throws Exception {
-        zkServerPort = NetUtils.getAvailablePort();
-        zkServer = new TestingServer(zkServerPort, true);
-        zookeeperClient = new 
Curator5ZookeeperTransporter().connect(URL.valueOf("zookeeper://127.0.0.1:" +
-                zkServerPort + "/service"));
+        zookeeperClient = new 
Curator5ZookeeperTransporter().connect(URL.valueOf(zookeeperConnectionAddress1 
+ "/service"));
         abstractZookeeperTransporter = new Curator5ZookeeperTransporter();
     }
 
-
-    @AfterEach
-    public void tearDown() throws Exception {
-        zkServer.stop();
-    }
-
     @Test
     public void testZookeeperClient() {
         assertThat(zookeeperClient, not(nullValue()));
@@ -66,43 +61,34 @@ public class AbstractZookeeperTransporterTest {
 
     @Test
     public void testGetURLBackupAddress() {
-        URL url = URL.valueOf("zookeeper://127.0.0.1:" + zkServerPort + 
"/org.apache.dubbo.registry.RegistryService?backup=127.0.0.1:" + 9099 + 
"&application=metadatareport-local-xml-provider2&dubbo=2.0.2&interface=org.apache.dubbo.registry.RegistryService&pid=47418&specVersion=2.7.0-SNAPSHOT&timestamp=1547102428828");
+        URL url = URL.valueOf(zookeeperConnectionAddress1 + 
"/org.apache.dubbo.registry.RegistryService?backup=127.0.0.1:" + 9099 + 
"&application=metadatareport-local-xml-provider2&dubbo=2.0.2&interface=org.apache.dubbo.registry.RegistryService&pid=47418&specVersion=2.7.0-SNAPSHOT&timestamp=1547102428828");
         List<String> stringList = 
abstractZookeeperTransporter.getURLBackupAddress(url);
         Assertions.assertEquals(stringList.size(), 2);
-        Assertions.assertEquals(stringList.get(0), "127.0.0.1:" + 
zkServerPort);
+        Assertions.assertEquals(stringList.get(0), "127.0.0.1:" + 
zookeeperServerPort1);
         Assertions.assertEquals(stringList.get(1), "127.0.0.1:9099");
     }
 
     @Test
     public void testGetURLBackupAddressNoBack() {
-        URL url = URL.valueOf("zookeeper://127.0.0.1:" + zkServerPort + 
"/org.apache.dubbo.registry.RegistryService?application=metadatareport-local-xml-provider2&dubbo=2.0.2&interface=org.apache.dubbo.registry.RegistryService&pid=47418&specVersion=2.7.0-SNAPSHOT&timestamp=1547102428828");
+        URL url = URL.valueOf(zookeeperConnectionAddress1 + 
"/org.apache.dubbo.registry.RegistryService?application=metadatareport-local-xml-provider2&dubbo=2.0.2&interface=org.apache.dubbo.registry.RegistryService&pid=47418&specVersion=2.7.0-SNAPSHOT&timestamp=1547102428828");
         List<String> stringList = 
abstractZookeeperTransporter.getURLBackupAddress(url);
         Assertions.assertEquals(stringList.size(), 1);
-        Assertions.assertEquals(stringList.get(0), "127.0.0.1:" + 
zkServerPort);
+        Assertions.assertEquals(stringList.get(0), "127.0.0.1:" + 
zookeeperServerPort1);
     }
 
     @Test
     public void testFetchAndUpdateZookeeperClientCache() throws Exception {
-        int zkServerPort2 = NetUtils.getAvailablePort();
-        TestingServer zkServer2 = new TestingServer(zkServerPort2, true);
-
-        int zkServerPort3 = NetUtils.getAvailablePort();
-        TestingServer zkServer3 = new TestingServer(zkServerPort3, true);
-
-        URL url = URL.valueOf("zookeeper://127.0.0.1:" + zkServerPort + 
"/org.apache.dubbo.registry.RegistryService?backup=127.0.0.1:" + zkServerPort3 
+ ",127.0.0.1:" + zkServerPort2 + 
"&application=metadatareport-local-xml-provider2&dubbo=2.0.2&interface=org.apache.dubbo.registry.RegistryService&pid=47418&specVersion=2.7.0-SNAPSHOT&timestamp=1547102428828");
+        URL url = URL.valueOf(zookeeperConnectionAddress1 + 
"/org.apache.dubbo.registry.RegistryService?backup=127.0.0.1:" + 
zookeeperServerPort1 + ",127.0.0.1:" + zookeeperServerPort2 + 
"&application=metadatareport-local-xml-provider2&dubbo=2.0.2&interface=org.apache.dubbo.registry.RegistryService&pid=47418&specVersion=2.7.0-SNAPSHOT&timestamp=1547102428828");
         ZookeeperClient newZookeeperClient = 
abstractZookeeperTransporter.connect(url);
         //just for connected
         newZookeeperClient.getContent("/dubbo/test");
-        
Assertions.assertEquals(abstractZookeeperTransporter.getZookeeperClientMap().size(),
 3);
-        
Assertions.assertEquals(abstractZookeeperTransporter.getZookeeperClientMap().get("127.0.0.1:"
 + zkServerPort), newZookeeperClient);
+        
Assertions.assertEquals(abstractZookeeperTransporter.getZookeeperClientMap().size(),
 2);
+        
Assertions.assertEquals(abstractZookeeperTransporter.getZookeeperClientMap().get("127.0.0.1:"
 + zookeeperServerPort1), newZookeeperClient);
 
-        URL url2 = URL.valueOf("zookeeper://127.0.0.1:" + zkServerPort + 
"/org.apache.dubbo.metadata.store.MetadataReport?address=zookeeper://127.0.0.1:2181&application=metadatareport-local-xml-provider2&cycle-report=false&interface=org.apache.dubbo.metadata.store.MetadataReport&retry-period=4590&retry-times=23&sync-report=true");
+        URL url2 = URL.valueOf("zookeeper://127.0.0.1:" + zookeeperServerPort1 
+ 
"/org.apache.dubbo.metadata.store.MetadataReport?address=zookeeper://127.0.0.1:2181&application=metadatareport-local-xml-provider2&cycle-report=false&interface=org.apache.dubbo.metadata.store.MetadataReport&retry-period=4590&retry-times=23&sync-report=true");
         checkFetchAndUpdateCacheNotNull(url2);
-        URL url3 = 
URL.valueOf("zookeeper://127.0.0.1:8778/org.apache.dubbo.metadata.store.MetadataReport?backup=127.0.0.1:"
 + zkServerPort3 + 
"&address=zookeeper://127.0.0.1:2181&application=metadatareport-local-xml-provider2&cycle-report=false&interface=org.apache.dubbo.metadata.store.MetadataReport&retry-period=4590&retry-times=23&sync-report=true");
+        URL url3 = 
URL.valueOf("zookeeper://127.0.0.1:8778/org.apache.dubbo.metadata.store.MetadataReport?backup=127.0.0.1:"
 + zookeeperServerPort2 + 
"&address=zookeeper://127.0.0.1:2181&application=metadatareport-local-xml-provider2&cycle-report=false&interface=org.apache.dubbo.metadata.store.MetadataReport&retry-period=4590&retry-times=23&sync-report=true");
         checkFetchAndUpdateCacheNotNull(url3);
-
-        zkServer2.stop();
-        zkServer3.stop();
     }
 
     private void checkFetchAndUpdateCacheNotNull(URL url) {
@@ -113,13 +99,13 @@ public class AbstractZookeeperTransporterTest {
 
     @Test
     public void testRepeatConnect() {
-        URL url = URL.valueOf("zookeeper://127.0.0.1:" + zkServerPort + 
"/org.apache.dubbo.registry.RegistryService?application=metadatareport-local-xml-provider2&dubbo=2.0.2&interface=org.apache.dubbo.registry.RegistryService&pid=47418&specVersion=2.7.0-SNAPSHOT&timestamp=1547102428828");
-        URL url2 = URL.valueOf("zookeeper://127.0.0.1:" + zkServerPort + 
"/org.apache.dubbo.metadata.store.MetadataReport?address=zookeeper://127.0.0.1:2181&application=metadatareport-local-xml-provider2&cycle-report=false&interface=org.apache.dubbo.metadata.store.MetadataReport&retry-period=4590&retry-times=23&sync-report=true");
+        URL url = URL.valueOf(zookeeperConnectionAddress1 + 
"/org.apache.dubbo.registry.RegistryService?application=metadatareport-local-xml-provider2&dubbo=2.0.2&interface=org.apache.dubbo.registry.RegistryService&pid=47418&specVersion=2.7.0-SNAPSHOT&timestamp=1547102428828");
+        URL url2 = URL.valueOf(zookeeperConnectionAddress1 + 
"/org.apache.dubbo.metadata.store.MetadataReport?address=zookeeper://127.0.0.1:2181&application=metadatareport-local-xml-provider2&cycle-report=false&interface=org.apache.dubbo.metadata.store.MetadataReport&retry-period=4590&retry-times=23&sync-report=true");
         ZookeeperClient newZookeeperClient = 
abstractZookeeperTransporter.connect(url);
         //just for connected
         newZookeeperClient.getContent("/dubbo/test");
         
Assertions.assertEquals(abstractZookeeperTransporter.getZookeeperClientMap().size(),
 1);
-        
Assertions.assertEquals(abstractZookeeperTransporter.getZookeeperClientMap().get("127.0.0.1:"
 + zkServerPort), newZookeeperClient);
+        
Assertions.assertEquals(abstractZookeeperTransporter.getZookeeperClientMap().get("127.0.0.1:"
 + zookeeperServerPort1), newZookeeperClient);
         Assertions.assertTrue(newZookeeperClient.isConnected());
 
         ZookeeperClient newZookeeperClient2 = 
abstractZookeeperTransporter.connect(url2);
@@ -127,100 +113,74 @@ public class AbstractZookeeperTransporterTest {
         newZookeeperClient2.getContent("/dubbo/test");
         Assertions.assertEquals(newZookeeperClient, newZookeeperClient2);
         
Assertions.assertEquals(abstractZookeeperTransporter.getZookeeperClientMap().size(),
 1);
-        
Assertions.assertEquals(abstractZookeeperTransporter.getZookeeperClientMap().get("127.0.0.1:"
 + zkServerPort), newZookeeperClient);
+        
Assertions.assertEquals(abstractZookeeperTransporter.getZookeeperClientMap().get("127.0.0.1:"
 + zookeeperServerPort1), newZookeeperClient);
     }
 
     @Test
     public void testNotRepeatConnect() throws Exception {
-        int zkServerPort2 = NetUtils.getAvailablePort();
-        TestingServer zkServer2 = new TestingServer(zkServerPort2, true);
-
-        URL url = URL.valueOf("zookeeper://127.0.0.1:" + zkServerPort + 
"/org.apache.dubbo.registry.RegistryService?application=metadatareport-local-xml-provider2&dubbo=2.0.2&interface=org.apache.dubbo.registry.RegistryService&pid=47418&specVersion=2.7.0-SNAPSHOT&timestamp=1547102428828");
-        URL url2 = URL.valueOf("zookeeper://127.0.0.1:" + zkServerPort2 + 
"/org.apache.dubbo.metadata.store.MetadataReport?address=zookeeper://127.0.0.1:2181&application=metadatareport-local-xml-provider2&cycle-report=false&interface=org.apache.dubbo.metadata.store.MetadataReport&retry-period=4590&retry-times=23&sync-report=true");
+        URL url = URL.valueOf(zookeeperConnectionAddress1 + 
"/org.apache.dubbo.registry.RegistryService?application=metadatareport-local-xml-provider2&dubbo=2.0.2&interface=org.apache.dubbo.registry.RegistryService&pid=47418&specVersion=2.7.0-SNAPSHOT&timestamp=1547102428828");
+        URL url2 = URL.valueOf(zookeeperConnectionAddress2 + 
"/org.apache.dubbo.metadata.store.MetadataReport?address=zookeeper://127.0.0.1:2181&application=metadatareport-local-xml-provider2&cycle-report=false&interface=org.apache.dubbo.metadata.store.MetadataReport&retry-period=4590&retry-times=23&sync-report=true");
         ZookeeperClient newZookeeperClient = 
abstractZookeeperTransporter.connect(url);
         //just for connected
         newZookeeperClient.getContent("/dubbo/test");
         
Assertions.assertEquals(abstractZookeeperTransporter.getZookeeperClientMap().size(),
 1);
-        
Assertions.assertEquals(abstractZookeeperTransporter.getZookeeperClientMap().get("127.0.0.1:"
 + zkServerPort), newZookeeperClient);
+        
Assertions.assertEquals(abstractZookeeperTransporter.getZookeeperClientMap().get("127.0.0.1:"
 + zookeeperServerPort1), newZookeeperClient);
 
         ZookeeperClient newZookeeperClient2 = 
abstractZookeeperTransporter.connect(url2);
         //just for connected
         newZookeeperClient2.getContent("/dubbo/test");
         Assertions.assertNotEquals(newZookeeperClient, newZookeeperClient2);
         
Assertions.assertEquals(abstractZookeeperTransporter.getZookeeperClientMap().size(),
 2);
-        
Assertions.assertEquals(abstractZookeeperTransporter.getZookeeperClientMap().get("127.0.0.1:"
 + zkServerPort2), newZookeeperClient2);
+        
Assertions.assertEquals(abstractZookeeperTransporter.getZookeeperClientMap().get("127.0.0.1:"
 + zookeeperServerPort2), newZookeeperClient2);
 
-        zkServer2.stop();
     }
 
     @Test
     public void testRepeatConnectForBackUpAdd() throws Exception {
-        int zkServerPort2 = NetUtils.getAvailablePort();
-        TestingServer zkServer2 = new TestingServer(zkServerPort2, true);
 
-        int zkServerPort3 = NetUtils.getAvailablePort();
-        TestingServer zkServer3 = new TestingServer(zkServerPort3, true);
-
-        URL url = URL.valueOf("zookeeper://127.0.0.1:" + zkServerPort + 
"/org.apache.dubbo.registry.RegistryService?backup=127.0.0.1:" + zkServerPort2 
+ 
"&application=metadatareport-local-xml-provider2&dubbo=2.0.2&interface=org.apache.dubbo.registry.RegistryService&pid=47418&specVersion=2.7.0-SNAPSHOT&timestamp=1547102428828");
-        URL url2 = URL.valueOf("zookeeper://127.0.0.1:" + zkServerPort2 + 
"/org.apache.dubbo.metadata.store.MetadataReport?backup=127.0.0.1:" + 
zkServerPort3 + 
"&address=zookeeper://127.0.0.1:2181&application=metadatareport-local-xml-provider2&cycle-report=false&interface=org.apache.dubbo.metadata.store.MetadataReport&retry-period=4590&retry-times=23&sync-report=true");
+        URL url = URL.valueOf(zookeeperConnectionAddress1 + 
"/org.apache.dubbo.registry.RegistryService?backup=127.0.0.1:" + 
zookeeperServerPort1 + 
"&application=metadatareport-local-xml-provider2&dubbo=2.0.2&interface=org.apache.dubbo.registry.RegistryService&pid=47418&specVersion=2.7.0-SNAPSHOT&timestamp=1547102428828");
+        URL url2 = URL.valueOf(zookeeperConnectionAddress1 + 
"/org.apache.dubbo.metadata.store.MetadataReport?backup=127.0.0.1:" + 
zookeeperServerPort2 + 
"&address=zookeeper://127.0.0.1:2181&application=metadatareport-local-xml-provider2&cycle-report=false&interface=org.apache.dubbo.metadata.store.MetadataReport&retry-period=4590&retry-times=23&sync-report=true");
         ZookeeperClient newZookeeperClient = 
abstractZookeeperTransporter.connect(url);
         //just for connected
         newZookeeperClient.getContent("/dubbo/test");
-        
Assertions.assertEquals(abstractZookeeperTransporter.getZookeeperClientMap().size(),
 2);
-        
Assertions.assertEquals(abstractZookeeperTransporter.getZookeeperClientMap().get("127.0.0.1:"
 + zkServerPort), newZookeeperClient);
+        
Assertions.assertEquals(abstractZookeeperTransporter.getZookeeperClientMap().size(),
 1);
+        
Assertions.assertEquals(abstractZookeeperTransporter.getZookeeperClientMap().get("127.0.0.1:"
 + zookeeperServerPort1), newZookeeperClient);
 
         ZookeeperClient newZookeeperClient2 = 
abstractZookeeperTransporter.connect(url2);
         //just for connected
         newZookeeperClient2.getContent("/dubbo/test");
         Assertions.assertEquals(newZookeeperClient, newZookeeperClient2);
-        
Assertions.assertEquals(abstractZookeeperTransporter.getZookeeperClientMap().size(),
 3);
-        
Assertions.assertEquals(abstractZookeeperTransporter.getZookeeperClientMap().get("127.0.0.1:"
 + zkServerPort2), newZookeeperClient2);
+        
Assertions.assertEquals(abstractZookeeperTransporter.getZookeeperClientMap().size(),
 2);
+        
Assertions.assertEquals(abstractZookeeperTransporter.getZookeeperClientMap().get("127.0.0.1:"
 + zookeeperServerPort2), newZookeeperClient2);
 
-        zkServer2.stop();
-        zkServer3.stop();
     }
 
     @Test
     public void testRepeatConnectForNoMatchBackUpAdd() throws Exception {
-        int zkServerPort2 = NetUtils.getAvailablePort();
-        TestingServer zkServer2 = new TestingServer(zkServerPort2, true);
-
-        int zkServerPort3 = NetUtils.getAvailablePort();
-        TestingServer zkServer3 = new TestingServer(zkServerPort3, true);
 
-        URL url = URL.valueOf("zookeeper://127.0.0.1:" + zkServerPort + 
"/org.apache.dubbo.registry.RegistryService?backup=127.0.0.1:" + zkServerPort3 
+ 
"&application=metadatareport-local-xml-provider2&dubbo=2.0.2&interface=org.apache.dubbo.registry.RegistryService&pid=47418&specVersion=2.7.0-SNAPSHOT&timestamp=1547102428828");
-        URL url2 = URL.valueOf("zookeeper://127.0.0.1:" + zkServerPort2 + 
"/org.apache.dubbo.metadata.store.MetadataReport?address=zookeeper://127.0.0.1:2181&application=metadatareport-local-xml-provider2&cycle-report=false&interface=org.apache.dubbo.metadata.store.MetadataReport&retry-period=4590&retry-times=23&sync-report=true");
+        URL url = URL.valueOf(zookeeperConnectionAddress1 + 
"/org.apache.dubbo.registry.RegistryService?backup=127.0.0.1:" + 
zookeeperServerPort1 + 
"&application=metadatareport-local-xml-provider2&dubbo=2.0.2&interface=org.apache.dubbo.registry.RegistryService&pid=47418&specVersion=2.7.0-SNAPSHOT&timestamp=1547102428828");
+        URL url2 = URL.valueOf(zookeeperConnectionAddress2 + 
"/org.apache.dubbo.metadata.store.MetadataReport?address=zookeeper://127.0.0.1:2181&application=metadatareport-local-xml-provider2&cycle-report=false&interface=org.apache.dubbo.metadata.store.MetadataReport&retry-period=4590&retry-times=23&sync-report=true");
         ZookeeperClient newZookeeperClient = 
abstractZookeeperTransporter.connect(url);
         //just for connected
         newZookeeperClient.getContent("/dubbo/test");
-        
Assertions.assertEquals(abstractZookeeperTransporter.getZookeeperClientMap().size(),
 2);
-        
Assertions.assertEquals(abstractZookeeperTransporter.getZookeeperClientMap().get("127.0.0.1:"
 + zkServerPort), newZookeeperClient);
+        
Assertions.assertEquals(abstractZookeeperTransporter.getZookeeperClientMap().size(),
 1);
+        
Assertions.assertEquals(abstractZookeeperTransporter.getZookeeperClientMap().get("127.0.0.1:"
 + zookeeperServerPort1), newZookeeperClient);
 
         ZookeeperClient newZookeeperClient2 = 
abstractZookeeperTransporter.connect(url2);
         //just for connected
         newZookeeperClient2.getContent("/dubbo/test");
         Assertions.assertNotEquals(newZookeeperClient, newZookeeperClient2);
-        
Assertions.assertEquals(abstractZookeeperTransporter.getZookeeperClientMap().size(),
 3);
-        
Assertions.assertEquals(abstractZookeeperTransporter.getZookeeperClientMap().get("127.0.0.1:"
 + zkServerPort2), newZookeeperClient2);
+        
Assertions.assertEquals(abstractZookeeperTransporter.getZookeeperClientMap().size(),
 2);
+        
Assertions.assertEquals(abstractZookeeperTransporter.getZookeeperClientMap().get("127.0.0.1:"
 + zookeeperServerPort2), newZookeeperClient2);
 
-        zkServer2.stop();
-        zkServer3.stop();
     }
 
     @Test
     public void testSameHostWithDifferentUser() throws Exception {
-        int zkPort1 = NetUtils.getAvailablePort();
-        int zkPort2 = NetUtils.getAvailablePort();
-        try (TestingServer zkServer1 = new TestingServer(zkPort1, true)) {
-            try (TestingServer zkServer2 = new TestingServer(zkPort2, true)) {
-                URL url1 = URL.valueOf("zookeeper://us1:[email protected]:" + 
zkPort1 + "/path1");
-                URL url2 = URL.valueOf("zookeeper://us2:[email protected]:" + 
zkPort1 + "/path2");
-
-                ZookeeperClient client1 = 
abstractZookeeperTransporter.connect(url1);
-                ZookeeperClient client2 = 
abstractZookeeperTransporter.connect(url2);
-
-                assertThat(client1, not(client2));
-            }
-        }
+        URL url1 = URL.valueOf("zookeeper://us1:[email protected]:" + 
zookeeperServerPort1 + "/path1");
+        URL url2 = URL.valueOf("zookeeper://us2:[email protected]:" + 
zookeeperServerPort1 + "/path2");
+        ZookeeperClient client1 = abstractZookeeperTransporter.connect(url1);
+        ZookeeperClient client2 = abstractZookeeperTransporter.connect(url2);
+        assertThat(client1, not(client2));
     }
 }
diff --git a/dubbo-remoting/dubbo-remoting-zookeeper/pom.xml 
b/dubbo-remoting/dubbo-remoting-zookeeper/pom.xml
index ce375e4..7969719 100644
--- a/dubbo-remoting/dubbo-remoting-zookeeper/pom.xml
+++ b/dubbo-remoting/dubbo-remoting-zookeeper/pom.xml
@@ -54,10 +54,5 @@
                 </exclusion>
             </exclusions>
         </dependency>
-        <dependency>
-            <groupId>org.apache.curator</groupId>
-            <artifactId>curator-test</artifactId>
-            <scope>test</scope>
-        </dependency>
     </dependencies>
 </project>
diff --git 
a/dubbo-remoting/dubbo-remoting-zookeeper/src/test/java/org/apache/dubbo/remoting/zookeeper/curator/CuratorZookeeperClientTest.java
 
b/dubbo-remoting/dubbo-remoting-zookeeper/src/test/java/org/apache/dubbo/remoting/zookeeper/curator/CuratorZookeeperClientTest.java
index aa37cbe..297602a 100644
--- 
a/dubbo-remoting/dubbo-remoting-zookeeper/src/test/java/org/apache/dubbo/remoting/zookeeper/curator/CuratorZookeeperClientTest.java
+++ 
b/dubbo-remoting/dubbo-remoting-zookeeper/src/test/java/org/apache/dubbo/remoting/zookeeper/curator/CuratorZookeeperClientTest.java
@@ -17,24 +17,22 @@
 package org.apache.dubbo.remoting.zookeeper.curator;
 
 import org.apache.dubbo.common.URL;
-import org.apache.dubbo.common.utils.NetUtils;
 import org.apache.dubbo.remoting.zookeeper.ChildListener;
 
 import org.apache.curator.framework.CuratorFramework;
 import org.apache.curator.framework.CuratorFrameworkFactory;
 import org.apache.curator.retry.ExponentialBackoffRetry;
-import org.apache.curator.test.TestingServer;
 import org.apache.zookeeper.WatchedEvent;
 import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.Assertions;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
-
+import org.junit.jupiter.api.BeforeAll;
+import org.junit.jupiter.api.Disabled;
 import java.io.IOException;
 import java.util.List;
 import java.util.concurrent.CountDownLatch;
 import java.util.concurrent.atomic.AtomicInteger;
-
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.hamcrest.core.Is.is;
 import static org.junit.jupiter.api.Assertions.assertEquals;
@@ -42,17 +40,22 @@ import static org.junit.jupiter.api.Assertions.assertNull;
 import static org.mockito.Mockito.mock;
 
 public class CuratorZookeeperClientTest {
-    private TestingServer zkServer;
     private CuratorZookeeperClient curatorClient;
     CuratorFramework client = null;
 
+    private static int zookeeperServerPort1;
+    private static String zookeeperConnectionAddress1;
+
+    @BeforeAll
+    public static void beforeAll() {
+        zookeeperConnectionAddress1 = 
System.getProperty("zookeeper.connection.address.1");
+        zookeeperServerPort1 = 
Integer.parseInt(zookeeperConnectionAddress1.substring(zookeeperConnectionAddress1.lastIndexOf(":")
 + 1));
+    }
+
     @BeforeEach
     public void setUp() throws Exception {
-        int zkServerPort = NetUtils.getAvailablePort();
-        zkServer = new TestingServer(zkServerPort, true);
-        curatorClient = new 
CuratorZookeeperClient(URL.valueOf("zookeeper://127.0.0.1:" +
-                zkServerPort + "/org.apache.dubbo.registry.RegistryService"));
-        client = 
CuratorFrameworkFactory.newClient(zkServer.getConnectString(), new 
ExponentialBackoffRetry(1000, 3));
+        curatorClient = new 
CuratorZookeeperClient(URL.valueOf(zookeeperConnectionAddress1 + 
"/org.apache.dubbo.registry.RegistryService"));
+        client = CuratorFrameworkFactory.newClient("127.0.0.1:" + 
zookeeperServerPort1, new ExponentialBackoffRetry(1000, 3));
         client.start();
     }
 
@@ -76,6 +79,7 @@ public class CuratorZookeeperClientTest {
     }
 
     @Test
+    @Disabled("Global registry center")
     public void testChildrenListener() throws InterruptedException {
         String path = "/dubbo/org.apache.dubbo.demo.DemoService/providers";
         curatorClient.create(path, false);
@@ -101,10 +105,10 @@ public class CuratorZookeeperClientTest {
     }
 
     @Test
+    @Disabled("Global registry center cannot stop")
     public void testWithStoppedServer() throws IOException {
         Assertions.assertThrows(IllegalStateException.class, () -> {
             curatorClient.create("/testPath", true);
-            zkServer.stop();
             curatorClient.delete("/testPath");
         });
     }
@@ -158,7 +162,6 @@ public class CuratorZookeeperClientTest {
     @AfterEach
     public void tearDown() throws Exception {
         curatorClient.close();
-        zkServer.stop();
     }
 
     @Test
diff --git 
a/dubbo-remoting/dubbo-remoting-zookeeper/src/test/java/org/apache/dubbo/remoting/zookeeper/curator/CuratorZookeeperTransporterTest.java
 
b/dubbo-remoting/dubbo-remoting-zookeeper/src/test/java/org/apache/dubbo/remoting/zookeeper/curator/CuratorZookeeperTransporterTest.java
index e051dc9..0c5986f 100644
--- 
a/dubbo-remoting/dubbo-remoting-zookeeper/src/test/java/org/apache/dubbo/remoting/zookeeper/curator/CuratorZookeeperTransporterTest.java
+++ 
b/dubbo-remoting/dubbo-remoting-zookeeper/src/test/java/org/apache/dubbo/remoting/zookeeper/curator/CuratorZookeeperTransporterTest.java
@@ -17,11 +17,8 @@
 package org.apache.dubbo.remoting.zookeeper.curator;
 
 import org.apache.dubbo.common.URL;
-import org.apache.dubbo.common.utils.NetUtils;
 import org.apache.dubbo.remoting.zookeeper.ZookeeperClient;
-
-import org.apache.curator.test.TestingServer;
-import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 
@@ -30,17 +27,18 @@ import static org.hamcrest.core.IsNot.not;
 import static org.hamcrest.core.IsNull.nullValue;
 
 public class CuratorZookeeperTransporterTest {
-    private TestingServer zkServer;
     private ZookeeperClient zookeeperClient;
     private CuratorZookeeperTransporter curatorZookeeperTransporter;
-    private int zkServerPort;
+    private static String zookeeperConnectionAddress1;
+
+    @BeforeAll
+    public static void beforeAll() {
+        zookeeperConnectionAddress1 = 
System.getProperty("zookeeper.connection.address.1");
+    }
 
     @BeforeEach
     public void setUp() throws Exception {
-        zkServerPort = NetUtils.getAvailablePort();
-        zkServer = new TestingServer(zkServerPort, true);
-        zookeeperClient = new 
CuratorZookeeperTransporter().connect(URL.valueOf("zookeeper://127.0.0.1:" +
-                zkServerPort + "/service"));
+        zookeeperClient = new 
CuratorZookeeperTransporter().connect(URL.valueOf(zookeeperConnectionAddress1 + 
"/service"));
         curatorZookeeperTransporter = new CuratorZookeeperTransporter();
     }
 
@@ -50,8 +48,4 @@ public class CuratorZookeeperTransporterTest {
         zookeeperClient.close();
     }
 
-    @AfterEach
-    public void tearDown() throws Exception {
-        zkServer.stop();
-    }
 }
diff --git 
a/dubbo-remoting/dubbo-remoting-zookeeper/src/test/java/org/apache/dubbo/remoting/zookeeper/curator/support/AbstractZookeeperTransporterTest.java
 
b/dubbo-remoting/dubbo-remoting-zookeeper/src/test/java/org/apache/dubbo/remoting/zookeeper/curator/support/AbstractZookeeperTransporterTest.java
index 53c7ebe..d2bc36e 100644
--- 
a/dubbo-remoting/dubbo-remoting-zookeeper/src/test/java/org/apache/dubbo/remoting/zookeeper/curator/support/AbstractZookeeperTransporterTest.java
+++ 
b/dubbo-remoting/dubbo-remoting-zookeeper/src/test/java/org/apache/dubbo/remoting/zookeeper/curator/support/AbstractZookeeperTransporterTest.java
@@ -17,19 +17,14 @@
 package org.apache.dubbo.remoting.zookeeper.curator.support;
 
 import org.apache.dubbo.common.URL;
-import org.apache.dubbo.common.utils.NetUtils;
 import org.apache.dubbo.remoting.zookeeper.AbstractZookeeperTransporter;
 import org.apache.dubbo.remoting.zookeeper.ZookeeperClient;
 import org.apache.dubbo.remoting.zookeeper.curator.CuratorZookeeperTransporter;
-
-import org.apache.curator.test.TestingServer;
-import org.junit.jupiter.api.AfterEach;
-import org.junit.jupiter.api.Assertions;
-import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.Test;
-
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Assertions;
 import java.util.List;
-
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.hamcrest.core.IsNot.not;
 import static org.hamcrest.core.IsNull.nullValue;
@@ -38,26 +33,27 @@ import static org.hamcrest.core.IsNull.nullValue;
  * AbstractZookeeperTransporterTest
  */
 public class AbstractZookeeperTransporterTest {
-    private TestingServer zkServer;
     private ZookeeperClient zookeeperClient;
     private AbstractZookeeperTransporter abstractZookeeperTransporter;
-    private int zkServerPort;
+
+    private static int zookeeperServerPort1, zookeeperServerPort2;
+    private static String zookeeperConnectionAddress1, 
zookeeperConnectionAddress2;
+
+    @BeforeAll
+    public static void beforeAll() {
+        zookeeperConnectionAddress1 = 
System.getProperty("zookeeper.connection.address.1");
+        zookeeperConnectionAddress2 = 
System.getProperty("zookeeper.connection.address.2");
+        zookeeperServerPort1 = 
Integer.parseInt(zookeeperConnectionAddress1.substring(zookeeperConnectionAddress1.lastIndexOf(":")
 + 1));
+        zookeeperServerPort2 = 
Integer.parseInt(zookeeperConnectionAddress2.substring(zookeeperConnectionAddress2.lastIndexOf(":")
 + 1));
+    }
 
     @BeforeEach
     public void setUp() throws Exception {
-        zkServerPort = NetUtils.getAvailablePort();
-        zkServer = new TestingServer(zkServerPort, true);
         zookeeperClient = new 
CuratorZookeeperTransporter().connect(URL.valueOf("zookeeper://127.0.0.1:" +
-                zkServerPort + "/service"));
+            zookeeperServerPort1 + "/service"));
         abstractZookeeperTransporter = new CuratorZookeeperTransporter();
     }
 
-
-    @AfterEach
-    public void tearDown() throws Exception {
-        zkServer.stop();
-    }
-
     @Test
     public void testZookeeperClient() {
         assertThat(zookeeperClient, not(nullValue()));
@@ -66,43 +62,34 @@ public class AbstractZookeeperTransporterTest {
 
     @Test
     public void testGetURLBackupAddress() {
-        URL url = URL.valueOf("zookeeper://127.0.0.1:" + zkServerPort + 
"/org.apache.dubbo.registry.RegistryService?backup=127.0.0.1:" + 9099 + 
"&application=metadatareport-local-xml-provider2&dubbo=2.0.2&interface=org.apache.dubbo.registry.RegistryService&pid=47418&specVersion=2.7.0-SNAPSHOT&timestamp=1547102428828");
+        URL url = URL.valueOf(zookeeperConnectionAddress1 + 
"/org.apache.dubbo.registry.RegistryService?backup=127.0.0.1:" + 9099 + 
"&application=metadatareport-local-xml-provider2&dubbo=2.0.2&interface=org.apache.dubbo.registry.RegistryService&pid=47418&specVersion=2.7.0-SNAPSHOT&timestamp=1547102428828");
         List<String> stringList = 
abstractZookeeperTransporter.getURLBackupAddress(url);
         Assertions.assertEquals(stringList.size(), 2);
-        Assertions.assertEquals(stringList.get(0), "127.0.0.1:" + 
zkServerPort);
+        Assertions.assertEquals(stringList.get(0), "127.0.0.1:" + 
zookeeperServerPort1);
         Assertions.assertEquals(stringList.get(1), "127.0.0.1:9099");
     }
 
     @Test
     public void testGetURLBackupAddressNoBack() {
-        URL url = URL.valueOf("zookeeper://127.0.0.1:" + zkServerPort + 
"/org.apache.dubbo.registry.RegistryService?application=metadatareport-local-xml-provider2&dubbo=2.0.2&interface=org.apache.dubbo.registry.RegistryService&pid=47418&specVersion=2.7.0-SNAPSHOT&timestamp=1547102428828");
+        URL url = URL.valueOf(zookeeperConnectionAddress1 + 
"/org.apache.dubbo.registry.RegistryService?application=metadatareport-local-xml-provider2&dubbo=2.0.2&interface=org.apache.dubbo.registry.RegistryService&pid=47418&specVersion=2.7.0-SNAPSHOT&timestamp=1547102428828");
         List<String> stringList = 
abstractZookeeperTransporter.getURLBackupAddress(url);
         Assertions.assertEquals(stringList.size(), 1);
-        Assertions.assertEquals(stringList.get(0), "127.0.0.1:" + 
zkServerPort);
+        Assertions.assertEquals(stringList.get(0), "127.0.0.1:" + 
zookeeperServerPort1);
     }
 
     @Test
     public void testFetchAndUpdateZookeeperClientCache() throws Exception {
-        int zkServerPort2 = NetUtils.getAvailablePort();
-        TestingServer zkServer2 = new TestingServer(zkServerPort2, true);
-
-        int zkServerPort3 = NetUtils.getAvailablePort();
-        TestingServer zkServer3 = new TestingServer(zkServerPort3, true);
-
-        URL url = URL.valueOf("zookeeper://127.0.0.1:" + zkServerPort + 
"/org.apache.dubbo.registry.RegistryService?backup=127.0.0.1:" + zkServerPort3 
+ ",127.0.0.1:" + zkServerPort2 + 
"&application=metadatareport-local-xml-provider2&dubbo=2.0.2&interface=org.apache.dubbo.registry.RegistryService&pid=47418&specVersion=2.7.0-SNAPSHOT&timestamp=1547102428828");
+        URL url = URL.valueOf(zookeeperConnectionAddress1 + 
"/org.apache.dubbo.registry.RegistryService?backup=127.0.0.1:" + 
zookeeperServerPort1 + ",127.0.0.1:" + zookeeperServerPort2 + 
"&application=metadatareport-local-xml-provider2&dubbo=2.0.2&interface=org.apache.dubbo.registry.RegistryService&pid=47418&specVersion=2.7.0-SNAPSHOT&timestamp=1547102428828");
         ZookeeperClient newZookeeperClient = 
abstractZookeeperTransporter.connect(url);
         //just for connected
         newZookeeperClient.getContent("/dubbo/test");
-        
Assertions.assertEquals(abstractZookeeperTransporter.getZookeeperClientMap().size(),
 3);
-        
Assertions.assertEquals(abstractZookeeperTransporter.getZookeeperClientMap().get("127.0.0.1:"
 + zkServerPort), newZookeeperClient);
+        
Assertions.assertEquals(abstractZookeeperTransporter.getZookeeperClientMap().size(),
 2);
+        
Assertions.assertEquals(abstractZookeeperTransporter.getZookeeperClientMap().get("127.0.0.1:"
 + zookeeperServerPort1), newZookeeperClient);
 
-        URL url2 = URL.valueOf("zookeeper://127.0.0.1:" + zkServerPort + 
"/org.apache.dubbo.metadata.store.MetadataReport?address=zookeeper://127.0.0.1:2181&application=metadatareport-local-xml-provider2&cycle-report=false&interface=org.apache.dubbo.metadata.store.MetadataReport&retry-period=4590&retry-times=23&sync-report=true");
+        URL url2 = URL.valueOf("zookeeper://127.0.0.1:" + zookeeperServerPort1 
+ 
"/org.apache.dubbo.metadata.store.MetadataReport?address=zookeeper://127.0.0.1:2181&application=metadatareport-local-xml-provider2&cycle-report=false&interface=org.apache.dubbo.metadata.store.MetadataReport&retry-period=4590&retry-times=23&sync-report=true");
         checkFetchAndUpdateCacheNotNull(url2);
-        URL url3 = 
URL.valueOf("zookeeper://127.0.0.1:8778/org.apache.dubbo.metadata.store.MetadataReport?backup=127.0.0.1:"
 + zkServerPort3 + 
"&address=zookeeper://127.0.0.1:2181&application=metadatareport-local-xml-provider2&cycle-report=false&interface=org.apache.dubbo.metadata.store.MetadataReport&retry-period=4590&retry-times=23&sync-report=true");
+        URL url3 = 
URL.valueOf("zookeeper://127.0.0.1:8778/org.apache.dubbo.metadata.store.MetadataReport?backup=127.0.0.1:"
 + zookeeperServerPort2 + 
"&address=zookeeper://127.0.0.1:2181&application=metadatareport-local-xml-provider2&cycle-report=false&interface=org.apache.dubbo.metadata.store.MetadataReport&retry-period=4590&retry-times=23&sync-report=true");
         checkFetchAndUpdateCacheNotNull(url3);
-
-        zkServer2.stop();
-        zkServer3.stop();
     }
 
     private void checkFetchAndUpdateCacheNotNull(URL url) {
@@ -113,13 +100,13 @@ public class AbstractZookeeperTransporterTest {
 
     @Test
     public void testRepeatConnect() {
-        URL url = URL.valueOf("zookeeper://127.0.0.1:" + zkServerPort + 
"/org.apache.dubbo.registry.RegistryService?application=metadatareport-local-xml-provider2&dubbo=2.0.2&interface=org.apache.dubbo.registry.RegistryService&pid=47418&specVersion=2.7.0-SNAPSHOT&timestamp=1547102428828");
-        URL url2 = URL.valueOf("zookeeper://127.0.0.1:" + zkServerPort + 
"/org.apache.dubbo.metadata.store.MetadataReport?address=zookeeper://127.0.0.1:2181&application=metadatareport-local-xml-provider2&cycle-report=false&interface=org.apache.dubbo.metadata.store.MetadataReport&retry-period=4590&retry-times=23&sync-report=true");
+        URL url = URL.valueOf(zookeeperConnectionAddress1 + 
"/org.apache.dubbo.registry.RegistryService?application=metadatareport-local-xml-provider2&dubbo=2.0.2&interface=org.apache.dubbo.registry.RegistryService&pid=47418&specVersion=2.7.0-SNAPSHOT&timestamp=1547102428828");
+        URL url2 = URL.valueOf(zookeeperConnectionAddress1 + 
"/org.apache.dubbo.metadata.store.MetadataReport?address=zookeeper://127.0.0.1:2181&application=metadatareport-local-xml-provider2&cycle-report=false&interface=org.apache.dubbo.metadata.store.MetadataReport&retry-period=4590&retry-times=23&sync-report=true");
         ZookeeperClient newZookeeperClient = 
abstractZookeeperTransporter.connect(url);
         //just for connected
         newZookeeperClient.getContent("/dubbo/test");
         
Assertions.assertEquals(abstractZookeeperTransporter.getZookeeperClientMap().size(),
 1);
-        
Assertions.assertEquals(abstractZookeeperTransporter.getZookeeperClientMap().get("127.0.0.1:"
 + zkServerPort), newZookeeperClient);
+        
Assertions.assertEquals(abstractZookeeperTransporter.getZookeeperClientMap().get("127.0.0.1:"
 + zookeeperServerPort1), newZookeeperClient);
         Assertions.assertTrue(newZookeeperClient.isConnected());
 
         ZookeeperClient newZookeeperClient2 = 
abstractZookeeperTransporter.connect(url2);
@@ -127,100 +114,74 @@ public class AbstractZookeeperTransporterTest {
         newZookeeperClient2.getContent("/dubbo/test");
         Assertions.assertEquals(newZookeeperClient, newZookeeperClient2);
         
Assertions.assertEquals(abstractZookeeperTransporter.getZookeeperClientMap().size(),
 1);
-        
Assertions.assertEquals(abstractZookeeperTransporter.getZookeeperClientMap().get("127.0.0.1:"
 + zkServerPort), newZookeeperClient);
+        
Assertions.assertEquals(abstractZookeeperTransporter.getZookeeperClientMap().get("127.0.0.1:"
 + zookeeperServerPort1), newZookeeperClient);
     }
 
     @Test
     public void testNotRepeatConnect() throws Exception {
-        int zkServerPort2 = NetUtils.getAvailablePort();
-        TestingServer zkServer2 = new TestingServer(zkServerPort2, true);
-
-        URL url = URL.valueOf("zookeeper://127.0.0.1:" + zkServerPort + 
"/org.apache.dubbo.registry.RegistryService?application=metadatareport-local-xml-provider2&dubbo=2.0.2&interface=org.apache.dubbo.registry.RegistryService&pid=47418&specVersion=2.7.0-SNAPSHOT&timestamp=1547102428828");
-        URL url2 = URL.valueOf("zookeeper://127.0.0.1:" + zkServerPort2 + 
"/org.apache.dubbo.metadata.store.MetadataReport?address=zookeeper://127.0.0.1:2181&application=metadatareport-local-xml-provider2&cycle-report=false&interface=org.apache.dubbo.metadata.store.MetadataReport&retry-period=4590&retry-times=23&sync-report=true");
+        URL url = URL.valueOf(zookeeperConnectionAddress1 + 
"/org.apache.dubbo.registry.RegistryService?application=metadatareport-local-xml-provider2&dubbo=2.0.2&interface=org.apache.dubbo.registry.RegistryService&pid=47418&specVersion=2.7.0-SNAPSHOT&timestamp=1547102428828");
+        URL url2 = URL.valueOf(zookeeperConnectionAddress2 + 
"/org.apache.dubbo.metadata.store.MetadataReport?address=zookeeper://127.0.0.1:2181&application=metadatareport-local-xml-provider2&cycle-report=false&interface=org.apache.dubbo.metadata.store.MetadataReport&retry-period=4590&retry-times=23&sync-report=true");
         ZookeeperClient newZookeeperClient = 
abstractZookeeperTransporter.connect(url);
         //just for connected
         newZookeeperClient.getContent("/dubbo/test");
         
Assertions.assertEquals(abstractZookeeperTransporter.getZookeeperClientMap().size(),
 1);
-        
Assertions.assertEquals(abstractZookeeperTransporter.getZookeeperClientMap().get("127.0.0.1:"
 + zkServerPort), newZookeeperClient);
+        
Assertions.assertEquals(abstractZookeeperTransporter.getZookeeperClientMap().get("127.0.0.1:"
 + zookeeperServerPort1), newZookeeperClient);
 
         ZookeeperClient newZookeeperClient2 = 
abstractZookeeperTransporter.connect(url2);
         //just for connected
         newZookeeperClient2.getContent("/dubbo/test");
         Assertions.assertNotEquals(newZookeeperClient, newZookeeperClient2);
         
Assertions.assertEquals(abstractZookeeperTransporter.getZookeeperClientMap().size(),
 2);
-        
Assertions.assertEquals(abstractZookeeperTransporter.getZookeeperClientMap().get("127.0.0.1:"
 + zkServerPort2), newZookeeperClient2);
+        
Assertions.assertEquals(abstractZookeeperTransporter.getZookeeperClientMap().get("127.0.0.1:"
 + zookeeperServerPort2), newZookeeperClient2);
 
-        zkServer2.stop();
     }
 
     @Test
     public void testRepeatConnectForBackUpAdd() throws Exception {
-        int zkServerPort2 = NetUtils.getAvailablePort();
-        TestingServer zkServer2 = new TestingServer(zkServerPort2, true);
-
-        int zkServerPort3 = NetUtils.getAvailablePort();
-        TestingServer zkServer3 = new TestingServer(zkServerPort3, true);
 
-        URL url = URL.valueOf("zookeeper://127.0.0.1:" + zkServerPort + 
"/org.apache.dubbo.registry.RegistryService?backup=127.0.0.1:" + zkServerPort2 
+ 
"&application=metadatareport-local-xml-provider2&dubbo=2.0.2&interface=org.apache.dubbo.registry.RegistryService&pid=47418&specVersion=2.7.0-SNAPSHOT&timestamp=1547102428828");
-        URL url2 = URL.valueOf("zookeeper://127.0.0.1:" + zkServerPort2 + 
"/org.apache.dubbo.metadata.store.MetadataReport?backup=127.0.0.1:" + 
zkServerPort3 + 
"&address=zookeeper://127.0.0.1:2181&application=metadatareport-local-xml-provider2&cycle-report=false&interface=org.apache.dubbo.metadata.store.MetadataReport&retry-period=4590&retry-times=23&sync-report=true");
+        URL url = URL.valueOf(zookeeperConnectionAddress1 + 
"/org.apache.dubbo.registry.RegistryService?backup=127.0.0.1:" + 
zookeeperServerPort1 + 
"&application=metadatareport-local-xml-provider2&dubbo=2.0.2&interface=org.apache.dubbo.registry.RegistryService&pid=47418&specVersion=2.7.0-SNAPSHOT&timestamp=1547102428828");
+        URL url2 = URL.valueOf(zookeeperConnectionAddress1 + 
"/org.apache.dubbo.metadata.store.MetadataReport?backup=127.0.0.1:" + 
zookeeperServerPort2 + 
"&address=zookeeper://127.0.0.1:2181&application=metadatareport-local-xml-provider2&cycle-report=false&interface=org.apache.dubbo.metadata.store.MetadataReport&retry-period=4590&retry-times=23&sync-report=true");
         ZookeeperClient newZookeeperClient = 
abstractZookeeperTransporter.connect(url);
         //just for connected
         newZookeeperClient.getContent("/dubbo/test");
-        
Assertions.assertEquals(abstractZookeeperTransporter.getZookeeperClientMap().size(),
 2);
-        
Assertions.assertEquals(abstractZookeeperTransporter.getZookeeperClientMap().get("127.0.0.1:"
 + zkServerPort), newZookeeperClient);
+        
Assertions.assertEquals(abstractZookeeperTransporter.getZookeeperClientMap().size(),
 1);
+        
Assertions.assertEquals(abstractZookeeperTransporter.getZookeeperClientMap().get("127.0.0.1:"
 + zookeeperServerPort1), newZookeeperClient);
 
         ZookeeperClient newZookeeperClient2 = 
abstractZookeeperTransporter.connect(url2);
         //just for connected
         newZookeeperClient2.getContent("/dubbo/test");
         Assertions.assertEquals(newZookeeperClient, newZookeeperClient2);
-        
Assertions.assertEquals(abstractZookeeperTransporter.getZookeeperClientMap().size(),
 3);
-        
Assertions.assertEquals(abstractZookeeperTransporter.getZookeeperClientMap().get("127.0.0.1:"
 + zkServerPort2), newZookeeperClient2);
+        
Assertions.assertEquals(abstractZookeeperTransporter.getZookeeperClientMap().size(),
 2);
+        
Assertions.assertEquals(abstractZookeeperTransporter.getZookeeperClientMap().get("127.0.0.1:"
 + zookeeperServerPort2), newZookeeperClient2);
 
-        zkServer2.stop();
-        zkServer3.stop();
     }
 
     @Test
     public void testRepeatConnectForNoMatchBackUpAdd() throws Exception {
-        int zkServerPort2 = NetUtils.getAvailablePort();
-        TestingServer zkServer2 = new TestingServer(zkServerPort2, true);
-
-        int zkServerPort3 = NetUtils.getAvailablePort();
-        TestingServer zkServer3 = new TestingServer(zkServerPort3, true);
 
-        URL url = URL.valueOf("zookeeper://127.0.0.1:" + zkServerPort + 
"/org.apache.dubbo.registry.RegistryService?backup=127.0.0.1:" + zkServerPort3 
+ 
"&application=metadatareport-local-xml-provider2&dubbo=2.0.2&interface=org.apache.dubbo.registry.RegistryService&pid=47418&specVersion=2.7.0-SNAPSHOT&timestamp=1547102428828");
-        URL url2 = URL.valueOf("zookeeper://127.0.0.1:" + zkServerPort2 + 
"/org.apache.dubbo.metadata.store.MetadataReport?address=zookeeper://127.0.0.1:2181&application=metadatareport-local-xml-provider2&cycle-report=false&interface=org.apache.dubbo.metadata.store.MetadataReport&retry-period=4590&retry-times=23&sync-report=true");
+        URL url = URL.valueOf(zookeeperConnectionAddress1 + 
"/org.apache.dubbo.registry.RegistryService?backup=127.0.0.1:" + 
zookeeperServerPort1 + 
"&application=metadatareport-local-xml-provider2&dubbo=2.0.2&interface=org.apache.dubbo.registry.RegistryService&pid=47418&specVersion=2.7.0-SNAPSHOT&timestamp=1547102428828");
+        URL url2 = URL.valueOf(zookeeperConnectionAddress2 + 
"/org.apache.dubbo.metadata.store.MetadataReport?address=zookeeper://127.0.0.1:2181&application=metadatareport-local-xml-provider2&cycle-report=false&interface=org.apache.dubbo.metadata.store.MetadataReport&retry-period=4590&retry-times=23&sync-report=true");
         ZookeeperClient newZookeeperClient = 
abstractZookeeperTransporter.connect(url);
         //just for connected
         newZookeeperClient.getContent("/dubbo/test");
-        
Assertions.assertEquals(abstractZookeeperTransporter.getZookeeperClientMap().size(),
 2);
-        
Assertions.assertEquals(abstractZookeeperTransporter.getZookeeperClientMap().get("127.0.0.1:"
 + zkServerPort), newZookeeperClient);
+        
Assertions.assertEquals(abstractZookeeperTransporter.getZookeeperClientMap().size(),
 1);
+        
Assertions.assertEquals(abstractZookeeperTransporter.getZookeeperClientMap().get("127.0.0.1:"
 + zookeeperServerPort1), newZookeeperClient);
 
         ZookeeperClient newZookeeperClient2 = 
abstractZookeeperTransporter.connect(url2);
         //just for connected
         newZookeeperClient2.getContent("/dubbo/test");
         Assertions.assertNotEquals(newZookeeperClient, newZookeeperClient2);
-        
Assertions.assertEquals(abstractZookeeperTransporter.getZookeeperClientMap().size(),
 3);
-        
Assertions.assertEquals(abstractZookeeperTransporter.getZookeeperClientMap().get("127.0.0.1:"
 + zkServerPort2), newZookeeperClient2);
+        
Assertions.assertEquals(abstractZookeeperTransporter.getZookeeperClientMap().size(),
 2);
+        
Assertions.assertEquals(abstractZookeeperTransporter.getZookeeperClientMap().get("127.0.0.1:"
 + zookeeperServerPort2), newZookeeperClient2);
 
-        zkServer2.stop();
-        zkServer3.stop();
     }
 
     @Test
     public void testSameHostWithDifferentUser() throws Exception {
-        int zkPort1 = NetUtils.getAvailablePort();
-        int zkPort2 = NetUtils.getAvailablePort();
-        try (TestingServer zkServer1 = new TestingServer(zkPort1, true)) {
-            try (TestingServer zkServer2 = new TestingServer(zkPort2, true)) {
-                URL url1 = URL.valueOf("zookeeper://us1:[email protected]:" + 
zkPort1 + "/path1");
-                URL url2 = URL.valueOf("zookeeper://us2:[email protected]:" + 
zkPort1 + "/path2");
-
-                ZookeeperClient client1 = 
abstractZookeeperTransporter.connect(url1);
-                ZookeeperClient client2 = 
abstractZookeeperTransporter.connect(url2);
-
-                assertThat(client1, not(client2));
-            }
-        }
+        URL url1 = URL.valueOf("zookeeper://us1:[email protected]:" + 
zookeeperServerPort1 + "/path1");
+        URL url2 = URL.valueOf("zookeeper://us2:[email protected]:" + 
zookeeperServerPort1 + "/path2");
+        ZookeeperClient client1 = abstractZookeeperTransporter.connect(url1);
+        ZookeeperClient client2 = abstractZookeeperTransporter.connect(url2);
+        assertThat(client1, not(client2));
     }
 }
diff --git a/dubbo-test/dubbo-test-check/pom.xml 
b/dubbo-test/dubbo-test-check/pom.xml
index d7bbd6a..123301a 100644
--- a/dubbo-test/dubbo-test-check/pom.xml
+++ b/dubbo-test/dubbo-test-check/pom.xml
@@ -55,22 +55,6 @@
             <artifactId>commons-lang3</artifactId>
         </dependency>
         <dependency>
-            <groupId>org.apache.curator</groupId>
-            <artifactId>curator-test</artifactId>
-            <version>${curator.test.version}</version>
-            <scope>compile</scope>
-            <exclusions>
-                <exclusion>
-                    <groupId>com.google.guava</groupId>
-                    <artifactId>guava</artifactId>
-                </exclusion>
-                <exclusion>
-                    <groupId>org.apache.zookeeper</groupId>
-                    <artifactId>zookeeper</artifactId>
-                </exclusion>
-            </exclusions>
-        </dependency>
-        <dependency>
             <groupId>org.apache.zookeeper</groupId>
             <artifactId>zookeeper</artifactId>
             <version>${zookeeper.version}</version>
diff --git 
a/dubbo-test/dubbo-test-check/src/main/java/org/apache/dubbo/test/check/AbstractRegistryCenterTestExecutionListener.java
 
b/dubbo-test/dubbo-test-check/src/main/java/org/apache/dubbo/test/check/AbstractRegistryCenterTestExecutionListener.java
index 45bab8f..e692221 100644
--- 
a/dubbo-test/dubbo-test-check/src/main/java/org/apache/dubbo/test/check/AbstractRegistryCenterTestExecutionListener.java
+++ 
b/dubbo-test/dubbo-test-check/src/main/java/org/apache/dubbo/test/check/AbstractRegistryCenterTestExecutionListener.java
@@ -51,6 +51,13 @@ public abstract class 
AbstractRegistryCenterTestExecutionListener implements Tes
         PACKAGE_NAME.add("org.apache.dubbo.config");
         // dubbo-test module
         PACKAGE_NAME.add("org.apache.dubbo.test");
+        // dubbo-registry
+        PACKAGE_NAME.add("org.apache.dubbo.registry");
+        // dubbo-remoting-zookeeper
+        PACKAGE_NAME.add("org.apache.dubbo.remoting.zookeeper");
+        // dubbo-metadata-report-zookeeper
+        PACKAGE_NAME.add("org.apache.dubbo.metadata.store.zookeeper");
+
         enableEmbeddedZookeeper = 
Boolean.valueOf(System.getProperty(CONFIG_ENABLE_EMBEDDED_ZOOKEEPER, "true"));
     }
 
diff --git a/dubbo-test/dubbo-test-common/pom.xml 
b/dubbo-test/dubbo-test-common/pom.xml
index 69b53ff..37c0be9 100644
--- a/dubbo-test/dubbo-test-common/pom.xml
+++ b/dubbo-test/dubbo-test-common/pom.xml
@@ -58,18 +58,6 @@
             <artifactId>dubbo-rpc-rest</artifactId>
         </dependency>
         <dependency>
-            <groupId>org.apache.curator</groupId>
-            <artifactId>curator-test</artifactId>
-            <scope>compile</scope>
-            <exclusions>
-                <exclusion>
-                    <groupId>com.google.guava</groupId>
-                    <artifactId>guava</artifactId>
-                </exclusion>
-            </exclusions>
-        </dependency>
-
-        <dependency>
             <groupId>org.apache.dubbo</groupId>
             <artifactId>dubbo-test-check</artifactId>
             <version>${project.parent.version}</version>

Reply via email to