C#使用WebTestRequest运行并发请求

C#使用WebTestRequest运行并发请求,c#,visual-studio-2012,testing,load-testing,coded-ui-tests,C#,Visual Studio 2012,Testing,Load Testing,Coded Ui Tests,当使用web性能测试API编写编码的web测试时。您是否可以编写同时发送请求的测试,即并发请求,即使用负载测试的一个用户触发并发web请求 编辑:添加额外信息 我发现将请求添加到另一个请求的dependentRequest属性意味着dependentRequests是并发运行的。旁白:为什么微软关于这个特性的文档这么少 场景1:假设我有两个web请求 public override IEnumerator<WebTestRequest> GetRequestEnumerator()

当使用web性能测试API编写编码的web测试时。您是否可以编写同时发送请求的测试,即并发请求,即使用负载测试的一个用户触发并发web请求

编辑:添加额外信息

我发现将请求添加到另一个请求的dependentRequest属性意味着dependentRequests是并发运行的。旁白:为什么微软关于这个特性的文档这么少

场景1:假设我有两个web请求

public override IEnumerator<WebTestRequest> GetRequestEnumerator()
{
    var request1 = new WebTestRequest("request1Uri");
    var request2 = new WebTestRequest("request2Uri");

    yield return request1;
    yield return request2;
}
public覆盖IEnumerator GetRequestEnumerator()
{
var request1=新的WebTestRequest(“request1Uri”);
var request2=新的WebTestRequest(“request2Uri”);
收益返回请求1;
收益回报请求2;
}
以上顺序运行,如果我想同时运行它们(request1和request2),我必须添加第三个请求并像下面那样运行它,它可以工作,但是想知道是否有一种更干净的方式(不创建第三个请求)?因为添加不需要的请求会影响结果

public override IEnumerator<WebTestRequest> GetRequestEnumerator()
{
    var request1 = new WebTestRequest("request1Uri");
    var request2 = new WebTestRequest("request2Uri");
    var request3 = new WebTestRequest("request3Uri");
    request3.DependentRequests.AddRange(new[] { request2, request1 });

    yield return request3;      
}
public覆盖IEnumerator GetRequestEnumerator()
{
var request1=新的WebTestRequest(“request1Uri”);
var request2=新的WebTestRequest(“request2Uri”);
var request3=新的WebTestRequest(“request3Uri”);
request3.DependentRequests.AddRange(新[]{request2,request1});
收益回报请求3;
}
场景2:从我所看到的情况来看,依赖请求只是“一个深度”,我的意思是

public override IEnumerator<WebTestRequest> GetRequestEnumerator()
{
    var request1 = new WebTestRequest("request1Uri");
    var request2 = new WebTestRequest("request2Uri");
    var request3 = new WebTestRequest("request3Uri");
    var request4 = new WebTestRequest("request4Uri");
    var request5 = new WebTestRequest("request5Uri");

    request3.DependentRequests.AddRange(new[] { request2, request1 });
    request5.DependentRequests.AddRange(new[] { request4, request3 });

    yield return request5;      
}
public覆盖IEnumerator GetRequestEnumerator()
{
var request1=新的WebTestRequest(“request1Uri”);
var request2=新的WebTestRequest(“request2Uri”);
var request3=新的WebTestRequest(“request3Uri”);
var request4=新的WebTestRequest(“request4Uri”);
var request5=新的WebTestRequest(“request5Uri”);
request3.DependentRequests.AddRange(新[]{request2,request1});
request5.DependentRequests.AddRange(新[]{request4,request3});
收益返回请求5;
}

public override IEnumerator<WebTestRequest> GetRequestEnumerator()
{
    var request1 = new WebTestRequest("request1Uri");
    var request2 = new WebTestRequest("request2Uri");
    var request3 = new WebTestRequest("request3Uri");
    var request4 = new WebTestRequest("request4Uri");
    var request5 = new WebTestRequest("request5Uri");

    request5.DependentRequests.AddRange(new[] { request2, request1, request4, request3 });

    yield return request5;      
}
public覆盖IEnumerator GetRequestEnumerator()
{
var request1=新的WebTestRequest(“request1Uri”);
var request2=新的WebTestRequest(“request2Uri”);
var request3=新的WebTestRequest(“request3Uri”);
var request4=新的WebTestRequest(“request4Uri”);
var request5=新的WebTestRequest(“request5Uri”);
request5.DependentRequests.AddRange(新[]{request2,request1,request4,request3});
收益返回请求5;
}

如果我想要第一个示例(在场景2中)的预期行为,如何使用WebTestAPI实现这一点?

根据我的经验。使用WebTestRequest的dependent request属性是使用microsoft的Web性能测试API获取并发请求的一种方法

对于场景1,我没有发现比问题中已有的更好的东西

对于场景2,我做了类似于下面的操作,以接近我想要的行为

public override IEnumerator<WebTestRequest> GetRequestEnumerator()
{
    var request1 = new WebTestRequest("request1Uri");
    var request2 = new WebTestRequest("request2Uri");
    var request3 = new WebTestRequest("request3Uri");
    var request4 = new WebTestRequest("request4Uri");
    var request5 = new WebTestRequest("request5Uri");
    var request6 = new WebTestRequest("request6Uri");

    request6.DependentRequests.AddRange(new[] { request2, request1 });
    request5.DependentRequests.AddRange(new[] { request4, request3 });

    yield return request5;      
    yield return request6;
}
public覆盖IEnumerator GetRequestEnumerator()
{
var request1=新的WebTestRequest(“request1Uri”);
var request2=新的WebTestRequest(“request2Uri”);
var request3=新的WebTestRequest(“request3Uri”);
var request4=新的WebTestRequest(“request4Uri”);
var request5=新的WebTestRequest(“request5Uri”);
var request6=新的WebTestRequest(“request6Uri”);
request6.DependentRequests.AddRange(新[]{request2,request1});
request5.DependentRequests.AddRange(新[]{request4,request3});
收益返回请求5;
收益回报请求6;
}

我相信这就是受抚养人请求的处理方式。在Web性能测试的预请求插件中,您可以添加/删除依赖请求。@AdrianHHH您是对的,这就是依赖请求的工作方式,但是如果您只有两个必须同时运行的请求,那么您是否必须创建第三个“假”请求,指向google.com,将2个“真实”请求添加为从属请求?编写此场景的正确方法是什么?