当前位置: 首页 > 知识库问答 >
问题:

使用Cookie管理器和正则表达式提取器时的jMeter问题

唐睿
2023-03-14

这里的问题是,我为整个控制器设置了cookie管理器,而不是获得实际数据,我获得的是cookie中变量的名称“.authToken=${auth}”。

我猜原因是当测试到达Cookie管理器时没有声明变量,但我希望jmeter足够聪明,在到达正则表达式提取器时声明变量。

结构

    null

唯一一次它似乎正常工作是当我在http请求中设置了Cookie管理器并禁用了“main”Cookie管理器(用于整个控制器的管理器)时。然后它得到了正确的提取,但对于这样一个基本需求来说,这将是非常愚蠢的变通方法,而且我有许多http请求(超过100个)需要使用提取的值。

Jmeter在正则表达式提取器声明变量之前不需要使用它,我确保域是正确的,并且在应该提取它之后才第一次使用它。

我想到的另一个解决方案是有单独的线程,将它们链接起来,并在它们之间发送变量,一旦提取数据,就启动下一个线程,但这似乎有点太激烈了。

    null

任何帮助/想法都很感激。我已经想了大约一个小时了,我想我一定错过了一些非常简单的东西。

共有1个答案

公羊凌
2023-03-14

好吧,大约两个小时后终于解决了这个问题。

多亏了这篇文章,我才能够做我需要做的事情https://capacitas.wordpress.com/2013/06/11/thats-the-way-the-cookie-crumbles-jmeter-style-part-2/

简而言之:您需要使用beanshell预处理器并手动添加cookie,这里是beanshell脚本,以防站点死亡:

import org.apache.jmeter.protocol.http.control.CookieManager;
import org.apache.jmeter.protocol.http.control.Cookie;
CookieManager manager = sampler.getCookieManager();
Cookie cookie = new Cookie("CookieName", vars.get("YourExtractedVariable"), "Domain", "Path", false, 0);
manager.add(cookie);
 类似资料:
  • 我试图创建一个线程组,使登录到我们的系统中。为此,我需要包含 每次打开页时生成的标记,并保存在隐藏值中。因此,通常的解决方案,如响应,执行正则表达式提取器,并使值变量和it稍后请求,对我来说不起作用。因为标记与和时不同。 然后,我找到了一个并行控制器,这对我来说可能是一个解决方案。但我找不到办法。另外,没有我的母语(日语)的参考资料。我想要标记到某些登录操作,所以我需要用并行控制器做正则表达式提取

  • 我有一个JMeter脚本,它处理一系列请求,每个请求都不同,get,post,等等。 每个请求从服务器返回一个自定义标头,标头中有一些数值。这个头返回它在服务器端所花费的实际处理时间(没有延迟/HTTP开销) 我可以添加一个正则表达式提取器来毫无问题地从头部获取该值,但我希望所有请求都重复这样做。 在JMeter中跟踪正则表达式提取器的结果 谢谢你。

  • 当我在调试采样器中看到时,我的变量中没有任何东西。

  • 问题内容: 我只是想使用jmeter提取json响应数据,但不能这样做。 我得到类似的东西。 我正在尝试但无法获得。 谁能帮我使这个工作正常? 问题答案: 外观在响应中是否唯一(仅出现一次)? 如果是这样,您可以简单地使用正则表达式提取器添加到HTTP请求中,该请求器返回json响应,并带有如下正则表达式: `` 并将进一步提取的值称为。 但是,如果您的情况更加复杂,并且在json响应中出现了几种

  • 我试图使用JMeter登录到ASP.NET web窗体应用程序。我将登录序列记录到*.jmx文件中,现在尝试使用正则表达式提取器后处理器提取__ViewState、__ViewStateGenerator和__EventValidation隐藏输入。 在这三种情况下,JMeter提取的是我想要提取的变量的名称(例如“${viewstate}”),而不是我想要提取的值。下面是当我查看ViewResu

  • 我想知道为什么JMeter中的正则表达式提取器在参数化后不提取数据。响应消息:内部服务器错误 添加的表达式包括: > name=“\uuuueventvalidation”id=“\uuueventvalidation”value=“(.?)” name=“\uuuu VIEWSTATE”id=“\uuuu VIEWSTATE”value=“(.?)”