2013-04-30 1 views
0

Использование Visual Studio 2012 для создания веб-тестов.Как я могу получить доступ к параметрам формы сообщения из плагина тестового регистратора

Как я могу получить доступ к параметрам формы сообщения из плагина тестового регистратора? Большинство аспектов записанного веб-теста видны через intelisense Visual Studio или из MSDN, но я не могу найти параметры сообщения формы.

Я тестирую веб-сайт, который использует параметры сообщения формы «интересным» способом. До сих пор мы вручную редактировали XML в файле .webtest, но это подвержено ошибкам. Поэтому я хотел бы изменить их в плагине веб-тестового рекордера.

ответ

1

форм могут быть доступны в веб-тест самописца плагин через поле тела веб-запроса, но тело должно быть приведение к правильному типу. Плагин рекордера обеспечивает записанный веб-тест как параметр (поле a), Items теста включает в себя отдельные запросы. Они также включают комментарии и так далее. Item, который является WebTestRequest, может иметь поле Body, которое после литья предоставляет параметры сообщения формы. Этот код показывает плагин, который отображает некоторые детали параметров сообщения формы через метод WriteLine, который здесь не показан. Внутренний цикл можно заменить кодом, чтобы изменить или удалить или добавить новые параметры сообщения формы.

public override void PostWebTestRecording(object sender, PostWebTestRecordingEventArgs e) 
{ 
    foreach (WebTestItem wti in e.RecordedWebTest.Items) 
    { 
     WebTestRequest wtiwtr = wti as WebTestRequest; 

     if (wtiwtr != null) 
     { 
      FormPostHttpBody formBody = wtiwtr.Body as FormPostHttpBody; 

      if (formBody == null) 
      { 
       // no formBody. 
      } 
      else 
      { 
       WriteLine("Have {0} form post parameters", formBody.FormPostParameters.Count); 
       foreach (FormPostParameter fpp in formBody.FormPostParameters) 
       { 
        WriteLine("FPP '{0}' = '{1}'", fpp.Name, fpp.Value); 
       } 
      } 
     } 
    } 
} 

Несколько других частей записанного веб-теста можно получить с помощью этих слепков wti в коде.

Comment wtic = wti as Comment; 
IncludedWebTest wtiiwt = wti as IncludedWebTest; 
SharepointInformation wtispi = wti as SharepointInformation; 
TransactionTimer wtitt = wti as TransactionTimer; 
WebTestConditionalConstruct wtiwtcc = wti as WebTestConditionalConstruct; 
0

Это немного уродливое, но я смог найти его при отладке плагина, который использует метод PreRequestDataBinding. Наведите мышь на «e», разверните запрос -> тело -> [Microsoft.VisualStudio.TestTools.WebTesting.FormPostHttpBody] -> FormPostParameters. Но из-за уровня защиты вы не сможете редактировать значение.

Что я в итоге сделал: конвертировать веб-тест в кодированный веб-тест. Вы можете сделать это, щелкнув правой кнопкой мыши на верхнем уровне представления дизайнера веб-теста, а затем выбрав Generate Code. Глядя на кодированный веб-тест, вы сможете изменить параметры сообщения формы. Ищите что-то вроде этого ... разместить параметры

request1Body.FormPostParameters.Add("YourFormPostName", "value"); 
0

Вы можете добавить форму после параметра, как это в методе PreRequest из WebTestRequestPlugin -

 FormPostHttpBody form = new FormPostHttpBody(); 
    FormPostParameter par = new FormPostParameter(); 
    par.Name = "name"; 
    par.Value = "1"; 
    form.add(par); 
    e.Request.Body = form; 
+0

Речь идет о доступе к ним в веб-тест самописца плагин. Ваш ответ относится к веб-тесту во время выполнения и поэтому не помогает. Но добро пожаловать в Stack Overflow и благодарю вас за вклад. – AdrianHHH

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