本文是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無需輸入
