带有Redis数据的样本的JMeter顺序

带有Redis数据的样本的JMeter顺序,redis,jmeter,Redis,Jmeter,我在JMeter测试中使用Redis数据集作为数据源。我已经使用从JSR223采样器检索的值配置了redis键 下面是我的测试取样器 在上面的JSR223采样器中,我检索以前的值${operator},并将其放入属性中 然后在下一个采样器中 我将该值重用为${uu p(运算符)} 问题是,JSR233采样器以前似乎没有运行过jp@gc重新定义数据集。因此,脚本失败如下 Stop Thread seen for thread XXXXXX 1-1, reason: org.apache.jor

我在JMeter测试中使用Redis数据集作为数据源。我已经使用从JSR223采样器检索的值配置了redis键

下面是我的测试取样器

在上面的JSR223采样器中,我检索以前的值${operator},并将其放入属性中

然后在下一个采样器中

我将该值重用为${uu p(运算符)}

问题是,JSR233采样器以前似乎没有运行过jp@gc重新定义数据集。因此,脚本失败如下

Stop Thread seen for thread XXXXXX 1-1, reason: org.apache.jorphan.util.JMeterStopThreadException: End of Redis data detected, thread will exit
如果我在注释Redis数据集采样器时运行一次脚本,并在启用它的情况下运行第二次脚本,则可以看到该值,因为该值已存储在Jmeter内存中,这样很明显,Redis数据集在JSR223采样器之前运行。我不能将JSR233采样器从测试片段中移到更高的级别,因为我需要在测试片段中运行它

是否有一个位置可以用Redis采样器定义这些执行顺序? 或者有没有办法在Jmeter中定义顺序,以便JSR223在Redis sampler之前运行

=================================== 更新1

在@Dmitri-t回复后,我更新了项目,如下所示。

根据JMeter用户手册的章节:

0. Configuration elements
1. Pre-Processors
2. Timers
3. Sampler
4. Post-Processors (unless SampleResult is null)
5. Assertions (unless SampleResult is null)
6. Listeners (unless SampleResult is null)
是一个配置元素,因此它将在任何其他元素之前执行

使此
运算符
属性动态的唯一方法如下:


我是用下面的方法工作的

TestPlan
|--Thread group
  |--Module Controller -1
  |  |--CSV Data Set Config - to load operator name(this is going to be reused in other thread groups)      
  |--Module Controller -2
     |--JSR233 Sampler - To read a second level file with ${operator} in its name
     |--For Each Controller - to read through the second level file
     |  |--User Defined Variables  - to split the line from the second level file in to variables
     |--HTTP Request - Action sampler with ${operator} and other variables

Ref:

谢谢@Dimitry,我已经将JSR223采样器移到了更高的级别(尽管我说我不能在上面,但我意识到这样做没有坏处)。现在,我的${operatpr}变量在执行jp@gc-Redis数据集。但是我仍然没有得到rediskey名称的任何值。我在JSR
props.put(“COMMANDFILE”、“RDM_ENGTEST${operator}\u Commands”)中将密钥名放入pros中;System.out.println(“命令文件:[“+props.get”(“命令文件”)+“]”)
然后尝试将RedisKey字段中的值引用为
${COMMANDFILE}
,这没有给我正确的值。我甚至试过VAR,我不认为它真的有帮助,如果你重新开始测试,你会遇到同样的问题是的,你是对的。底线:我如何将我的Redis密钥参数化?到目前为止,我有一些文件的模式是
filename\u ABC\u commands.txt
,其中ABC是
operator
。在进入模块控制器之前,我能够在线程组中解析一个
操作符。但该值似乎无法在配置元素中引用。在这种情况下,Joperator值是什么?
TestPlan
|--Thread group
  |--Module Controller -1
  |  |--CSV Data Set Config - to load operator name(this is going to be reused in other thread groups)      
  |--Module Controller -2
     |--JSR233 Sampler - To read a second level file with ${operator} in its name
     |--For Each Controller - to read through the second level file
     |  |--User Defined Variables  - to split the line from the second level file in to variables
     |--HTTP Request - Action sampler with ${operator} and other variables