You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dubbo.apache.org by al...@apache.org on 2021/07/13 05:20:04 UTC

[dubbo-go-samples] branch 3.0 updated: Tracing integration new (#163)

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

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


The following commit(s) were added to refs/heads/3.0 by this push:
     new cca4102  Tracing integration new (#163)
cca4102 is described below

commit cca410205f4fb6c35aaa7816069c6fd654d95647
Author: Mulavar <97...@qq.com>
AuthorDate: Tue Jul 13 13:19:58 2021 +0800

    Tracing integration new (#163)
    
    * add tracing integration test
    
    * refactor imports
    
    * update metadata service import to local & remote
---
 start_integrate_test.sh                            |  6 +-
 tracing/dubbo/go-client/{app => cmd}/client.go     | 31 ++++++----
 .../{go-server/app => go-client/cmd}/version.go    |  0
 tracing/dubbo/go-client/conf/client.yml            | 61 +++++++++++++++++++
 tracing/dubbo/go-client/conf/log.yml               | 28 +++++++++
 tracing/dubbo/go-client/{app => pkg}/user.go       | 16 +----
 tracing/dubbo/go-server/{app => cmd}/server.go     | 23 ++++---
 .../{go-client/app => go-server/cmd}/version.go    |  0
 tracing/dubbo/go-server/conf/client.yml            | 61 +++++++++++++++++++
 tracing/dubbo/go-server/conf/log.yml               | 28 +++++++++
 tracing/dubbo/go-server/conf/server.yml            | 62 +++++++++++++++++++
 tracing/dubbo/go-server/docker/docker-compose.yml  |  8 +++
 tracing/dubbo/go-server/{app => pkg}/user.go       |  2 +-
 .../tests/integration/main_test.go}                | 33 ++++++++--
 .../tests/integration/userprovider_test.go}        | 71 ++++------------------
 15 files changed, 322 insertions(+), 108 deletions(-)

diff --git a/start_integrate_test.sh b/start_integrate_test.sh
index 14b1a03..881d7af 100755
--- a/start_integrate_test.sh
+++ b/start_integrate_test.sh
@@ -14,8 +14,11 @@
 #  See the License for the specific language governing permissions and
 #  limitations under the License.
 
+# tracing integrate test
+array=("tracing/dubbo/go-server")
+
 # async
-array=("async/go-server")
+array+=("async/go-server")
 array+=("attachment/go-server")
 array+=("config-api/go-server")
 array+=("chain")
@@ -80,7 +83,6 @@ array+=("registry/servicediscovery/nacos/go-server")
 array+=("router/uniform-router/file/go-server")
 array+=("router/uniform-router/file/go-server2")
 
-
 for((i=0;i<${#array[*]};i++))
 do
 	./integrate_test.sh "${array[i]}"
diff --git a/tracing/dubbo/go-client/app/client.go b/tracing/dubbo/go-client/cmd/client.go
similarity index 93%
copy from tracing/dubbo/go-client/app/client.go
copy to tracing/dubbo/go-client/cmd/client.go
index 45bd478..6131885 100644
--- a/tracing/dubbo/go-client/app/client.go
+++ b/tracing/dubbo/go-client/cmd/client.go
@@ -27,6 +27,15 @@ import (
 )
 
 import (
+	_ "dubbo.apache.org/dubbo-go/v3/cluster/cluster_impl"
+	_ "dubbo.apache.org/dubbo-go/v3/cluster/loadbalance"
+	"dubbo.apache.org/dubbo-go/v3/common/logger"
+	_ "dubbo.apache.org/dubbo-go/v3/common/proxy/proxy_factory"
+	"dubbo.apache.org/dubbo-go/v3/config"
+	_ "dubbo.apache.org/dubbo-go/v3/filter/filter_impl"
+	_ "dubbo.apache.org/dubbo-go/v3/protocol/dubbo"
+	_ "dubbo.apache.org/dubbo-go/v3/registry/protocol"
+	_ "dubbo.apache.org/dubbo-go/v3/registry/zookeeper"
 	hessian "github.com/apache/dubbo-go-hessian2"
 	"github.com/dubbogo/gost/log"
 	"github.com/opentracing/opentracing-go"
@@ -36,33 +45,29 @@ import (
 )
 
 import (
-	"dubbo.apache.org/dubbo-go/v3/common/logger"
-	_ "dubbo.apache.org/dubbo-go/v3/common/proxy/proxy_factory"
-	"dubbo.apache.org/dubbo-go/v3/config"
-	_ "dubbo.apache.org/dubbo-go/v3/protocol/dubbo"
-	_ "dubbo.apache.org/dubbo-go/v3/registry/protocol"
-
-	_ "dubbo.apache.org/dubbo-go/v3/filter/filter_impl"
-
-	_ "dubbo.apache.org/dubbo-go/v3/cluster/cluster_impl"
-	_ "dubbo.apache.org/dubbo-go/v3/cluster/loadbalance"
-	_ "dubbo.apache.org/dubbo-go/v3/registry/zookeeper"
+	"github.com/apache/dubbo-go-samples/tracing/dubbo/go-client/pkg"
 )
 
 var (
+	userProvider        = &pkg.UserProvider{}
 	survivalTimeout int = 10e9
 )
 
+func init() {
+	config.SetConsumerService(userProvider)
+	hessian.RegisterPOJO(&pkg.User{})
+}
+
 // they are necessary:
 // 		export CONF_CONSUMER_FILE_PATH="xxx"
 // 		export APP_LOG_CONF_FILE="xxx"
 func main() {
-	hessian.RegisterPOJO(&User{})
+	hessian.RegisterPOJO(&pkg.User{})
 	config.Load()
 
 	initZipkin()
 	gxlog.CInfo("\n\n\nstart to test dubbo")
-	user := &User{}
+	user := &pkg.User{}
 	span, ctx := opentracing.StartSpanFromContext(context.Background(), "Test-Client-Service")
 	err := userProvider.GetUser(ctx, []interface{}{"A001"}, user)
 	span.Finish()
diff --git a/tracing/dubbo/go-server/app/version.go b/tracing/dubbo/go-client/cmd/version.go
similarity index 100%
rename from tracing/dubbo/go-server/app/version.go
rename to tracing/dubbo/go-client/cmd/version.go
diff --git a/tracing/dubbo/go-client/conf/client.yml b/tracing/dubbo/go-client/conf/client.yml
new file mode 100644
index 0000000..3bcc1cd
--- /dev/null
+++ b/tracing/dubbo/go-client/conf/client.yml
@@ -0,0 +1,61 @@
+# dubbo client yaml configure file
+
+
+check: true
+# client
+request_timeout : "3s"
+# connect timeout
+connect_timeout : "3s"
+
+# application config
+application:
+  organization : "ikurento.com"
+  name  : "BDTService"
+  module : "dubbogo user-info client"
+  version : "0.0.1"
+  owner : "ZX"
+  environment : "test"
+
+registries :
+  "hangzhouzk":
+    protocol: "zookeeper"
+    timeout	: "3s"
+    address: "127.0.0.1:2181"
+    username: ""
+    password: ""
+
+references:
+  "UserProvider":
+    # 可以指定多个registry,使用逗号隔开;不指定默认向所有注册中心注册
+    registry: "hangzhouzk"
+    protocol : "dubbo"
+    interface : "com.ikurento.user.UserProvider"
+    cluster: "failover"
+    methods :
+    - name: "GetUser"
+      retries: 3
+
+protocol_conf:
+  dubbo:
+    reconnect_interval: 0
+    connection_number: 2
+    heartbeat_period: "5s"
+    session_timeout: "180s"
+    pool_size: 64
+    pool_ttl: 600
+    getty_session_param:
+      compress_encoding: false
+      tcp_no_delay: true
+      tcp_keep_alive: true
+      keep_alive_period: "120s"
+      tcp_r_buf_size: 262144
+      tcp_w_buf_size: 65536
+      pkg_rq_size: 1024
+      pkg_wq_size: 512
+      tcp_read_timeout: "1s"
+      tcp_write_timeout: "5s"
+      wait_timeout: "1s"
+      max_msg_len: 10240
+      session_name: "client"
+
+filter: "tracing"
\ No newline at end of file
diff --git a/tracing/dubbo/go-client/conf/log.yml b/tracing/dubbo/go-client/conf/log.yml
new file mode 100644
index 0000000..baee0b7
--- /dev/null
+++ b/tracing/dubbo/go-client/conf/log.yml
@@ -0,0 +1,28 @@
+
+level: "info"
+development: false
+disableCaller: false
+disableStacktrace: true
+sampling:
+encoding: "console"
+
+# encoder
+encoderConfig:
+  messageKey: "message"
+  levelKey: "level"
+  timeKey: "time"
+  nameKey: "logger"
+  callerKey: "caller"
+  stacktraceKey: "stacktrace"
+  lineEnding: ""
+  levelEncoder: "capitalColor"
+  timeEncoder: "iso8601"
+  durationEncoder: "seconds"
+  callerEncoder: "short"
+  nameEncoder: ""
+
+outputPaths:
+  - "stderr"
+errorOutputPaths:
+  - "stderr"
+initialFields:
diff --git a/tracing/dubbo/go-client/app/user.go b/tracing/dubbo/go-client/pkg/user.go
similarity index 82%
copy from tracing/dubbo/go-client/app/user.go
copy to tracing/dubbo/go-client/pkg/user.go
index d144dd6..42c7eb9 100644
--- a/tracing/dubbo/go-client/app/user.go
+++ b/tracing/dubbo/go-client/pkg/user.go
@@ -15,27 +15,13 @@
  * limitations under the License.
  */
 
-package main
+package pkg
 
 import (
 	"context"
 	"time"
 )
 
-import (
-	"dubbo.apache.org/dubbo-go/v3/config"
-	hessian "github.com/apache/dubbo-go-hessian2"
-)
-
-var (
-	userProvider = &UserProvider{}
-)
-
-func init() {
-	config.SetConsumerService(userProvider)
-	hessian.RegisterPOJO(&User{})
-}
-
 type User struct {
 	ID   string
 	Name string
diff --git a/tracing/dubbo/go-server/app/server.go b/tracing/dubbo/go-server/cmd/server.go
similarity index 96%
rename from tracing/dubbo/go-server/app/server.go
rename to tracing/dubbo/go-server/cmd/server.go
index efcdbc9..906dec1 100644
--- a/tracing/dubbo/go-server/app/server.go
+++ b/tracing/dubbo/go-server/cmd/server.go
@@ -26,6 +26,15 @@ import (
 )
 
 import (
+	_ "dubbo.apache.org/dubbo-go/v3/cluster/cluster_impl"
+	_ "dubbo.apache.org/dubbo-go/v3/cluster/loadbalance"
+	"dubbo.apache.org/dubbo-go/v3/common/logger"
+	_ "dubbo.apache.org/dubbo-go/v3/common/proxy/proxy_factory"
+	"dubbo.apache.org/dubbo-go/v3/config"
+	_ "dubbo.apache.org/dubbo-go/v3/filter/filter_impl"
+	_ "dubbo.apache.org/dubbo-go/v3/protocol/dubbo"
+	_ "dubbo.apache.org/dubbo-go/v3/registry/protocol"
+	_ "dubbo.apache.org/dubbo-go/v3/registry/zookeeper"
 	hessian "github.com/apache/dubbo-go-hessian2"
 	"github.com/opentracing/opentracing-go"
 	zipkinot "github.com/openzipkin-contrib/zipkin-go-opentracing"
@@ -34,17 +43,7 @@ import (
 )
 
 import (
-	"dubbo.apache.org/dubbo-go/v3/common/logger"
-	"dubbo.apache.org/dubbo-go/v3/config"
-	_ "dubbo.apache.org/dubbo-go/v3/protocol/dubbo"
-	_ "dubbo.apache.org/dubbo-go/v3/registry/protocol"
-
-	_ "dubbo.apache.org/dubbo-go/v3/common/proxy/proxy_factory"
-	_ "dubbo.apache.org/dubbo-go/v3/filter/filter_impl"
-
-	_ "dubbo.apache.org/dubbo-go/v3/cluster/cluster_impl"
-	_ "dubbo.apache.org/dubbo-go/v3/cluster/loadbalance"
-	_ "dubbo.apache.org/dubbo-go/v3/registry/zookeeper"
+	"github.com/apache/dubbo-go-samples/tracing/dubbo/go-server/pkg"
 )
 
 var (
@@ -56,7 +55,7 @@ var (
 // 		export APP_LOG_CONF_FILE="xxx"
 func main() {
 
-	hessian.RegisterPOJO(&User{})
+	hessian.RegisterPOJO(&pkg.User{})
 	config.Load()
 
 	initZipkin()
diff --git a/tracing/dubbo/go-client/app/version.go b/tracing/dubbo/go-server/cmd/version.go
similarity index 100%
rename from tracing/dubbo/go-client/app/version.go
rename to tracing/dubbo/go-server/cmd/version.go
diff --git a/tracing/dubbo/go-server/conf/client.yml b/tracing/dubbo/go-server/conf/client.yml
new file mode 100644
index 0000000..3bcc1cd
--- /dev/null
+++ b/tracing/dubbo/go-server/conf/client.yml
@@ -0,0 +1,61 @@
+# dubbo client yaml configure file
+
+
+check: true
+# client
+request_timeout : "3s"
+# connect timeout
+connect_timeout : "3s"
+
+# application config
+application:
+  organization : "ikurento.com"
+  name  : "BDTService"
+  module : "dubbogo user-info client"
+  version : "0.0.1"
+  owner : "ZX"
+  environment : "test"
+
+registries :
+  "hangzhouzk":
+    protocol: "zookeeper"
+    timeout	: "3s"
+    address: "127.0.0.1:2181"
+    username: ""
+    password: ""
+
+references:
+  "UserProvider":
+    # 可以指定多个registry,使用逗号隔开;不指定默认向所有注册中心注册
+    registry: "hangzhouzk"
+    protocol : "dubbo"
+    interface : "com.ikurento.user.UserProvider"
+    cluster: "failover"
+    methods :
+    - name: "GetUser"
+      retries: 3
+
+protocol_conf:
+  dubbo:
+    reconnect_interval: 0
+    connection_number: 2
+    heartbeat_period: "5s"
+    session_timeout: "180s"
+    pool_size: 64
+    pool_ttl: 600
+    getty_session_param:
+      compress_encoding: false
+      tcp_no_delay: true
+      tcp_keep_alive: true
+      keep_alive_period: "120s"
+      tcp_r_buf_size: 262144
+      tcp_w_buf_size: 65536
+      pkg_rq_size: 1024
+      pkg_wq_size: 512
+      tcp_read_timeout: "1s"
+      tcp_write_timeout: "5s"
+      wait_timeout: "1s"
+      max_msg_len: 10240
+      session_name: "client"
+
+filter: "tracing"
\ No newline at end of file
diff --git a/tracing/dubbo/go-server/conf/log.yml b/tracing/dubbo/go-server/conf/log.yml
new file mode 100644
index 0000000..baee0b7
--- /dev/null
+++ b/tracing/dubbo/go-server/conf/log.yml
@@ -0,0 +1,28 @@
+
+level: "info"
+development: false
+disableCaller: false
+disableStacktrace: true
+sampling:
+encoding: "console"
+
+# encoder
+encoderConfig:
+  messageKey: "message"
+  levelKey: "level"
+  timeKey: "time"
+  nameKey: "logger"
+  callerKey: "caller"
+  stacktraceKey: "stacktrace"
+  lineEnding: ""
+  levelEncoder: "capitalColor"
+  timeEncoder: "iso8601"
+  durationEncoder: "seconds"
+  callerEncoder: "short"
+  nameEncoder: ""
+
+outputPaths:
+  - "stderr"
+errorOutputPaths:
+  - "stderr"
+initialFields:
diff --git a/tracing/dubbo/go-server/conf/server.yml b/tracing/dubbo/go-server/conf/server.yml
new file mode 100644
index 0000000..4e101f5
--- /dev/null
+++ b/tracing/dubbo/go-server/conf/server.yml
@@ -0,0 +1,62 @@
+# dubbo server yaml configure file
+
+
+# application config
+application:
+  organization : "ikurento.com"
+  name : "BDTService"
+  module : "dubbogo user-info server"
+  version : "0.0.1"
+  owner : "ZX"
+  environment : "test"
+
+registries :
+  "hangzhouzk":
+    protocol: "zookeeper"
+    timeout	: "3s"
+    address: "127.0.0.1:2181"
+    username: ""
+    password: ""
+
+
+
+services:
+  "UserProvider":
+    # 可以指定多个registry,使用逗号隔开;不指定默认向所有注册中心注册
+    registry: "hangzhouzk"
+    protocol : "dubbo"
+    # 相当于dubbo.xml中的interface
+    interface : "com.ikurento.user.UserProvider"
+    loadbalance: "random"
+    warmup: "100"
+    cluster: "failover"
+    methods:
+    - name: "GetUser"
+      retries: 1
+      loadbalance: "random"
+
+protocols:
+  "dubbo":
+    name: "dubbo"
+    #    ip : "127.0.0.1"
+    port: 20000
+
+
+protocol_conf:
+  dubbo:
+    session_number: 700
+    session_timeout: "180s"
+    getty_session_param:
+      compress_encoding: false
+      tcp_no_delay: true
+      tcp_keep_alive: true
+      keep_alive_period: "120s"
+      tcp_r_buf_size: 262144
+      tcp_w_buf_size: 65536
+      pkg_rq_size: 1024
+      pkg_wq_size: 512
+      tcp_read_timeout: "1s"
+      tcp_write_timeout: "5s"
+      wait_timeout: "1s"
+      max_msg_len: 1024
+      session_name: "server"
diff --git a/tracing/dubbo/go-server/docker/docker-compose.yml b/tracing/dubbo/go-server/docker/docker-compose.yml
new file mode 100644
index 0000000..386a42e
--- /dev/null
+++ b/tracing/dubbo/go-server/docker/docker-compose.yml
@@ -0,0 +1,8 @@
+version: '3'
+
+services:
+  zookeeper:
+    image: zookeeper
+    ports:
+      - 2181:2181
+    restart: on-failure
\ No newline at end of file
diff --git a/tracing/dubbo/go-server/app/user.go b/tracing/dubbo/go-server/pkg/user.go
similarity index 99%
rename from tracing/dubbo/go-server/app/user.go
rename to tracing/dubbo/go-server/pkg/user.go
index 3166b1e..5e6fb21 100644
--- a/tracing/dubbo/go-server/app/user.go
+++ b/tracing/dubbo/go-server/pkg/user.go
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package main
+package pkg
 
 import (
 	"context"
diff --git a/tracing/dubbo/go-client/app/user.go b/tracing/dubbo/go-server/tests/integration/main_test.go
similarity index 59%
rename from tracing/dubbo/go-client/app/user.go
rename to tracing/dubbo/go-server/tests/integration/main_test.go
index d144dd6..f29ce68 100644
--- a/tracing/dubbo/go-client/app/user.go
+++ b/tracing/dubbo/go-server/tests/integration/main_test.go
@@ -1,3 +1,5 @@
+// +build integration
+
 /*
  * Licensed to the Apache Software Foundation (ASF) under one or more
  * contributor license agreements.  See the NOTICE file distributed with
@@ -15,29 +17,48 @@
  * limitations under the License.
  */
 
-package main
+package integration
 
 import (
 	"context"
+	"os"
+	"testing"
 	"time"
 )
 
 import (
-	"dubbo.apache.org/dubbo-go/v3/config"
 	hessian "github.com/apache/dubbo-go-hessian2"
 )
 
-var (
-	userProvider = &UserProvider{}
+import (
+	_ "dubbo.apache.org/dubbo-go/v3/cluster/cluster_impl"
+	_ "dubbo.apache.org/dubbo-go/v3/cluster/loadbalance"
+	_ "dubbo.apache.org/dubbo-go/v3/common/proxy/proxy_factory"
+	"dubbo.apache.org/dubbo-go/v3/config"
+	_ "dubbo.apache.org/dubbo-go/v3/filter/filter_impl"
+	_ "dubbo.apache.org/dubbo-go/v3/metadata/mapping/memory"
+	_ "dubbo.apache.org/dubbo-go/v3/metadata/report/zookeeper"
+	_ "dubbo.apache.org/dubbo-go/v3/metadata/service/local"
+	_ "dubbo.apache.org/dubbo-go/v3/metadata/service/remote"
+	_ "dubbo.apache.org/dubbo-go/v3/protocol/dubbo"
+	_ "dubbo.apache.org/dubbo-go/v3/registry/protocol"
+	_ "dubbo.apache.org/dubbo-go/v3/registry/servicediscovery"
+	_ "dubbo.apache.org/dubbo-go/v3/registry/zookeeper"
 )
 
-func init() {
+var userProvider = new(UserProvider)
+
+func TestMain(m *testing.M) {
 	config.SetConsumerService(userProvider)
 	hessian.RegisterPOJO(&User{})
+	config.Load()
+	time.Sleep(3 * time.Second)
+
+	os.Exit(m.Run())
 }
 
 type User struct {
-	ID   string
+	Id   string
 	Name string
 	Age  int32
 	Time time.Time
diff --git a/tracing/dubbo/go-client/app/client.go b/tracing/dubbo/go-server/tests/integration/userprovider_test.go
similarity index 60%
rename from tracing/dubbo/go-client/app/client.go
rename to tracing/dubbo/go-server/tests/integration/userprovider_test.go
index 45bd478..d795eb9 100644
--- a/tracing/dubbo/go-client/app/client.go
+++ b/tracing/dubbo/go-server/tests/integration/userprovider_test.go
@@ -1,3 +1,5 @@
+// +build integration
+
 /*
  * Licensed to the Apache Software Foundation (ASF) under one or more
  * contributor license agreements.  See the NOTICE file distributed with
@@ -15,86 +17,37 @@
  * limitations under the License.
  */
 
-package main
+package integration
 
 import (
 	"context"
-	"fmt"
-	"os"
-	"os/signal"
-	"syscall"
-	"time"
+	"testing"
 )
-
 import (
-	hessian "github.com/apache/dubbo-go-hessian2"
 	"github.com/dubbogo/gost/log"
 	"github.com/opentracing/opentracing-go"
 	zipkinot "github.com/openzipkin-contrib/zipkin-go-opentracing"
 	"github.com/openzipkin/zipkin-go"
 	zipkinhttp "github.com/openzipkin/zipkin-go/reporter/http"
-)
+	"github.com/stretchr/testify/assert"
 
-import (
 	"dubbo.apache.org/dubbo-go/v3/common/logger"
-	_ "dubbo.apache.org/dubbo-go/v3/common/proxy/proxy_factory"
-	"dubbo.apache.org/dubbo-go/v3/config"
-	_ "dubbo.apache.org/dubbo-go/v3/protocol/dubbo"
-	_ "dubbo.apache.org/dubbo-go/v3/registry/protocol"
-
-	_ "dubbo.apache.org/dubbo-go/v3/filter/filter_impl"
-
-	_ "dubbo.apache.org/dubbo-go/v3/cluster/cluster_impl"
-	_ "dubbo.apache.org/dubbo-go/v3/cluster/loadbalance"
-	_ "dubbo.apache.org/dubbo-go/v3/registry/zookeeper"
-)
-
-var (
-	survivalTimeout int = 10e9
 )
 
-// they are necessary:
-// 		export CONF_CONSUMER_FILE_PATH="xxx"
-// 		export APP_LOG_CONF_FILE="xxx"
-func main() {
-	hessian.RegisterPOJO(&User{})
-	config.Load()
-
+func TestGetUser(t *testing.T) {
 	initZipkin()
 	gxlog.CInfo("\n\n\nstart to test dubbo")
 	user := &User{}
 	span, ctx := opentracing.StartSpanFromContext(context.Background(), "Test-Client-Service")
 	err := userProvider.GetUser(ctx, []interface{}{"A001"}, user)
 	span.Finish()
-	if err != nil {
-		panic(err)
-	}
-	gxlog.CInfo("response result: %v\n", user)
-	initSignal()
-}
-
-func initSignal() {
-	signals := make(chan os.Signal, 1)
-	// It is not possible to block SIGKILL or syscall.SIGSTOP
-	signal.Notify(signals, os.Interrupt, os.Kill, syscall.SIGHUP,
-		syscall.SIGQUIT, syscall.SIGTERM, syscall.SIGINT)
-	for {
-		sig := <-signals
-		logger.Infof("get signal %s", sig.String())
-		switch sig {
-		case syscall.SIGHUP:
-			// reload()
-		default:
-			time.AfterFunc(time.Duration(survivalTimeout), func() {
-				logger.Warnf("app exit now by force...")
-				os.Exit(1)
-			})
+	assert.Nil(t, err)
 
-			// The program exits normally or timeout forcibly exits.
-			fmt.Println("app exit now...")
-			return
-		}
-	}
+	gxlog.CInfo("response result: %v\n", user)
+	//assert.Equal(t, "A001", user.Id)
+	assert.Equal(t, "Alex Stocks", user.Name)
+	assert.Equal(t, int32(18), user.Age)
+	assert.NotNil(t, user.Time)
 }
 
 func initZipkin() {