问题:负载测试不会创建新的WebTest实例,
这使得每个新请求都保留cookie。
我已经记录了一个编码的web测试,它的结构是:
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;
}
}将其放入一个具有20个用户的恒定负载的loadtest中。
在一个线程完成所有3个请求之后,同一个实例在另一个线程中被重用,所有的cookie都被保留下来,因此下一个线程认为访问者已经被授权了。
我应该如何清理cookie或重新构造我的负载测试来执行此操作?
发布于 2014-04-21 23:21:06
一种可能的解决方案是在单个测试结束时将每个请求的所有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;https://stackoverflow.com/questions/23200000
复制相似问题