Jmeter 一个变量没有';t从测试片段转移到另一个测试片段

Jmeter 一个变量没有';t从测试片段转移到另一个测试片段,jmeter,beanshell,Jmeter,Beanshell,我有以下测试计划: 短篇故事(该测试计划中的重要内容): “获取文件数”“获取给定路径中的文件总数。 BeanShell取样器的内容: import java.nio.file.*; import java.io.*; File folder = new File(vars.get("path")); File[] files = folder.listFiles(); int counter = 0; for (File file : files) { if (file.getNam

我有以下测试计划:

短篇故事(该测试计划中的重要内容):

获取文件数”“获取给定路径中的文件总数。 BeanShell取样器的内容:

import java.nio.file.*;
import java.io.*;

File folder = new File(vars.get("path"));
File[] files = folder.listFiles();
int counter = 0;
for (File file : files) {
    if (file.getName().toString().contains(".xml") == true){
        counter++;
    }

}

String counterStr = Integer.toString(counter);  

vars.put("counter",counterStr);

log.info("Output_counterStr:"+counterStr);
import java.nio.file.*;
import java.io.*;    

String fName = null;    
int currentDoc = 0;
fName = vars.get("filename");
log.info("Output_fName:"+fName);

if (fName.contains("00")==true){    
    currentDoc = 0;
    currentDoc ++;
} else {    
    currentDoc ++;
}

String currentDocStr = Integer.toString(currentDoc); 

vars.put("currentDoc",currentDocStr);

log.info("Output_currentDoc:"+currentDocStr);
获取当前文档的编号:它是一个计数器,用于获取BeanShell Sampler的下一个文件(用于上载)内容:

import java.nio.file.*;
import java.io.*;

File folder = new File(vars.get("path"));
File[] files = folder.listFiles();
int counter = 0;
for (File file : files) {
    if (file.getName().toString().contains(".xml") == true){
        counter++;
    }

}

String counterStr = Integer.toString(counter);  

vars.put("counter",counterStr);

log.info("Output_counterStr:"+counterStr);
import java.nio.file.*;
import java.io.*;    

String fName = null;    
int currentDoc = 0;
fName = vars.get("filename");
log.info("Output_fName:"+fName);

if (fName.contains("00")==true){    
    currentDoc = 0;
    currentDoc ++;
} else {    
    currentDoc ++;
}

String currentDocStr = Integer.toString(currentDoc); 

vars.put("currentDoc",currentDocStr);

log.info("Output_currentDoc:"+currentDocStr);
我想要获得的是在WebSocket请求-响应采样器中使用currentDoc down的值。详情如下:

<currentDocument>${currentDoc}</currentDocument>
<totalDocuments>${counter}</totalDocuments>
${currentDoc}
${counter}
问题是${counter}实际上有一个值,而${currentDoc}按原样到达。你知道会出什么问题吗?不能将该值传输到另一个测试片段中?(通过调用“while”函数中的模块控制器,计数器将递增)


谢谢

您确定在当前文档的
获取编号
中没有任何异常吗?这可能会导致var无法存储。例如,如果
fName=vars.get(“文件名”)
不返回值,则
fName.contains
将导致
NullPointerException
,因此不会存储任何内容。如果(fName!=null&&fName.contains…),可以尝试添加
以检查这种可能性。另外,一些编译器可能不喜欢
currentDoc++
++
前面的空格,谢谢@KirilS。谢谢你的时间。我设法使它工作,但现在我面临另一个问题。我通过对currentDoc使用bsh.shared.var使其工作。问题是变量声明在测试片段之外(因为它用于计数),而我不能在内部使用它(每次迭代都会重置变量)。