本文是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 --web-host="127.0.0.1"
開啟slave:go run httptest.go --master-host=127.0.0.1 --master-port=5557
執行后就可以看到slave連接到了locust,可進行測試,短時間內產生大量負載。web頁面輸入127.0.0.1:8089,第三行的url無需輸入