github.com/ztalab/ZACA@v0.0.1/pkg/caclient/test/bench_test.go (about) 1 package test 2 3 import ( 4 "fmt" 5 "github.com/valyala/fasthttp" 6 "github.com/ztalab/ZACA/pkg/caclient" 7 "github.com/ztalab/ZACA/pkg/spiffe" 8 cflog "github.com/ztalab/cfssl/log" 9 "net" 10 "testing" 11 "time" 12 ) 13 14 func BenchmarkNormalHTTP(b *testing.B) { 15 go func() { 16 httpServer() 17 }() 18 time.Sleep(2 * time.Second) 19 client := httpClient(nil) 20 b.ResetTimer() 21 for i := 0; i < b.N; i++ { 22 client.Get("http://127.0.0.1:8083/test") 23 } 24 } 25 26 func BenchmarkHTTPS(b *testing.B) { 27 cflog.Level = cflog.LevelDebug 28 c := caclient.NewCAI( 29 caclient.WithCAServer(caclient.RoleDefault, "https://127.0.0.1:8081"), 30 caclient.WithOcspAddr("http://127.0.0.1:8082")) 31 serverEx, err := c.NewExchanger(&spiffe.IDGIdentity{ 32 SiteID: "test_site", 33 ClusterID: "cluster_test", 34 UniqueID: "server1", 35 }) 36 clientEx, err := c.NewExchanger(&spiffe.IDGIdentity{ 37 SiteID: "test_site", 38 ClusterID: "cluster_test", 39 UniqueID: "client1", 40 }) 41 if err != nil { 42 b.Error("transport Error: ", err) 43 } 44 45 serverTls, err := serverEx.ServerTLSConfig() 46 if err != nil { 47 b.Error("Server TLS get error: ", err) 48 } 49 clientTls, err := clientEx.ClientTLSConfig("127.0.0.1") 50 if err != nil { 51 b.Error("client tls config get error: ", err) 52 } 53 54 go func() { 55 httpsServer(serverTls.TLSConfig()) 56 }() 57 client := httpClient(clientTls.TLSConfig()) 58 b.ResetTimer() 59 for i := 0; i < b.N; i++ { 60 client.Get("https://127.0.0.1:8082/test") 61 } 62 } 63 64 func httpServer() { 65 ln, err := net.Listen("tcp4", "0.0.0.0:8083") 66 if err != nil { 67 panic(err) 68 } 69 70 defer ln.Close() 71 72 if err := fasthttp.Serve(ln, func(ctx *fasthttp.RequestCtx) { 73 str := ctx.Request.String() 74 fmt.Println("Server reception: ", str) 75 ctx.SetStatusCode(200) 76 ctx.SetBody([]byte("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA")) 77 }); err != nil { 78 panic(err) 79 } 80 }