【问题标题】:JMeter Variable Value Getting Lost In Same ThreadGroup And Simple ControllerJMeter 变量值在同一线程组和简单控制器中丢失
【发布时间】:2015-12-21 09:01:25
【问题描述】:

我正在使用 Jmeter 创建负载测试场景。格式如下。

1.Thread Group  
 1.1.Simple Controller  
  1.1.1 HTTP request 1---extract a certain variable X from the response  
  1.1.2.HTTP request 2( Send X as a parameter)  
  1.1.3 Simple Controller  
   1.1.3.1. HTTP request [Try to use X as parameter]

我只用 1 个线程直接从 Jmeter 运行它。

问题:变量 X 的值在 1.1.3.1 处变为空白。

有时,即使在同一级别,变量值也会在下一个事件中丢失。即,如果有两个连续的 HTTP 请求,则在第二个请求中该值将丢失。

我的问题是:为什么价值会丢失,防止它丢失的解决方案是什么?

我以前使用的方式就像是重新组织事件。但这可能并不总是可能的。有没有办法通过一些全局变量来保留值?

【问题讨论】:

  • 您是否尝试过使用调试采样器?你能分享你的脚本文件吗?从技术上讲,在不同控制器之间(在同一线程组下)共享变量时应该没有任何问题
  • 尝试将其他变量传递给第二个控制器请求。一定还有别的问题。或者,如果您可以共享脚本,那么我可以研究一下。
  • 谢谢阿里夫。我确实使用调试采样器。放置在 1.1.1 和 1.1.2 之间的调试采样器显示正确的值,但放置在 1.1.3 和 1.1.3.1 之间的调试采样器显示空白值。抱歉我不能分享脚本,因为我不能分享代码。
  • 这很奇怪,因为同样的工作对我来说非常好。正如我之前建议的那样,您可以尝试在第二个控制器中传递一些其他变量(可能来自用户定义的变量),看看是否有效!我认为问题出在其他问题上。
  • 我接受这种行为很奇怪。但我可以在很多情况下复制该场景,包括以下情况。 1.Thread Group 1.1.Simple Controller 1 1.1.1 HTTP request 1---从响应中提取某个变量X 1.2.Debug Sampler 1 1.3 Simple Controller 1.3.1. HTTP 请求 -- 使用 X 的值 [完美运行] 1.4 调试采样器 2------------X 的值为 Null

标签: java jmeter performance-testing


【解决方案1】:

我想我找到了问题案例和一个解决方案。

根据我测试的场景,如果另一个控制器中有一个控制器,变量的值就会丢失。

即在问题中提到的格式中,该值将丢失。格式可以重组如下。

  • 1.线程组
  • 1.1 简单控制器1
  • 1.1.1 HTTP请求1---从响应中提取某个变量X
  • 1.2 简单控制器2
  • 1.2.1.HTTP请求2(发送X作为参数)
  • 1.2.2。 HTTP 请求 3 [尝试使用 X 作为参数]--Works Perfectly This Way

【讨论】:

  • 如何解决外部控制器需要成为循环的情况?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-27
  • 1970-01-01
  • 2023-03-25
  • 2020-03-04
相关资源
最近更新 更多