방법: 요청 수준 플러그 인 만들기
업데이트: 2007년 11월
요청은 웹 테스트를 구성하는 선언문입니다. 웹 테스트 플러그 인을 사용하면 웹 테스트의 주 선언문 외부에서 코드를 분리하여 다시 사용할 수 있습니다. 플러그 인을 만들어 개별 요청과 요청을 포함하는 웹 테스트에 추가할 수 있습니다. 사용자 지정 요청 플러그 인을 사용하면 웹 테스트에서 특정 요청을 실행하는 코드를 호출할 수 있습니다.
참고: |
---|
Visual Studio 2005 Team Edition for Testers에서는 테스트의 모든 요청에 대해 실행되는 테스트 수준의 요청 플러그 인을 만들 수 있었습니다. Team System 2008 Test Edition에서 테스트 수준 플러그 인은 요청 플러그 인 인터페이스를 지원하며 테스트의 모든 요청에 적용됩니다. Team System 2008 Test Edition에서는 Visual Studio 2005에서 만든 요청 플러그 인이 발견되면 이 플러그 인을 해당되는 테스트 수준 플러그 인으로 변환합니다. |
모든 웹 테스트 요청 플러그 인에는 PreRequest 메서드와 PostRequest 메서드가 있습니다. 특정 HTTP 요청에 요청 플러그 인을 연결하고 나면 요청을 실행하기 전에는 PreRequest 이벤트가 발생하고 응답을 받은 후에는 PostRequest가 발생합니다.
사용자 지정 웹 테스트 요청 플러그 인은 WebTestRequestPlugin 기본 클래스에서 사용자 클래스를 파생시켜 만들 수 있습니다.
기록한 웹 테스트와 함께 사용자 지정 웹 테스트 요청 플러그 인을 사용할 수 있습니다. 사용자 지정 웹 테스트 요청 플러그 인을 사용하면 최소한의 코드만 작성해도 되므로 웹 테스트를 훨씬 효과적으로 제어할 수 있습니다. 코딩된 웹 테스트와 함께 사용할 수도 있습니다. 자세한 내용은 방법: 코딩된 웹 테스트 만들기를 참조하십시오.
요청 수준 플러그 인을 만들려면
웹 테스트를 포함하는 테스트 프로젝트를 엽니다.
테스트 프로젝트를 만드는 방법에 대한 자세한 내용은 방법: 테스트 프로젝트 만들기를 참조하십시오.
같은 솔루션에서 요청 플러그 인을 저장할 클래스 라이브러리 프로젝트를 만듭니다.
클래스 라이브러리 프로젝트를 선택한 다음 참조 추가를 마우스 오른쪽 단추로 클릭합니다.
.NET 탭에서 Microsoft.VisualStudio.QualityTools.WebTestFramework를 선택하고 확인을 클릭합니다.
테스트 프로젝트에서 마우스 오른쪽 단추를 클릭하고 참조 추가를 선택합니다.
프로젝트 탭에서 새 클래스 라이브러리 프로젝트를 선택합니다. 확인을 클릭합니다.
플러그 인 코드를 작성합니다. 먼저 WebTestRequestPlugin에서 파생되는 새 공용 클래스를 만듭니다.
PreRequest 및 PostRequest 이벤트 처리기 중 하나 또는 둘 모두에서 코드를 구현합니다.
코드를 작성한 후 새 프로젝트를 빌드합니다.
요청 플러그 인을 추가할 웹 테스트를 엽니다.
플러그 인을 추가할 요청을 마우스 오른쪽 단추로 클릭한 다음 요청 플러그 인 추가를 선택합니다.
웹 테스트 요청 플러그 인 추가 대화 상자가 표시됩니다.
플러그 인 선택에서 새 플러그 인을 선택하고 확인을 클릭합니다.
해당 플러그 인이 HTTP 요청의 자식 폴더인 요청 플러그 인 폴더에 추가됩니다.
예제
다음 코드를 사용하여 사용자 지정 웹 테스트 플러그인을 만들 수 있습니다.
using System;
using System.Collections.Generic;
using System.Windows.Forms;
using Microsoft.VisualStudio.TestTools.WebTesting;
namespace RequestPluginNamespace
{
public class MyWebRequestPlugin : WebTestRequestPlugin
{
public override void PostRequest(object sender, PostRequestEventArgs e)
{
MessageBox.Show(e.WebTest.Context.AgentName);
}
public override void PreRequest(object sender, PreRequestEventArgs e)
{
MessageBox.Show(e.Request.Url);
}
}
}