go-micro.dev/v5@v5.12.0/test/benchmark.go (about) 1 package test 2 3 import ( 4 "testing" 5 6 "go-micro.dev/v5" 7 "go-micro.dev/v5/broker" 8 "go-micro.dev/v5/client" 9 "go-micro.dev/v5/registry" 10 "go-micro.dev/v5/server" 11 "go-micro.dev/v5/transport" 12 "go-micro.dev/v5/util/test" 13 ) 14 15 func BenchmarkService(b *testing.B) { 16 cfg := ServiceTestConfig{ 17 Name: "test-service", 18 NewService: newService, 19 Parallel: []int{1, 8, 16, 32, 64}, 20 Sequential: []int{0}, 21 Streams: []int{0}, 22 // PubSub: []int{10}, 23 } 24 25 cfg.Run(b) 26 } 27 28 func newService(name string, opts ...micro.Option) (micro.Service, error) { 29 r := registry.NewMemoryRegistry( 30 registry.Services(test.Data), 31 ) 32 33 b := broker.NewMemoryBroker() 34 35 t := transport.NewHTTPTransport() 36 c := client.NewClient( 37 client.Transport(t), 38 client.Broker(b), 39 ) 40 41 s := server.NewRPCServer( 42 server.Name(name), 43 server.Registry(r), 44 server.Transport(t), 45 server.Broker(b), 46 ) 47 48 if err := s.Init(); err != nil { 49 return nil, err 50 } 51 52 options := []micro.Option{ 53 micro.Name(name), 54 micro.Server(s), 55 micro.Client(c), 56 micro.Registry(r), 57 micro.Broker(b), 58 } 59 options = append(options, opts...) 60 61 srv := micro.NewService(options...) 62 63 return srv, nil 64 }