Further to this , the Jmter log shows.
2021-02-10 17:13:30,104 ERROR o.a.j.t.JMeterThread: Test failed!
java.lang.NullPointerException: null
at com.blazemeter.jmeter.RandomCSVDataSetConfig.readConsistent(RandomCSVDataSetConfig.java:118) ~[jmeter-plugins-random-csv-data-set-0.7.jar:?]
at com.blazemeter.jmeter.RandomCSVDataSetConfig.iterationStart(RandomCSVDataSetConfig.java:70) ~[jmeter-plugins-random-csv-data-set-0.7.jar:?]
at org.apache.jmeter.control.GenericController.fireIterationStart(GenericController.java:399) ~[ApacheJMeter_core.jar:5.2.1]
at org.apache.jmeter.control.GenericController.fireIterEvents(GenericController.java:391) ~[ApacheJMeter_core.jar:5.2.1]
at org.apache.jmeter.control.GenericController.next(GenericController.java:160) ~[ApacheJMeter_core.jar:5.2.1]
at org.apache.jmeter.control.LoopController.next(LoopController.java:135) ~[ApacheJMeter_core.jar:5.2.1]
at org.apache.jmeter.threads.AbstractThreadGroup.next(AbstractThreadGroup.java:92) ~[ApacheJMeter_core.jar:5.2.1]
at org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:255) [ApacheJMeter_core.jar:5.2.1]
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_275]
The workaround I used is below.
[1] JMtere - Replace the jar v0.7 with older version v0.6 in Jmeter lib/ext
[2] For Blaxemeter use a yml config file to drive the JMeter JMX and use a script to replace the latest (v0.7) jar with older (v0.6) jar (Which we have to provide with the project) before the test preperation.
Code: Taurus.yml
services:
- module: shellexec
prepare:
- command: /bin/bash /tmp/artifacts/random-csv-override.bash
Here is the bash to override the jar version.
Code: random-csv-override.bash
#!/bin/bash
# stderr to stdout
exec 2>&1
# Sane default permmissions.
umask 022
# This is the jar we want to use to replace the other one from JMeter. It
# must be uploaded alongside your script.
my_jar="/tmp/artifacts/jmeter-plugins-random-csv-data-set-0.6.jar"
# The YAML file will set and environment variable that is
# version of JMeter you wish to run your script. Bear in
# mind that BlazeMeter maintains many multiple versions of
# JMeter on the filesystem. You should only modify the one
# that you actually need.
lib_dir="/shared/.bzt/jmeter-taurus/${MY_JMETER_VERSION}/lib/ext"
# Code to basically remove the old driver and copy in the new
# driver.
echo "Changing directory to $lib_dir to do the rm and cp"
cd "$lib_dir"
rm -fv jmeter-plugins-random-csv-data*jar
cp -fv "$my_jar" .