问题:负载测试不会创建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都被保留,因此下一个线程认为访问者已经被授权。
如何清洁饼干或重组我的负载测试以执行此操作?
答案 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;