我有一个 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 人。当我检查请求/秒时,它在整个测试中实际上是恒定的,因此很明显我的测试或我的环境中有一些东西阻止了请求数量的增加。
如果“响应时间”越来越长,这将是一种预期的行为,因为它会告诉我请求没有得到正确处理,但奇怪的是响应时间实际上一直是恒定的,实际上它非常低。
我不知道为什么当我增加用户数量时我的代理不能发送更多请求,任何帮助/提示/猜测都会非常感激。