2015-07-09 102 views
-1

我在Visual Studio中使用负载测试来测试我们的web api服务。但令我惊讶的是我似乎无法测试我想要的东西。实际上,我的.webtest文件中只有一个URL,并且尝试一次发送相同的URL以查看平均值是多少。响应时间。 下面是详细信息Visual Studio负载测试请求完成和思考时间

1.I use constant load of 1 user 
2.Test duration of 1 hour 
3.Think time of 10 seconds (not the think time between iterations) 
4.The avg. response time that I get is 1.5 seconds 
5.So the avg. test time comes out to be 11.5 seconds 
6.Requests/sec are 0.088 
7.And I'm using Sequential Test Order among 4 types of different tests 

所以这些数字都让我觉得每一次虚拟用户发送除了等待完成他送一个新的(要求)之前请求指定思考时间的请求。因此从技术上讲,总思考时间变为

总思考时间=思考时间指定+平均。响应时间

但我不希望用户等待已发送的请求返回,然后在指定的思考时间后发送新的请求。我需要以这样的方式配置负载测试:如果思考时间是10秒,那么用户应该每隔10秒发送一次下一个请求,而不等待第一个请求返回,然后再考虑10秒,然后发送一个新的请求(因此,如上所述,使总思考时间达到11.5秒)。无论我在4种不同的类型中选择哪种类型的测试,Visual Studio总是强制虚拟用户等待请求的完成,然后添加指定的思考时间,然后发送一个新的。

我知道什么Visual Studio负载测试正在做的更多的是一种实用的方法,用户发送请求等待,直到它回来然后想或与网站交互,然后发送一个新的。

任何帮助或建议将赞赏我想要实现的。

+0

您的问题已回答?如果是,请阅读http://stackoverflow.com/help/accepted-answer。如果没有回答,请解释还需要什么。 – AdrianHHH

回答

0

在场景的属性中,将“测试混合类型”设置为“基于用户速度的测试混合”,并根据需要设置“每用户每小时测试”。请参阅here

的疑问,建议:

总觉得时间=思考时间指定+魅力。响应时间

是错误的。在我看来,添加这些值并不能提供有用的结果。右边的两个值如前所述。思考时间模拟用户花费在阅读页面上的时间,决定下一步做什么以及如何输入/点击/等等。响应时间是发送请求和获取响应之间的“转身”时间。添加它们并不会增加思考时间,它只是使得在此特定测试中处理请求的总持续时间。另一个测试可能会在不同的思考时间内提出相同的请求。请注意,许多网页会导致发出多个请求和响应; JavaScript和其他允许网页做许多聪明的事情。

+0

我知道你的意思,但当我说总思考时间=思考时间指定+平均。响应时间,我的字面意思是没有任何实体称为总思考时间,因为它只是我感知它的方式,即用户花费交互/阅读/点击(在网页上)的时间加上往返时间的响应总和,然后Visual Studio代表虚拟用户发布新的请求。更重要的是,当我根据4个虚拟用户的恒定负载尝试“基于用户速度的测试组合”时,Visual Studio正在进行计算4 x(思考时间+平均响应时间)时间。 – user2913184

+0

并且在计算出的时间之后,其开始下一次迭代以用于随后的负载,即,它发送来自所有4个用户的请求,并等待所有4个用户返回响应,然后只是再次迭代。在我指定每小时每用户2000次测试应该发生但在计算上述评论4 x(认为时间+ avg.response时间)中提到的“数字”之后应该发生的情况时说,每小时每用户2000次测试太方便了当平均。测试时间是4.57秒。而这些4.57秒只是这个数值4 x(想想时间+平均反应时间),其中思考时间为0 – user2913184

+0

在这个测试中。换句话说,Visual Studio不会让我为每个用户每小时执行2000次测试,而是它自己控制我的测试,并且看到4个持续用户的单个负载每次迭代需要4.57秒(发送请求和获取响应所耗费的时间所有4个用户),然后开始发布新的负载请求,这不会让我实现每用户每小时标记2000次测试的目标。 – user2913184

相关问题