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

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.

Related

why jmeter not stop thread at Duraion time

In my test plan, I create a Thread Group configured as below:
1. Action to be taken after a Sampler error: Continue
2. Number of Threads(users):10000
3. Ramp-up Period(in seconds):1
4. Loop Count:1
5. Duration(seconds):2
6. Startup delay(seconds):10
There is an Http Request Sampler in Thread Group.
After run the test plan, in jmeter.log
2019-04-30 15:46:01,558 INFO o.a.j.e.StandardJMeterEngine: Starting ThreadGroup: 1 : Thread Group-WB
2019-04-30 15:46:01,558 INFO o.a.j.e.StandardJMeterEngine: Starting 10000 threads for group Thread Group-WB.
2019-04-30 15:46:01,558 INFO o.a.j.e.StandardJMeterEngine: Thread will continue on error
2019-04-30 15:46:01,559 INFO o.a.j.t.ThreadGroup: Starting thread group... number=1 threads=10000 ramp-up=1 delayedStart=false
2019-04-30 15:46:06,549 INFO o.a.j.t.ThreadGroup: Started thread group number 1
2019-04-30 15:46:06,549 INFO o.a.j.e.StandardJMeterEngine: All thread groups have been started
2019-04-30 15:46:11,559 INFO o.a.j.t.JMeterThread: Thread started: Thread Group-WB 1-1
2019-04-30 15:46:11,562 INFO o.a.j.t.JMeterThread: Thread started: Thread Group-WB 1-2
2019-04-30 15:46:11,614 INFO o.a.j.t.JMeterThread: Thread started: Thread Group-WB 1-67
...
2019-04-30 15:46:15,541 INFO o.a.j.t.JMeterThread: Thread started: Thread Group-WB 1-5884
2019-04-30 15:46:15,541 INFO o.a.j.t.JMeterThread: Thread started: Thread Group-WB 1-5890
2019-04-30 15:46:15,541 INFO o.a.j.t.JMeterThread: Thread started: Thread Group-WB 1-5891
...
2019-04-30 15:46:15,367 INFO o.a.j.t.JMeterThread: Thread started: Thread Group-WB 1-7239
...
2019-04-30 15:46:21,913 INFO o.a.j.t.JMeterThread: Thread is done: Thread Group-WB 1-8506
2019-04-30 15:46:21,912 INFO o.a.j.t.JMeterThread: Thread finished: Thread Group-WB 1-8505
...
2019-04-30 15:46:16,872 INFO o.a.j.t.JMeterThread: Thread started: Thread Group-WB 1-8042
2019-04-30 15:46:16,872 INFO o.a.j.t.JMeterThread: Thread started: Thread Group-WB 1-8041
2019-04-30 15:46:18,767 INFO o.a.j.t.JMeterThread: Stopping because end time detected by thread: Thread Group-WB 1-7239
2019-04-30 15:46:18,767 INFO o.a.j.t.JMeterThread: Thread is done: Thread Group-WB 1-7239
2019-04-30 15:46:18,767 INFO o.a.j.t.JMeterThread: Thread finished: Thread Group-WB 1-7239
...
2019-04-30 15:47:35,716 INFO o.a.j.t.JMeterThread: Thread is done: Thread Group-WB 1-9783
2019-04-30 15:47:35,716 INFO o.a.j.t.JMeterThread: Thread finished: Thread Group-WB 1-9783
2019-04-30 15:47:36,941 INFO o.a.j.t.JMeterThread: Stopping because end time detected by thread: Thread Group-WB 1-1037
2019-04-30 15:47:36,942 INFO o.a.j.t.JMeterThread: Thread is done: Thread Group-WB 1-1037
2019-04-30 15:47:36,942 INFO o.a.j.t.JMeterThread: Thread finished: Thread Group-WB 1-1037
2019-04-30 15:47:36,944 INFO o.a.j.e.StandardJMeterEngine: Notifying test listeners of end of test
2019-04-30 15:47:36,945 INFO o.a.j.g.u.JMeterMenuBar: setRunning(false, *local*)
The first Thread Group-wisebuy 1-1 start at 2019-04-30 15:46:11,559
I set Ramp-up Period as 1 second,why Thread Group-wisebuy 1-5891 started at 2019-04-30 15:46:15,541 ?
I set Duration as 2 seconds,why Thread Group-wisebuy 1-7239 stopping at 2019-04-30 15:46:18,767 ?
From the JMeter User's Manual:
The ramp-up period tells JMeter how long to take to "ramp-up" to the full number of threads chosen. If 10 threads are used, and the ramp-up period is 100 seconds, then JMeter will take 100 seconds to get all 10 threads up and running. Each thread will start 10 (100/10) seconds after the previous thread was begun.
By setting the ramp-up period to just 1 second, you're basically telling JMeter to start all 10,000 threads at once (i.e., as fast as it can).
Hence Thread 1-5891 started very soon after the first one. It looks like Thread 1-7239 started about 16s in, and therefore ended at around 18s because the duration = 2 seconds.
If you meant to start 1 user per second then you can set the ramp-up period = 1 second per # of users (10,000 seconds).

JMeter scheduler doesn't stop after duration elapsed

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

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.

Jmeter thread execution internal process?

when i ran jmeter script , i can see the below logs: Why it is repeatedly printed thread group 1-1,1-1,1-1...1-2 ?? I understood that 1-1 means first thread group - first thread but it is printed again and again what does that mean in execution side??
2014/11/27 03:45:59 INFO - jmeter.threads.JMeterThread: Thread started: Thread Group 1-1 2014/11/27 03:46:00 INFO - jmeter.threads.JMeterThread: Thread started: Thread Group 1-1 2014/11/27 03:46:02 INFO - jmeter.threads.JMeterThread: Thread started: Thread Group 1-1 2014/11/27 03:46:03 INFO - jmeter.threads.JMeterThread: Thread started: Thread Group 1-1 2014/11/27 03:46:05 INFO - jmeter.threads.JMeterThread: Thread started: Thread Group 1-1 2014/11/27 03:46:06 INFO - jmeter.threads.JMeterThread: Thread started: Thread Group 1-2 2014/11/27 03:46:08 INFO - jmeter.threads.JMeterThread: Thread started: Thread Group 1-2 2014/11/27 03:46:09 INFO - jmeter.threads.JMeterThread: Thread started: Thread Group 1-2 2014/11/27 03:46:11 INFO - jmeter.threads.JMeterThread: Thread started: Thread Group 1-2 2014/11/27 03:46:12 INFO - jmeter.threads.JMeterThread: Thread started: Thread Group 1-2 2014/11/27 03:46:14 INFO - jmeter.threads.JMeterThread: Thread started: Thread Group 1-3 jmeter.threads.JMeterThread: Thread finished: Thread Group 1-3 2014/11/27 03:47:51 INFO - jmeter.threads.JMeterThread: Thread finished: Thread Group 1-3
I
From what i understand. Since you have only 1 thread group in your test plan, That is why your Log shows
014/11/27 03:45:59 INFO - jmeter.threads.JMeterThread: Thread
started: Thread Group 1-1 2014/11/27 03:46:00 INFO -
jmeter.threads.JMeterThread: Thread started: Thread Group 1-1
2014/11/27 03:46:02 INFO - jmeter.threads.JMeterThread: Thread
started: Thread Group 1-1 2014/11/27 03:46:03 INFO -
jmeter.threads.JMeterThread: Thread started: Thread Group 1-1
2014/11/27 03:46:05 INFO - jmeter.threads.JMeterThread: Thread
started: Thread Group 1-1 2014/11/27 03:46:06 INFO -
jmeter.threads.JMeterThread: Thread started: Thread Group 1-2
2014/11/27 03:46:08 INFO - jmeter.threads.JMeterThread: Thread
started: Thread Group 1-2 2014/11/27 03:46:09 INFO -
jmeter.threads.JMeterThread: Thread started: Thread Group 1-2
2014/11/27 03:46:11 INFO - jmeter.threads.JMeterThread: Thread
started: Thread Group 1-2 2014/11/27 03:46:12 INFO -
jmeter.threads.JMeterThread: Thread started: Thread Group 1-2
2014/11/27 03:46:14 INFO - jmeter.threads.JMeterThread: Thread
started: Thread Group 1-3
The first number represent the Thread group started: Thread Group 1-1, Thread Group 1-2, Thread Group 1-3 ..........
The second number represents the user.

How jmeter execute threads?

I have set as per following :
**
- Users : 20 Ramp-up Period : 30 Loop count :1
**
What actually it means Thread group 1-2 , 1-3 ... How jmeter consider my 20 user to execute request?
When my jmeter script runs , I can see following in Log viewer :
2014/11/27 03:45:59 INFO - jmeter.threads.JMeterThread: Thread started: Thread Group 1-2
2014/11/27 03:46:00 INFO - jmeter.threads.JMeterThread: Thread started: Thread Group 1-3
2014/11/27 03:46:02 INFO - jmeter.threads.JMeterThread: Thread started: Thread Group 1-4
2014/11/27 03:46:03 INFO - jmeter.threads.JMeterThread: Thread started: Thread Group 1-5
2014/11/27 03:46:05 INFO - jmeter.threads.JMeterThread: Thread started: Thread Group 1-6
2014/11/27 03:46:06 INFO - jmeter.threads.JMeterThread: Thread started: Thread Group 1-7
2014/11/27 03:46:08 INFO - jmeter.threads.JMeterThread: Thread started: Thread Group 1-8
2014/11/27 03:46:09 INFO - jmeter.threads.JMeterThread: Thread started: Thread Group 1-9
2014/11/27 03:46:11 INFO - jmeter.threads.JMeterThread: Thread started: Thread Group 1-10
2014/11/27 03:46:12 INFO - jmeter.threads.JMeterThread: Thread started: Thread Group 1-11
2014/11/27 03:46:14 INFO - jmeter.threads.JMeterThread: Thread started: Thread Group 1-12
2014/11/27 03:46:15 INFO - jmeter.threads.JMeterThread: Thread started: Thread Group 1-13
2014/11/27 03:46:17 INFO - jmeter.threads.JMeterThread: Thread finished: Thread Group 1-1
2014/11/27 03:46:17 INFO - jmeter.threads.JMeterThread: Thread started: Thread Group 1-14
2014/11/27 03:46:18 INFO - jmeter.threads.JMeterThread: Thread started: Thread Group 1-15
2014/11/27 03:46:20 INFO - jmeter.threads.JMeterThread: Thread started: Thread Group 1-16
2014/11/27 03:46:21 INFO - jmeter.threads.JMeterThread: Thread started: Thread Group 1-17
2014/11/27 03:46:22 INFO - jmeter.threads.JMeterThread: Thread finished: Thread Group 1-2
2014/11/27 03:46:23 INFO - jmeter.threads.JMeterThread: Thread started: Thread Group 1-18
2014/11/27 03:46:24 INFO - jmeter.threads.JMeterThread: Thread started: Thread Group 1-19
2014/11/27 03:46:26 INFO - jmeter.threads.JMeterThread: Thread started: Thread Group 1-20
2014/11/27 03:46:27 INFO - jmeter.threads.JMeterThread: Thread finished: Thread Group 1-3
2014/11/27 03:46:37 INFO - jmeter.threads.JMeterThread: Thread finished: Thread Group 1-4
2014/11/27 03:46:41 INFO - jmeter.threads.JMeterThread: Thread finished: Thread Group 1-5
2014/11/27 03:46:43 INFO - jmeter.threads.JMeterThread: Thread finished: Thread Group 1-6
2014/11/27 03:47:09 INFO - jmeter.threads.JMeterThread: Thread finished: Thread Group 1-7
2014/11/27 03:47:25 INFO - jmeter.threads.JMeterThread: Thread finished: Thread Group 1-8
2014/11/27 03:47:26 INFO - jmeter.threads.JMeterThread: Thread finished: Thread Group 1-9
2014/11/27 03:47:32 INFO - jmeter.threads.JMeterThread: Thread finished: Thread Group 1-10
2014/11/27 03:47:40 INFO - jmeter.threads.JMeterThread: Thread finished: Thread Group 1-11
2014/11/27 03:47:51 INFO - jmeter.threads.JMeterThread: Thread finished: Thread Group 1-12
2014/11/27 03:47:58 INFO - jmeter.threads.JMeterThread: Thread finished: Thread Group 1-13
2014/11/27 03:48:06 INFO - jmeter.threads.JMeterThread: Thread finished: Thread Group 1-15
2014/11/27 03:48:07 INFO - jmeter.threads.JMeterThread: Thread finished: Thread Group 1-14
2014/11/27 03:48:11 INFO - jmeter.threads.JMeterThread: Thread finished: Thread Group 1-16
2014/11/27 03:48:15 INFO - jmeter.threads.JMeterThread: Thread finished: Thread Group 1-17
2014/11/27 03:48:16 INFO - jmeter.threads.JMeterThread: Thread finished: Thread Group 1-18
2014/11/27 03:48:17 INFO - jmeter.threads.JMeterThread: Thread finished: Thread Group 1-19
2014/11/27 03:48:18 INFO - jmeter.threads.JMeterThread: Thread finished: Thread Group 1-20
Jmeter is a Java application which uses multithreading.
Since your Thread Group settings are: Users : 20 Ramp-up Period : 30 Loop count :1
So it will create 20 threads representing 20 Users, and each user will execute your thread group 1 time.
Since you have only 1 thread group in your test plan, That is why your Log shows
Thread started: Thread Group 1-1, Thread Group 1-2, Thread Group 1-3 ..........
The second number represents the user.
hope this will help.

Resources