运行 jmeter 中的 sh 脚本
run sh script in jmeter
对于负载测试,我想在 运行 在 jmeter 中进行测试之前随机化我的测试值。为此,我想使用这个 bash 脚本:
#! /bin/bash
cat data.dsv | shuf > randomdata.dsv
这应该在jmeter中执行。我尝试将 BeanShell 采样器与此命令一起使用(无论我想在哪台机器上执行它,我都使用此命令始终找到文件的正确路径):
execute(${__BeanShell(import org.apache.jmeter.services.FileServer; FileServer.getFileServer().getBaseDir();)}${__BeanShell(File.separator,)}random.sh)
但我总是收到此错误消息:
ERROR - jmeter.util.BeanShellInterpreter: Error invoking bsh method: eval In file: inline evaluation of: ``execute(/home/user/git/path/'' Encountered "( /" at line 1, column 8.
有什么想法可以做什么,或者有什么我还没有找到的最佳实践吗?
我建议改用 OS Process Sampler,它应该更容易使用,例如:
关于 Beanshell 方法,在 Beanshell 采样器中不需要我们 __Beanshell 函数,此外每次调用该函数时都会创建一个 Beanshell 解释器实例,从而导致性能开销。您可以将代码作为
放入采样器的 "Script" 区域
import org.apache.jmeter.services.FileServer;
StringBuilder command = new StringBuilder();
FileServer fileServer = FileServer.getFileServer();
command.append(fileServer.getBaseDir());
command.append(System.getProperty("file.separator"));
command.append("random.sh");
Process process = Runtime.getRuntime().exec(command.toString());
int returnValue = process.waitFor();
return String.valueOf(returnValue);
有关 JMeter 中 Beanshell 脚本的信息,请参阅 How to use BeanShell: JMeter's favorite built-in component 指南。
对于负载测试,我想在 运行 在 jmeter 中进行测试之前随机化我的测试值。为此,我想使用这个 bash 脚本:
#! /bin/bash
cat data.dsv | shuf > randomdata.dsv
这应该在jmeter中执行。我尝试将 BeanShell 采样器与此命令一起使用(无论我想在哪台机器上执行它,我都使用此命令始终找到文件的正确路径):
execute(${__BeanShell(import org.apache.jmeter.services.FileServer; FileServer.getFileServer().getBaseDir();)}${__BeanShell(File.separator,)}random.sh)
但我总是收到此错误消息:
ERROR - jmeter.util.BeanShellInterpreter: Error invoking bsh method: eval In file: inline evaluation of: ``execute(/home/user/git/path/'' Encountered "( /" at line 1, column 8.
有什么想法可以做什么,或者有什么我还没有找到的最佳实践吗?
我建议改用 OS Process Sampler,它应该更容易使用,例如:
关于 Beanshell 方法,在 Beanshell 采样器中不需要我们 __Beanshell 函数,此外每次调用该函数时都会创建一个 Beanshell 解释器实例,从而导致性能开销。您可以将代码作为
放入采样器的 "Script" 区域import org.apache.jmeter.services.FileServer;
StringBuilder command = new StringBuilder();
FileServer fileServer = FileServer.getFileServer();
command.append(fileServer.getBaseDir());
command.append(System.getProperty("file.separator"));
command.append("random.sh");
Process process = Runtime.getRuntime().exec(command.toString());
int returnValue = process.waitFor();
return String.valueOf(returnValue);
有关 JMeter 中 Beanshell 脚本的信息,请参阅 How to use BeanShell: JMeter's favorite built-in component 指南。