在 k6 中重试 http 请求

alp*_*eis 3 request k6

我有一个requests基于python的 API 测试套件,可以自动重试每个带有 408 或 5xx 响应的请求。我正在考虑在 k6 中重新实现其中一些用于负载测试。是否k6支持重试 http 请求?

Мих*_*ков 8

k6 中没有这样的功能,但是您可以通过包装k6/http函数来相当简单地添加它,例如:

function httpGet(url, params) {
    var res; 
    for (var retries = 3; retries > 0; retries--) {
        res = http.get(url, params)
        if (res.status != 408 && res.status < 500) {
            return res;
        }
    }
    return res;

}
Run Code Online (Sandbox Code Playgroud)

然后只需使用httpGet 而不是http.get;)