即使在43xxx上设置了默认值,wcat也会在端口80上重定向

时间:2011-10-20 08:29:17

标签: iis iis-7 load-testing stress-testing wcat

我正在使用IIS 7并在端口43xxx上部署了一个网站。我正在尝试使用wcat进行负载测试。我正在尝试访问URL / directaccess /,它将返回状态代码302,重定向到另一个URL - 谁也将返回302状态代码,之后最后一个URL将返回200OK。

我已经为wcat编写了场景和设置文件。在默认情况下指定(并且也按尝试尝试)将端口设置为43xxx,但是当我运行wcat时它返回一个302 ok和另外400个错误(它们以相同的数字返回,所以我猜第一个请求是正常的,后续(第一次重定向)很糟糕。

我还查看了HTTPErr文件夹来检查日志,那里有很多400错误,表明GET请求应该是第二个URL,但是在端口80上完成,而不是在我指定的43xxx请求(或默认设置 - 如果我从文档中很好地理解它在重定向中继承)。

我想知道这对wcat是否是“正常”行为。不跟随初始请求在同一端口上重定向。

忽略我在本地机器上测试的事实。在将它们移动到另一台机器之前,我只使用它来设置测试。

这是使用的场景。

scenario
{
warmup   = 2;
duration = 5;
cooldown = 2;

default
{
    setheader
    {
        name    = "Connection";
        value   = "keep-alive";
    }

    version     = HTTP11;
    statuscode  = 200;
    close       = ka;
    port = 43111;
    redirect = true;
}

transaction
{
    id = "root transaction";
    weight = 100;

    request
    {
        url = "/login/DirectAccess.rails?code=xxxxxxxxx";
        statuscode = 302;
        redirect = true;
        port = 43111;
    }

    sleep
    {
        delay = 1000;
    }
}
}

1 个答案:

答案 0 :(得分:2)

我想这取决于服务器在302重定向的 Location 标头中发回的内容。如果它不包含域名(例如 Location:/ redirect / to / page ),则WCAT不应更改域名或端口号并继续使用相同的端口号。但是,如果 Location 标头包含没有端口号的完整域名(例如 Location:http://www.thissite.com/redirect/to/page ),则WCAT将切换为使用端口80。