다음을 통해 공유


ExtractionRule.Extract 메서드

이 메서드를 파생 클래스에서 재정의하는 경우 이 메서드는 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 _
)
public abstract void Extract(
    Object sender,
    ExtractionEventArgs e
)
public:
virtual void Extract(
    Object^ sender, 
    ExtractionEventArgs^ e
) abstract
abstract Extract : 
        sender:Object * 
        e:ExtractionEventArgs -> unit 
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

.NET Framework 보안

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

참고 항목

참조

ExtractionRule 클래스

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

기타 리소스

방법: 웹 성능 테스트에 대한 사용자 지정 추출 규칙 만들기