다음을 통해 공유


ExtractionRule.Extract 메서드

업데이트: 2007년 11월

이 메서드를 파생 클래스에서 재정의하는 경우 이 메서드는 HtmlDocument에서 정보를 추출하여 WebTestContext에 추가합니다.

네임스페이스:  Microsoft.VisualStudio.TestTools.WebTesting
어셈블리:  Microsoft.VisualStudio.QualityTools.WebTestFramework(Microsoft.VisualStudio.QualityTools.WebTestFramework.dll)

구문

Public MustOverride Sub Extract ( _
    sender As Object, _
    e As ExtractionEventArgs _
)

Dim instance As ExtractionRule
Dim sender As Object
Dim e As ExtractionEventArgs

instance.Extract(sender, e)
public abstract void Extract(
    Object sender,
    ExtractionEventArgs e
)
public:
virtual void Extract(
    Object^ sender, 
    ExtractionEventArgs^ e
) abstract
public abstract function Extract(
    sender : Object, 
    e : ExtractionEventArgs
)

매개 변수

설명

이 메서드에는 핵심 추출 기능이 포함되어 있습니다. 이 메서드는 응답에서 데이터를 추출하는 데 사용됩니다.

상속자 참고 사항:

Extract 메서드를 파생 클래스에서 재정의하는 경우 이 메서드는 e.WebTest.Context에서 제공되는 WebTestContext에 추출된 값을 추가합니다. WebTestContext에 추가되는 값의 이름은 ContextParameterName 속성을 사용하여 설정됩니다. 추출에 성공하면 e.Success가 true로 설정되고, 그렇지 않으면 false로 설정됩니다.

예제

다음은 ExtractCheckBoxes 사용자 지정 추출 규칙을 사용하는 웹 테스트입니다. 여기에 사용되는 코드는 ExtractionRule에 있습니다. 이 코드는 ExtractionEventArgs에 포함된 WebTestResponse에서 제공하는 HtmlDocument에 확인란이 있는지 검사합니다. 그 결과는 테스트 엔진에 전달됩니다.

namespace TestProject1
{
    using System;
    using System.Collections.Generic;
    using Microsoft.VisualStudio.TestTools.WebTesting;
    using ClassLibrary2;

    public class MyWebTest : WebTest
    {
        public MyWebTest()
        {
            this.PreAuthenticate = true;
        }

        public override IEnumerator<WebTestRequest> GetRequestEnumerator()
        {
            WebTestRequest request1 = new WebTestRequest("https://localhost/ts");
            ExtractCheckBoxes rule1 = new ExtractCheckBoxes();
            rule1.FindCheckedBoxes = true;
            rule1.ContextParameterName = "CheckedBoxes";
            request1.ExtractValues += new EventHandler
                <ExtractionEventArgs>(rule1.Extract);
            ExtractCheckBoxes rule2 = new ExtractCheckBoxes();
            rule2.FindCheckedBoxes = false;
            rule2.ContextParameterName = "";
            request1.ExtractValues += new EventHandler
                <ExtractionEventArgs>(rule2.Extract);
            yield return request1;
        }
    }
}

다음은 ThreadedWebTest에서 상속되는 MyCodedWebTest라는 코딩된 웹 테스트입니다. 이 테스트에서는 숨겨진 필드를 추출합니다. 두 번째 요청은 세 가지 컨트롤 안에 포함된 폼 정보를 서버에 다시 게시합니다.

Option Strict Off
Option Explicit On

Imports Microsoft.VisualStudio.TestTools.WebTesting
Imports Microsoft.VisualStudio.TestTools.WebTesting.Rules
Imports System
Imports System.Collections.Generic

Namespace TestProject2
    
    Public Class MyCodedWebTest
        Inherits ThreadedWebTest
        
        Public Sub New()
            MyBase.New
            Me.PreAuthenticate = true
            Me.Proxy = "myproxy.com:80"
        End Sub
        
        Public Overrides Sub Run()
            Dim request1 As WebTestRequest = New WebTestRequest _
                ("https://localhost/MyWebSite")
            request1.ThinkTime = 1
            Dim rule1 As ExtractHiddenFields = New ExtractHiddenFields
            rule1.ContextParameterName = "1"
            AddHandler request1.ExtractValues, AddressOf rule1.Extract
            MyBase.Send(request1)

            Dim request2 As WebTestRequest = New WebTestRequest _
                ("https://localhost/MyWebSite/Default.aspx")
            request2.Method = "POST"
            Dim request2Body As FormPostHttpBody = New FormPostHttpBody
            request2Body.FormPostParameters.Add("__VIEWSTATE", "{{$HIDDEN1" + _
                ".__VIEWSTATE}}")
            request2Body.FormPostParameters.Add("Button1", "Button")
            request2Body.FormPostParameters.Add("TextBox1", "Hello text")
            request2.Body = request2Body
            Dim rule2 As ExtractHiddenFields = New ExtractHiddenFields
            rule2.ContextParameterName = ""
            AddHandler request2.ExtractValues, AddressOf rule2.Extract
            MyBase.Send(request2)
        End Sub
    End Class
End Namespace

권한

  • 직접 실행 호출자의 경우 완전히 신뢰합니다. 이 멤버는 부분적으로 신뢰할 수 있는 코드에서 사용할 수 없습니다. 자세한 내용은 부분 신뢰 코드에서 라이브러리 사용을 참조하십시오.

참고 항목

참조

ExtractionRule 클래스

ExtractionRule 멤버

Microsoft.VisualStudio.TestTools.WebTesting 네임스페이스

기타 리소스

방법: 사용자 지정 추출 규칙 만들기