设置用户数量&没有。在VS2015的负载测试中动态迭代

时间:2018-03-13 19:39:39

标签: c# visual-studio load-testing webtest

我知道在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个,一个:用户数量我想测试两个:每个用户可以购买的次数。用户输入两个输入,然后测试以给定数量的用户和迭代运行。

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

1 个答案:

答案 0 :(得分:2)

在“.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插件中完成的,但可以在任何负载测试插件中完成。我不知道有什么方法可以改变运行时所需的迭代次数,但是可以通过传递给负载测试插件的对象和值来实现。

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