WebTestRequest Class
Represents an HTTP request that will be sent to a Web server.
Inheritance Hierarchy
System.Object
Microsoft.VisualStudio.TestTools.WebTesting.WebTestItem
Microsoft.VisualStudio.TestTools.WebTesting.WebTestRequest
Namespace: Microsoft.VisualStudio.TestTools.WebTesting
Assembly: Microsoft.VisualStudio.QualityTools.WebTestFramework (in Microsoft.VisualStudio.QualityTools.WebTestFramework.dll)
Syntax
'Declaration
<SerializableAttribute> _
Public Class WebTestRequest _
Inherits WebTestItem
[SerializableAttribute]
public class WebTestRequest : WebTestItem
[SerializableAttribute]
public ref class WebTestRequest : public WebTestItem
[<SerializableAttribute>]
type WebTestRequest =
class
inherit WebTestItem
end
public class WebTestRequest extends WebTestItem
The WebTestRequest type exposes the following members.
Constructors
Name | Description | |
---|---|---|
WebTestRequest(String) | Initializes a new instance of the WebTestRequest class by using a URL string. | |
WebTestRequest(Uri) | Initializes a new instance of the WebTestRequest class by using a Uri object. |
Top
Properties
Name | Description | |
---|---|---|
Body | Gets or sets the body of this request. | |
BodyBytes | Gets the bytes that are associated with the body. | |
Cache | Gets or sets a value that indicates whether to simulate browser caching for the request. | |
ClientCertificates | Gets or sets a reference to allow users to authenticate by using X.509 SSL certificates. | |
ContentLength | Gets the length, in bytes, of the request body. | |
ContentType | Gets the content type of the request. | |
Cookies | Gets a collection of cookies. | |
CorrelationExtractionRuleReferences | Gets the collection of references to extraction rules that are used to correlate dynamic parameters. | |
DependentRequests | Gets the collection of dependent requests. | |
EncodeRedirectedUrl | Gets or sets a Boolean value that indicates whether to encode query string parameters on a redirected URL. | |
Encoding | Gets or sets the Encoding format. | |
ExpectedHttpStatusCode | Gets or sets the HTTP status code that is expected for this request. | |
ExpectedResponseUrl | Gets or sets the expected URL of the response. When a redirect is expected, this URL might differ from the request URL. | |
ExtractionRuleReferences | Gets the collection of references to extraction rules that are defined for the request. | |
FollowRedirects | Gets or sets a value that indicates whether to automatically follow redirects. | |
HasCookies | Gets a value that indicates whether the request has cookies. | |
HasDependentRequests | Gets a value that indicates whether the request has dependent requests. | |
HasHeaders | Gets a value that indicates whether the request has HTTP headers. | |
HasQueryStringParameters | Gets a value that indicates whether the request has querystring parameters. | |
Headers | Gets the collection of HTTP headers for the request. | |
IsRedirectFollow | Gets a value that indicates whether the request was created as the result of following a redirect. | |
ItemId | Zero-based sequence number of the item in the Web performance test. (Inherited from WebTestItem.) | |
Method | Gets or sets the method to use for the request. | |
Outcome | Gets or sets the Pass or Fail outcome of the Web performance test request. | |
ParseDependentRequests | Gets or sets a value that indicates whether to automatically fetch dependent requests that are found in the response body. | |
QueryStringParameters | Gets the list of query string parameters for the request. | |
RecordedCookies | Gets the cookies that is recorded together with the request. | |
RecordResult | Gets or sets a value that indicates whether individual statistics and result data are tracked for this request. | |
ReportingName | Gets or sets the reporting name for a request. | |
ResponseTimeGoal | Gets or sets the response time goal for a particular page. | |
SendChunked | Gets or sets a value that indicates whether the user can send a chunked request body. | |
ThinkTime | Gets or sets a value that represents the think time to wait after the response is received. | |
Timeout | Gets or sets a value that indicates the time to wait for this request before timing out. | |
Url | Gets or sets the URL to the resource that is used for the request. | |
UrlWithQueryString | Gets the URL to the resource that is used for the request. This includes the query string. | |
ValidationRuleReferences | Gets the collection of references to validation rules that are defined for the request. | |
Version | Gets or sets the HTTP version of the request. | |
WebTestRequestPluginReferences | Gets the collection of references to the Web performance test request plug-ins that are defined on the request. |
Top
Methods
Name | Description | |
---|---|---|
Clone | Makes a deep copy of the WebTestRequest object. (Overrides WebTestItem.Clone().) | |
Equals | Determines whether the specified Object is equal to the current Object. (Inherited from Object.) | |
Finalize | Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. (Inherited from Object.) | |
GetHashCode | Serves as a hash function for a particular type. (Inherited from Object.) | |
GetType | Gets the Type of the current instance. (Inherited from Object.) | |
InternalSetOutcome | Represents the outcome that was set internally by RequestPlugin. | |
MemberwiseClone | Creates a shallow copy of the current Object. (Inherited from Object.) | |
RuntimeClone | Returns a clone of this object at run time. (Inherited from WebTestItem.) | |
ToString | Returns a string that represents the current object. (Inherited from Object.) |
Top
Events
Name | Description | |
---|---|---|
ExtractValues | Occurs after the ValidateResponse event. | |
PostRequest | Occurs after the ValidateResponse and the ExtractValues events. | |
PreRequest | Occurs before the request is sent. | |
PreRequestDataBinding | This event is raised before the data binding occurs. | |
ValidateResponse | Occurs immediately after the response is received. | |
ValidateResponseOnPageComplete | This event is raised after the page is fully loaded. This is used to check that the response was valid. |
Top
Remarks
This class provides the core functionality to simulate HTTP requests in a coded Web performance test. The simulated HTTP requests are returned to the Web performance test engine by the GetRequestEnumerator method for Visual C# Web performance tests and by the Run method that is used by ThreadedWebTest in Visual Basic.
This class is serializable.
Examples
The following Web performance test extracts values that represent the status of check boxes and adds the values to the context.
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;
}
}
}
The following is a coded Web performance test called MyCodedWebTest that inherits from ThreadedWebTest. The second request posts form information that is contained in three controls back to the server.
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
// TODO: specify your proxy below
Me.Proxy = "myproxy.seattle.corp.northwind.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
Thread Safety
Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.
See Also
Reference
Microsoft.VisualStudio.TestTools.WebTesting Namespace