我有一个webtest,可以简单地调用WebService,如下所示:
MyWebService webService = new MyWebService();
webService.Timeout = 180000;
webService.myMethod();
我没有使用ThinkTimes,运行持续时间也设置为5分钟。 当我运行此测试时只模拟一个用户,我检查计数器,我发现了类似的东西:
测试总计:4500
发送网络接口\字节(代理 机器):35,500
然后我运行了相同的测试,但这次模拟了2个用户,我得到了类似的东西:
测试总计:2225
发送网络接口\字节(代理 机器):30,500
因此,当我增加用户数时,测试/秒是我仅使用1个用户的一半,并且代理发送的字节也更低。我认为这很奇怪,因为我的代理机器似乎没有瓶颈,因为CPU从不高于30%而且我有超过1.5GB的RAM空闲,我的网络利用率也就是其容量的0.5%。
为了解决这个问题,我使用Step Pattern进行了测试,模拟用户从20到800个用户。 当我检查请求/秒时,它在整个测试中几乎是不变的,所以很明显我的测试或我的环境中有一些东西阻止了请求的数量变得更高。
如果“响应时间”越来越高,这将是一种预期的行为,因为它会告诉我请求没有得到正确处理,但奇怪的是响应时间几乎不变,而且非常漂亮实际上很低。
我不知道为什么我的代理人在增加用户数量时无法发送更多请求,任何帮助/提示/猜测都会非常感激。
答案 0 :(得分:0)
如果您的每秒请求数是不变的,并且尽管虚拟用户数量很多,但总测试数仍然保持不变,瓶颈可能是Web服务本身只能一次服务一定数量的请求。