go:go結合python的locust,進行http效能測試
阿新 • • 發佈:2020-09-03
本文是go語言和python的locust結合起來,短時間內對http進行效能測試,產生大量負載(其實就是一個負載生成器)
前提:
go version===>go1.14.6
python===>3.7.0
locust===>0.14.6
工具boomer:github.com/myzhan/boomer
程式碼:
locust:只是用來開啟一個locust,作為master
test.py
1 from locust import TaskSet,Locust 2 3 class test(TaskSet): 4 5 def test1(self):6 pass 7 8 class myTest(Locust): 9 task_set=test
go:用來產生負載,作為slave
httptest.go
package main import( "fmt" "net/http" "time" ) func do_post(){ start:=time.Now() // ...省略發http請求的程式碼。因為程式碼較多,內網無法複製到外網~ end:=time.Since(start) if 200 == req.StatusCode{ boomer.RecodeSuccess("http","do_post",end.Nanoseconds()/int64(time.Millisecond),int64(10)) }else{ boomer.RecoderFailure(...) } } func main(){ task1:=&boomer.Task{ Weight:100 Fn:do_post Name:"do_post" } boomer.Run(task1) }
執行:
開啟master:locust --master -f test.py
開啟slave:go run httptest.go --master-host=127.0.0.1 --master-port=5557
執行後就可以看到slave連線到了locust,可進行測試,短時間內產生大量負載。
內網沒法貼圖上來,沒法複製程式碼,一句句寫太不容易了