我有一个具有100个线程(用户)的线程组,循环计数为10。 我有一个默认设置的cookie管理器。 用户是匿名用户(未登录),但是我想在应用程序见解中跟踪访问该网站的用户数量,因为它将生成新的.net会话令牌。
运行测试时,我希望cookie对每个线程循环迭代都是本地的。
因此,我希望每个线程都会“清除” cookie 10次,因此,我希望在我的应用程序中生成1000个.net会话cookie。
但是,我没有,我看到1。
在cookie管理器中,有两个选项:
两者均未选中。
但这没有任何意义-我希望在每次迭代中为每个用户清除cookie。
我应该检查其中一个还是两个?我需要在线程组上进行任何设置吗?
在线程组中,我没有选中“每次迭代中用户相同的用户”-每次迭代都应被视为新用户。
此外,Cookie管理器会去哪里吗?我一直把它放在线程组的顶部,但是也许应该放在线程组的下面?
想法?
答案 0 :(得分:1)
您可以向代码添加到第一个请求JSR223 PreProcessor,该代码将在每次迭代开始时清除Cookie
sampler.getCookieManager().clear()
答案 1 :(得分:1)
100 * 10等于1000,而不是10000
有两种方法可以在每次迭代中清除Cookie:
勾选此框:
或在Thread Group级上勾选另一个并取消选中
{
[
[1,"Apple"],
[2,"Orange"],
[3,"Banana"]
]
}
我会选择后一种方法,因为它可以控制HTTP Cache Manager和HTTP Authorization Manager
HTTP Cookie管理器将仅线程组迭代视为迭代,而未将其他循环源(如Loop Controller或While Controller)考虑在内
您可能会考虑放置HTTP Cookie管理器,以根据测试情况限制其scope
答案 2 :(得分:0)
我做了一些实验。完成此操作后,我得到了正确的结果:
现在,对于每个线程和每个迭代,我都会看到新的会话cookie,并且这些cookie仅为该线程和迭代保留。