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无需输入

 

posted @ 2020-09-03 19:48  _titleInfo  阅读(1176)  评论(0编辑  收藏  举报
//雪花飘落效果