JMeter - Static method get( java.lang.String ) not

2019-02-17 17:41发布

问题:

I am trying to create a JMeter load test. I need the test to take a sample log file and change its name. The only way I could find to do this was to copy the file in a BeanShell Preprocessor but I am getting the following error:

ERROR - jmeter.util.BeanShellInterpreter: Error invoking bsh method: evalSourced file: inline evaluation of: ``import java.nio.file.StandardCopyOption; import java.io.IOException; import java . . . '' : Typed variable declaration : Error in method invocation: Static method get( java.lang.String ) not found in class'java.nio.file.Paths'

The code I am using is the following:

import java.nio.file.StandardCopyOption;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;

Path source = Paths.get(vars.get("filename");

String filename = "/Users/GX1/Desktop/jmeter/tmp/Device_"+vars.get("global_counter")+"_upload_"+vars.get("file_counter")+".csv.gz";

Path target = Paths.get(filename);
Files.copy(source, target, StandardCopyOption.REPLACE_EXISTING);
vars.put("filename", filename);

filename, global_counter and file_counter are jmeter variables.

Does anyone know why I am getting this error? Does the beanshell preprocessor not work in the way I am trying to use it?

回答1:

My guess is that the problem is that it's not populating the varargs parameter. Try:

Path target = Paths.get(filename, new String[0]);