我们如何从JMeter测试计划中删除一次请求参数(在启动时)?

我们如何从JMeter测试计划中删除一次请求参数(在启动时)?,jmeter,beanshell,Jmeter,Beanshell,我使用命令行中的jmeter在一些目标上执行一套自动化测试 看起来是这样的: for files in ./*.jmx; do ./jmeter \ -n -t ${file}/Test_perfs_qgis_SHORT.jmx \ -l ${TEST_DIR_PATH}/at_bench.log \ -e \ -o ${TEST_DIR_PATH}/report \ -J TEST_DIR_PATH="${TEST_DIR_PATH}" \ -

我使用命令行中的jmeter在一些目标上执行一套自动化测试

看起来是这样的:

for files in ./*.jmx; do
./jmeter \
    -n -t ${file}/Test_perfs_qgis_SHORT.jmx  \
    -l ${TEST_DIR_PATH}/at_bench.log \
    -e \
    -o ${TEST_DIR_PATH}/report \
    -J TEST_DIR_PATH="${TEST_DIR_PATH}" \
    -J COMMON_PARAM="someValue" \
    -J ANOTHER_COMMON_PARAM="anotherValue" \
    -J SPECIFIC_PARAM="someValue Or emptyIfNotExpected" 
fi
大多数目标共享相同的GET模板,或者至少允许忽略意外参数。 但有些目标在接收到额外参数时失败

因此,我添加了一个预处理器,以便在未提供参数值时删除该参数

if((vars.get("SPECIFIC_PARAM") == null)||(vars.get("SPECIFIC_PARAM")=="")){
    sampler.getArguments().removeArgument("MAP");
}
这很有效。但由于我有大约50000个电话,这将被触发。。。几次

考虑到这是出于测试目的,我担心这可能会对结果产生影响,尽管这对于所有请求也可能是相同的

无论如何,我正试图找到一种在启动时删除它的方法:一次处理所有请求

任何人都有关于如何操作的提示吗?

考虑到要删除采样器的参数,它不能在其他地方/全局删除。也许您可以改为使用两个模板:一个带该参数,另一个不带该参数,然后选择带有If controller base don变量值的模板:

If Controller with condition: "${SPECIFIC_PARAM}"==""
    Sampler without MAP argument
If Controller with condition: "${SPECIFIC_PARAM}"!=""
    Sampler with MAP argument

谢谢你的回答。我害怕这样的回答。。。事实上,2个文件选项会起作用,但我不太喜欢用一个相同的参数来维护2个测试文件。但是如果我别无选择。。然后是2个文件!它可以在一个文件脚本中,正如我指定的,它在一个脚本中,只有两个采样器和控制器来选择其中的一个