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...