JMeter scheduler doesn't stop after duration elapsed - jmeter

I want to set Duration for test working. In my Thread Group I set
Number of Threads = 1
Ramp-up period = 0
checked 'Forever'
checked 'Scheduler'
Duration = 10
Startup delay = 0
So if test needs more than 10 seconds to be finished, elapsed time is quit right - 10 second. BUT if it needs, for example, 5 seconds, it stops after 5 seconds, not after 10 as I expect.
How to make script to work until Duration time elapsed?
UPD.
Screenshot of Thread Group settings
Logs for last running:
2017/04/11 19:53:33 INFO - jmeter.engine.StandardJMeterEngine: Running the test!
2017/04/11 19:53:33 INFO - jmeter.samplers.SampleEvent: List of sample_variables: []
2017/04/11 19:53:33 INFO - jmeter.gui.util.JMeterMenuBar: setRunning(true,*local*)
2017/04/11 19:53:33 INFO - jmeter.engine.StandardJMeterEngine: Starting ThreadGroup: 1 : Thread Group
2017/04/11 19:53:33 INFO - jmeter.engine.StandardJMeterEngine: Starting 1 threads for group Thread Group.
2017/04/11 19:53:33 INFO - jmeter.engine.StandardJMeterEngine: Thread will continue on error
2017/04/11 19:53:33 INFO - jmeter.threads.ThreadGroup: Starting thread group number 1 threads 1 ramp-up 0 perThread 0.0 delayedStart=false
2017/04/11 19:53:33 INFO - jmeter.threads.ThreadGroup: Started thread group number 1
2017/04/11 19:53:33 INFO - jmeter.engine.StandardJMeterEngine: All thread groups have been started
2017/04/11 19:53:33 INFO - jmeter.threads.JMeterThread: Thread started: Thread Group 1-1
2017/04/11 19:53:33 INFO - jmeter.services.FileServer: Stored: data.txt
2017/04/11 19:53:40 INFO - jmeter.threads.JMeterThread: Stop Thread seen for thread Thread Group 1-1, reason:org.apache.jorphan.util.JMeterStopThreadException: End of file:data.txt detected for CSV DataSet:CSV get parameter for request configured with stopThread:true, recycle:false
2017/04/11 19:53:40 INFO - jmeter.threads.JMeterThread: Thread finished: Thread Group 1-1
2017/04/11 19:53:40 INFO - jmeter.engine.StandardJMeterEngine: Notifying test listeners of end of test
2017/04/11 19:53:40 INFO - jmeter.services.FileServer: Close: data.txt
2017/04/11 19:53:40 INFO - jmeter.gui.util.JMeterMenuBar: setRunning(false,*local*)

Given you set Loop Count as "Forever" your test should run for 10 seconds (or even more if JMeter will need to gracefully shutdown a lot of samplers) so my expectation is that either error occurs or you are using some form of test end logic like If Controller of Test Action sampler which trigger premature stop.
When JMeter behaves in a unexpected manner remember always to check jmeter.log file - normally it contains enough troubleshooting information. If you are not able to figure out the reason yourself - post the log file here.
As an alternative you could try Ultimate Thread Group which provides more advanced way of defining the load pattern and it comes with the anticipated load chart.
The Ultimate Thread Group (as well as any other plugin) can be installed using JMeter Plugins Manager

Related

How will I use Throughput Shaping Timer from Jmeter API using java code?

I want to use the Throughput Shaping Timer using JMeter API in my java code.
My purpose is to to use Throughput Shaping Timer via JMeter API in my code programmatically.
I have already referenced the class file called VariableThroughputTimer.java by adding it to the source directory of my project folder.
Here is a part of my code snippet:
// VariableThroughputTimer
VariableThroughputTimer timer = new VariableThroughputTimer();
timer.setEnabled(true);
timer.setName("VariableThroughputTimer");
timer.setProperty("Start RPS", 1);
timer.setProperty("End RPS", 1000);
timer.setProperty("Duration", 60);
timer.setComment("Table below sets request rate shcedule ant preview graph instantly shows effect of changes.");
timer.setProperty(TestElement.TEST_CLASS, kg.apc.jmeter.vizualizers.CorrectedResultCollector.class.getName());
timer.setProperty(TestElement.GUI_CLASS, kg.apc.jmeter.vizualizers.TransactionsPerSecondGui.class.getName());
// Thread Group
ThreadGroup threadGroup = new ThreadGroup();
threadGroup.setName("Thread Group");
threadGroup.setNumThreads(4);
threadGroup.setRampUp(1);
threadGroup.setDuration(1);;
threadGroup.setSamplerController(loopController);
threadGroup.setSamplerController(PublishController);
threadGroup.setProperty(TestElement.TEST_CLASS, ThreadGroup.class.getName());
threadGroup.setProperty(TestElement.GUI_CLASS, ThreadGroupGui.class.getName());
// Test Plan
TestPlan testPlan = new TestPlan("IOT_Jmeter");
testPlan.setProperty(TestElement.TEST_CLASS, TestPlan.class.getName());
testPlan.setProperty(TestElement.GUI_CLASS, TestPlanGui.class.getName());
testPlan.setUserDefinedVariables((Arguments) new ArgumentsPanel().createTestElement());
// HTTP Request Sampler and Header Manager
HashTree httpRequestTree = new HashTree();
httpRequestTree.add(mqttConnectSampler);
httpRequestTree.add(mqttpubSampler);
httpRequestTree.add(csvDataSet);
httpRequestTree.add(timer);
So whenever, I try to execute the code. It doesn't execute.
Here are the logs from my eclipse IDE:
2019-02-12 16:13:28 [main] INFO StandardJMeterEngine:453 - Starting ThreadGroup: 1 : Thread Group
2019-02-12 16:13:28 [main] INFO StandardJMeterEngine:513 - Starting 4 threads for group Thread Group.
2019-02-12 16:13:28 [main] INFO StandardJMeterEngine:523 - Thread will continue on error
2019-02-12 16:13:28 [main] INFO ThreadGroup:222 - Starting thread group... number=1 threads=4 ramp-up=1 perThread=250.0 delayedStart=false
2019-02-12 16:13:28 [main] INFO ThreadGroup:236 - Started thread group number 1
2019-02-12 16:13:28 [main] INFO StandardJMeterEngine:464 - All thread groups have been started
2019-02-12 16:13:28 [Thread Group 1-1] INFO JMeterThread:705 - Thread started: Thread Group 1-1
2019-02-12 16:13:28 [Thread Group 1-1] INFO FileServer:265 - Stored: C:\Users\angshuman.basak\Downloads\apache-jmeter-5.0\csvDataNew.csv
2019-02-12 16:13:28 [Thread Group 1-1] INFO VariableThroughputTimer:304 - No further RPS schedule, asking threads to stop...
2019-02-12 16:13:28 [Thread Group 1-1] INFO VariableThroughputTimer:319 - Stopping gracefuly threads of Thread Group : Thread Group
2019-02-12 16:13:28 [Thread Group 1-1] INFO JMeterThread:797 - Stopping: Thread Group 1-2
2019-02-12 16:13:28 [Thread Group 1-1] INFO JMeterThread:797 - Stopping: Thread Group 1-3
2019-02-12 16:13:28 [Thread Group 1-1] INFO JMeterThread:797 - Stopping: Thread Group 1-4
2019-02-12 16:13:28 [Thread Group 1-1] INFO JMeterThread:797 - Stopping: Thread Group 1-1
2019-02-12 16:13:28 [Thread Group 1-1] WARN VariableThroughputTimer:147 - No free threads available in current Thread Group Thread Group, made 0 samples/s for expected rps 1.0 samples/s, increase your number of threads
2019-02-12 16:13:28 [Thread Group 1-1] INFO JMeterThread:324 - Thread finished: Thread Group 1-1
2019-02-12 16:13:29 [Thread Group 1-2] INFO JMeterThread:705 - Thread started: Thread Group 1-2
2019-02-12 16:13:29 [Thread Group 1-2] INFO JMeterThread:324 - Thread finished: Thread Group 1-2
2019-02-12 16:13:29 [Thread Group 1-3] INFO JMeterThread:705 - Thread started: Thread Group 1-3
2019-02-12 16:13:29 [Thread Group 1-3] INFO JMeterThread:324 - Thread finished: Thread Group 1-3
2019-02-12 16:13:29 [Thread Group 1-4] INFO JMeterThread:705 - Thread started: Thread Group 1-4
2019-02-12 16:13:29 [Thread Group 1-4] INFO JMeterThread:324 - Thread finished: Thread Group 1-4
2019-02-12 16:13:29 [main] INFO StandardJMeterEngine:223 - Notifying test listeners of end of test
2019-02-12 16:13:29 [main] INFO FileServer:485 - Close: C:\Users\angshuman.basak\Downloads\apache-jmeter-5.0\csvDataNew.csv
2019-02-12 16:13:29 [main] INFO Summariser:327 - summary = 0 in 00:00:00 = ******/s Avg: 0 Min: 9223372036854775807 Max: -9223372036854775808 Err: 0 (0.00%)
summary = 0 in 00:00:00 = ******/s Avg: 0 Min: 9223372036854775807 Max: -9223372036854775808 Err: 0 (0.00%)
The above Summariser represent that the test didn't get executed. From the above logs the Variable Throughput Timer fetches the below:
2019-02-12 16:13:28 [Thread Group 1-1] INFO VariableThroughputTimer:304 - No further RPS schedule, asking threads to stop...
2019-02-12 16:13:28 [Thread Group 1-1] INFO VariableThroughputTimer:319 - Stopping gracefully threads of Thread Group: Thread Group
2019-02-12 16:13:28 [Thread Group 1-1] WARN VariableThroughputTimer:147 - No free threads available in current Thread Group Thread Group, made 0 samples/s for expected rps 1.0 samples/s, increase your number of threads
I want to execute the code with Throughput Shaping Timer programmatically. I would like to have the correct code for VariableThroughputTimer if my implementation is incorrect or resolve the execution issue.
Your aid is really appreciated.
How do you plan to reach 1000 requests per second with 4 threads only? It might be possible only if you have 4 milliseconds response time which is highly unlikely.
As per log entry you should
Thread Group Thread Group, made 0 samples/s for expected rps 1.0 samples/s, increase your number of threads`
also make sure to configure underlying Loop Controller to iterate forever.
Going forward consider using Concurrency Thread Group which can be connected with the Throughput Shaping Timer using Schedule Feedback function so JMeter will be able to kick off extra threads if the current amount is not enough to reach/maintain the target throughput. Check out Using JMeter’s Throughput Shaping Timer Plugin article for more details.
Your Thread Group configuration isn't appropriate according to your required Throughput. As your required throughput is 1000 RPS, you need at-least 1000 threads if the response time is 1 second. If the response time is 0.5 seconds then you need 500 threads to achieve 1000 RPS. So, You can't achieve that 1000 RPS by using only 4 threads. Your response time have to be .004 seconds(4 ms) to achieve 1000 RPS using only 4 threads which is an unusual thing.
You have set your test duration only for 1 seconds which is also wrong for this case.

Getting Transformer exception while running Jmeter script

While running my JMeter script with 3 threads, ramp-up 5 sec I am getting transformer exception. Actually in my scenario I want to click on the multiple links to the page randomly so I have used the random variable in JMeter But after running, I am getting below error, however, my XPath expression in XPath extractor looks fine.
2016/09/23 23:44:03 INFO - jmeter.engine.StandardJMeterEngine: Running the test!
2016/09/23 23:44:03 INFO - jmeter.samplers.SampleEvent: List of sample_variables: []
2016/09/23 23:44:03 INFO - jmeter.gui.util.JMeterMenuBar: setRunning(true,*local*)
2016/09/23 23:44:03 INFO - jmeter.engine.StandardJMeterEngine: Starting ThreadGroup: 1 : Thread Group
2016/09/23 23:44:03 INFO - jmeter.engine.StandardJMeterEngine: Starting 3 threads for group Thread Group.
2016/09/23 23:44:03 INFO - jmeter.engine.StandardJMeterEngine: Thread will continue on error
2016/09/23 23:44:03 INFO - jmeter.threads.ThreadGroup: Starting thread group number 1 threads 3 ramp-up 5 perThread 1666.6666 delayedStart=false
2016/09/23 23:44:03 INFO - jmeter.threads.JMeterThread: Thread started: Thread Group 1-1
2016/09/23 23:44:03 INFO - jmeter.threads.ThreadGroup: Started thread group number 1
2016/09/23 23:44:03 INFO - jmeter.engine.StandardJMeterEngine: All thread groups have been started
2016/09/23 23:44:05 INFO - jmeter.threads.JMeterThread: Thread started: Thread Group 1-2
2016/09/23 23:44:07 INFO - jmeter.threads.JMeterThread: Thread started: Thread Group 1-3
2016/09/23 23:44:09 WARN - jmeter.extractor.XPathExtractor: TransformerException while processing ((//span[#class="title"]/a/#href)[$(RandomNumber)]) Expected ], but found: RandomNumber
2016/09/23 23:44:10 INFO - jmeter.threads.JMeterThread: Thread is done: Thread Group 1-1
2016/09/23 23:44:10 INFO - jmeter.threads.JMeterThread: Thread finished: Thread Group 1-1
2016/09/23 23:44:10 WARN - jmeter.extractor.XPathExtractor: TransformerException while processing ((//span[#class="title"]/a/#href)[$(RandomNumber)]) Expected ], but found: RandomNumber
2016/09/23 23:44:11 INFO - jmeter.threads.JMeterThread: Thread is done: Thread Group 1-3
2016/09/23 23:44:11 INFO - jmeter.threads.JMeterThread: Thread finished: Thread Group 1-3
2016/09/23 23:44:11 WARN - jmeter.extractor.XPathExtractor: TransformerException while processing ((//span[#class="title"]/a/#href)[$(RandomNumber)]) Expected ], but found: RandomNumber
2016/09/23 23:44:12 INFO - jmeter.threads.JMeterThread: Thread is done: Thread Group 1-2
2016/09/23 23:44:12 INFO - jmeter.threads.JMeterThread: Thread finished: Thread Group 1-2
2016/09/23 23:44:12 INFO - jmeter.engine.StandardJMeterEngine: Notifying test listeners of end of test
2016/09/23 23:44:12 INFO - jmeter.gui.util.JMeterMenuBar: setRunning(false,*local*)
JMeter Variables are referenced as ${RandomNumber} - you need to use braces instead of parentheses. Alternatively you can use __V() function like
${__V(RandomNumber)}
So you need to change your XPath query to one of the following:
(//span[#class="title"]/a/#href)[${RandomNumber}]
(//span[#class="title"]/a/#href)[${__V(RandomNumber)}]
Your approach seems to be fragile. I don't know how many links are at the page and how do you generate your ${RandomNumber} variable, however I would rather go the following way:
Store all links at the page into JMeter variables like:
link_1=http://example.com
link_2=http://jmeter.apache.org
...
link_matchNr=50
Use random JMeter variable from previously extracted ones where required via aforementioned __V() and __Random() functions combination like:
${__V(link_${__Random(1,${link_matchNr},)})}
Demo:
See Here’s What to Do to Combine Multiple JMeter Variables article for more information on how you can combine different JMeter Functions and Variables into a single expression.

Having issue with running my csv file in my jmeter

2016/08/30 14:12:34 INFO - jmeter.engine.StandardJMeterEngine: Running the test!
2016/08/30 14:12:34 INFO - jmeter.samplers.SampleEvent: List of sample_variables: []
2016/08/30 14:12:34 INFO - jmeter.gui.util.JMeterMenuBar: setRunning(true,*local*)
2016/08/30 14:12:34 INFO - jmeter.engine.StandardJMeterEngine: Starting ThreadGroup: 1 : Thread Group
2016/08/30 14:12:34 INFO - jmeter.engine.StandardJMeterEngine: Starting 1 threads for group Thread Group.
2016/08/30 14:12:34 INFO - jmeter.engine.StandardJMeterEngine: Thread will continue on error
2016/08/30 14:12:34 INFO - jmeter.threads.ThreadGroup: Starting thread group number 1 threads 1 ramp-up 1 perThread 1000.0 delayedStart=false
2016/08/30 14:12:34 INFO - jmeter.threads.ThreadGroup: Started thread group number 1
2016/08/30 14:12:34 INFO - jmeter.engine.StandardJMeterEngine: All thread groups have been started
2016/08/30 14:12:34 INFO - jmeter.threads.JMeterThread: Thread started: Thread Group 1-1
2016/08/30 14:12:34 INFO - jmeter.services.FileServer: Stored: NewOffenderInfo Alias: NewOffenderInfo#27949741
2016/08/30 14:12:34 ERROR - jmeter.threads.JMeterThread: Test failed! java.lang.IllegalArgumentException: File NewOffenderInfo must exist and be readable
at org.apache.jmeter.services.FileServer.createBufferedReader(FileServer.java:422)
at org.apache.jmeter.services.FileServer.getReader(FileServer.java:388)
at org.apache.jmeter.services.FileServer.getParsedLine(FileServer.java:379)
at org.apache.jmeter.config.CSVDataSet.iterationStart(CSVDataSet.java:196)
at org.apache.jmeter.control.GenericController.fireIterationStart(GenericController.java:405)
at org.apache.jmeter.control.GenericController.fireIterEvents(GenericController.java:397)
at org.apache.jmeter.control.GenericController.next(GenericController.java:158)
at org.apache.jmeter.control.GenericController.nextIsAController(GenericController.java:222)
at org.apache.jmeter.control.GenericController.next(GenericController.java:176)
at org.apache.jmeter.control.LoopController.next(LoopController.java:123)
at org.apache.jmeter.threads.AbstractThreadGroup.next(AbstractThreadGroup.java:87)
at org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:239)
at java.lang.Thread.run(Unknown Source)
2016/08/30 14:12:34 INFO - jmeter.threads.JMeterThread: Thread finished: Thread Group 1-1
2016/08/30 14:12:34 INFO - jmeter.engine.StandardJMeterEngine: Notifying test listeners of end of test
2016/08/30 14:12:34 INFO - jmeter.gui.util.JMeterMenuBar: setRunning(false,*local*)
If I remove my CSV file and run the script it will work, but as long as I put the csv config , I'm not able to run my script. I set the Recycle on EOF = False and Stop Thread on EOF =True and Sharing mode= Current thread group. can somebody help me find out what is wrong?
You need to make sure that the path you have mentioned to configure the CSV is correct. As per the exception in Jmeter.log file, it's not able to find the CSV.
Check following things:
Name of the file is correct. In case of Unix file names are case sensitive so check the name of the file and name you have mentioned in CSV data set configuration.
Keep the CSV file in the same folder where your JMX resides, and just mention file name in CSV dataset config. This avoids confusion in future even if you move the script to any other box.
Also make sure in the file there is no new line character at the end of the file. That will result in error.
As the log says:
File NewOffenderInfo must exist and be readable at
You file is either not here or does not have correct rights.
Be sure to include the filename extension (.csv) in the CSV Data Set Config.

HTTP Request Sampler not working

I am using windows7 and the latest version of Jmeter. I created a simple HTTP Request Sampler and in the server name I added google.com
When I ran it I got the following error:
2015/11/30 14:15:32 INFO - jmeter.engine.StandardJMeterEngine: Running the test!
2015/11/30 14:15:32 INFO - jmeter.samplers.SampleEvent: List of sample_variables: []
2015/11/30 14:15:32 INFO - jmeter.gui.util.JMeterMenuBar: setRunning(true,*local*)
2015/11/30 14:15:32 INFO - jmeter.engine.StandardJMeterEngine: Starting ThreadGroup: 1 : Thread Group
2015/11/30 14:15:32 INFO - jmeter.engine.StandardJMeterEngine: Starting 1 threads for group Thread Group.
2015/11/30 14:15:32 INFO - jmeter.engine.StandardJMeterEngine: Thread will continue on error
2015/11/30 14:15:32 INFO - jmeter.threads.ThreadGroup: Starting thread group number 1 threads 1 ramp-up 1 perThread 1000.0 delayedStart=false
2015/11/30 14:15:32 INFO - jmeter.threads.ThreadGroup: Started thread group number 1
2015/11/30 14:15:32 INFO - jmeter.engine.StandardJMeterEngine: All thread groups have been started
2015/11/30 14:15:32 INFO - jmeter.threads.JMeterThread: Thread started: Thread Group 1-1
2015/11/30 14:15:33 INFO - jmeter.threads.JMeterThread: Thread is done: Thread Group 1-1
2015/11/30 14:15:33 INFO - jmeter.threads.JMeterThread: Thread finished: Thread Group 1-1
2015/11/30 14:15:33 INFO - jmeter.engine.StandardJMeterEngine: Notifying test listeners of end of test
2015/11/30 14:15:33 INFO - jmeter.gui.util.JMeterMenuBar: setRunning(false,*local*)
This is normal output of JMeter, it indicates that JMeter started and finished one thread one time.
You can visualize test results with Listeners, in particular View Results Tree is extremely useful for test script development and debugging.
As you can see at below image:
the request is successful (green triangle)
google search page is displayed at "Response data" tab
log viewer contains the same entries as you posted
Don't forget to disable listeners for the actual test execution, they consume a lot of resources. You'll be able to open results file after test run using "Browse" button and perform analysis.
See How to debug your Apache JMeter script article for detailed information on getting to the bottom of JMeter test script problem.

How to solve this error an jmetere

2015/06/12 11:00:11 INFO - jmeter.engine.StandardJMeterEngine: Running the test!
2015/06/12 11:00:11 INFO - jmeter.samplers.SampleEvent: List of sample_variables: []
2015/06/12 11:00:11 INFO - jmeter.gui.util.JMeterMenuBar: setRunning(true,*local*)
2015/06/12 11:00:11 INFO - jmeter.engine.StandardJMeterEngine: Starting ThreadGroup: 1 : Thread Group
2015/06/12 11:00:11 INFO - jmeter.engine.StandardJMeterEngine: Starting 1 threads for group Thread Group.
2015/06/12 11:00:11 INFO - jmeter.engine.StandardJMeterEngine: Thread will continue on error
2015/06/12 11:00:11 INFO - jmeter.threads.ThreadGroup: Starting thread group number 1 threads 1 ramp-up 1 perThread 1000.0 delayedStart=false
2015/06/12 11:00:11 INFO - jmeter.threads.ThreadGroup: Started thread group number 1
2015/06/12 11:00:11 INFO - jmeter.engine.StandardJMeterEngine: All thread groups have been started
2015/06/12 11:00:11 INFO - jmeter.threads.JMeterThread: Thread started: Thread Group 1-1
2015/06/12 11:00:11 ERROR - jmeter.threads.JMeterThread: Test failed! java.lang.IllegalStateException: The driver executable does not exist: D:\Mm performance\apache-jmeter-2.13\apache-jmeter-2.13\bin
at com.google.common.base.Preconditions.checkState(Preconditions.java:197)
at org.openqa.selenium.remote.service.DriverService.checkExecutable(DriverService.java:117)
at org.openqa.selenium.chrome.ChromeDriverService.access$000(ChromeDriverService.java:39)
at org.openqa.selenium.chrome.ChromeDriverService$Builder.usingDriverExecutable(ChromeDriverService.java:116)
at com.googlecode.jmeter.plugins.webdriver.config.ChromeDriverConfig.getThreadService(ChromeDriverConfig.java:72)
at com.googlecode.jmeter.plugins.webdriver.config.ChromeDriverConfig.createBrowser(ChromeDriverConfig.java:53)
at com.googlecode.jmeter.plugins.webdriver.config.ChromeDriverConfig.createBrowser(ChromeDriverConfig.java:18)
at com.googlecode.jmeter.plugins.webdriver.config.WebDriverConfig.getPreparedBrowser(WebDriverConfig.java:233)
at com.googlecode.jmeter.plugins.webdriver.config.WebDriverConfig.threadStarted(WebDriverConfig.java:220)
at org.apache.jmeter.threads.JMeterThread$ThreadListenerTraverser.addNode(JMeterThread.java:610)
at org.apache.jorphan.collections.HashTree.traverseInto(HashTree.java:998)
at org.apache.jorphan.collections.HashTree.traverse(HashTree.java:980)
at org.apache.jmeter.threads.JMeterThread.threadStarted(JMeterThread.java:579)
at org.apache.jmeter.threads.JMeterThread.initRun(JMeterThread.java:567)
at org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:257)
at java.lang.Thread.run(Thread.java:745)
2015/06/12 11:00:11 INFO - jmeter.threads.JMeterThread: Thread finished: Thread Group 1-1
2015/06/12 11:00:11 INFO - jmeter.engine.StandardJMeterEngine: Notifying test listeners of end of test
2015/06/12 11:00:11 INFO - jmeter.gui.util.JMeterMenuBar: setRunning(false,*local*)
Download the latest version of ChromeDriver from http://chromedriver.storage.googleapis.com/index.html (if not yet)
Add the following line to system.properties file (the file lives under /bin folder of your JMeter installation)
webdriver.chrome.driver=d:/chromedriver.exe
You may have to substitute d:/chromedriver.exe with actual path to the ChromeDriver binary. Remember to use either forward slashes c:/somefoler/someotherfolder or escaped back slashes c:\\somefolder\\someotherfolder if you use Windows
Restart JMeter
ChromeDriver should work normally.
See Apache JMeter Properties Customization Guide for advanced information on various JMeter properties and ways of setting, using and overriding them.

Resources