2013-04-30 7 views
0

Visual Studio 2012를 사용하여 웹 테스트를 만들 수 있습니다.웹 테스트 레코더 플러그인에서 양식 게시 매개 변수에 액세스하는 방법

웹 테스트 레코더 플러그인에서 양식 게시 매개 변수에 액세스하려면 어떻게해야합니까? 기록 된 웹 테스트의 대부분은 Visual Studio의 인텔리 센스 또는 MSDN을 통해 볼 수 있지만 양식 게시 매개 변수는 찾을 수 없습니다.

"재미있는"방식으로 양식 게시 매개 변수를 사용하는 웹 사이트를 테스트하고 있습니다. 지금까지 우리는 .webtest 파일에서 XML을 직접 편집했지만 오류가 발생하기 쉽습니다. 그래서 웹 테스트 레코더 플러그인에서 수정하고 싶습니다.

답변

1

폼 POST 매개 변수는 웹 요청의 본문 필드를 통해 웹 테스트 레코더 플러그인에 액세스 할 수 있지만, 몸은 올바른 형식으로 캐스팅 할 필요가 ... 이런 식으로 뭔가를 찾으십시오. 레코더 플러그인은 기록 된 웹 테스트를 (a 필드) 매개 변수로 제공하며 테스트의 Items은 개별 요청을 포함합니다. 또한 주석 등을 포함합니다. WebTestRequestItem은 캐스팅 후에 post 매개 변수 양식을 제공하는 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를 확장합니다. 그러나 보호 수준으로 인해 값을 편집 할 수 없습니다.

나는 결국 웹 테스트를 코드화 된 웹 테스트으로 변환했습니다. 웹 테스트 디자이너 뷰의 최상위 레벨을 마우스 오른쪽 단추로 클릭 한 다음 코드 생성을 선택하여이 작업을 수행 할 수 있습니다. 코딩 된 웹 테스트를보고 양식 게시 매개 변수를 수정할 수 있습니다.

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

당신은 해당 WebTestRequestPlugin의 PreRequest 방법이 같은 형태의 포스트 매개 변수를 추가 할 수 있습니다 -

 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