You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
57 lines
1.2 KiB
57 lines
1.2 KiB
package http |
|
|
|
import ( |
|
http "net/http" |
|
"sync" |
|
"testing" |
|
"time" |
|
|
|
bm "go-common/library/net/http/blademaster" |
|
xtime "go-common/library/time" |
|
) |
|
|
|
var once sync.Once |
|
|
|
func startServer() { |
|
c := &ServerConfig{ |
|
Addr: "localhost:18080", |
|
Timeout: xtime.Duration(time.Second), |
|
ReadTimeout: xtime.Duration(time.Second), |
|
WriteTimeout: xtime.Duration(time.Second), |
|
} |
|
engine := bm.Default() |
|
engine.GET("/test", func(ctx *bm.Context) { |
|
ctx.JSON("", nil) |
|
}) |
|
Serve(engine, c) |
|
} |
|
|
|
func TestServer2(t *testing.T) { |
|
once.Do(startServer) |
|
resp, err := http.Get("http://localhost:18080/test") |
|
if err != nil { |
|
t.Errorf("HTTPServ: get error(%v)", err) |
|
} |
|
if resp.StatusCode != http.StatusOK { |
|
t.Errorf("http.Get get error code:%d", resp.StatusCode) |
|
} |
|
resp.Body.Close() |
|
} |
|
|
|
func BenchmarkServer2(b *testing.B) { |
|
once.Do(startServer) |
|
b.ResetTimer() |
|
b.RunParallel(func(pb *testing.PB) { |
|
for pb.Next() { |
|
resp, err := http.Get("http://localhost:18080/test") |
|
if err != nil { |
|
b.Errorf("HTTPServ: get error(%v)", err) |
|
continue |
|
} |
|
if resp.StatusCode != http.StatusOK { |
|
b.Errorf("HTTPServ: get error status code:%d", resp.StatusCode) |
|
} |
|
resp.Body.Close() |
|
} |
|
}) |
|
}
|
|
|