如何对特定数量的请求/用户进行负载测试

Posted

技术标签:

【中文标题】如何对特定数量的请求/用户进行负载测试【英文标题】:How to load test for specific number of requests / users 【发布时间】:2015-03-19 17:22:21 【问题描述】:

我正在使用 Visual Studio Web 性能测试,特别是 Web 服务请求测试功能。我已经创建了我的测试,我想做的是测试特定次数或特定数量的用户。

例如,我想每次调用服务 20 次。另一种情况是,如果我有 30 个固定用户,我希望这 30 个用户每次调用我的 Web 服务测试的每个实例一次,但并行(取决于核心数等)。这意味着如果有 2 个 Web 服务测试,那么总共 30x2 = 60 次调用,不多也不少。

编辑: 我尝试使用迭代,这就是我所看到的。现在我有 1 个生成新保险报价的 web 测试当我使用 20 的迭代计数并将“使用测试迭代”设置为 true 时,报价一次生成 1 个。我可以看到这一点,因为我编写了一个应用程序来每 500 毫秒查询一次数据库。当我运行相同的测试保持 Use test iterations=false 并且恒定负载 20 个用户时,我可以看到以“并行”方式生成的引号,但我只想生成 20 个。

在上述场景中,我希望在生成第 20 个测试后,即使还有剩余的运行时间,负载测试也应该停止。

感谢您的帮助/指导 赛那特

【问题讨论】:

关于如何创建负载测试的大量 Microsoft 文档没有回答您的问题的哪一部分? AdrianHHH - 无法根据用户限制运行的测试实例的数量。这就是我正在寻找的答案。这就是我所说的 30*x2=60,不多也不少。同样,我不想使用迭代,因为那是同步的。 到目前为止,您的要求非常模糊。如果您编辑问题以精确描述您希望测试如何运行的模式,那么也许我们可以帮助您。你还说你“不想使用迭代,因为那是同步的”,你能解释一下这个评论,因为我认为你还没有理解迭代吗? Adrian - 我尝试使用迭代。现在我有 1 个生成新保险报价的 web 测试当我使用 20 的迭代计数并将“使用测试迭代”设置为 true 时,报价一次生成 1 个。我可以看到这一点,因为我编写了一个应用程序来每 500 毫秒查询一次数据库。当我运行相同的测试保持 Use test iterations=false 并且恒定负载 20 个用户时,我可以看到以“并行”方式生成的引号,但我只想生成 20 个。 我想我找到了解决方案。这是因为我的“测试混合类型”我将其更改为“基于虚拟用户的数量”我将虚拟用户负载设置为常数 20 以及迭代计数为 20。当我运行测试时,我可以查看立即创建的 20 个报价,然后更新其部分数据(如预期的那样)。也只生成了 20 个报价!! 【参考方案1】:

我想我找到了解决方案。这是因为我的“测试混合类型”我将其更改为“基于虚拟用户的数量”我将虚拟用户负载设置为常数 20 以及迭代计数为 20。当我运行测试时,我可以查看立即创建的 20 个报价,然后更新其部分数据(如预期的那样)。也只生成了 20 个报价。

以下链接有助于澄清一些使用的术语 Test iteration setting in loadtest using vs 2010

【讨论】:

以上是关于如何对特定数量的请求/用户进行负载测试的主要内容,如果未能解决你的问题,请参考以下文章

如何理解压力负载性能测试测试

如何在 Visual Studio Team 版中按个人请求查看负载测试报告

Charles——Charles环境搭建,使用Charles抓取 Http 和 Https 的请求和响应进行接口测试,模拟慢速网络进行弱网测试,设置请求时间和请求数量进行负载测试

如何使用 java 对 Web 服务进行负载测试?

性能测试之siege

如何使用 JMeter 对网站进行负载测试