当前位置 : 主页 > 网络安全 > 测试自动化 >

性能测试 – Vegeta负载测试:攻击中每个POST请求的不同主体

来源:互联网 收集:自由互联 发布时间:2021-06-22
有没有办法改变蔬菜中的json体在蔬菜中的后期请求负荷测试. 我想在json正文中为每个请求发送一个带有不同参数的请求.例如,如果我有 POST https://endpoint.com/createNew@/targets/data.json 和data
有没有办法改变蔬菜中的json体在蔬菜中的后期请求负荷测试.

我想在json正文中为每个请求发送一个带有不同参数的请求.例如,如果我有

POST https://endpoint.com/createNew
@/targets/data.json

和data.json看起来像

{
   "id": 1234
}

制作它的最佳方法是什么,以便我们为攻击中的每个请求提供不同的请求数据?

我需要做类似的事情,并决定使用vegeta lib而不是cli,这允许我控制HTTP请求

所以你需要编写自己的函数来返回vegeta.Targeter

func NewCustomTargeter() vegeta.Targeter {
    return func(tgt *vegeta.Target) error {
        if tgt == nil {
            return vegeta.ErrNilTarget
        }

        tgt.Method = "POST"

        tgt.URL = "https://endpoint.com/createNew"

        rand := generateFourDigitRandom()

        payload := '{ "id":"`+rand+ `" } `
        tgt.Body = []byte(payload)
        return nil
    }
}

并在这个主函数中使用此函数

targeter := NewCustomTargeter()
    attacker := vegeta.NewAttacker()
    var metrics vegeta.Metrics
    for res := range attacker.Attack(targeter, rate, duration, "Load Test") {
        metrics.Add(res)
    }
    metrics.Close()
    fmt.Printf("%+v  \n", metrics)
网友评论