对于负载测试,我想在jmeter中运行测试之前将测试值随机化。为此,我想使用以下bash脚本:
#! /bin/bash
cat data.dsv | shuf > randomdata.dsv
这应该在jmeter中执行。我尝试通过此命令使用BeanShell Sampler(无论我要在哪台计算机上执行该命令,我总是使用该命令始终为该文件找到正确的paht):
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解释器的实例,这都会导致性能开销。您只需将代码放入采样器的“脚本”区域即可
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脚本的信息,请参见如何使用BeanShell:JMeter最喜欢的内置组件指南。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句