使用Web Performance Test API编写编码的Web测试时。您可以编写同时发送请求(即并发请求)的测试,即与负载测试的一个用户同时发送请求,从而触发并发Web请求吗?
编辑:添加了额外的信息
我发现将请求添加到另一个请求的dependentRequest属性中意味着DependencyRequests是同时运行的。除了:为什么围绕此功能的Microsoft文档如此轻巧?
方案1:假设我有两个Web请求
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:据我所知,从属请求只是“一个深层”,我的意思是
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实现呢?
根据我的经验。使用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;
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句