WebTestRequest 类
表示将发送到 Web 服务器的 HTTP 请求。
继承层次结构
System.Object
Microsoft.VisualStudio.TestTools.WebTesting.WebTestItem
Microsoft.VisualStudio.TestTools.WebTesting.WebTestRequest
命名空间: Microsoft.VisualStudio.TestTools.WebTesting
程序集: Microsoft.VisualStudio.QualityTools.WebTestFramework(在 Microsoft.VisualStudio.QualityTools.WebTestFramework.dll 中)
语法
声明
<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
WebTestRequest 类型公开以下成员。
构造函数
名称 | 说明 | |
---|---|---|
WebTestRequest(String) | 使用 URL 字符串初始化 WebTestRequest 类的新实例。 | |
WebTestRequest(Uri) | 使用 WebTestRequest 对象初始化 Uri 类的新实例。 |
页首
属性
名称 | 说明 | |
---|---|---|
Body | 获取或设置此请求的正文。 | |
BodyBytes | 获取与正文关联的字节。 | |
Cache | 获取或设置一个值,该值指示是否模拟请求的浏览器缓存。 | |
ClientCertificates | 获取或设置一个引用,以允许用户使用 X.509 SSL 证书进行身份验证。 | |
ContentLength | 获取请求正文的长度(以字节为单位)。 | |
ContentType | 获取请求的内容类型。 | |
Cookies | 获取一个 Cookie 的集合。 | |
CorrelationExtractionRuleReferences | 获取对一些提取规则的引用的集合,这些提取规则用于将动态参数关联起来。 | |
DependentRequests | 获取从属请求的集合。 | |
EncodeRedirectedUrl | 获取或设置一个布尔值,该值表示是否在一个重定向的 URL 上编码查询字符参数。 | |
Encoding | 获取或设置 Encoding 格式。 | |
ExpectedHttpStatusCode | 获取或设置此请求的预期 HTTP 状态代码。 | |
ExpectedResponseUrl | 获取或设置响应的预期 URL。当预期发生重定向时,此 URL 可能会与请求 URL 不同。 | |
ExtractionRuleReferences | 获取对一些提取规则的引用的集合,这些提取规则是为此请求定义的。 | |
FollowRedirects | 获取或设置一个值,该值指示是否自动遵循重定向。 | |
HasCookies | 获取一个值,该值指示请求是否具有 Cookie。 | |
HasDependentRequests | 获取一个值,该值指示请求是否具有从属请求。 | |
HasHeaders | 获取一个值,该值指示请求是否具有 HTTP 标头。 | |
HasQueryStringParameters | 获取一个值,该值指示请求是否有查询字符串参数。 | |
Headers | 获取请求的 HTTP 标头的集合。 | |
IsRedirectFollow | 获取一个值,该值指示请求的创建是否是由于遵循了重定向。 | |
ItemId | Web 性能测试中的项的从零开始的序列号。 (继承自 WebTestItem。) | |
Method | 获取或设置用于请求的方法。 | |
Outcome | 获取或设置 Web 性能测试请求的“通过”或“未通过”结果。 | |
ParseDependentRequests | 获取或设置一个值,该值指示是否自动获取在响应正文中找到的从属请求。 | |
QueryStringParameters | 获取请求的查询字符串参数的列表。 | |
RecordedCookies | 获取随请求一起记录的 cookie。 | |
RecordResult | 获取或设置一个值,该值指示是否为此请求跟踪单个统计信息和结果数据。 | |
ReportingName | 获取或设置请求的报告名称。 | |
ResponseTimeGoal | 获取或设置特定页的响应时间目标。 | |
SendChunked | 获取或设置一个值,该值指示用户是否可以发送分块请求正文。 | |
ThinkTime | 获取或设置一个值,该值表示在接收到响应之后要等待的思考时间。 | |
Timeout | 获取或设置一个值,此值指示超时前请求等待的时间。 | |
Url | 获取或设置为请求使用的资源的 URL。 | |
UrlWithQueryString | 获取用于此请求的资源的 URL。这包括查询字符串。 | |
ValidationRuleReferences | 获取对一些验证规则的引用的集合,这些验证规则是为此请求定义的。 | |
Version | 获取或设置请求的 HTTP 版本。 | |
WebTestRequestPluginReferences | 获取对一些 Web 性能测试请求插件的引用的集合,这些插件是针对此请求定义的。 |
页首
方法
名称 | 说明 | |
---|---|---|
Clone | 生成 WebTestRequest 对象的深层副本。 (重写 WebTestItem.Clone()。) | |
Equals | 确定指定的 Object 是否等于当前的 Object。 (继承自 Object。) | |
Finalize | 允许对象在“垃圾回收”回收之前尝试释放资源并执行其他清理操作。 (继承自 Object。) | |
GetHashCode | 用作特定类型的哈希函数。 (继承自 Object。) | |
GetType | 获取当前实例的 Type。 (继承自 Object。) | |
InternalSetOutcome | 表示 RequestPlugin 内部设置的结果。 | |
MemberwiseClone | 创建当前 Object 的浅表副本。 (继承自 Object。) | |
RuntimeClone | 运行时返回此对象的副本。 (继承自 WebTestItem。) | |
ToString | 返回表示当前对象的字符串。 (继承自 Object。) |
页首
事件
名称 | 说明 | |
---|---|---|
ExtractValues | 在 ValidateResponse 事件后发生。 | |
PostRequest | 在 ValidateResponse 和 ExtractValues 事件后发生。 | |
PreRequest | 在发送请求前发生。 | |
PreRequestDataBinding | 数据绑定发生前,将引发此事件。 | |
ValidateResponse | 在接收到响应后立即发生。 | |
ValidateResponseOnPageComplete | 页面完全加载后,将引发此事件。这用于检查响应是否有效。 |
页首
备注
此类提供核心函数来模拟编码 Web 性能测试中的 HTTP 请求。 Visual C# Web 性能测试的 GetRequestEnumerator 方法和 Visual Basic 中的 ThreadedWebTest 所使用的 Run 方法将模拟 HTTP 请求返回到 Web 性能测试引擎。
此类可以序列化。
示例
下面的 Web 性能测试提取表示复选框状态的值,并将这些值添加到上下文。
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 的编码 Web 性能测试。 第二个请求将三个控件中包含的窗体信息回发到服务器。
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
线程安全
此类型的任何公共 static(在 Visual Basic 中为 Shared) 成员都是线程安全的。但不保证所有实例成员都是线程安全的。
请参见
参考
Microsoft.VisualStudio.TestTools.WebTesting 命名空间