go:go結合python的locust,進行http性能測試


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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM