0

我正在尝试清除线程组中间的 cookie 和缓存,以便我可以使用另一个用户登录到测试应用程序。我在 jmeter 中编写了以下 beanshell。

import org.apache.jmeter.protocol.http.control.CookieManager;

CookieManager manager = ctx.getCurrentSampler().getProperty("HTTPSampler.cookir_manager").getObjectValue();

ObjectValue();

clear cache.clear();

我的 jmeter 日志中出现以下错误。

调用 bsh 方法时出错:eval 源文件:内联评估:“import org.apache.jmeter.protocol.http.control.CookirManager; ...”令牌解析错误;第 3 行第 59 列出现词汇错误。遇到:"\u201c" (8220),之后:""

我尝试使用以下代码使用 JSR223 后处理器清除缓存:

sampler.getCacheManager().clear();
sampler.getCookieManager().clear();

但是上面这段代码作为一个全局代码,并开始清除每个采样器的缓存和 cookie 以提醒脚本,这导致了身份验证问题。

请让我知道是否有任何其他方法可以单独清除特定实例/采样器的缓存和 cookie。

是否有任何特定的 .jar 要导入到 Jmeter 来完成这项工作?

4

1 回答 1

0
  1. 您的脚本中存在语法错误,目前无法说出确切的位置,因为您的代码未满。除了应该看起来像的属性名称中的拼写错误外,我没有看到任何问题HTTPSampler.cookie_manager

  2. 从 JMeter 3.1 开始,您应该使用 JSR223 测试元素和 Groovy 语言编写脚本

  3. JSR223 PostProcessor 遵循JMeter 范围规则,因此如果您将其作为特定采样器的子级 - 它将仅应用于该采样器。

    如果您将它与多个采样器置于同一级别 - 它将应用于所有采样器。

  4. 取消勾选线程组中的“每次迭代相同用户”框不是更容易吗?

    在此处输入图像描述

于 2022-01-05T05:23:48.493 回答