设置用户数和编号。 VS2015负载测试中的动态迭代次数

Posted

技术标签:

【中文标题】设置用户数和编号。 VS2015负载测试中的动态迭代次数【英文标题】:Set user count & no. of iterations dynamically in load test in VS2015 【发布时间】:2018-03-13 19:39:39 【问题描述】:

我知道在 Visual Studio 中进行 Web 测试/负载测试时如何设置迭代次数和用户数。但是我如何通过代码动态设置这些。作为一名测试人员,我只想去更改代码中的数字并运行测试,而不必去编辑选项。

假设我有一个购买手机的网站。迭代(性能测试)将购买(比如说)100 次手机。用户数量的增加(负载测试)将同时增加购买手机的用户数量。一个主要的测试场景是(比如说)100 个用户每 10 次购买手机,所以总共 100x10 次。 现在在 VS2015 中,我知道如何在 Visual Studio 中编辑选项并更改性能测试和负载测试的数字,如以下链接所述:https://docs.microsoft.com/en-us/vsts/load-test/run-performance-tests-app-before-release#createload。 但我想以编程方式进行。我想通过代码设置用户数和每个用户可以购买手机的次数。例如,当我运行测试时,会触发一个 cmd 提示,要求输入 2 个,一个:用户数我想测试两个:每个用户可以购买的次数。用户输入两个输入,然后测试以给定的用户数和迭代运行。

例如,这就像设置环境变量一样。用户可以转到机器属性并手动设置所需的环境变量。但他也可以只编写一个小批处理文件并运行它,它会设置所需的环境变量。

【问题讨论】:

***.com/a/49039530/546871 涵盖了用户数量。您希望如何以及何时设置数字?在测试中运行的代码中,通过一些 GUI,还是什么?当您更改迭代次数时,您希望发生什么?您想在测试运行时更改它们吗?还是只在它开始之前?目前这个问题确实太宽泛了。请edit问题正确解释您想要什么以及您已经尝试过什么。 【参考方案1】:

在“.loadtest”文件中指定了用户数量(实际上是常量或步骤或目标的加载模式)和要运行的迭代次数。它是一个 XML 文件,其值很容易在 XML 中找到。

这是一个“.loadtest”文件的精简版,显示了问题所需的部分,以及其他一些显着值。此示例适用于“步进”加载模式,但很容易为基于目标或恒定负载测试的文件提供示例并找到正确的 XML。

<LoadTest ...>
  <Scenarios>
    <Scenario Name="..." ...>
      <LoadProfile Pattern="Step"
          InitialUsers="1" MaxUsers="500"
          StepUsers="1" StepDuration="3" StepRampTime="0" />
    </Scenario>
  </Scenarios>
  <RunConfigurations>
    <RunConfiguration Name="Run" UseTestIterations="false" RunDuration="1800"
        WarmupTime="0" CoolDownTime="90" TestIterations="100" ...>
    </RunConfiguration>
  </RunConfigurations>
</LoadTest>

鉴于“.loadtest”文件的简单性,创建一个读取所需数字并将它们写入给定“.loadtest”文件的批处理脚本或程序很容易,然后通过程序如mstest.exe

测试运行后,可以通过负载测试插件将所需的数字写入其中来更改用户数 m_loadTest.Scenarios[N].CurrentLoad 为合适的N。这可能会在 Heartbeat 插件中完成,但也可以在任何负载测试插件中完成。我不知道有任何方法可以在运行时更改所需的迭代次数,但可以通过传递给负载测试插件的对象和值来实现。

请注意,用户数量的大幅增加可能会导致测试失败,因为代理计算机不足。相反,为您可能想要的最多用户提供足够的代理可能意味着在少数用户的情况下运行测试会非常浪费代理容量。

【讨论】:

完美!谢谢!

以上是关于设置用户数和编号。 VS2015负载测试中的动态迭代次数的主要内容,如果未能解决你的问题,请参考以下文章

VS 2010 Web负载测试 - 从CSV为每个虚拟用户设置唯一值

负载测试 - 恒定负载问题

VS2010 负载测试中的 SQL 跟踪显示不相关的结果

多个项目:使用 PHP 的 PayPal 表单中的动态项目名称和编号

使用外部文件和负载测试 VS2013 进行编码的 UI 测试

如何在 VS 2013 中为 200 个用户运行 Web 性能测试?