<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
	<id>https://training-course-material.com/index.php?action=history&amp;feed=atom&amp;title=JMeter_Fundamentals</id>
	<title>JMeter Fundamentals - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://training-course-material.com/index.php?action=history&amp;feed=atom&amp;title=JMeter_Fundamentals"/>
	<link rel="alternate" type="text/html" href="https://training-course-material.com/index.php?title=JMeter_Fundamentals&amp;action=history"/>
	<updated>2026-05-13T09:38:55Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.45.1</generator>
	<entry>
		<id>https://training-course-material.com/index.php?title=JMeter_Fundamentals&amp;diff=52904&amp;oldid=prev</id>
		<title>190.215.98.119: /* Running JMeter Tests in Windows */</title>
		<link rel="alternate" type="text/html" href="https://training-course-material.com/index.php?title=JMeter_Fundamentals&amp;diff=52904&amp;oldid=prev"/>
		<updated>2017-03-09T12:59:51Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Running JMeter Tests in Windows&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Cat|JMeter|40}}&lt;br /&gt;
== What is JMeter ==&lt;br /&gt;
* Open Source Project (released March 2001)&lt;br /&gt;
* Created for Automated Performance testing saves time and money&lt;br /&gt;
* Functional (though it is not the best tool, Regression and Load testing from &lt;br /&gt;
* JMeter files are simple XML&lt;br /&gt;
* Strong community&lt;br /&gt;
* Constant updates and improvements&lt;br /&gt;
* http://jmeter.apache.org/&lt;br /&gt;
&lt;br /&gt;
== What can you test in JMeter ==&lt;br /&gt;
* JMeter tests all kind of application (not only Java)&lt;br /&gt;
** Web Application&lt;br /&gt;
** SOAP Web Services, REST, XML-RPC&lt;br /&gt;
** JAR files&lt;br /&gt;
** LDAP&lt;br /&gt;
** Databases (via JDBC)&lt;br /&gt;
** JMS&lt;br /&gt;
** SMTP&lt;br /&gt;
** FTP&lt;br /&gt;
&lt;br /&gt;
== Installing JMeter ==&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Windows&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* Install JRE&lt;br /&gt;
* Download latest version http://jakarta.apache.org/site/downloads/&lt;br /&gt;
* Uncompress it&lt;br /&gt;
* go to &amp;#039;&amp;#039;&amp;#039;bin&amp;#039;&amp;#039;&amp;#039; folder&lt;br /&gt;
* Run jmeter.cmd&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Linux&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* apt-get install jmeter&lt;br /&gt;
* run &amp;#039;&amp;#039;&amp;#039;jmeter&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* If you want to have the newest version download it from the jmeter site&lt;br /&gt;
&lt;br /&gt;
== JMeter and Logs ==&lt;br /&gt;
* JMeter does not use pop-ups&lt;br /&gt;
* All errors and status is spewed out into a log file&lt;br /&gt;
* Log file is always located in the directory the jmeter command was invoked&lt;br /&gt;
&lt;br /&gt;
== Running JMeter Tests in Windows ==&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;GUI&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* jmeterw.cmd - run JMeter in GUI using javaw (no terminal window)&lt;br /&gt;
* jmeter.bat - run JMeter in GUI mode&lt;br /&gt;
* jmeter-t.cmd - drop a JMX file on this to load it in GUI mode (&amp;#039;&amp;#039;&amp;#039;t&amp;#039;&amp;#039;&amp;#039; for Test)&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;CLI (Non GUI)&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* jmeter-n.cmd - drop a JMX file on this to run a non-GUI test (&amp;#039;&amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;#039; for non-GUI)&lt;br /&gt;
* jmeter-n-r.cmd - drop a JMX file on this to run a non-GUI test remotely&lt;br /&gt;
* jmeter-server.bat - start JMeter in server mode&lt;br /&gt;
* shutdown.cmd - Run the Shutdown client to stop a non-GUI instance gracefully&lt;br /&gt;
* stoptest.cmd - Run the Shutdown client to stop a non-GUI instance abruptly&lt;br /&gt;
Note: the special name LAST can be used with jmeter-n.cmd, jmeter-t.cmd and jmeter-n-r.cmd and means the last test plan that was run interactively.&lt;br /&gt;
&lt;br /&gt;
== Running JMeter Tests in Unix ==&lt;br /&gt;
* jmeter - run JMeter in GUI (JVM options specified)&lt;br /&gt;
* jmeter.sh - very basic JMeter script with no JVM options specified.&lt;br /&gt;
* jmeter-server - start JMeter in server mode &lt;br /&gt;
* shutdown.sh - Run the Shutdown client to stop a non-GUI instance gracefully&lt;br /&gt;
* stoptest.sh - Run the Shutdown client to stop a non-GUI instance abruptly&lt;br /&gt;
&lt;br /&gt;
== The Elements of a JMeter Test Plan ==&lt;br /&gt;
* Test Plan and WorkBench&lt;br /&gt;
* Thread Group&lt;br /&gt;
* Samplers&lt;br /&gt;
* Listeners&lt;br /&gt;
* Assertions&lt;br /&gt;
* Cookie Controller&lt;br /&gt;
* HTTP Defaults&lt;br /&gt;
* HTTP Headers Defaults&lt;br /&gt;
&lt;br /&gt;
=== Test Plan vs WorkBench ===&lt;br /&gt;
* Test Plan is saved and where can run the script&lt;br /&gt;
* WorkBench is not saved with the Test Plan&lt;br /&gt;
&lt;br /&gt;
=== Thread Group ===&lt;br /&gt;
* a group of instructions or actions representing one “actor” using your application&lt;br /&gt;
* always process instructions within them in chronological order&lt;br /&gt;
* allow you to specify simultaneous testing scenarios&lt;br /&gt;
&lt;br /&gt;
=== Samplers ===&lt;br /&gt;
* Only within a Thread Group&lt;br /&gt;
* Samplers perform the actual work of JMeter&lt;br /&gt;
* Each sampler (except Test Action) generates one or more sample results&lt;br /&gt;
* The sample results can be viewed in listeners&lt;br /&gt;
&lt;br /&gt;
=== Listeners ===&lt;br /&gt;
* Report back test results to you (in GUI or save them to a file)&lt;br /&gt;
* Listeners can work real time or use saved results&lt;br /&gt;
&lt;br /&gt;
=== Assertions ===&lt;br /&gt;
* These are criteria you can set which the test must meet in order to pass&lt;br /&gt;
* E.g. Results of a samplers should not contain &amp;quot;Critical Error&amp;quot; phrase&lt;br /&gt;
&lt;br /&gt;
== Simple Controles ==&lt;br /&gt;
TODO Description&lt;br /&gt;
TODO Screen shot&lt;br /&gt;
&lt;br /&gt;
== Creating Simple Test Plan ==&lt;br /&gt;
* Create a Thread Group&lt;br /&gt;
* Create a Sampler hitting localhost root page&lt;br /&gt;
* Run the test&lt;br /&gt;
* Check the log files&lt;br /&gt;
* Add the &amp;#039;&amp;#039;View Results Tree&amp;#039;&amp;#039; Listener and analyse the result&lt;br /&gt;
TODO: Put a screenshot here and jmx file&lt;br /&gt;
&lt;br /&gt;
== Running the Test Plan ==&lt;br /&gt;
* Top Right Corner of the GUI will show e.g. 20/40&lt;br /&gt;
* 40 is the total number of concurrent threads&lt;br /&gt;
* 20 is the number of concurrent threads currently running&lt;br /&gt;
TODO: Put a screenshot here&lt;br /&gt;
&lt;br /&gt;
== Recording Scenario ==&lt;br /&gt;
* Create a Proxy Server&lt;br /&gt;
* Configure Your Browser&lt;br /&gt;
* Use &amp;quot;1st Sample only&amp;quot;&lt;br /&gt;
* Start Recording&lt;br /&gt;
* Rename Samples are you record&lt;br /&gt;
&lt;br /&gt;
&amp;lt;signavio&amp;gt;08bb9f596d29420ead4bc4d3c408e969:607972ab8cde5b6c398bff3b963c4569cbbac472ef167ee9be2a53a067d57b_b57b5b2c9a12d8cc2ff468697e244e8686095fe1468c66780b35f7643b24_8a3dd610f5a4566c7359c91d5a1e28e0f6ae4a16fce9fc24fec9e97ad085f9bf&amp;lt;/signavio&amp;gt;&lt;br /&gt;
=== Using different options of Proxy Server ===&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
== Timers ==&lt;br /&gt;
* Specify a delay before an action (usually sampler) can occur&lt;br /&gt;
* Times should mimic human (or system) waiting time&lt;br /&gt;
* The best idea is to use logs to determine the distribution and distribution parameters of the waiting time&lt;br /&gt;
* Timers can be put in scope&lt;br /&gt;
* If two timers are put in the same level, the execution time add up&lt;br /&gt;
&lt;br /&gt;
== Saving Results ==&lt;br /&gt;
* Save results to a file&lt;br /&gt;
* Use another instance of JMeter to analyse results&lt;br /&gt;
* Saving Errors Only&lt;br /&gt;
* Saving Full Responses for one sample or group of samples&lt;br /&gt;
[[File:JMeter - Simple Data Writer.png|400px]]&lt;br /&gt;
[[File:JMeter - Results In Separate Instance.png|400px]]&lt;br /&gt;
&lt;br /&gt;
== Biscuits manager ==&lt;br /&gt;
* Try to record the scenario where user:&lt;br /&gt;
** logs&lt;br /&gt;
** browses the front page&lt;br /&gt;
** logs out&lt;br /&gt;
* Play the scenario&lt;br /&gt;
* Check wether the user really was logged in&lt;br /&gt;
&lt;br /&gt;
== Assertions ==&lt;br /&gt;
* Create an assertion which checks wether user is really logged in&lt;br /&gt;
* Apply the assertion to all of the samples&lt;br /&gt;
&lt;br /&gt;
== Testing different Browsers ==&lt;br /&gt;
* HTTP Headers&lt;br /&gt;
* HTTP Headers defaults&lt;br /&gt;
&lt;br /&gt;
== Switching Servers ==&lt;br /&gt;
* HTTP Defaults&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Functional Testing ==&lt;br /&gt;
* Run Thread Groups consecutively (one group at a time)&lt;br /&gt;
[[File:JMeter Running Threads Consecutively.png|400px]]&lt;br /&gt;
&lt;br /&gt;
== Reusing Elements ==&lt;br /&gt;
* Merging (Merge Proxy Server)&lt;br /&gt;
* Module Controller&lt;br /&gt;
* Include Controller (don&amp;#039;t use it)&lt;br /&gt;
&lt;br /&gt;
== Variables ==&lt;br /&gt;
* Config Elements &amp;gt; User Defined Variables&lt;br /&gt;
* ${VARIABLENAME}&lt;br /&gt;
&lt;br /&gt;
== Variables from command line ==&lt;br /&gt;
 HOST             ${__P(host,www.example.com)}&lt;br /&gt;
 THREADS          ${__P(threads,10)}&lt;br /&gt;
 LOOPS            ${__P(loops,20)}&lt;br /&gt;
 jmeter ... -Jhost=www3.example.org -Jloops=13&lt;br /&gt;
 &lt;br /&gt;
  jmeter-n &amp;quot;Test Plan1.jmx&amp;quot; -JCNT=10&lt;br /&gt;
&lt;br /&gt;
== Variable Substitution During Recording ==&lt;br /&gt;
* Setup a variable USER and set it to admin&lt;br /&gt;
* Login as an admin&lt;br /&gt;
* Look into the recorded samples&lt;br /&gt;
&lt;br /&gt;
== Dynamic Variables ==&lt;br /&gt;
* Pre Processors &amp;gt; User Parameters&lt;br /&gt;
* CSV&lt;br /&gt;
&lt;br /&gt;
== Running Test Periodically ==&lt;br /&gt;
* Run Test From Command Line&lt;br /&gt;
* ./jmeter -n -t TestPlan.jmx -j /dev/console &lt;br /&gt;
* JTL Report&lt;br /&gt;
* Creating User Report&lt;br /&gt;
&lt;br /&gt;
== Extractors ==&lt;br /&gt;
* Extractors allows you to save part of response in a variable for the future use&lt;br /&gt;
* Common Uses&lt;br /&gt;
** Security Tokens&lt;br /&gt;
** Dynamic data creation&lt;br /&gt;
&lt;br /&gt;
== Extractors Examples ==&lt;br /&gt;
Text in HTML:&lt;br /&gt;
 name=&amp;quot;file&amp;quot; value=&amp;quot;readme.txt&amp;quot;&lt;br /&gt;
RegExp:&lt;br /&gt;
 name=&amp;quot;file&amp;quot; value=&amp;quot;(.+?)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* ( and ) - brackets enclose the portion of the match string to be returned&lt;br /&gt;
* . - match any character&lt;br /&gt;
* + - one or more times&lt;br /&gt;
* ? - don&amp;#039;t be greedy, i.e. stop when first match succeeds&lt;br /&gt;
&lt;br /&gt;
== Extractors Exercises ==&lt;br /&gt;
* Record and run following sequence (remember about Cookie Manager)&lt;br /&gt;
* User access the content (node/add)&lt;br /&gt;
* User atrainer logs into the application&lt;br /&gt;
* User access the content (node/add)&lt;br /&gt;
* User logs out&lt;br /&gt;
* User access the content (node/add)&lt;br /&gt;
&lt;br /&gt;
== Loops and Counters ==&lt;br /&gt;
* Define a counter&lt;br /&gt;
* Create a page with title &amp;quot;Tile 1&amp;quot;, &amp;quot;Title 2&amp;quot;.... &amp;quot;Title 10&amp;quot;&lt;br /&gt;
* Run the script consecrative&lt;br /&gt;
* Create a script which runs it in parallel (extra exercise)&lt;br /&gt;
&lt;br /&gt;
== Stress Testing ==&lt;br /&gt;
* Ramp-up Time&lt;br /&gt;
* Summary Report&lt;br /&gt;
* Graph Summary&lt;br /&gt;
&lt;br /&gt;
== Understanding Statistics ==&lt;br /&gt;
[[File:JMeter Average Standard Devaition and Median.jpg]]&lt;/div&gt;</summary>
		<author><name>190.215.98.119</name></author>
	</entry>
</feed>