使用webtest进行无cookie负载测试

时间:2014-04-21 15:03:59

标签: c# .net mstest load-testing coded-ui-tests

问题:负载测试不会创建WebTest的新实例,
这使得每个新请求都保留了cookie

我录制了一个编码网络测试,其结构为:

public class SomeWebTest : WebTest
{
    public override IEnumerator<WebTestRequest> GetRequestEnumerator()  
    {
        // need to cleans cookies here, otherwise already logged in
        yield return LoadLoginFormPageRequest;
        yield return PostLoginData;
        yield return PostLoginPageRequest;
    }
}

将其放在loadtest内,并持续加载20个用户 在一个线程完成所有3个请求后,同一个实例正在另一个线程中重用,并且所有cookie都被保留,因此下一个线程认为访问者已经被授权。

如何清洁饼干或重组我的负载测试以执行此操作?

1 个答案:

答案 0 :(得分:0)

一种可能的解决方案是在单次测试结束时为每个请求设置所有cookie过期,如下所示:

    yield return ..
    yield return ..
    yield return ..

    foreach (Cookie cookie in LoadLoginFormPageRequest.Cookies)
                cookie.Expired = true;

    foreach (Cookie cookie in PostLoginData.Cookies)
        cookie.Expired = true;

    foreach (Cookie cookie in PostLoginPageRequest.Cookies)
        cookie.Expired = true;