ExtractionRule 클래스
웹 성능 테스트에서 생성된 웹 응답에서 데이터를 가져오기 위한 규칙을 정의하는 데 사용되는 기본 클래스입니다.
상속 계층 구조
System.Object
Microsoft.VisualStudio.TestTools.WebTesting.ExtractionRule
Microsoft.VisualStudio.TestTools.WebTesting.ExtractHtmlSelectTag
Microsoft.VisualStudio.TestTools.WebTesting.ExtractHtmlTagInnerText
Microsoft.VisualStudio.TestTools.WebTesting.Rules.ExtractAttributeValue
Microsoft.VisualStudio.TestTools.WebTesting.Rules.ExtractFormField
Microsoft.VisualStudio.TestTools.WebTesting.Rules.ExtractHiddenFields
Microsoft.VisualStudio.TestTools.WebTesting.Rules.ExtractHttpHeader
Microsoft.VisualStudio.TestTools.WebTesting.Rules.ExtractRegularExpression
Microsoft.VisualStudio.TestTools.WebTesting.Rules.ExtractText
네임스페이스: Microsoft.VisualStudio.TestTools.WebTesting
어셈블리: Microsoft.VisualStudio.QualityTools.WebTestFramework(Microsoft.VisualStudio.QualityTools.WebTestFramework.dll)
구문
‘선언
Public MustInherit Class ExtractionRule
public abstract class ExtractionRule
public ref class ExtractionRule abstract
[<AbstractClass>]
type ExtractionRule = class end
public abstract class ExtractionRule
ExtractionRule 형식에서는 다음과 같은 멤버를 노출합니다.
생성자
이름 | 설명 | |
---|---|---|
ExtractionRule | ExtractionRule 클래스의 새 인스턴스를 초기화합니다. |
위쪽
속성
이름 | 설명 | |
---|---|---|
ContextParameterName | 추출된 속성의 컨텍스트 이름을 가져오거나 설정합니다. | |
RuleDescription | 사용되지 않습니다. 이 메서드는 더 이상 사용되지 않습니다.이 규칙에 대한 설명을 설정하려면 해당 클래스의 DisplayNameAttribute를 사용합니다. | |
RuleName | 사용되지 않습니다. 이 메서드는 더 이상 사용되지 않습니다.이 규칙의 표시 이름을 설정하려면 해당 클래스의 DisplayNameAttribute를 사용합니다. |
위쪽
메서드
이름 | 설명 | |
---|---|---|
Equals | 지정한 Object가 현재 Object와 같은지 여부를 확인합니다. (Object에서 상속됨) | |
Extract | 이 메서드를 파생 클래스에서 재정의하는 경우 이 메서드는 HtmlDocument에서 정보를 추출하여 WebTestContext에 추가합니다. | |
Finalize | 가비지 수집에서 회수하기 전에 개체에서 리소스를 해제하고 다른 정리 작업을 수행할 수 있게 합니다. (Object에서 상속됨) | |
GetHashCode | 특정 형식에 대한 해시 함수 역할을 합니다. (Object에서 상속됨) | |
GetType | 현재 인스턴스의 Type을 가져옵니다. (Object에서 상속됨) | |
MemberwiseClone | 현재 Object의 단순 복사본을 만듭니다. (Object에서 상속됨) | |
ToString | 현재 개체를 나타내는 문자열을 반환합니다. (Object에서 상속됨) |
위쪽
설명
ExtractionRule 클래스는 사용자가 작성한 것인지 기본 제공되는 것인지에 상관없이 추출 규칙에 상속되어야 합니다. 요청 정의와 관련된 만료 규칙은 응답을 받은 후에 실행되며 추출의 결과는 WebTestContext에 추가됩니다.
상속자 참고 사항
ExtractionRule에서 상속하는 경우 Extract, RuleDescription 및 RuleName 멤버를 재정의해야 합니다.
예제
다음은 HtmlDocument에서 확인란을 추출하고 발견된 확인란의 상태를 컨텍스트에 추가하는 사용자 지정 추출 규칙입니다.
using System;
using Microsoft.VisualStudio.TestTools.WebTesting;
namespace ClassLibrary2
{
public class ExtractCheckBoxes : ExtractionRule
{
private string myContextParameter = "ExtractCBoxParam";
private bool isChecked = true;
public override string ContextParameterName
{
get { return myContextParameter; }
set
{
if (value != string.Empty)
myContextParameter = value;
}
}
public bool FindCheckedBoxes
{
get { return isChecked; }
set { isChecked = value; }
}
public override string RuleName
{
get { return "Extract Check Boxes"; }
}
public override string RuleDescription
{
get { return "Extract check boxes based on whether they are" +
" checked or not."; }
}
public override void Extract(object sender, ExtractionEventArgs e)
{
e.Success = false;
if (e.Response.HtmlDocument != null)
{ // Gets all input tags
foreach (HtmlTag tag in e.Response.HtmlDocument
.GetFilteredHtmlTags(new string[] { "input" }))
{ // Verify that current tag is a checkbox
if (tag.GetAttributeValueAsString("type") == "checkbox")
{ // Is the checkbox checked
if (tag.GetAttributeValueAsString("checked") == "CHECKED")
{ // Add checked check boxes to context
if (isChecked)
{
e.WebTest.Context.Add(myContextParameter + "_" +
tag.GetAttributeValueAsString("id"),
"Is Checked");
e.Success = true;
}
}
else // The checkbox is not checked
{ // Add non-checked boxes to context
if (!isChecked)
{
e.WebTest.Context.Add(myContextParameter + "_" +
tag.GetAttributeValueAsString("id"),
"Is Not Checked");
e.Success = true;
}
}
}
}
}
if (e.Success)
e.Message = "Extracted check boxes.";
else
e.Message = "No check boxes extracted.";
}
}
}
Imports System
Imports Microsoft.VisualStudio.TestTools.WebTesting
Namespace ClassLibrary2
Public Class ExtractCheckBoxes
Inherits ExtractionRule
Private myContextParameter As String = "ExtractCBoxParam"
Private isChecked As Boolean = True
Public Overrides Property ContextParameterName() As String
Get
Return myContextParameter
End Get
Set(ByVal value As String)
If (value <> String.Empty) Then
myContextParameter = value
End If
End Set
End Property
Public Property FindCheckedBoxes() As Boolean
Get
Return isChecked
End Get
Set(ByVal value As Boolean)
isChecked = value
End Set
End Property
Public Overrides ReadOnly Property RuleName() As String
Get
Return "Extract Check Boxes"
End Get
End Property
Public Overrides ReadOnly Property RuleDescription() As String
Get
Return "Extract check boxes based on whether they are" + _
" checked or not."
End Get
End Property
Public Overrides Sub Extract(ByVal sender As Object, ByVal e As ExtractionEventArgs)
e.Success = False
If Not e.Response.HtmlDocument Is Nothing Then
' Gets all input tags
Dim tag As HtmlTag
For Each tag In e.Response.HtmlDocument.GetFilteredHtmlTags(New String() {"input"})
' Verify if current tag is a checkbox
If tag.GetAttributeValueAsString("type") = "checkbox" Then
' Is the check box checked
If tag.GetAttributeValueAsString("checked") = "CHECKED" Then
' Add checked checkbox to context
If isChecked = True Then
e.WebTest.Context.Add(myContextParameter + "_" + _
tag.GetAttributeValueAsString("id"), "Is Checked")
e.Success = True
End If
Else ' The check box is not checked
If isChecked = False Then
' Add non-checked boxes to context
e.WebTest.Context.Add(myContextParameter + "_" + _
tag.GetAttributeValueAsString("id"), "Is Not Checked")
e.Success = True
End If
End If
End If
Next
End If
If e.Success = True Then
e.Message = "Extracted check boxes."
Else
e.Message = "No check boxes extracted."
End If
End Sub
End Class
End Namespace
스레드로부터의 안전성
이 형식의 모든 공용 static(Visual Basic의 경우 Shared) 멤버는 스레드로부터 안전합니다. 인터페이스 멤버는 스레드로부터 안전하지 않습니다.
참고 항목
참조
Microsoft.VisualStudio.TestTools.WebTesting 네임스페이스