我正在运行一些负载测试,由于某种原因VS显示为7 req / sec,这是正常的吗?
我有一个阶梯式的配置文件,从10开始,结束于100,我原以为它会为每个用户运行测试。
即 - 10个用户,每秒10个请求?
答案 0 :(得分:3)
首先,您正在从本地计算机运行负载测试(Controller = Local Run)。您可以从开发人员计算机运行负载测试,但通常无法生成足够的流量来真正了解应用程序的响应方式。要模拟许多用户,您需要一个负载测试装备。 (在Premises上,或使用Windows Azure云测试)。如果您正在测试托管在同一台计算机上的网站,这可能是一个问题。 运行负载测试时检查机器上的CPU(在图中):如果超过70%,则会对结果进行隔离。
其次,您如何记录网络测试?当使用网络测试记录器(在IE中)时,它会为每个请求添加一个思考时间。思考时间用于模拟导致人们在与网站交互之间等待的人类行为:真实用户永远不会在同一秒内打开4个页面。您可以在每个请求属性中查看思考时间。如果CPU仍然很低,那么高值可以解释为什么你只有几个请求/秒。
我有一个阶梯式的配置文件,从10开始,结束于100,我愿意 我以为它会为每个用户运行测试。
在“运行”设置中,您可以选择配置最大迭代次数:这将运行N个方案,没有任何时间限制。默认情况下不会激活它。
您必须了解虚拟用户的概念:基本上,根据测试组合/百分比/ sceanrios,虚拟用户同时只执行一个测试用例,取自配置的Web测试...所以10并发虚拟用户,将同时执行最多10个测试。步骤目标通常用于增加负载,直到服务器达到性能显着下降的点。 有关所有负载模式的完整说明here。
最后,如果请求数/秒数仍然很低,并且不是因为负载测试配置,则可能是您的网站出现问题;-)
答案 1 :(得分:1)
这完全取决于您的测试配置,但如果您的测试设置为对一个用户执行~1 req / s,则应该为10个用户提供~10 req / s。
我想说这可能是因为你的服务器无法处理超过7 req / s的响应。要找出瓶颈在哪里尝试运行较小的步骤并查看断点的位置,您可以同时对服务器进行一些监控,以找出哪些资源耗尽以及哪个服务器(CPU,内存, bw等)。就像在评论中提到的那样,分析是一种非常好的方法,可以找出代码的哪些部分以及哪些查询是资源占用。
希望这有帮助!
答案 2 :(得分:0)
有多种原因导致吞吐量低。 检查“测试迭代之间的思考时间”的设置,步骤加载模式 - 步骤持续时间是您可以修改的另一个设置。 请记住保持测试移动,以便查看每个请求的思考时间,并确保您不会花费太长时间来完成每个测试的端到端。 我已经看到这些设置可以将总时间延长到几分钟,从而减少了逐分钟的交易。 如果独立于负载测试运行,请检查每个webtest的结束运行时间,以确保您知道整个测试需要多长时间。 希望这可以帮助。 - Jim Nye