格式:
func BenchmarkXxx(b *testing.B)
簡單代碼:
package examplesimport ( "io/ioutil" "net/http" "testing")// 測試並發效率func BenchmarkLoopsParallel(b *testing.B) { b.RunParallel(func(pb *testing.PB) { //並發 for pb.Next() { resp, err := http.Get("http://10.10.200.128:8080/image?t=MDA") if err != nil { // handle error } cookies := resp.Cookies() verify_key := "" for _, v := range cookies { if v.Name == "VERIFY_KEY" { verify_key = v.Value } } if err != nil { // handle error } defer resp.Body.Close() if verify_key == "" { b.Fail() } } })}
運行
go test -bench="."
- -parallel 50 設定並發
- -count n 設定次數
testing.T
判定失敗介面
列印資訊介面
- Log 資料流 (cout 類似)
- Logf format (printf 類似)
- SkipNow 跳過當前測試
- Skiped 檢測是否跳過
綜合介面產生:
- Error / Errorf 報告出錯繼續 [ Log / Logf + Fail ]
- Fatel / Fatelf 報告出錯終止 [ Log / Logf + FailNow ]
- Skip / Skipf 報告並跳過 [ Log / Logf + SkipNow ]
testing.B
首先 , testing.B 擁有testing.T 的全部介面。
- SetBytes( i uint64) 統計記憶體消耗, 如果你需要的話。
- SetParallelism(p int) 制定並行數目。
- StartTimer / StopTimer / ResertTimer 操作計時器
testing.PB
注意點
- 檔案需已test.go結尾