【问题标题】:Load testing Web Service using webtest使用 webtest 对 Web 服务进行负载测试
【发布时间】:2009-10-15 13:06:54
【问题描述】:

我有一个 webtest,对 WebService 进行了简单的调用,如下所示:

MyWebService webService = new MyWebService();

webService.Timeout = 180000;

webService.myMethod();

我没有使用 ThinkTimes,运行时间也设置为 5 分钟。 当我只模拟 1 个用户运行这个测试时,我检查了计数器,我发现了类似的东西:

测试总数:4500

网络接口\发送的字节数(代理 机器):35,500

然后我运行了相同的测试,但这次模拟了 2 个用户,我得到了类似的结果:

测试总数:2225

网络接口\发送的字节数(代理 机器):30,500

因此,当我增加用户数量时,测试/秒是我只使用 1 个用户时的一半,并且代理发送的字节数也更低。我觉得这很奇怪,因为我的代理机器似乎没有瓶颈,因为 CPU 从未高于 30%,而且我有超过 1.5GB 的可用 RAM,而且我的网络利用率也只有其容量的 0.5%。

为了解决这个问题,我使用 Step Pattern 进行了测试,模拟用户从 20 人增加到 800 人。 当我检查请求数/秒时,它在整个测试中几乎是恒定的,因此很明显我的测试或我的环境中有一些东西阻止了请求数的增加。

如果“响应时间”越来越长,这将是一种预期行为,因为它会告诉我请求没有得到正确处理,但奇怪的是响应时间实际上一直是恒定的,而且很漂亮实际上很低。

我不知道为什么当我增加用户数量时我的代理不能发送更多请求,任何帮助/提示/猜测都会非常感激。

【问题讨论】:

    标签: web-services visual-studio-2008 load-testing webtest


    【解决方案1】:

    如果您每秒的请求数保持不变,并且尽管有虚拟用户数量,但总测试量保持不变,则瓶颈可能是 Web 服务本身一次只能处理一定数量的请求。

    【讨论】:

    • 感谢您的回答 Nat,我同时运行 2 个测试,但在不同的 PC 中,两者都访问相同的 Web 服务,我注意到它们在单独运行时具有相同的请求/秒.此外,我在我的 PC 中启动了一个带有 VSTS 的 VM,我同时从该 VM 和我自己的 PC 中的 VSTS 开始测试,并且两者在单独运行时具有相同的请求/秒,所以我想也许是是我的代理的瓶颈,而不是服务器端的瓶颈。另外,我认为这个测试可以告诉我网络没有瓶颈,因为我的 PC 和我的 VM 共享同一个 NIC。
    • 之后我在我的电脑上启动了 2 个 VSTS 并开始了相同的测试,这次请求/秒减半。似乎每个 VisualStudio 或每个系统都有某种限制,但我不确定是什么导致了这种限制。
    • Carlos,与其尝试在 2 台机器上启动 VSTS 实例,不如尝试创建负载测试?
    • 我的第一个测试是仅在一个代理中运行的负载测试,我启动了 2 个 VSTS 实例以了解发生了什么,如果它限制了我在服务器端或代理中的测试正如 Nat 建议的那样。该测试表明它不是我的服务器,因为在不同机器(物理机或虚拟机)中有 2 个 VSTS 实例,网络服务器可以每秒处理相同的请求。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-11
    • 2017-01-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多