天天看點

Golang中的單元測試與壓力測試

Golang中自帶了testing包,可以用于單元測試和壓力測試。

在自己的包下:

比如,自己寫的一個包為logger包,那麼單元測試和壓力測試在logger包目錄下直接進行即可。

如果不在自己的包目錄下,那麼就應當在go test指令之後,再加上包的相對位址,比如位址為:%GOPATH%/src/aaa/bbb/ccc/ddd/xxx,則使用的位址就為:aaa/bbb/ccc/ddd/xxx

指令就為:

go test aaa/bbb/ccc/ddd/xxx
           

首先,測試時應将檔案名命名為:xxx_test.go檔案,要求必須以_test.go結尾。

其次,單元測試的測試函數名稱必須為:TestXxx

即:應以Test開頭,且Test之後的第一個字母必須大寫。

與單元測試相似,壓力測試的測試函數名稱必須為:BenchmarkXxx

其中,單元測試TestXxx應傳入(t *Testing.T)來進行測試。

壓力測試BenchmarkXxx應傳入(b *Testing.B)來進行測試。因為是壓力測試,是以,可以在其中使用for循環,for循環的次數可以使用壓力測試自帶的次數:b.N即:for i=0;i<b.N;i++即可。

最後,在測試時,在本目錄下打開終端,

單元測試:使用go test指令即可運作所有的單元測試。使用go test -v指令可檢視單元測試的詳細資訊。

如果隻想運作一個指定的單元測試,使用

go test -run TestXxx
           

指令即可。

壓力測試:使用go test -bench . 指令即可運作壓力測試。

注意:指令是:

後面有個點“.”哦

這個點“.”代表運作所有的壓力測試,如果隻想運作一個壓力測試,使用

go test -bench BenchmarkXxx
           

即可。