방법: 웹 테스트 플러그 인 만들기
업데이트: 2007년 11월
웹 테스트 플러그 인을 사용하면 웹 테스트의 주 선언문 외부에서 코드를 분리하여 다시 사용할 수 있습니다. 사용자 지정 웹 테스트 플러그 인을 사용하면 웹 테스트를 실행하는 일부 코드를 호출할 수 있습니다. 웹 테스트 플러그 인은 테스트가 반복될 때마다 한 번씩 실행됩니다. 또한 테스트 플러그 인에서 PreRequest 또는 PostRequest 메서드를 재정의하면 이러한 요청 플러그 인이 각 요청 전이나 후에 실행됩니다.
사용자 지정 웹 테스트 플러그 인은 WebTestPlugin 기본 클래스에서 사용자 클래스를 파생하여 만들 수 있습니다.
기록한 웹 테스트와 함께 사용자 지정 웹 테스트 플러그 인을 사용하면 최소한의 코드만 작성해도 되므로 웹 테스트를 훨씬 효과적으로 제어할 수 있습니다. 코딩된 웹 테스트와 함께 사용할 수도 있습니다. 자세한 내용은 방법: 코딩된 웹 테스트 만들기를 참조하십시오.
![]() |
---|
부하 테스트 플러그 인도 만들 수 있습니다. 자세한 내용은 방법: 부하 테스트 플러그 인 만들기를 참조하십시오. |
사용자 지정 웹 테스트 플러그 인을 만들려면
웹 테스트를 포함하는 테스트 프로젝트를 엽니다.
테스트 프로젝트를 만드는 방법에 대한 자세한 내용은 방법: 테스트 프로젝트 만들기를 참조하십시오.
웹 테스트 및 웹 테스트 플러그 인을 저장할 클래스 라이브러리 프로젝트를 만듭니다.
클래스 라이브러리 프로젝트를 선택한 다음 참조 추가를 마우스 오른쪽 단추로 클릭합니다.
.NET 탭에서 Microsoft.VisualStudio.QualityTools.WebTestFramework를 선택하고 확인을 클릭합니다.
테스트 프로젝트에서 마우스 오른쪽 단추를 클릭하고 참조 추가를 선택합니다.
프로젝트 탭에서 새 클래스 라이브러리를 선택합니다. 확인을 클릭합니다.
플러그 인 코드를 작성합니다. 먼저 WebTestPlugin에서 파생되는 새 공용 클래스를 만듭니다.
PreWebTest 및 M:Microsoft.VisualStudio.TestTools.WebTesting.WebTestPlugin.PostWebTest(System.Object,Microsoft.VisualStudio.TestTools.WebTesting.PostWebTestEventArgs) 이벤트 처리기 중 하나 또는 둘 다에서 코드를 구현합니다.
코드를 작성한 후 새 프로젝트를 빌드합니다.
웹 테스트를 엽니다.
웹 테스트 플러그 인을 추가하려면 도구 모음에서 웹 테스트 플러그 인 설정을 클릭합니다. 그러면 웹 테스트 플러그 인 설정 대화 상자에 테스트 플러그 인이 표시됩니다. 클래스를 선택한 다음 확인을 클릭합니다.
참고:
속성 창에서 웹 테스트 플러그 인을 변경할 수도 있습니다. 웹 테스트 노드를 선택하고 F4 키를 누릅니다. 속성 창에 플러그 인 범주 및 웹 테스트에 추가한 플러그 인이 표시됩니다.
예제
다음 코드에서는 테스트 반복을 나타내는 WebTestContext에 항목을 추가하는 사용자 지정 웹 테스트 플러그 인이 만들어집니다.
using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.VisualStudio.TestTools.WebTesting;
namespace SampleRules
{
public class SampleWebTestPlugin : WebTestPlugin
{
// start counting iterations at 1 not 0
// so that the iteration number we give matches the run number
static int testIterationNumber = 1;
public override void PostWebTest(object sender, PostWebTestEventArgs e)
{
}
public override void PreWebTest(object sender, PreWebTestEventArgs e)
{
e.WebTest.Context["TestIterationNumber"] = testIterationNumber;
testIterationNumber++;
}
}
}