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  }