golang web介面壓力測試,效能測試 1

2021-09-27 07:45:17 字數 4114 閱讀 1812

2.web介面壓力測試

壓力測試之前,先看下單元測試,主要怕自己忘記,僅供參考

go test是golang的單元測試命令

"github.com/parnurzeal/gorequest"//gorequest需要go get

)var (

//定義命令列引數,可以go test -arg=

host *string

ip *string

requrl string

sign *string

)func init()

func testreq (t *testing.t)

//mockfile 代表測試樣本資料

}}1:需要go get github.com/parnurzeal/gorequest

2:單元測試go test -v test.go -args -ip=test.com -host=test.com -sign=ccbb608d5c618ff7d55bedc19de4138f

-args後面跟引數列表

"github.com/parnurzeal/gorequest"//gorequest需要go get

)var (

//定義命令列引數,可以go test -arg=

host *string

ip *string

requrl string

sign *string

)func init()

//壓力測試程式

func benchmarksend (b *testing.b)

}//mockfile 代表測試樣本資料

}}壓力測試:

go test -v -run=「none」 -bench=「send*」 -benchtime=10s test.go

如果是帶 cpu和記憶體分析的

go test -v -run=「none」 -bench=「send*」 -benchtime=10s -cpuprofile cpu.out -memprofile mem.out test.go

簡單的看cpu效果

輸出 上面cpu和記憶體資料 到

go tool pprof -png cpu.out > cpu.png

也可以直接進入命令列,help查詢相關命令:

go tool pprof cput.out

不過這種http請求壓測看記憶體和trace資料沒有什麼意義

下面介紹不同過http協議,不執行網路http請求,直接壓測函式內部呼叫http handler函式,我使用的框架是echo

我使用的框架是echo,其他框架應該也差不多,下面**僅供參考

"github.com/parnurzeal/gorequest"//gorequest需要go get

)var (

//定義命令列引數,可以go test -arg=

host *string

ip *string

requrl string

sign *string

)func init()

//壓力測試程式

func benchmarksend (b *testing.b)

}因為是直接呼叫的內部handler函式,所以cpu消耗和記憶體都比較真實

如果是帶 cpu和記憶體分析的

go test -v -run=「none」 -bench=「send*」 -benchtime=10s -cpuprofile cpu.out -memprofile mem.out test.go

如果要分析攜程呼叫和網路阻塞:

訪問http:host:port即可看到

ab cookie 壓力測試介面

ab是apache自帶的壓力測試工具,近期需要壓測乙個介面,涉及使用post請求,並在其中帶cookie。方法總結如下 1.傳送cookie 方法1 c key1 value1 key2 value2.1例 ab n 1 c name ball age 99 male 1服務端可拿到name,age...

jmeter APP介面壓力測試

第二步 jmeter中新增需要測試的介面 b.http請求預設值設定如下 在eclipse中編寫需要加密的 除錯成功後,在elipse中到處jar包 將匯出的jar放到jmeter安裝目錄下的lib資料夾下 因為sign欄位是由 時間戳 key加密而成,所以我們先需要獲取時間戳 因為所有介面中的si...

介面壓力測試軟體jmeter

另外如果介面請求的是json引數,請參考 這裡說優化方案 當用壓力測試軟體測試介面在高併發的情況下出現記憶體溢位,資料庫死鎖等系統奔潰情況的時候,就要考慮優化 優化途徑一般有二 1 用redis快取 public list getuserinfobycache integer userid gett...