0

Я создал проект производительности веб-производительности и загрузки в MS Visual Studio 2015. В рамках проекта я создал некоторые веб-тесты производительности.Как изменить путь выполнения теста производительности Web

Но у нас есть различные условия команды, и мы хотим запустить эти тесты на всех серверах, поэтому я изменил адрес URL-адрес с помощью «Параметры контекста» в рамках каждого теста веб-производительности

После использования контекста параметров, в URL становится: https://{{WebServer}}/WebSite/account/signin и работает, как и ожидалось.

Но, я хочу знать, есть ли файл конфигурации , в котором я могу обновить путь к серверу, поэтому веб-тест не нужно менять каждый раз. Я пробовал различные варианты в Local.testsettings и test.runsettings. Но он не мог сделать его динамичным.

Спасибо.

ответ

1

Есть несколько вариантов.

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

  2. Переменные окружения могут устанавливать или переопределять значение параметра контекста. Установка переменной среды с именем «Test.MyWebServer» переопределит значение параметра контекста MyWebServer.

0

Благодарим за ответ. Но мы не хотим повторять тестовые примеры. В настоящее время, мы читаем конфигурационный файл в классе WebTestPlugin в

public class LoginAssistPlugin : WebTestPlugin 
{ 
     ExeConfigurationFileMap fileMap = new ExeConfigurationFileMap(); 
     fileMap.ExeConfigFilename = configFilePath; 
     _config = ConfigurationManager.OpenMappedExeConfiguration(fileMap, ConfigurationUserLevel.None); 
} 

выше метод написан в конструкторе класса плагина. И имя хоста сервера задано как статическая переменная. Затем мы используем другие переопределяемые методы из класса WebTestPlugin, как показано ниже, чтобы заменить параметры WebContext в тестах производительности сети.

public override void PreRequest(object sender, PreRequestEventArgs e) 
     { 
      e.Request.Url = e.Request.Url.Replace("{{WebServer}}", _webServer); 
      e.Request.Url = e.Request.Url.Replace("{{IdentityServer}}", _identityServer); 

      e.Request.QueryStringParameters.ToList().ForEach(param => param.Value = param.Value.Replace("{{WebServer}}", _webServer)); 
      e.Request.QueryStringParameters.ToList().ForEach(param => param.Value = param.Value.Replace("{{ClientId}}", _clientId)); 
      e.Request.QueryStringParameters.ToList().ForEach(param => param.Value = param.Value.Replace("{{WebClientPath}}", _webClientPath)); 

      //if(e.WebTest.Name == "signin") 
      // e.Request.QueryStringParameters.ToList().ForEach(param => param.Value = param.Value.Replace("{{UserName}}", userName)); 

      e.Request.Headers.ToList().ForEach(header => header.Value = header.Value.Replace("{{WebClientPath}}", _webClientPath)); 
      e.Request.Headers.ToList().ForEach(header => header.Value = header.Value.Replace("{{IdentityServer}}", _identityServer)); 
      e.Request.Headers.ToList().ForEach(header => header.Value = header.Value.Replace("{{WebServer}}", _webServer)); 
      e.Request.Headers.ToList().ForEach(header => header.Value = header.Value.Replace("{{ClientId}}", _clientId)); 

      if (_token != null) 
      { 
       e.Request.Headers.Add("Authorization", "Bearer " + _token); 
      } 
     } 

Затем этот плагин используется в каждом из тестов производительности сети. Дополнительная помощь/советы будут hlpfull.

+0

Это не ответ. Измените исходный вопрос, чтобы включить эту информацию. Но также проясните очевидное противоречие между *, поэтому веб-тест не нужно менять каждый раз * * в вопросе и * «мы не хотим повторять тестовые примеры» * выше. – AdrianHHH

+0

Согласен, это не точный ответ, но он удовлетворяет мои потребности. «Мы не хотим повторять тестовые примеры». У нас есть филиалы для отдельных команд, промежуточных и интеграционных сред, мы хотим запустить эти тесты во всех этих средах с помощью команд с минимальным пользовательским взаимодействием. Поэтому нам нужно было прочитать пути веб-сервера из файлов конфигурации. «поэтому веб-тест не нужно менять каждый раз» - также относится к тому же, результат в разных ветвях должен быть видимым в MTM. Надеюсь, я разъяснил сомнения. – Pushkar

Смежные вопросы