Golang單元測試 效能測試筆記

2021-09-25 22:15:20 字數 1409 閱讀 5784

前一段時間需要對自己的專案做效能測試,於是研究了一下golang的testing包。testing包為golang package提供自動化測試的支援,通過go test命令可以執行如下形式的函式

func

test***

(*testing.t)

需要注意的是golang語言規範函式採取駝峰命名的方式,因此***必須是以大寫字母開頭。

要編寫乙個新的測試指令碼需要以"_test.go"結尾,該檔案包含上述的test***x函式,該檔案應該和被測試的檔案放在同乙個包裡,這些檔案被排除在正常的package之外,執行"go test"命令將被包含。要了解詳細資訊可執行"go help test"和"go help testflag"了解。

testing函式可以用來做單元測試,下面是乙個樣例函式:

func

testping

(t *testing.t)

功能是測試相應的map裡有沒有b這個key。

執行"go test"我們可以看到

效能測試用來檢測函式的效能,編寫方法和單元測試類似,在_test.go檔案中,需要注意的是效能測試的函式以benchmark開頭。函式形如:

func

benchmark***

(*testing.b)

func

benchmarkprinln

(b *testing.b)

}

b是傳遞給效能測試的型別,用來管理效能測試的時間和迭代次數。n是b的屬性,表示迭代多少輪次,在效能測試期間會調整 b.n 直到測試函式持續足夠長的時間。最後效能測試的輸出如下:

表示乙個輪次425333ns。

如果要了解哪個函式消耗的記憶體和cpu比較多可以設定cpu和mem的輸出,執行該命令,則cpu的分析為cpu.out,記憶體消耗分析為mem.out

go test -bench=. -run=none -cpuprofile cpu.out -memprofile mem.out -count=5
可以使用go tool pprof對cpu和mem的耗時進行分析。go tool pprof是乙個命令列工具,用來對cpu概要檔案,記憶體概要檔案和程式阻塞概要檔案進行分析。 go tool pprof有很多有用的功能,利用生成cpu,mem檔案的火焰圖等圖形化分析檔案,但是需要安裝graphviz軟體,大家可以安裝這個軟體再進行相關分析。

Golang測試 單元測試

1 測試檔案必須以 test.go結尾 2 測試函式名必須以test xx開始 x為對應的需要測試的函式 3 使用go test命令開啟測試 檔名以 test結尾,函式以test開頭,在執行 go test 命令時會自動匹配測試檔案很執行測試函式 1 有時候我們將測試檔案 以 test.go 結尾的...

golang 單元測試

單元測試是質量保證十分重要的一環,好的單元測試不僅能及時地發現問題,更能夠方便地除錯,提高生產效率,所以很多人認為寫單元測試是需要額外的時間,會降低生產效率,是對單元測試最大的偏見和誤解 go 語言原生支援了單元測試,使用上非常簡單,測試 只需要放到以 test.go結尾的檔案中即可。golang的...

單元測試 筆記

標籤 空格分隔 testng mockito 學習鏈結 mockito官方文件 極客學院 testng mockito中文教程 我們往往會遇到要測試的類有很多依賴,這些依賴的類 物件 資源又有別的依賴,從而形成乙個大的依賴樹,要在單元測試的環境中完整地構建這樣的依賴,是一件很困難的事情。test p...