更新:我附上了测试脚本。不受尊重的两个替换是CSV-DATASOURCE(文件名)和主线程组(线程数):test plan file
这开始让我们发疯。使用Jmeter 3.3 r1808647。属性替换似乎完全失败,但只有在远程运行测试时。
我尝试了很多不同的方法,最新的看起来像这样:
我已经尝试过直接在一些项目中使用替换,比如线程数,但是整个事情不起作用,因为没有替换。
有趣的是,简单的变量替换,如$ {varname}工作。任何发烧友都没有。就好像在远程运行中,字符串解析器是故意愚蠢的。
任何想法如何解决这个问题?
所以它看起来像是远程服务器启动方式的错误配置。
批处理文件(我们在这里谈论Windows)就像
"C:\apache-jmeter-3.3\bin\jmeter.bat" -s -Dserver_port=1098 -j "C:\ows\jmeter-service-ows.log" -d "C:\ows"
...因为所有杂项文件(源CSV,结果文件,日志)应该驻留在C:\ ows中。但事实证明,Jmeter当时对它的库感到困惑。
批处理文件如下所示:
"C:\apache-jmeter-3.3\bin\jmeter.bat" -s -Dserver_port=1098 -j "C:\ows\jmeter-service-ows.log" -d "C:\apache-jmeter-3.3"
...测试运行正常,所有替换工作正常。
我已经检查了日志和关于Jmeter的WARNings无法在CompoundVariable类中找到任何函数,并且在第一种情况下他们没有找到任何函数,在第二种情况下他们找到了所有函数。
我实际上怀疑是一个错误,因为这个测试使用了一个额外的外部库(gson),它位于与缺少的罪魁祸首相同的文件夹中(jmeter.functions或stg),并且在两种情况下都加载了特定的库。你怎么看,我应该报告这个错误吗?
globalPropName
从主人那里通过你的-G command-line argument财产,如:
jmeter -GglobalPropName=foo
jmeter -s -j slave.log
ApacheJMeter_functions.jar
。如果您的测试在本地工作正常,我建议您只需通过网络将“工作”JMeter实例复制到从属主机。我可以声明我无法使用相同的JMeter版本重现您的问题,尝试下面概述的相同测试计划和命令,如果它有效 - 相应地修改您的设置
参考文献: