Web services 使用webtest对Web服务进行负载测试

Web services 使用webtest对Web服务进行负载测试,web-services,visual-studio-2008,load-testing,webtest,Web Services,Visual Studio 2008,Load Testing,Webtest,我有一个webtest,它对一个WebService进行了一个简单的调用,如下所示: MyWebService webService = new MyWebService(); webService.Timeout = 180000; webService.myMethod(); 我没有使用ThinkTimes,而且运行持续时间设置为5分钟。 当我只模拟一个用户运行此测试时,我检查了计数器,发现类似的情况: MyWebService webService = new MyWebServic

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

MyWebService webService = new MyWebService();

webService.Timeout = 180000;

webService.myMethod();
我没有使用ThinkTimes,而且运行持续时间设置为5分钟。 当我只模拟一个用户运行此测试时,我检查了计数器,发现类似的情况:

MyWebService webService = new MyWebService();

webService.Timeout = 180000;

webService.myMethod();
测试总数:4500

网络接口\发送给代理的字节数 机器:35500

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

MyWebService webService = new MyWebService();

webService.Timeout = 180000;

webService.myMethod();
测试总数:2225

网络接口\发送给代理的字节数 机器:30500

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

为了解决这个问题,我使用Step模式运行了一个测试,模拟用户从20个增加到800个。 当我每秒检查请求时,它实际上在整个测试中都是恒定的,因此很明显,在我的测试或我的环境中有某种东西阻止了请求数量的增加

如果响应时间越来越高,这将是一种预期的行为,因为它会告诉我请求没有得到正确处理,但奇怪的是,响应时间实际上一直是恒定的,实际上非常低


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

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

谢谢你的回答Nat,我同时运行了两个测试,但在不同的PC上,两个测试都遇到了相同的Web服务,我注意到两个测试在单独运行时每秒都有相同的请求。另外,我在我的PC上启动了一个带有VST的虚拟机,我同时从该虚拟机和我自己的PC上的VST启动了一个测试,两个虚拟机都有与单独运行时相同的每秒请求数,因此我认为这可能是我的代理中的瓶颈,而不是服务器端的瓶颈。另外,我认为这个测试可以告诉我网络中没有瓶颈,因为我的PC和我的VM共享同一个NIC。之后我在PC中启动了2个VST并开始了相同的测试,这次每秒的请求减少了一半。每个VisualStudio或每个系统似乎都有某种限制,但我不确定是什么导致了这种限制。Carlos,与其尝试在两台机器上启动VSTS实例,不如尝试创建一个负载测试?我的第一个测试是只在一个代理中运行的负载测试,我启动了两个VST实例,以了解发生了什么,如果这是限制我在服务器端或Nat建议的代理中的测试的因素。这个测试表明它不是我的服务器,因为在不同的机器上有两个VST实例,物理的或虚拟的Web服务器可以每秒处理相同的请求。