使用Web Performance Test API编写编码Web测试时。您是否可以编写同时发送请求的测试,即并发的测试,即负载测试的一个用户,会触发并发Web请求?
编辑:添加额外信息
我发现向另一个请求的dependentRequest属性添加请求意味着并发地运行dependentRequests。旁白:为什么围绕这个功能的微软文档如此轻松?
场景1:我们说我有两个网络请求
public override IEnumerator<WebTestRequest> GetRequestEnumerator()
{
var request1 = new WebTestRequest("request1Uri");
var request2 = new WebTestRequest("request2Uri");
yield return request1;
yield return request2;
}
以上顺序运行,如果我想同时运行它们(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;
}
场景2:从我所看到的,依赖请求只是&#34;一个深度&#34;我的意思是
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 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;
}
如果我想要第一个示例(在场景2中)预期行为怎么办?如何使用webTest api实现此目的?
答案 0 :(得分:1)
根据我的经验。使用WebTestRequest的依赖请求属性是一种使用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;
}