Установите количество пользователей и нет. итераций динамически в нагрузочном тесте в VS2015

Я знаю, как установить количество итераций и количество пользователей при выполнении веб-теста/нагрузочного теста в Visual Studio. Но как я могу установить их динамически с помощью кода. Как тестер, я просто хочу пойти и изменить числа в коде и просто запустить тесты, и мне не нужно переходить к параметрам редактирования.

Допустим, у меня есть веб-сайт, где я могу купить телефон. Итерации (тест производительности) будут покупать телефон (скажем) 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 входа, один: количество пользователей, которые Я хочу протестировать с и двумя: количество раз, которое каждый пользователь может купить. Пользователь вводит оба входа, а затем тест запускается с заданным количеством пользователей и итераций.

Например, это похоже на установку переменной среды. Пользователь может перейти к свойствам машины и установить требуемую переменную среды вручную. Но он также может просто написать небольшой командный файл и запустить его, установив требуемую переменную окружения.


person Reema    schedule 13.03.2018    source источник
comment
Количество пользователей указано в stackoverflow.com/a/49039530/546871 . Как и когда вы хотите установить цифры? В коде, работающем в тесте, через какой-то графический интерфейс или как? Что вы хотите, чтобы произошло, когда вы измените количество итераций? Вы хотите изменить их во время выполнения теста? Или только до начала? На самом деле этот вопрос слишком широк в настоящее время. Пожалуйста, отредактируйте вопрос, чтобы правильно объяснить, что вы хотите и что вы уже пробовали.   -  person AdrianHHH    schedule 15.03.2018


Ответы (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, но может быть и в любом плагине нагрузочного теста. Я не знаю ни одного способа изменить количество требуемых итераций во время выполнения, но это может быть возможно с помощью объектов и значений, переданных в плагин нагрузочного теста.

Обратите внимание, что значительное увеличение числа пользователей может привести к сбою теста из-за недостаточного количества компьютеров-агентов. И наоборот, наличие достаточного количества агентов для максимально возможного количества пользователей может означать, что тестовые прогоны с небольшим числом пользователей будут очень расточительны для ресурсов агента.

person AdrianHHH    schedule 15.03.2018
comment
Идеально! Спасибо! - person Reema; 16.03.2018