<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>OptimumBrew Technology</title>
	<atom:link href="https://optimumbrew.com/feed/" rel="self" type="application/rss+xml" />
	<link>https://optimumbrew.com/</link>
	<description></description>
	<lastBuildDate>Wed, 15 Jan 2025 10:55:41 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.1</generator>

<image>
	<url>https://optimumbrew.com/wp-content/uploads/2021/12/favicon.svg</url>
	<title>OptimumBrew Technology</title>
	<link>https://optimumbrew.com/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Streamline Database Operations with Our MySQL Cheat Sheet</title>
		<link>https://optimumbrew.com/streamline-database-operations-with-our-mysql-cheat-sheet/</link>
					<comments>https://optimumbrew.com/streamline-database-operations-with-our-mysql-cheat-sheet/#respond</comments>
		
		<dc:creator><![CDATA[Jaimisha Patel]]></dc:creator>
		<pubDate>Thu, 09 Nov 2023 08:58:36 +0000</pubDate>
				<category><![CDATA[MySQL]]></category>
		<guid isPermaLink="false">https://optimumbrew.com/?p=32065</guid>

					<description><![CDATA[<p>A MySQL cheat sheet is a simple, user-friendly reference document containing essential basic functions and commands used in MySQL database management. It provides quick access to fundamental SQL queries for tasks like creating, reading, updating, and deleting data.</p>
<p>The post <a href="https://optimumbrew.com/streamline-database-operations-with-our-mysql-cheat-sheet/">Streamline Database Operations with Our MySQL Cheat Sheet</a> appeared first on <a href="https://optimumbrew.com">OptimumBrew Technology</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><span style="font-weight: 400;">In the world of database management, MySQL stands out as one of the most popular and powerful relational database systems. Whether you&#8217;re a seasoned database administrator or just starting your journey in the world of databases, having a reliable cheat sheet at your disposal can be invaluable. This comprehensive MySQL cheat sheet is designed to be your go-to resource for quickly accessing essential commands and tips to streamline your database operations.</span></p>
<p><span style="font-weight: 400;">Feel free to bookmark this page or share it with your peers. Dive in and make the most of this MySQL cheat sheet!</span></p>
<p><a href="https://optimumbrew.com/wp-content/uploads/2023/11/mysql-cheat-sheet-Page-3.png"><img fetchpriority="high" decoding="async" class="aligncenter wp-image-32082 size-full" src="https://optimumbrew.com/wp-content/uploads/2023/11/mysql-cheat-sheet-Page-3.png" alt="" width="2382" height="4562" srcset="https://optimumbrew.com/wp-content/uploads/2023/11/mysql-cheat-sheet-Page-3.png 2048w, https://optimumbrew.com/wp-content/uploads/2023/11/mysql-cheat-sheet-Page-3-157x300.png 157w, https://optimumbrew.com/wp-content/uploads/2023/11/mysql-cheat-sheet-Page-3-535x1024.png 535w, https://optimumbrew.com/wp-content/uploads/2023/11/mysql-cheat-sheet-Page-3-768x1471.png 768w, https://optimumbrew.com/wp-content/uploads/2023/11/mysql-cheat-sheet-Page-3-802x1536.png 802w, https://optimumbrew.com/wp-content/uploads/2023/11/mysql-cheat-sheet-Page-3-1069x2048.png 1069w" sizes="(max-width: 2382px) 100vw, 2382px" /></a></p>
<p><strong>Download Options:</strong></p>
<ul>
<li><a href="https://drive.google.com/file/d/1WNl68opwv_Annwd2YliJqm6AZVrXeQ2X/view?usp=sharing"><span style="font-weight: 400;">Download in PDF</span></a></li>
</ul>
<p>&nbsp;</p>
<h2>Table of Contents</h2>
<ul>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">What is MySQL?</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Sample Data</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Query</span><span style="font-weight: 400;">ing tables</span>
<ul>
<li style="font-weight: 400;" aria-level="2"><span style="font-weight: 400;">Filtering Data</span></li>
<li style="font-weight: 400;" aria-level="2"><span style="font-weight: 400;">Filtering on numeric columns</span></li>
<li style="font-weight: 400;" aria-level="2"><span style="font-weight: 400;">Filtering on text columns</span></li>
<li style="font-weight: 400;" aria-level="2"><span style="font-weight: 400;">Filtering on multiple columns</span></li>
<li style="font-weight: 400;" aria-level="2"><span style="font-weight: 400;">Filtering on missing data</span></li>
</ul>
</li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Aggregating Data</span>
<ul>
<li style="font-weight: 400;" aria-level="2"><span style="font-weight: 400;">Simple aggregations</span></li>
<li style="font-weight: 400;" aria-level="2"><span style="font-weight: 400;">Grouping, filtering, and sorting</span></li>
</ul>
</li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">MySQL-Specific Syntax</span></li>
</ul>
<h2><b>What is MySQL?</b></h2>
<p><span style="font-weight: 400;">MySQL is an open-source relational database management system (RDBMS) known for its fast performance and reliability. Developed by Oracle Corporation, it&#8217;s widely used for web applications and online publishing.</span></p>
<h2><b>Sample Data</b></h2>
<p><span style="font-weight: 400;">The dataset contains details of the world&#8217;s highest valued media employees by gross sales. Each row contains one department, and the table is named </span><span style="font-weight: 400;">employees</span><span style="font-weight: 400;">.</span></p>
<h2><b>Querying tables</b></h2>
<ul>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Get all the columns from a table using </span><span style="font-weight: 400;">SELECT *</span></li>
</ul>
<p style="padding-left: 80px;"><span style="color: #008000;"><span style="font-weight: 400;">SELECT</span><span style="font-weight: 400; color: #000000;"> * </span><span style="font-weight: 400;">FROM</span></span><span style="font-weight: 400;"> employees</span></p>
<ul>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Get a column from a table by name using </span><span style="font-weight: 400;">SELECT col</span></li>
</ul>
<p style="padding-left: 80px;"><span style="font-weight: 400; color: #008000;">SELECT</span><span style="font-weight: 400;"> department </span><span style="font-weight: 400; color: #008000;">FROM</span><span style="font-weight: 400;"> employees</span></p>
<ul>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Get multiple columns from a table by name using </span><span style="font-weight: 400;">SELECT col1, col2</span></li>
</ul>
<p style="padding-left: 80px;"><span style="font-weight: 400; color: #008000;">SELECT</span><span style="font-weight: 400;"> department</span><span style="font-weight: 400;">,</span><span style="font-weight: 400;"> inception_year </span> <span style="font-weight: 400; color: #008000;">FROM</span><span style="font-weight: 400;"> employees</span></p>
<ul>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Override column names with </span><span style="font-weight: 400;">SELECT col AS new_name</span></li>
</ul>
<p style="padding-left: 80px;"><span style="font-weight: 400; color: #008000;">SELECT</span><span style="font-weight: 400;"> department</span><span style="font-weight: 400;">,</span><span style="font-weight: 400;"> inception_year </span><span style="font-weight: 400; color: #008000;">AS</span><span style="font-weight: 400;"> creation_year </span><span style="font-weight: 400; color: #008000;">FROM</span><span style="font-weight: 400;"> employees</span></p>
<ul>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Arrange the rows in ascending order of values in a column with </span><span style="font-weight: 400;">ORDER BY col</span></li>
</ul>
<p style="padding-left: 80px;"><span style="font-weight: 400; color: #008000;">SELECT</span><span style="font-weight: 400;"> department</span><span style="font-weight: 400;">,</span><span style="font-weight: 400;"> inception_year </span> <span style="font-weight: 400; color: #008000;">FROM</span><span style="font-weight: 400;"> employees </span><span style="font-weight: 400; color: #008000;">ORDER BY</span><span style="font-weight: 400;"> inception_year</span></p>
<ul>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Arrange the rows in descending order of values in a column with </span><span style="font-weight: 400;">ORDER BY col DESC</span></li>
</ul>
<p style="padding-left: 80px;"><span style="font-weight: 400; color: #008000;">SELECT</span><span style="font-weight: 400;"> department</span><span style="font-weight: 400;">,</span><span style="font-weight: 400;"> incentive </span><span style="font-weight: 400; color: #008000;">FROM</span><span style="font-weight: 400;"> employees </span><span style="font-weight: 400; color: #008000;">ORDER BY</span><span style="font-weight: 400;"> incentive </span><span style="font-weight: 400; color: #008000;">DESC</span></p>
<ul>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Limit the number of rows returned with </span><span style="font-weight: 400;">LIMIT n</span></li>
</ul>
<p style="padding-left: 80px;"><span style="font-weight: 400; color: #008000;">SELECT</span><span style="font-weight: 400;"> * </span><span style="font-weight: 400; color: #008000;">FROM</span><span style="font-weight: 400;"> employees </span><span style="font-weight: 400; color: #008000;">LIMIT </span><span style="font-weight: 400; color: #993300;">2</span></p>
<ul>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Get unique values with </span><span style="font-weight: 400;">SELECT DISTINCT</span></li>
</ul>
<p style="padding-left: 80px;"><span style="font-weight: 400; color: #008000;">SELECT DISTINCT</span><span style="font-weight: 400;"> client_name </span> <span style="font-weight: 400; color: #008000;">FROM</span><span style="font-weight: 400;"> employees</span></p>
<h2><b>Filtering Data</b></h2>
<h4><b>Filtering on numeric columns</b></h4>
<ul>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Get rows where a number is greater than a value with </span><span style="font-weight: 400;">WHERE col &gt; n</span></li>
</ul>
<p style="padding-left: 80px;"><span style="font-weight: 400; color: #008000;">SELECT</span><span style="font-weight: 400;"> department</span><span style="font-weight: 400;">,</span><span style="font-weight: 400;"> inception_year </span> <span style="font-weight: 400; color: #008000;">FROM</span><span style="font-weight: 400;"> employees </span><span style="font-weight: 400; color: #008000;">WHERE</span><span style="font-weight: 400;"> inception_year &gt; </span><span style="font-weight: 400; color: #993300;">1928</span></p>
<ul>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Get rows where a number is greater than or equal to a value with </span><span style="font-weight: 400;">WHERE col &gt;= n</span></li>
</ul>
<p style="padding-left: 80px;"><span style="font-weight: 400; color: #008000;">SELECT</span><span style="font-weight: 400;"> department</span><span style="font-weight: 400;">,</span><span style="font-weight: 400;"> inception_year </span> <span style="font-weight: 400; color: #008000;">FROM</span><span style="font-weight: 400;"> employees </span><span style="font-weight: 400; color: #008000;">WHERE</span><span style="font-weight: 400;"> inception_year &gt;= </span><span style="font-weight: 400; color: #993300;">1928</span></p>
<ul>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Get rows where a number is less than a value with </span><span style="font-weight: 400;">WHERE col &lt; n</span></li>
</ul>
<p style="padding-left: 80px;"><span style="font-weight: 400; color: #008000;">SELECT</span><span style="font-weight: 400;"> department</span><span style="font-weight: 400;">,</span><span style="font-weight: 400;"> inception_year </span> <span style="font-weight: 400; color: #008000;">FROM</span><span style="font-weight: 400;"> employees </span><span style="font-weight: 400; color: #008000;">WHERE</span><span style="font-weight: 400;"> inception_year &lt; </span><span style="font-weight: 400; color: #993300;">1977</span></p>
<ul>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Get rows where a number is less than or equal to a value with </span><span style="font-weight: 400;">WHERE col &lt;= n</span></li>
</ul>
<p style="padding-left: 80px;"><span style="font-weight: 400; color: #008000;">SELECT</span><span style="font-weight: 400;"> department</span><span style="font-weight: 400;">,</span><span style="font-weight: 400;"> inception_year </span> <span style="font-weight: 400; color: #008000;">FROM</span><span style="font-weight: 400;"> employees </span><span style="font-weight: 400; color: #008000;">WHERE</span><span style="font-weight: 400;"> inception_year &lt;= </span><span style="font-weight: 400; color: #993300;">1977</span></p>
<ul>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Get rows where a number is equal to a value with </span><span style="font-weight: 400;">WHERE col = n</span></li>
</ul>
<p style="padding-left: 80px;"><span style="font-weight: 400; color: #008000;">SELECT</span><span style="font-weight: 400;"> department</span><span style="font-weight: 400;">,</span><span style="font-weight: 400;"> inception_year </span> <span style="font-weight: 400; color: #008000;">FROM</span><span style="font-weight: 400;"> employees </span><span style="font-weight: 400; color: #008000;">WHERE</span><span style="font-weight: 400;"> inception_year = </span><span style="font-weight: 400; color: #993300;">1996</span></p>
<ul>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Get rows where a number is not equal to a value with </span><span style="font-weight: 400;">WHERE col &lt;&gt;</span><span style="font-weight: 400;"> n or </span><span style="font-weight: 400;">WHERE col != n</span></li>
</ul>
<p style="padding-left: 80px;"><span style="font-weight: 400; color: #008000;">SELECT</span><span style="font-weight: 400;"> department</span><span style="font-weight: 400;">,</span><span style="font-weight: 400;"> inception_year </span> <span style="font-weight: 400; color: #008000;">FROM</span><span style="font-weight: 400;"> employees </span><span style="font-weight: 400; color: #008000;">WHERE</span><span style="font-weight: 400;"> inception_year &lt;&gt; </span><span style="font-weight: 400; color: #993300;">1996</span></p>
<ul>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Get rows where a number is between two values (inclusive) with </span><span style="font-weight: 400;">WHERE col BETWEEN m AND n</span></li>
</ul>
<p style="padding-left: 80px;"><span style="font-weight: 400; color: #008000;">SELECT</span><span style="font-weight: 400;"> department</span><span style="font-weight: 400;">,</span><span style="font-weight: 400;"> inception_year </span> <span style="font-weight: 400; color: #008000;">FROM</span><span style="font-weight: 400;"> employees </span><span style="font-weight: 400; color: #008000;">WHERE</span><span style="font-weight: 400;"> inception_year <span style="color: #000000;">BETWEEN </span></span><span style="font-weight: 400; color: #993300;">1928</span><span style="font-weight: 400;"> AND </span><span style="font-weight: 400; color: #993300;">1977</span></p>
<h4><b>Filtering on text columns</b></h4>
<ul>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Get rows where text is equal to a value with </span><span style="font-weight: 400;">WHERE col = &#8216;x&#8217;</span></li>
</ul>
<p style="padding-left: 80px;"><span style="font-weight: 400; color: #008000;">SELECT</span><span style="font-weight: 400;"> department</span><span style="font-weight: 400;">,</span><span style="font-weight: 400;"> original_medium </span><span style="font-weight: 400; color: #008000;">FROM</span><span style="font-weight: 400;"> employees </span><span style="font-weight: 400; color: #008000;">WHERE</span><span style="font-weight: 400;"> original_medium = </span><span style="font-weight: 400;">&#8216;<span style="color: #3366ff;">book</span>&#8216;</span><span style="font-weight: 400;"> </span></p>
<ul>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Get rows where text is one of several values with </span><span style="font-weight: 400;">WHERE col IN (&#8216;x&#8217;, &#8216;y&#8217;)</span></li>
</ul>
<p style="padding-left: 80px;"><span style="font-weight: 400; color: #008000;">SELECT</span><span style="font-weight: 400;"> department</span><span style="font-weight: 400;">,</span><span style="font-weight: 400;"> original_medium </span><span style="font-weight: 400; color: #008000;">FROM</span><span style="font-weight: 400;"> employees </span><span style="font-weight: 400; color: #008000;">WHERE</span><span style="font-weight: 400;"> original_medium IN </span><span style="font-weight: 400;">(</span><span style="font-weight: 400;">&#8216;<span style="color: #3366ff;">movie</span>&#8216;</span><span style="font-weight: 400;">,</span> <span style="font-weight: 400;">&#8216;<span style="color: #3366ff;">video</span> <span style="color: #3366ff;">game</span>&#8216;</span><span style="font-weight: 400;">)</span></p>
<ul>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Get rows where text contains specific letters with </span><span style="font-weight: 400;">WHERE col LIKE &#8216;%abc%&#8217;</span><span style="font-weight: 400;"> (% represents any characters)</span></li>
</ul>
<p style="padding-left: 80px;"><span style="font-weight: 400; color: #008000;">SELECT</span><span style="font-weight: 400;"> department</span><span style="font-weight: 400;">,</span><span style="font-weight: 400;"> original_medium </span><span style="font-weight: 400; color: #008000;">FROM</span><span style="font-weight: 400;"> employees </span><span style="font-weight: 400; color: #008000;">WHERE</span><span style="font-weight: 400;"> original_medium LIKE </span><span style="font-weight: 400;">&#8216;<span style="color: #3366ff;">%oo%</span>&#8216;</span></p>
<h4><b>Filtering on multiple columns</b></h4>
<ul>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Get the rows where one condition and another condition holds with </span><span style="font-weight: 400;">WHERE condn1 AND condn2</span></li>
</ul>
<p style="padding-left: 80px;"><span style="font-weight: 400; color: #008000;">SELECT</span><span style="font-weight: 400;"> department</span><span style="font-weight: 400;">,</span><span style="font-weight: 400;"> inception_year</span><span style="font-weight: 400;">,</span><span style="font-weight: 400;"> insentive </span><span style="font-weight: 400; color: #008000;">FROM</span><span style="font-weight: 400;"> employees </span><span style="font-weight: 400; color: #008000;">WHERE</span><span style="font-weight: 400;"> inception_year &lt; </span><span style="font-weight: 400; color: #993300;">1950 </span><span style="font-weight: 400;">AND insentive &gt; </span><span style="font-weight: 400; color: #993300;">50</span></p>
<ul>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Get the rows where one condition or another condition holds with </span><span style="font-weight: 400;">WHERE condn1 OR condn2</span></li>
</ul>
<p style="padding-left: 80px;"><span style="font-weight: 400; color: #008000;">SELECT</span><span style="font-weight: 400;"> department</span><span style="font-weight: 400;">,</span><span style="font-weight: 400;"> inception_year</span><span style="font-weight: 400;">,</span><span style="font-weight: 400;"> insentive </span> <span style="font-weight: 400; color: #008000;">FROM</span><span style="font-weight: 400;"> employees </span> <span style="font-weight: 400; color: #008000;">WHERE</span><span style="font-weight: 400;"> inception_year &lt; </span><span style="font-weight: 400; color: #993300;">1950 </span><span style="font-weight: 400;">OR insentive &gt; </span><span style="font-weight: 400; color: #993300;">50</span></p>
<h4><b>Filtering on missing data</b></h4>
<ul>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Get rows where values are missing with </span><span style="font-weight: 400;">WHERE col IS NULL</span></li>
</ul>
<p style="padding-left: 80px;"><span style="font-weight: 400; color: #008000;">SELECT</span><span style="font-weight: 400;"> department</span><span style="font-weight: 400;">,</span><span style="font-weight: 400;"> sales </span><span style="font-weight: 400; color: #008000;">FROM</span><span style="font-weight: 400;"> employees </span><span style="font-weight: 400; color: #008000;">WHERE</span><span style="font-weight: 400;"> sales IS </span><span style="font-weight: 400; color: #993300;">NULL</span></p>
<ul>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Get rows where values are not missing with </span><span style="font-weight: 400;">WHERE col IS NOT NULL</span></li>
</ul>
<p style="padding-left: 80px;"><span style="font-weight: 400; color: #008000;">SELECT</span><span style="font-weight: 400;"> department</span><span style="font-weight: 400;">,</span><span style="font-weight: 400;"> sales </span><span style="font-weight: 400; color: #008000;">FROM</span><span style="font-weight: 400;"> employees </span><span style="font-weight: 400; color: #008000;">WHERE</span><span style="font-weight: 400;"> sales IS NOT </span><span style="font-weight: 400; color: #993300;">NULL</span></p>
<h2><b>Aggregating Data</b></h2>
<h4><b>Simple aggregations</b></h4>
<ul>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Get the total number of rows </span><span style="font-weight: 400;">SELECT COUNT(*)</span></li>
</ul>
<p style="padding-left: 80px;"><span style="font-weight: 400; color: #008000;">SELECT </span><span style="font-weight: 400; color: #3366ff;">COUNT</span><span style="font-weight: 400;">(</span><span style="font-weight: 400;">*</span><span style="font-weight: 400;">)</span> <span style="font-weight: 400; color: #008000;">FROM</span><span style="font-weight: 400;"> employees</span></p>
<ul>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Get the total value of a column with </span><span style="font-weight: 400;">SELECT SUM(col)</span></li>
</ul>
<p style="padding-left: 80px;"><span style="font-weight: 400; color: #008000;">SELECT </span><span style="font-weight: 400; color: #3366ff;">SUM</span><span style="font-weight: 400;">(</span><span style="font-weight: 400;">insentive</span><span style="font-weight: 400;">)</span> <span style="font-weight: 400; color: #008000;">FROM</span><span style="font-weight: 400;"> employees</span></p>
<ul>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Get the mean value of a column with </span><span style="font-weight: 400;">SELECT AVG(col)</span></li>
</ul>
<p style="padding-left: 80px;"><span style="font-weight: 400; color: #008000;">SELECT </span><span style="font-weight: 400; color: #3366ff;">AVG</span><span style="font-weight: 400;">(</span><span style="font-weight: 400;">insentive</span><span style="font-weight: 400;">)</span> <span style="font-weight: 400; color: #008000;">FROM</span><span style="font-weight: 400;"> employees</span></p>
<ul>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Get the mean value of a column with </span><span style="font-weight: 400;">SELECT AVG(col)</span></li>
</ul>
<p style="padding-left: 80px;"><span style="font-weight: 400; color: #008000;">SELECT </span><span style="font-weight: 400; color: #3366ff;">AVG</span><span style="font-weight: 400;">(</span><span style="font-weight: 400;">insentive</span><span style="font-weight: 400;">)</span> <span style="font-weight: 400; color: #008000;">FROM</span><span style="font-weight: 400;"> employees</span></p>
<ul>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Get the maximum value of a column with </span><span style="font-weight: 400;">SELECT MAX(col)</span></li>
</ul>
<p style="padding-left: 80px;"><span style="font-weight: 400; color: #008000;">SELECT </span><span style="font-weight: 400; color: #3366ff;">MAX</span><span style="font-weight: 400;">(</span><span style="font-weight: 400;">insentive</span><span style="font-weight: 400;">)</span> <span style="font-weight: 400; color: #008000;">FROM</span><span style="font-weight: 400;"> employees</span></p>
<h4><b>Grouping, filtering, and sorting</b></h4>
<ul>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Get summaries grouped by values with </span><span style="font-weight: 400;">GROUP BY col</span></li>
</ul>
<p style="padding-left: 80px;"><span style="font-weight: 400; color: #008000;">SELECT</span><span style="font-weight: 400;"> client_name</span><span style="font-weight: 400;">,</span> <span style="font-weight: 400; color: #3366ff;">COUNT</span><span style="font-weight: 400;">(</span><span style="font-weight: 400;">*</span><span style="font-weight: 400;">)</span> <span style="font-weight: 400; color: #008000;">FROM</span><span style="font-weight: 400;"> employees </span><span style="color: #008000;"><span style="font-weight: 400;">GROUP</span> <span style="font-weight: 400;">BY</span></span><span style="font-weight: 400;"> client_name</span></p>
<ul>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Get summaries grouped by values, in order of summaries with </span><span style="font-weight: 400;">GROUP BY col ORDER BY smmry DESC</span></li>
</ul>
<p style="padding-left: 80px;"><span style="font-weight: 400; color: #008000;">SELECT</span><span style="font-weight: 400;"> original_medium</span><span style="font-weight: 400;">,</span> <span style="font-weight: 400; color: #3366ff;">SUM</span><span style="font-weight: 400;">(</span><span style="font-weight: 400;">sales</span><span style="font-weight: 400;">)</span> <span style="font-weight: 400; color: #008000;">AS</span><span style="font-weight: 400;"> total_products </span><span style="font-weight: 400; color: #008000;">FROM </span><span style="font-weight: 400;">employees </span> <span style="color: #008000;"><span style="font-weight: 400;">GROUP</span> <span style="font-weight: 400;">BY</span></span><span style="font-weight: 400;"> original_medium </span><span style="color: #008000;"><span style="font-weight: 400;">ORDER</span> <span style="font-weight: 400;">BY</span></span><span style="font-weight: 400;"> total_products </span><span style="font-weight: 400; color: #008000;">DESC</span></p>
<ul>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Get rows where values in a group meet a criterion with </span><span style="font-weight: 400;">GROUP BY col HAVING condn</span></li>
</ul>
<p style="padding-left: 80px;"><span style="font-weight: 400; color: #008000;">SELECT</span><span style="font-weight: 400;"> original_medium</span><span style="font-weight: 400;">,</span> <span style="font-weight: 400; color: #3366ff;">SUM</span><span style="font-weight: 400;">(</span><span style="font-weight: 400;">sales</span><span style="font-weight: 400;">)</span> <span style="font-weight: 400; color: #008000;">AS</span><span style="font-weight: 400;"> total_products </span><span style="font-weight: 400; color: #008000;">FROM </span><span style="font-weight: 400;">employees </span><span style="color: #008000;"><span style="font-weight: 400;">GROUP</span> <span style="font-weight: 400;">BY</span></span><span style="font-weight: 400;"> original_medium </span><span style="color: #008000;"><span style="font-weight: 400;">ORDER</span> <span style="font-weight: 400;">BY</span></span><span style="font-weight: 400;"> total_products  </span><span style="color: #008000;"><span style="font-weight: 400;">DESC</span> <span style="font-weight: 400;">HAVING</span></span><span style="font-weight: 400;"> total_products &gt; </span><span style="font-weight: 400; color: #993300;">10</span></p>
<ul>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Filter before and after grouping with </span><span style="font-weight: 400;">WHERE condn_before GROUP BY col HAVING condn_after</span></li>
</ul>
<p style="padding-left: 80px;"><span style="font-weight: 400; color: #008000;">SELECT</span><span style="font-weight: 400;"> original_medium</span><span style="font-weight: 400;">,</span> <span style="font-weight: 400; color: #3366ff;">SUM</span><span style="font-weight: 400;">(</span><span style="font-weight: 400;">sales</span><span style="font-weight: 400;">)</span> <span style="font-weight: 400; color: #008000;">AS</span><span style="font-weight: 400;"> total_products </span><span style="font-weight: 400; color: #008000;">FROM</span> employees <span style="font-weight: 400; color: #008000;">WHERE</span> client_name = &#8216;UG Tech Holdings&#8217; <span style="color: #008000;"><span style="font-weight: 400;">GROUP</span> <span style="font-weight: 400;">BY</span></span><span style="font-weight: 400;"> original_medium </span> <span style="color: #008000;"><span style="font-weight: 400;">ORDER</span> <span style="font-weight: 400;">BY</span></span><span style="font-weight: 400;"> total_products </span><span style="font-weight: 400; color: #008000;">DESC </span><span style="font-weight: 400; color: #008000;">HAVING</span><span style="font-weight: 400;"> total_products &gt; </span><span style="font-weight: 400; color: #993300;">10</span></p>
<h2><b>MySQL-Specific Syntax</b></h2>
<p><span style="font-weight: 400;">Not all code works in every dialect of SQL. The following examples work in MySQL, but are not guaranteed to work in other dialects.</span></p>
<ul>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Limit the number of rows returned, offset from the top with </span><span style="font-weight: 400;">LIMIT m, n</span></li>
</ul>
<p style="padding-left: 80px;"><span style="font-weight: 400; color: #008000;">SELECT</span><span style="font-weight: 400;"> * </span> <span style="font-weight: 400; color: #008000;">FROM</span><span style="font-weight: 400;"> employees </span><span style="font-weight: 400; color: #008000;">LIMIT </span><span style="font-weight: 400; color: #993300;">2</span><span style="font-weight: 400;">,</span> <span style="font-weight: 400; color: #993300;">3</span></p>
<ul>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">By default, MySQL uses case insensitive matching in WHERE clauses.</span></li>
</ul>
<p style="padding-left: 80px;"><span style="font-weight: 400; color: #008000;">SELECT</span><span style="font-weight: 400;"> * </span> <span style="font-weight: 400; color: #008000;">FROM</span><span style="font-weight: 400;"> employees </span> <span style="font-weight: 400; color: #008000;">WHERE</span><span style="font-weight: 400;"> client_name = </span><span style="font-weight: 400;">&#8216;<span style="color: #3366ff;">UG Tech Holdings</span>&#8216;</span></p>
<ul>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">To get case-sensitive matching, use </span><span style="font-weight: 400;">WHERE BINARY condn</span></li>
</ul>
<p style="padding-left: 80px;"><span style="font-weight: 400; color: #008000;">SELECT</span><span style="font-weight: 400;"> * </span> <span style="font-weight: 400; color: #008000;">FROM</span><span style="font-weight: 400;"> employees </span> <span style="font-weight: 400; color: #008000;">WHERE BINARY</span><span style="font-weight: 400;"> client_name = </span><span style="font-weight: 400;">&#8216;<span style="color: #3366ff;">UG Tech Holdings</span>&#8216;</span></p>
<ul>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Get the current date with </span><span style="font-weight: 400;">CURDATE()</span><span style="font-weight: 400;"> and the current datetime with </span><span style="font-weight: 400;">NOW()</span><span style="font-weight: 400;"> or </span><span style="font-weight: 400;">CURTIME()</span></li>
</ul>
<p style="padding-left: 80px;"><span style="font-weight: 400; color: #008000;">SELECT</span><span style="font-weight: 400;"> NOW(), CURDATE(), CURTIME()</span></p>
<p><b>Conclusion</b></p>
<p><span style="font-weight: 400;">In conclusion, MySQL is a widely used and powerful relational database management system known for its performance and reliability. This comprehensive MySQL cheat sheet provides essential commands and tips for database administrators and beginners alike. It covers various aspects of MySQL usage, from querying and filtering data to aggregating and sorting information. Additionally, it offers insights into MySQL-specific syntax, ensuring you can leverage the full potential of this database system.</span></p>
<p>The post <a href="https://optimumbrew.com/streamline-database-operations-with-our-mysql-cheat-sheet/">Streamline Database Operations with Our MySQL Cheat Sheet</a> appeared first on <a href="https://optimumbrew.com">OptimumBrew Technology</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://optimumbrew.com/streamline-database-operations-with-our-mysql-cheat-sheet/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>API Load Testing Using Apache JMeter (Step by Step Guide)</title>
		<link>https://optimumbrew.com/api-load-testing-using-apache-jmeter/</link>
		
		<dc:creator><![CDATA[Jaimisha Patel]]></dc:creator>
		<pubDate>Wed, 04 Jan 2023 11:21:14 +0000</pubDate>
				<category><![CDATA[Quality Assurance]]></category>
		<guid isPermaLink="false">https://optimumbrew.com/?p=31523</guid>

					<description><![CDATA[<p>The Simple Test plan of JMeter is that one user is hitting only one API/request. But in the real scenario, multiple users will always be there who will hit either a single API or multiple APIs.</p>
<p>The post <a href="https://optimumbrew.com/api-load-testing-using-apache-jmeter/">API Load Testing Using Apache JMeter (Step by Step Guide)</a> appeared first on <a href="https://optimumbrew.com">OptimumBrew Technology</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Before we begin with JMeter API load testing, make sure you have basic knowledge of JMeter, You can check this <a href="https://optimumbrew.com/what-is-jmeter-introduction-uses/" target="_blank" rel="noopener">&#8220;What is JMeter? Introduction &amp; Uses&#8221;</a> from our first JMeter Blog.</p>
<p><span style="font-weight: 400;">The Simple Test plan of JMeter is that one user is hitting only one API/request. But in the real scenario, multiple users will always be there who will hit either a single API or multiple APIs. This can be understood by a simple example that a live application will be used by many users simultaneously and also multiple requests can be send by the same user on that application. Thus checking the application with this test scenario is very important. In JMeter, we can create multiple users and multiple requests and also a combination of both of them.</span></p>
<p><span style="font-weight: 400;">Let&#8217;s understand this with examples:</span></p>
<h2><b>Scenario 1 :</b> <strong>How to send 10 requests per second?</strong></h2>
<p>=&gt; Steps to Perform API Testing in JMeter</p>
<p><b>1. Adding a Thread Group</b></p>
<p>&nbsp;</p>
<ul>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Firstly, you have to start your JMeter and select the Test Plan.</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Next, Right click on the Test Plan and add a Thread Group.</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Rename the Thread Group and save it.</span></li>
</ul>
<p>&nbsp;</p>
<p><a href="https://optimumbrew.com/wp-content/uploads/2023/01/Img1.png"><img decoding="async" class="aligncenter wp-image-31611 size-large" src="https://optimumbrew.com/wp-content/uploads/2023/01/Img1-1024x509.png" alt="" width="800" height="398" srcset="https://optimumbrew.com/wp-content/uploads/2023/01/Img1-1024x509.png 1024w, https://optimumbrew.com/wp-content/uploads/2023/01/Img1-300x149.png 300w, https://optimumbrew.com/wp-content/uploads/2023/01/Img1-768x382.png 768w, https://optimumbrew.com/wp-content/uploads/2023/01/Img1-1536x764.png 1536w, https://optimumbrew.com/wp-content/uploads/2023/01/Img1.png 1905w" sizes="(max-width: 800px) 100vw, 800px" /></a></p>
<p>&nbsp;</p>
<ul>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">    Add Thread Group Property as per below.</span>
<ul>
<li style="list-style-type: none;">
<ul>
<li>Number of Threads (Users) : 10</li>
<li><span style="font-weight: 400;">Ramp-up period(seconds) : 10</span></li>
<li><span style="font-weight: 400;">Loop Count : 6</span></li>
<li><span style="font-weight: 400;">Specify Thread lifetime : </span></li>
</ul>
</li>
</ul>
</li>
</ul>
<p style="padding-left: 40px;"><span style="font-weight: 400;">                                Duration(Seconds) : 60</span><span style="font-weight: 400;"><br />
</span><span style="font-weight: 400;">                                Startup delay (Second): 1  </span></p>
<p>&nbsp;</p>
<p><a href="https://optimumbrew.com/wp-content/uploads/2023/01/Img-8.png"><img decoding="async" class="aligncenter wp-image-31525 size-large" src="https://optimumbrew.com/wp-content/uploads/2023/01/Img-8-1024x389.png" alt="" width="800" height="304" srcset="https://optimumbrew.com/wp-content/uploads/2023/01/Img-8-1024x389.png 1024w, https://optimumbrew.com/wp-content/uploads/2023/01/Img-8-300x114.png 300w, https://optimumbrew.com/wp-content/uploads/2023/01/Img-8-768x292.png 768w, https://optimumbrew.com/wp-content/uploads/2023/01/Img-8-1536x583.png 1536w, https://optimumbrew.com/wp-content/uploads/2023/01/Img-8.png 1917w" sizes="(max-width: 800px) 100vw, 800px" /></a></p>
<p>&nbsp;</p>
<p><b>2. Add an HTTP Request Sampler</b></p>
<p>&nbsp;</p>
<ul>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Next, you have to add HTTP Request and enter the Server name or IP of your API and set the Path and Parameters. Right-click on Thread Group, select Sampler and add HTTP Request.</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Rename the </span><span style="font-weight: 400;">HTTP Request.</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Here I have changed the sampler name as HTTP Request-1 and add the parameters, select the method type and give the path of the login page as below image.</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Add the parameter, I have given “email_id” &amp;  “password” as a parameter and the value is Functions(this value we will fetch from the CSV file)</span></li>
</ul>
<p>&nbsp;</p>
<p><a href="https://optimumbrew.com/wp-content/uploads/2023/01/Img2.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-31529 size-large" src="https://optimumbrew.com/wp-content/uploads/2023/01/Img2-1024x319.png" alt="" width="800" height="249" srcset="https://optimumbrew.com/wp-content/uploads/2023/01/Img2-1024x319.png 1024w, https://optimumbrew.com/wp-content/uploads/2023/01/Img2-300x93.png 300w, https://optimumbrew.com/wp-content/uploads/2023/01/Img2-768x239.png 768w, https://optimumbrew.com/wp-content/uploads/2023/01/Img2-1536x478.png 1536w, https://optimumbrew.com/wp-content/uploads/2023/01/Img2.png 1919w" sizes="(max-width: 800px) 100vw, 800px" /></a></p>
<p>&nbsp;</p>
<p><b>3. Adding CSV Data Set Config</b></p>
<p>&nbsp;</p>
<p style="padding-left: 40px;"><span style="font-weight: 400;">Create a text file and enter values into it. Now save the text file with proper name and “</span><b>.csv</b><span style="font-weight: 400;">” extension.</span></p>
<p>&nbsp;</p>
<p><a href="https://optimumbrew.com/wp-content/uploads/2023/01/Img5.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-31531 size-large" src="https://optimumbrew.com/wp-content/uploads/2023/01/Img5-1024x186.png" alt="" width="800" height="145" srcset="https://optimumbrew.com/wp-content/uploads/2023/01/Img5-1024x186.png 1024w, https://optimumbrew.com/wp-content/uploads/2023/01/Img5-300x55.png 300w, https://optimumbrew.com/wp-content/uploads/2023/01/Img5-768x140.png 768w, https://optimumbrew.com/wp-content/uploads/2023/01/Img5-1536x279.png 1536w, https://optimumbrew.com/wp-content/uploads/2023/01/Img5.png 1885w" sizes="(max-width: 800px) 100vw, 800px" /></a></p>
<p>&nbsp;</p>
<p style="padding-left: 40px;"><span style="font-weight: 400;">Then, in JMeter create a </span><b>CSV Data Set Config</b><span style="font-weight: 400;"> under the </span><i><span style="font-weight: 400;">Thread Group. </span></i><span style="font-weight: 400;">Click on “HTTP Request-1-&gt; Add-&gt;Config Element -&gt; CSV Data Set Config”.</span></p>
<p>&nbsp;</p>
<p><a href="https://optimumbrew.com/wp-content/uploads/2023/01/Img3.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-31535 size-large" src="https://optimumbrew.com/wp-content/uploads/2023/01/Img3-1024x328.png" alt="" width="800" height="256" srcset="https://optimumbrew.com/wp-content/uploads/2023/01/Img3-1024x328.png 1024w, https://optimumbrew.com/wp-content/uploads/2023/01/Img3-300x96.png 300w, https://optimumbrew.com/wp-content/uploads/2023/01/Img3-768x246.png 768w, https://optimumbrew.com/wp-content/uploads/2023/01/Img3-1536x492.png 1536w, https://optimumbrew.com/wp-content/uploads/2023/01/Img3.png 1913w" sizes="(max-width: 800px) 100vw, 800px" /></a></p>
<p>&nbsp;</p>
<p style="padding-left: 40px;"><span style="font-weight: 400;">Now, open CSV Data Set Config and enter exact Filename and Parameters.</span></p>
<p>&nbsp;</p>
<p><a href="https://optimumbrew.com/wp-content/uploads/2023/01/Img4.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-31536 size-large" src="https://optimumbrew.com/wp-content/uploads/2023/01/Img4-1024x259.png" alt="" width="800" height="202" srcset="https://optimumbrew.com/wp-content/uploads/2023/01/Img4-1024x259.png 1024w, https://optimumbrew.com/wp-content/uploads/2023/01/Img4-300x76.png 300w, https://optimumbrew.com/wp-content/uploads/2023/01/Img4-768x194.png 768w, https://optimumbrew.com/wp-content/uploads/2023/01/Img4-1536x389.png 1536w, https://optimumbrew.com/wp-content/uploads/2023/01/Img4.png 1917w" sizes="(max-width: 800px) 100vw, 800px" /></a></p>
<p>&nbsp;</p>
<p style="padding-left: 40px;"><span style="font-weight: 400;">CSV file path : If you have created CSV file in bin folder then you have to just give file name with extension otherwise you have to give absolute path : C:\Users\ob-7\Downloads\cred.csv</span></p>
<p style="padding-left: 40px;"><span style="font-weight: 400;">This below image is showing how I am saving my file in CSV format.</span></p>
<p>&nbsp;</p>
<p><a href="https://optimumbrew.com/wp-content/uploads/2023/01/Img-6.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-31539 size-full" src="https://optimumbrew.com/wp-content/uploads/2023/01/Img-6.png" alt="" width="878" height="466" srcset="https://optimumbrew.com/wp-content/uploads/2023/01/Img-6.png 878w, https://optimumbrew.com/wp-content/uploads/2023/01/Img-6-300x159.png 300w, https://optimumbrew.com/wp-content/uploads/2023/01/Img-6-768x408.png 768w" sizes="(max-width: 878px) 100vw, 878px" /></a></p>
<p><b>4. Add Constant Throughput Timer</b></p>
<p>&nbsp;</p>
<ul>
<li><span style="font-weight: 400;">JMeter Constant Throughput Timer is used as a goal-oriented element which helps to achieve the desired throughput (Total Number of Requests). This timer tries to maintain a constant throughput throughout the test and achieve the target. Of course, if the server is not able to handle such a load, the throughput will be lower.</span></li>
<li><span style="font-weight: 400;">If you want to execute a Goal-oriented scenario where the target is not to simulate the number of concurrent users, but the number of requests per second then Constant Throughput Timer is best for such type of scenario. A Constant Throughput Timer works precisely on the “minute” level, so make sure that your test lasts long enough (1 minute or more) and you use a reasonable ramp-up time to avoid spikes (unless you’re doing some form of stress testing). </span></li>
</ul>
<h5 style="padding-left: 40px;"><b>=&gt; How to add ‘Constant Throughput Timer’ in JMeter script?</b><a href="https://optimumbrew.com/wp-content/uploads/2023/01/Img-6.png"><br />
</a></h5>
<ol>
<li style="list-style-type: none;">
<ol>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Right-click on the Thread Group.</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Hover the mouse on ‘Add’</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Hover the mouse on ‘Timer’</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Click ‘Constant Throughput Timer’</span></li>
</ol>
</li>
</ol>
<h5 style="padding-left: 40px;"><b>=&gt; What are the input fields of ‘Constant Throughput Timer’?</b></h5>
<ul>
<li style="list-style-type: none;">
<ul>
<li style="font-weight: 400;" aria-level="1"><b>Name</b><span style="font-weight: 400;">:</span><span style="font-weight: 400;"> To provide the name of the timer</span></li>
<li style="font-weight: 400;" aria-level="1"><b>Comments</b><span style="font-weight: 400;">:</span><span style="font-weight: 400;"> To provide arbitrary comments (if any)</span></li>
<li style="font-weight: 400;" aria-level="1"><b>Target throughput (in samples per minute)</b><b>:</b><span style="font-weight: 400;"> Number of requests that need to be triggered in a minute. If you need to achieve a 10,000 requests target in an hour then the target throughput value will be around 167 (=10000/60). </span></li>
<li style="font-weight: 400;" aria-level="1"><b>Calculate Throughput based on:</b><span style="font-weight: 400;"> Choose an appropriate option as per the requirement. A description of the option is given below:</span></li>
<li style="font-weight: 400;" aria-level="1"><b>this thread only: </b><span style="font-weight: 400;">This option allows each thread to maintain its own target throughput irrespective of group. The overall throughput will be proportional to the number of active threads. Let’s take an example: if there are 5 users with 5 samplers and the target throughput value is set to 3 seconds then each thread will send 3 requests per minute separately. So, the triggered request after 1 minute will be 45 (=5 x 3). Each thread will send 3 requests per minute:</span></li>
</ul>
</li>
</ul>
<p>&nbsp;</p>
<p><a href="https://optimumbrew.com/wp-content/uploads/2023/01/Img9.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-31541 size-large" src="https://optimumbrew.com/wp-content/uploads/2023/01/Img9-1024x301.png" alt="" width="800" height="235" srcset="https://optimumbrew.com/wp-content/uploads/2023/01/Img9-1024x301.png 1024w, https://optimumbrew.com/wp-content/uploads/2023/01/Img9-300x88.png 300w, https://optimumbrew.com/wp-content/uploads/2023/01/Img9-768x226.png 768w, https://optimumbrew.com/wp-content/uploads/2023/01/Img9-1536x452.png 1536w, https://optimumbrew.com/wp-content/uploads/2023/01/Img9.png 1919w" sizes="(max-width: 800px) 100vw, 800px" /></a></p>
<p>&nbsp;</p>
<p><b>5. Add multiple requests </b></p>
<p>&nbsp;</p>
<ul>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Create 9 other requests with another API in the same thread group. </span></li>
</ul>
<p>&nbsp;</p>
<p><a href="https://optimumbrew.com/wp-content/uploads/2023/01/Img-10.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-31542 size-full" src="https://optimumbrew.com/wp-content/uploads/2023/01/Img-10.png" alt="" width="453" height="551" srcset="https://optimumbrew.com/wp-content/uploads/2023/01/Img-10.png 453w, https://optimumbrew.com/wp-content/uploads/2023/01/Img-10-247x300.png 247w" sizes="(max-width: 453px) 100vw, 453px" /></a></p>
<p>&nbsp;</p>
<p><b>6. Adding Listeners</b></p>
<p>&nbsp;</p>
<ul>
<li><span style="font-weight: 400;">Now all you need to do is run the script and verify the result for that. Click on “Thread group-&gt;Add &gt; Listener &gt; View Results Tree”.</span></li>
</ul>
<p>&nbsp;</p>
<ul>
<li><span style="font-weight: 400;">Add below all listeners in the Thread group.</span></li>
</ul>
<ol>
<li style="list-style-type: none;">
<ol>
<li style="font-weight: 400;" aria-level="1"><strong>Aggregate Report</strong></li>
<li style="font-weight: 400;" aria-level="1"><strong>View Results Tree</strong></li>
<li style="font-weight: 400;" aria-level="1"><strong>View Results in Table</strong></li>
<li style="font-weight: 400;" aria-level="1"><strong>jp@gc &#8211; Active Threads Over Time</strong></li>
<li style="font-weight: 400;" aria-level="1"><strong>jp@gc &#8211; Response Times vs Threads</strong></li>
<li style="font-weight: 400;" aria-level="1"><strong>jp@gc &#8211; Transactions per Second</strong></li>
<li style="font-weight: 400;" aria-level="1"><strong>jp@gc &#8211; Transaction Throughput vs Threads</strong></li>
<li style="font-weight: 400;" aria-level="1"><strong>jp@gc &#8211; Response Times Over Time</strong></li>
</ol>
</li>
</ol>
<p>&nbsp;</p>
<p><a href="https://optimumbrew.com/wp-content/uploads/2023/01/Capture6.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-31545 size-large" src="https://optimumbrew.com/wp-content/uploads/2023/01/Capture6-1024x304.png" alt="" width="800" height="238" srcset="https://optimumbrew.com/wp-content/uploads/2023/01/Capture6-1024x304.png 1024w, https://optimumbrew.com/wp-content/uploads/2023/01/Capture6-300x89.png 300w, https://optimumbrew.com/wp-content/uploads/2023/01/Capture6-768x228.png 768w, https://optimumbrew.com/wp-content/uploads/2023/01/Capture6-1536x457.png 1536w, https://optimumbrew.com/wp-content/uploads/2023/01/Capture6.png 1917w" sizes="(max-width: 800px) 100vw, 800px" /></a></p>
<p>&nbsp;</p>
<p style="padding-left: 40px;"><b> =&gt; Result</b></p>
<ul>
<li style="list-style-type: none;">
<ul>
<li style="list-style-type: none;">
<ul>
<li><span style="font-weight: 400;">Now you can see I am getting the positive response after running my thread group and also verifying that it takes passphrases sequentially.</span></li>
</ul>
</li>
</ul>
</li>
</ul>
<p>&nbsp;</p>
<ol>
<li style="list-style-type: none;">
<ol>
<li aria-level="1"><b>Aggregate Report</b></li>
</ol>
</li>
</ol>
<p>&nbsp;</p>
<p><a href="https://optimumbrew.com/wp-content/uploads/2023/01/R1.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-31546 size-large" src="https://optimumbrew.com/wp-content/uploads/2023/01/R1-1024x288.png" alt="" width="800" height="225" srcset="https://optimumbrew.com/wp-content/uploads/2023/01/R1-1024x288.png 1024w, https://optimumbrew.com/wp-content/uploads/2023/01/R1-300x85.png 300w, https://optimumbrew.com/wp-content/uploads/2023/01/R1-768x216.png 768w, https://optimumbrew.com/wp-content/uploads/2023/01/R1.png 1452w" sizes="(max-width: 800px) 100vw, 800px" /></a></p>
<p>&nbsp;</p>
<p style="padding-left: 80px;"><b>2. View Results Tree</b></p>
<p>&nbsp;</p>
<p><a href="https://optimumbrew.com/wp-content/uploads/2023/01/R2.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-31548 size-large" src="https://optimumbrew.com/wp-content/uploads/2023/01/R2-1024x679.png" alt="" width="800" height="530" srcset="https://optimumbrew.com/wp-content/uploads/2023/01/R2-1024x679.png 1024w, https://optimumbrew.com/wp-content/uploads/2023/01/R2-300x199.png 300w, https://optimumbrew.com/wp-content/uploads/2023/01/R2-768x509.png 768w, https://optimumbrew.com/wp-content/uploads/2023/01/R2.png 1449w" sizes="(max-width: 800px) 100vw, 800px" /></a></p>
<p>&nbsp;</p>
<p style="padding-left: 80px;"><b>3. View Results in Table</b></p>
<p>&nbsp;</p>
<p><a href="https://optimumbrew.com/wp-content/uploads/2023/01/R3.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-31549 size-large" src="https://optimumbrew.com/wp-content/uploads/2023/01/R3-1024x677.png" alt="" width="800" height="529" srcset="https://optimumbrew.com/wp-content/uploads/2023/01/R3-1024x677.png 1024w, https://optimumbrew.com/wp-content/uploads/2023/01/R3-300x198.png 300w, https://optimumbrew.com/wp-content/uploads/2023/01/R3-768x507.png 768w, https://optimumbrew.com/wp-content/uploads/2023/01/R3.png 1453w" sizes="(max-width: 800px) 100vw, 800px" /></a></p>
<p>&nbsp;</p>
<p style="padding-left: 80px;"><b>4. jp@gc &#8211; Active Threads Over Time</b></p>
<p>&nbsp;</p>
<p><a href="https://optimumbrew.com/wp-content/uploads/2023/01/R4.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-31550 size-large" src="https://optimumbrew.com/wp-content/uploads/2023/01/R4-1024x678.png" alt="" width="800" height="530" srcset="https://optimumbrew.com/wp-content/uploads/2023/01/R4-1024x678.png 1024w, https://optimumbrew.com/wp-content/uploads/2023/01/R4-300x199.png 300w, https://optimumbrew.com/wp-content/uploads/2023/01/R4-768x509.png 768w, https://optimumbrew.com/wp-content/uploads/2023/01/R4.png 1446w" sizes="(max-width: 800px) 100vw, 800px" /></a></p>
<p>&nbsp;</p>
<p style="padding-left: 80px;"><b>5. jp@gc &#8211; Response Times vs Threads</b></p>
<p>&nbsp;</p>
<p><a href="https://optimumbrew.com/wp-content/uploads/2023/01/R5.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-31551 size-large" src="https://optimumbrew.com/wp-content/uploads/2023/01/R5-1024x676.png" alt="" width="800" height="528" srcset="https://optimumbrew.com/wp-content/uploads/2023/01/R5-1024x676.png 1024w, https://optimumbrew.com/wp-content/uploads/2023/01/R5-300x198.png 300w, https://optimumbrew.com/wp-content/uploads/2023/01/R5-768x507.png 768w, https://optimumbrew.com/wp-content/uploads/2023/01/R5.png 1454w" sizes="(max-width: 800px) 100vw, 800px" /></a></p>
<p>&nbsp;</p>
<p style="padding-left: 80px;"><b>6. jp@gc &#8211; Transactions per Second</b></p>
<p>&nbsp;</p>
<p><a href="https://optimumbrew.com/wp-content/uploads/2023/01/R6.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-31552 size-large" src="https://optimumbrew.com/wp-content/uploads/2023/01/R6-1024x672.png" alt="" width="800" height="525" srcset="https://optimumbrew.com/wp-content/uploads/2023/01/R6-1024x672.png 1024w, https://optimumbrew.com/wp-content/uploads/2023/01/R6-300x197.png 300w, https://optimumbrew.com/wp-content/uploads/2023/01/R6-768x504.png 768w, https://optimumbrew.com/wp-content/uploads/2023/01/R6.png 1455w" sizes="(max-width: 800px) 100vw, 800px" /></a></p>
<p>&nbsp;</p>
<p style="padding-left: 80px;"><b>7. jp@gc &#8211; Transaction Throughput vs Threads</b></p>
<p>&nbsp;</p>
<p><a href="https://optimumbrew.com/wp-content/uploads/2023/01/R8.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-31553 size-large" src="https://optimumbrew.com/wp-content/uploads/2023/01/R8-1024x679.png" alt="" width="800" height="530" srcset="https://optimumbrew.com/wp-content/uploads/2023/01/R8-1024x679.png 1024w, https://optimumbrew.com/wp-content/uploads/2023/01/R8-300x199.png 300w, https://optimumbrew.com/wp-content/uploads/2023/01/R8-768x509.png 768w, https://optimumbrew.com/wp-content/uploads/2023/01/R8.png 1447w" sizes="(max-width: 800px) 100vw, 800px" /></a></p>
<p>&nbsp;</p>
<p style="padding-left: 80px;"><b>8. jp@gc &#8211; Response Times Over Time</b></p>
<p>&nbsp;</p>
<p><a href="https://optimumbrew.com/wp-content/uploads/2023/01/R9.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-31554 size-large" src="https://optimumbrew.com/wp-content/uploads/2023/01/R9-1024x675.png" alt="" width="800" height="527" srcset="https://optimumbrew.com/wp-content/uploads/2023/01/R9-1024x675.png 1024w, https://optimumbrew.com/wp-content/uploads/2023/01/R9-300x198.png 300w, https://optimumbrew.com/wp-content/uploads/2023/01/R9-768x506.png 768w, https://optimumbrew.com/wp-content/uploads/2023/01/R9.png 1454w" sizes="(max-width: 800px) 100vw, 800px" /></a></p>
<p>&nbsp;</p>
<h2><strong>Scenario 2 : How to send 50 requests per second?</strong></h2>
<p>=&gt; Steps to Perform API Testing in JMeter</p>
<p><b>1. Adding a Thread Group</b></p>
<p>&nbsp;</p>
<ul>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Firstly, you have to start your JMeter and select the Test Plan.</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Next, Right click on the Test Plan and add a Thread Group.</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Rename the Thread Group and save it.</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Add Thread Group Property as per below.</span>
<ul>
<li style="list-style-type: none;">
<ul>
<li><span style="font-weight: 400;">Number of Threads (Users) : 50</span></li>
<li><span style="font-weight: 400;">Ramp-up period(seconds) : 50</span></li>
<li><span style="font-weight: 400;">Loop Count : 6</span></li>
<li><span style="font-weight: 400;">Specify Thread lifetime : </span></li>
</ul>
</li>
</ul>
</li>
</ul>
<p style="padding-left: 40px;"><span style="font-weight: 400;">                                Duration(Seconds) : 60</span><span style="font-weight: 400;"><br />
</span><span style="font-weight: 400;">                                Satrtup delay (Seconds) : 1</span></p>
<p>&nbsp;</p>
<p><a href="https://optimumbrew.com/wp-content/uploads/2023/01/Img3-1.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-31561 size-large" src="https://optimumbrew.com/wp-content/uploads/2023/01/Img3-1-1024x512.png" alt="" width="800" height="400" srcset="https://optimumbrew.com/wp-content/uploads/2023/01/Img3-1-1024x512.png 1024w, https://optimumbrew.com/wp-content/uploads/2023/01/Img3-1-300x150.png 300w, https://optimumbrew.com/wp-content/uploads/2023/01/Img3-1-768x384.png 768w, https://optimumbrew.com/wp-content/uploads/2023/01/Img3-1-1536x768.png 1536w, https://optimumbrew.com/wp-content/uploads/2023/01/Img3-1.png 1919w" sizes="(max-width: 800px) 100vw, 800px" /></a></p>
<p>&nbsp;</p>
<p><b>2. Add Constant Throughput Timer</b></p>
<p>&nbsp;</p>
<p><a href="https://optimumbrew.com/wp-content/uploads/2023/01/Img3-3.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-31562 size-large" src="https://optimumbrew.com/wp-content/uploads/2023/01/Img3-3-1024x518.png" alt="" width="800" height="405" srcset="https://optimumbrew.com/wp-content/uploads/2023/01/Img3-3-1024x518.png 1024w, https://optimumbrew.com/wp-content/uploads/2023/01/Img3-3-300x152.png 300w, https://optimumbrew.com/wp-content/uploads/2023/01/Img3-3-768x388.png 768w, https://optimumbrew.com/wp-content/uploads/2023/01/Img3-3-1536x776.png 1536w, https://optimumbrew.com/wp-content/uploads/2023/01/Img3-3.png 1915w" sizes="(max-width: 800px) 100vw, 800px" /></a></p>
<p>&nbsp;</p>
<p><strong>3. Add 50 HTTP Request Sampler</strong></p>
<p>&nbsp;</p>
<p><span style="font-weight: 400;">Next, you can search for REST APIs that are freely available on the internet. Copy the Server Name, Path, and Parameters for that particular API.</span></p>
<p>&nbsp;</p>
<ul>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Now, select some sample APIs, as given below;</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Go to your browser </span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Search for “some sample rest API for testing”</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Open the first link “</span><a href="https://reqres.in/"><span style="font-weight: 400;">https://reqres.in/</span></a><span style="font-weight: 400;">”</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Let’s create and run GET Rest API requests in JMeter in the demo. </span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Here, in this link, you can GET, POST, PUT, and DELETE Rest APIs.</span></li>
</ul>
<p>&nbsp;</p>
<p><a href="https://optimumbrew.com/wp-content/uploads/2023/01/Img3-4-1.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-31563 size-full" src="https://optimumbrew.com/wp-content/uploads/2023/01/Img3-4-1.png" alt="" width="754" height="903" srcset="https://optimumbrew.com/wp-content/uploads/2023/01/Img3-4-1.png 754w, https://optimumbrew.com/wp-content/uploads/2023/01/Img3-4-1-250x300.png 250w" sizes="(max-width: 754px) 100vw, 754px" /></a></p>
<p>&nbsp;</p>
<ul>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">So, choose the first link: List Users. </span>
<ul>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Here, click on the request link</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Open the link that appears in the new tab</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Identify the URL for this API</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Copy this URL and open the JMeter window</span></li>
</ul>
</li>
</ul>
<ul>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Then in the JMeter window, do the following:</span>
<ul>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Right-click on the Thread Group</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Navigate to “add”</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">In the box that appears, select “samplers”</span></li>
</ul>
</li>
</ul>
<ul>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">You can see the types of requests that JMeter can work on</span>
<ul>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Choose the HTTP request. </span></li>
</ul>
</li>
</ul>
<ul>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Here, you will have to give the address to some home pages or websites</span>
<ul>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">In the Server Name or IP box, give paste the GET API request URL </span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">In the Protocol box, put &#8220;HTTPS&#8221;</span></li>
</ul>
</li>
</ul>
<ul>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">If the URL in the protocol was HTTP, this box would have been left empty. In the URL, put the URL link; remember not to put any slashes in the IP Address. Also, anything after the URL should be put in the path.</span>
<ul>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Now, put the path from the URL in the path box<br />
</span></li>
</ul>
</li>
</ul>
<ul>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Next, you must take part of the URL, beginning with the “question mark” and use it to assign the parameters. This is required since it is the GET API type.</span>
<ul>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Add the name in the parameters</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Give the name as page and value as 2</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Here I have changed the sampler name as HTTP Request-1 and created other samplers with different APIs as HTTP Request-2 up to HTTP Request-50 as per the below image.</span></li>
</ul>
</li>
</ul>
<p>&nbsp;</p>
<p><a href="https://optimumbrew.com/wp-content/uploads/2023/01/Img3-1-1.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-31564 size-large" src="https://optimumbrew.com/wp-content/uploads/2023/01/Img3-1-1-1024x512.png" alt="" width="800" height="400" srcset="https://optimumbrew.com/wp-content/uploads/2023/01/Img3-1-1-1024x512.png 1024w, https://optimumbrew.com/wp-content/uploads/2023/01/Img3-1-1-300x150.png 300w, https://optimumbrew.com/wp-content/uploads/2023/01/Img3-1-1-768x384.png 768w, https://optimumbrew.com/wp-content/uploads/2023/01/Img3-1-1-1536x768.png 1536w, https://optimumbrew.com/wp-content/uploads/2023/01/Img3-1-1.png 1919w" sizes="(max-width: 800px) 100vw, 800px" /></a></p>
<p>&nbsp;</p>
<p><b>4. Add Flow Control Action</b></p>
<p>&nbsp;</p>
<ul>
<li style="font-weight: 400;" aria-level="1"><a href="https://jmeter.apache.org/usermanual/component_reference.html#Flow_Control_Action"><b>Flow Control Action</b></a><span style="font-weight: 400;"> sampler is used along with the logical controllers to control the sampler execution.</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">To pause (sleep) current or all thread for specified amount of time (duration is set in milliseconds). You could use a JMeter variable or property to set a dynamic value</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">To stop the current or all threads after completing the execution of samples in progress</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">To stop the current or all threads immediately without waiting for samples in progress to complete. </span><b>Stop Now</b><span style="font-weight: 400;"> option should be selected.</span></li>
</ul>
<p>&nbsp;</p>
<ul>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Now, select Flow Control Action, as given below;</span>
<ul>
<li style="font-weight: 400;" aria-level="2"><span style="font-weight: 400;">Right-click on the Thread group</span></li>
<li style="font-weight: 400;" aria-level="2"><span style="font-weight: 400;">Navigate to “add”</span></li>
<li style="font-weight: 400;" aria-level="2"><span style="font-weight: 400;">In the box that appears, select “samplers”</span></li>
<li style="font-weight: 400;" aria-level="2"><span style="font-weight: 400;">You can see the types of requests that JMeter can work on</span></li>
<li style="font-weight: 400;" aria-level="2"><span style="font-weight: 400;">Choose the Flow Control Action.</span><b> (Note:  Must be put &#8220;Flow Control Action&#8221; at ends of the request)</b></li>
</ul>
</li>
</ul>
<p>&nbsp;</p>
<p><a href="https://optimumbrew.com/wp-content/uploads/2023/01/Img3-4-2.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-31565 size-large" src="https://optimumbrew.com/wp-content/uploads/2023/01/Img3-4-2-1024x336.png" alt="" width="800" height="263" srcset="https://optimumbrew.com/wp-content/uploads/2023/01/Img3-4-2-1024x336.png 1024w, https://optimumbrew.com/wp-content/uploads/2023/01/Img3-4-2-300x98.png 300w, https://optimumbrew.com/wp-content/uploads/2023/01/Img3-4-2-768x252.png 768w, https://optimumbrew.com/wp-content/uploads/2023/01/Img3-4-2-1536x504.png 1536w, https://optimumbrew.com/wp-content/uploads/2023/01/Img3-4-2.png 1895w" sizes="(max-width: 800px) 100vw, 800px" /></a></p>
<p>&nbsp;</p>
<ul>
<li style="list-style-type: none;">
<ul>
<li><span style="font-weight: 400;">Next, set the value as per the below image.</span></li>
</ul>
</li>
</ul>
<p>&nbsp;</p>
<p><a href="https://optimumbrew.com/wp-content/uploads/2023/01/Img3-4-3.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-31566 size-large" src="https://optimumbrew.com/wp-content/uploads/2023/01/Img3-4-3-1024x510.png" alt="" width="800" height="398" srcset="https://optimumbrew.com/wp-content/uploads/2023/01/Img3-4-3-1024x510.png 1024w, https://optimumbrew.com/wp-content/uploads/2023/01/Img3-4-3-300x149.png 300w, https://optimumbrew.com/wp-content/uploads/2023/01/Img3-4-3-768x383.png 768w, https://optimumbrew.com/wp-content/uploads/2023/01/Img3-4-3-1536x765.png 1536w, https://optimumbrew.com/wp-content/uploads/2023/01/Img3-4-3.png 1919w" sizes="(max-width: 800px) 100vw, 800px" /></a></p>
<p>&nbsp;</p>
<p><b>6. Adding Listeners</b></p>
<p>&nbsp;</p>
<ul>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Now all you need to do is run the script and verify the result for that. Click on “Thread group-&gt;Add &gt; Listener &gt; View Results Tree”.</span></li>
</ul>
<p>&nbsp;</p>
<ul>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Add below all listeners in the Thread group.</span></li>
</ul>
<ol>
<li style="list-style-type: none;">
<ol>
<li style="font-weight: 400;" aria-level="1"><strong>Aggregate Report</strong></li>
<li style="font-weight: 400;" aria-level="1"><strong>View Results Tree</strong></li>
<li style="font-weight: 400;" aria-level="1"><strong>View Results in Table</strong></li>
<li style="font-weight: 400;" aria-level="1"><strong>jp@gc &#8211; Active Threads Over Time</strong></li>
<li style="font-weight: 400;" aria-level="1"><strong>jp@gc &#8211; Response Times vs Threads</strong></li>
<li style="font-weight: 400;" aria-level="1"><strong>jp@gc &#8211; Transactions per Second</strong></li>
<li style="font-weight: 400;" aria-level="1"><strong>jp@gc &#8211; Transaction Throughput vs Threads</strong></li>
<li style="font-weight: 400;" aria-level="1"><strong>jp@gc &#8211; Response Times Over Time</strong></li>
</ol>
</li>
</ol>
<p>&nbsp;</p>
<p><a href="https://optimumbrew.com/wp-content/uploads/2023/01/Img3-6.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-31569 size-large" src="https://optimumbrew.com/wp-content/uploads/2023/01/Img3-6-1024x515.png" alt="" width="800" height="402" srcset="https://optimumbrew.com/wp-content/uploads/2023/01/Img3-6-1024x515.png 1024w, https://optimumbrew.com/wp-content/uploads/2023/01/Img3-6-300x151.png 300w, https://optimumbrew.com/wp-content/uploads/2023/01/Img3-6-768x386.png 768w, https://optimumbrew.com/wp-content/uploads/2023/01/Img3-6-1536x773.png 1536w, https://optimumbrew.com/wp-content/uploads/2023/01/Img3-6.png 1910w" sizes="(max-width: 800px) 100vw, 800px" /></a></p>
<p>&nbsp;</p>
<ol>
<li><b>Aggregate Report</b></li>
</ol>
<p>&nbsp;</p>
<p><a href="https://optimumbrew.com/wp-content/uploads/2023/01/D3R1.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-31570 size-large" src="https://optimumbrew.com/wp-content/uploads/2023/01/D3R1-1024x863.png" alt="" width="800" height="674" srcset="https://optimumbrew.com/wp-content/uploads/2023/01/D3R1-1024x863.png 1024w, https://optimumbrew.com/wp-content/uploads/2023/01/D3R1-300x253.png 300w, https://optimumbrew.com/wp-content/uploads/2023/01/D3R1-768x647.png 768w, https://optimumbrew.com/wp-content/uploads/2023/01/D3R1.png 1453w" sizes="(max-width: 800px) 100vw, 800px" /></a></p>
<p>&nbsp;</p>
<p style="padding-left: 40px;"><b>2. View Results Tree</b></p>
<p>&nbsp;</p>
<p><a href="https://optimumbrew.com/wp-content/uploads/2023/01/D3R2.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-31571 size-large" src="https://optimumbrew.com/wp-content/uploads/2023/01/D3R2-1024x676.png" alt="" width="800" height="528" srcset="https://optimumbrew.com/wp-content/uploads/2023/01/D3R2-1024x676.png 1024w, https://optimumbrew.com/wp-content/uploads/2023/01/D3R2-300x198.png 300w, https://optimumbrew.com/wp-content/uploads/2023/01/D3R2-768x507.png 768w, https://optimumbrew.com/wp-content/uploads/2023/01/D3R2.png 1455w" sizes="(max-width: 800px) 100vw, 800px" /></a></p>
<p>&nbsp;</p>
<p style="padding-left: 40px;"><b>3. View Results in Table</b></p>
<p>&nbsp;</p>
<p><a href="https://optimumbrew.com/wp-content/uploads/2023/01/D3R3.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-31572 size-large" src="https://optimumbrew.com/wp-content/uploads/2023/01/D3R3-891x1024.png" alt="" width="800" height="919" srcset="https://optimumbrew.com/wp-content/uploads/2023/01/D3R3-891x1024.png 891w, https://optimumbrew.com/wp-content/uploads/2023/01/D3R3-261x300.png 261w, https://optimumbrew.com/wp-content/uploads/2023/01/D3R3-768x883.png 768w, https://optimumbrew.com/wp-content/uploads/2023/01/D3R3-1336x1536.png 1336w, https://optimumbrew.com/wp-content/uploads/2023/01/D3R3.png 1451w" sizes="(max-width: 800px) 100vw, 800px" /></a></p>
<p>&nbsp;</p>
<p style="padding-left: 40px;"><b>4. jp@gc &#8211; Active Threads Over Time</b></p>
<p>&nbsp;</p>
<p><a href="https://optimumbrew.com/wp-content/uploads/2023/01/D3R4.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-31573 size-large" src="https://optimumbrew.com/wp-content/uploads/2023/01/D3R4-1024x674.png" alt="" width="800" height="527" srcset="https://optimumbrew.com/wp-content/uploads/2023/01/D3R4-1024x674.png 1024w, https://optimumbrew.com/wp-content/uploads/2023/01/D3R4-300x197.png 300w, https://optimumbrew.com/wp-content/uploads/2023/01/D3R4-768x505.png 768w, https://optimumbrew.com/wp-content/uploads/2023/01/D3R4.png 1454w" sizes="(max-width: 800px) 100vw, 800px" /></a></p>
<p>&nbsp;</p>
<p style="padding-left: 40px;"><b>5. jp@gc &#8211; Response Times vs Threads</b></p>
<p>&nbsp;</p>
<p><a href="https://optimumbrew.com/wp-content/uploads/2023/01/D3R5.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-31574 size-large" src="https://optimumbrew.com/wp-content/uploads/2023/01/D3R5-1024x673.png" alt="" width="800" height="526" srcset="https://optimumbrew.com/wp-content/uploads/2023/01/D3R5-1024x673.png 1024w, https://optimumbrew.com/wp-content/uploads/2023/01/D3R5-300x197.png 300w, https://optimumbrew.com/wp-content/uploads/2023/01/D3R5-768x504.png 768w, https://optimumbrew.com/wp-content/uploads/2023/01/D3R5.png 1454w" sizes="(max-width: 800px) 100vw, 800px" /></a></p>
<p>&nbsp;</p>
<p style="padding-left: 40px;"><b>6. jp@gc &#8211; Transactions per Second</b></p>
<p>&nbsp;</p>
<p><a href="https://optimumbrew.com/wp-content/uploads/2023/01/D3R6.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-31575 size-large" src="https://optimumbrew.com/wp-content/uploads/2023/01/D3R6-1024x675.png" alt="" width="800" height="527" srcset="https://optimumbrew.com/wp-content/uploads/2023/01/D3R6-1024x675.png 1024w, https://optimumbrew.com/wp-content/uploads/2023/01/D3R6-300x198.png 300w, https://optimumbrew.com/wp-content/uploads/2023/01/D3R6-768x506.png 768w, https://optimumbrew.com/wp-content/uploads/2023/01/D3R6.png 1454w" sizes="(max-width: 800px) 100vw, 800px" /></a></p>
<p>&nbsp;</p>
<p style="padding-left: 40px;"><b>7. jp@gc &#8211; Transaction Throughput vs Threads</b></p>
<p>&nbsp;</p>
<p><a href="https://optimumbrew.com/wp-content/uploads/2023/01/D3R7.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-31576 size-large" src="https://optimumbrew.com/wp-content/uploads/2023/01/D3R7-1024x674.png" alt="" width="800" height="527" srcset="https://optimumbrew.com/wp-content/uploads/2023/01/D3R7-1024x674.png 1024w, https://optimumbrew.com/wp-content/uploads/2023/01/D3R7-300x197.png 300w, https://optimumbrew.com/wp-content/uploads/2023/01/D3R7-768x505.png 768w, https://optimumbrew.com/wp-content/uploads/2023/01/D3R7.png 1457w" sizes="(max-width: 800px) 100vw, 800px" /></a></p>
<p>&nbsp;</p>
<p style="padding-left: 40px;"><b>8. jp@gc &#8211; Response Times Over Time</b></p>
<p>&nbsp;</p>
<p><a href="https://optimumbrew.com/wp-content/uploads/2023/01/D3R8.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-31577 size-large" src="https://optimumbrew.com/wp-content/uploads/2023/01/D3R8-1024x672.png" alt="" width="800" height="525" srcset="https://optimumbrew.com/wp-content/uploads/2023/01/D3R8-1024x672.png 1024w, https://optimumbrew.com/wp-content/uploads/2023/01/D3R8-300x197.png 300w, https://optimumbrew.com/wp-content/uploads/2023/01/D3R8-768x504.png 768w, https://optimumbrew.com/wp-content/uploads/2023/01/D3R8.png 1456w" sizes="(max-width: 800px) 100vw, 800px" /></a></p>
<p>&nbsp;</p>
<p><b>With these steps, you have successfully completed your API Testing. I hope you understood what is API and how you can test your API in <a href="https://optimumbrew.com/what-is-jmeter-introduction-uses/" target="_blank" rel="noopener">JMeter</a>.</b></p>
<p style="padding-left: 40px;">
<p>The post <a href="https://optimumbrew.com/api-load-testing-using-apache-jmeter/">API Load Testing Using Apache JMeter (Step by Step Guide)</a> appeared first on <a href="https://optimumbrew.com">OptimumBrew Technology</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>What is JMeter?  Introduction &#038; Uses</title>
		<link>https://optimumbrew.com/what-is-jmeter-introduction-uses/</link>
		
		<dc:creator><![CDATA[Jaimisha Patel]]></dc:creator>
		<pubDate>Tue, 03 Jan 2023 11:44:26 +0000</pubDate>
				<category><![CDATA[Quality Assurance]]></category>
		<guid isPermaLink="false">https://optimumbrew.com/?p=31482</guid>

					<description><![CDATA[<p>Introduction to Apache JMeter - A Quick guide. Apache Jmeter is a powerful tool for Load Testing and Performance Testing.</p>
<p>The post <a href="https://optimumbrew.com/what-is-jmeter-introduction-uses/">What is JMeter?  Introduction &#038; Uses</a> appeared first on <a href="https://optimumbrew.com">OptimumBrew Technology</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>There are many test automation tools available in the market today. WebLoad, LoadNinja, LoadRunner, and LoadUIPro to name a few. But it is JMeter that has become a trending name in the industry.</p>
<p>Why JMeter is gaining popularity among app testers and app development industry? Does JMeter truly deserve the popularity it is gaining?</p>
<p>To answer this, we have to start with the basics.</p>
<ol>
<li><strong>What is JMeter?</strong></li>
<li><b>Why do we use Jmeter?</b></li>
<li><b>How JMeter Works?</b></li>
<li><b>Advantages of JMeter</b></li>
<li><b>Disadvantages of JMeter</b></li>
<li><b>Demo 1 : How to Perform JMeter Load Testing</b></li>
</ol>
<p>&nbsp;</p>
<h2><b>What is JMeter?</b></h2>
<p><span style="font-weight: 400;">JMeter also known as &#8216;Apache JMeter&#8217; is an open-source, 100% java based application with a graphical interface. It is designed to analyze and measure the performance and load functional behavior of web applications and a variety of services.</span></p>
<p><span style="font-weight: 400;">JMeter is mainly used for testing Web applications or FTP applications but currently, it is applicable in functional testing, JDBC database connections, Web services, generic TCP connections, and OS native processes. You can perform various testing activities like Performance, Load, Stress, Regression, and Functional testing, in order to get accurate performance metrics against your web server.</span></p>
<p><span style="font-weight: 400;">JMeter was originally written and developed by </span><b>Stefano Mazzocchi</b><span style="font-weight: 400;"> of the Apache Software Foundation. It was primarily written to test the performance of Apache JServ(currently known as the Apache Tomcat project). Apache redesigned JMeter to enhance the GUI, to add more features and functional testing capabilities.</span></p>
<p><span style="font-weight: 400;">JMeter is not a browser and it doesn&#8217;t render HTML pages like any browser does, rather it works on a protocol level.</span></p>
<p><span style="font-weight: 400;">Following is a list of protocols supported by JMeter:</span></p>
<ul>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Web Services &#8211; SOAP / XML-RPC</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Web &#8211; HTTP, HTTPS sites &#8216;web 1.0&#8217; web 2.0 (ajax, flex and flex-ws-amf)</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Database via JDBC drivers</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Directory &#8211; LDAP</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Messaging-oriented service via JMS</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Service &#8211; POP3, IMAP, SMTP</span></li>
</ul>
<p>&nbsp;</p>
<h2><b>Why do we use Jmeter?</b></h2>
<p><span style="font-weight: 400;">In addition to load testing, testers can use Apache JMeter to perform performance, spike, and unit testing.</span></p>
<ul>
<li><span style="font-weight: 400;">Performance testing is the process of determining the speed, responsiveness, and stability of a computer, network, software program or device under a workload.</span></li>
</ul>
<p>&nbsp;</p>
<ul>
<li><span style="font-weight: 400;">Spike testing is a form of load testing which rapidly increases and decreases the load over short bursts of time before returning to an average load. Spike tests simulate a system where there is an unexpected increase and decrease in loads (for example an e-commerce store on Black Friday).</span></li>
</ul>
<p>&nbsp;</p>
<ul>
<li><span style="font-weight: 400;">Unit tests will analyze the smallest testable parts of an application. Jmeter can be used to unit test processes and protocols such as </span><span style="font-weight: 400;">JDBC</span><span style="font-weight: 400;">database connections, </span><span style="font-weight: 400;">LDAP</span><span style="font-weight: 400;">, </span><span style="font-weight: 400;">JMS</span><span style="font-weight: 400;"> and HTTP.</span></li>
</ul>
<p>&nbsp;</p>
<p><span style="font-weight: 400;">While JMeter has gained immense popularity in Load testing, it is also a great tool to test other application areas like APIs, FTP servers, database performance, etc. It helps to measure and analyze the performance of web applications and other variety of services.</span></p>
<p>&nbsp;</p>
<p><span style="font-weight: 400;">Let’s say that your organization recently launched a commercial web application that will be accessed across the globe. Your organization is expecting that it will have hundreds and thousands of concurrent users accessing the website. So, the web servers must be able to handle the user action efficiently.</span></p>
<p>&nbsp;</p>
<p><a href="https://optimumbrew.com/wp-content/uploads/2023/01/JMeterImage1-2.jpg"><img loading="lazy" decoding="async" class="aligncenter wp-image-31591 size-full" src="https://optimumbrew.com/wp-content/uploads/2023/01/JMeterImage1-2.jpg" alt="" width="700" height="434" srcset="https://optimumbrew.com/wp-content/uploads/2023/01/JMeterImage1-2.jpg 700w, https://optimumbrew.com/wp-content/uploads/2023/01/JMeterImage1-2-300x186.jpg 300w" sizes="(max-width: 700px) 100vw, 700px" /></a></p>
<p>&nbsp;</p>
<p><span style="font-weight: 400;">Your organization is keen to know how the web servers will perform in such situations.</span></p>
<p><span style="font-weight: 400;">As a tester, you need to provide results in such a scenario. It is not feasible for any organization to arrange that many testers to manually check the performance.</span></p>
<p><span style="font-weight: 400;">The next question which arises here is: </span><b>How would you test your website in such a situation? <a href="https://optimumbrew.com/api-load-testing-using-apache-jmeter/" target="_blank" rel="noopener">How can you apply such a huge load on web servers and get results?</a></b></p>
<p><span style="font-weight: 400;">In such situations, a tool that can simulate real-time user’s behavior is required and thankfully, JMeter is such a tool that can help you do such testing. JMeter has proved to be the best tool for load testing so far.</span></p>
<p>&nbsp;</p>
<h2><b>How JMeter Works?</b></h2>
<p><span style="font-weight: 400;">JMeter simulates a number of users sending requests to the Application Under Test.  As soon as JMeter simulates requests, the server responds and Jmeter starts collecting data. Jmeter saves all the responses and based on the server response it returns statistics. These statistics show the performance of the AUT in the form of various formats as per the requirements.</span></p>
<p><span style="font-weight: 400;">Thus, with the help of JMeter, we can simulate load on the server, networks, or objects which are coming from different machines to implement real-world scenarios.</span></p>
<p><b>=&gt; JMeter Workflow</b></p>
<p>&nbsp;</p>
<p><a href="https://optimumbrew.com/wp-content/uploads/2023/01/Jmeter-Work-flow.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-31486 size-large" src="https://optimumbrew.com/wp-content/uploads/2023/01/Jmeter-Work-flow-e1672741892300-1024x627.png" alt="" width="800" height="490" srcset="https://optimumbrew.com/wp-content/uploads/2023/01/Jmeter-Work-flow-e1672741892300-1024x627.png 1024w, https://optimumbrew.com/wp-content/uploads/2023/01/Jmeter-Work-flow-e1672741892300-300x184.png 300w, https://optimumbrew.com/wp-content/uploads/2023/01/Jmeter-Work-flow-e1672741892300-768x470.png 768w, https://optimumbrew.com/wp-content/uploads/2023/01/Jmeter-Work-flow-e1672741892300.png 1031w" sizes="(max-width: 800px) 100vw, 800px" /></a></p>
<ul>
<li><span style="font-weight: 400;">The group of users will send the request to the target server.</span></li>
<li><span style="font-weight: 400;">The server will respond back to the user&#8217;s request.</span></li>
<li><span style="font-weight: 400;">Next, it will save all the responses for the given request.</span></li>
<li><span style="font-weight: 400;">Now, it returns the statistics information of the targeted server to show the performance of an application.</span></li>
<li><span style="font-weight: 400;">In the last step, it will display the performance report of an application.</span></li>
</ul>
<p>&nbsp;</p>
<h2><b>Advantages of JMeter</b></h2>
<ul>
<li style="font-weight: 400;" aria-level="1"><b>Free of cost</b><span style="font-weight: 400;"> – It is an open-source product with zero licensing cost.</span></li>
<li style="font-weight: 400;" aria-level="1"><b>Can load test different kinds of applications</b><span style="font-weight: 400;"> – It can be used for performance testing of all kinds of applications ranging from – Web applications, web services, databases, LDAP, shell scripts, etc.</span></li>
<li style="font-weight: 400;" aria-level="1"><b>Platform independent</b><span style="font-weight: 400;"> – Since, it is 100% Java-based, so it is platform-independent and can run on multiple platforms such as Windows, Linux, etc. </span></li>
<li style="font-weight: 400;" aria-level="1"><b>Record and Playback feature</b><span style="font-weight: 400;"> – It provides record and playback options along with drag and drop features which makes it easier and faster to create scripts.</span></li>
<li style="font-weight: 400;" aria-level="1"><b>Customizable </b><span style="font-weight: 400;">– Since JMeter is open source, developers can customize its source code as per their specific requirements.</span></li>
<li style="font-weight: 400;" aria-level="1"><b>Supports distributed load testing</b><span style="font-weight: 400;"> – It supports distributed load testing features in which we can create a master-slave set up for carrying out load tests on multiple machines.</span></li>
<li style="font-weight: 400;" aria-level="1"><b>Good community support</b><span style="font-weight: 400;"> – It has many online tutorials and helps community support. It also has freely available plugins that help in different aspects of script creation and analysis.</span></li>
<li style="font-weight: 400;" aria-level="1"><b>GUI: </b><span style="font-weight: 400;">It is very easy to use as it has a friendly graphic user interface and you can become familiar with it in a short period of time.</span></li>
<li style="font-weight: 400;" aria-level="1"><b>Multithreading Framework: </b><span style="font-weight: 400;">It gives permission for the synchronous and parallel sampling of various functions by using different thread groups.</span></li>
<li style="font-weight: 400;" aria-level="1"><b>Visualize Test Result:</b><span style="font-weight: 400;"> By using the JMeter tool, you can view the test results in various formats like chart, table, tree and log file.</span></li>
<li style="font-weight: 400;" aria-level="1"><b>Easy Installation:</b><span style="font-weight: 400;"> There is no need for installation. The installation can be done very easily by running the *.bat file.</span></li>
<li style="font-weight: 400;" aria-level="1"><b>Highly Extensible:</b><span style="font-weight: 400;"> JMeter allows to extend your own tests by using visualization plugins.</span></li>
<li style="font-weight: 400;" aria-level="1"><b>Supports Multiple Testing:</b><span style="font-weight: 400;"> JMeter supports numerous testing processes like Load Testing, Distributed Testing, and Functional Testing.</span></li>
<li style="font-weight: 400;" aria-level="1"><b>Support Multi-protocol:</b><span style="font-weight: 400;"> JMeter supports web application testing and also estimates the performance of database server. It gives multi-protocols such as HTTP, JDBC, LDAP, SOAP, JMS, and FTP.</span></li>
<li style="font-weight: 400;" aria-level="1"><b>Script Test:</b><span style="font-weight: 400;"> You can incorporate the Bean Shell and Selenium with automated testing.</span></li>
</ul>
<p>&nbsp;</p>
<h2><b>Disadvantages of JMeter</b></h2>
<ul>
<li style="font-weight: 400;" aria-level="1"><b>Memory Utilization:</b><span style="font-weight: 400;"> JMeter reproduces heavy load and generates the information of the test. This leads to the utilization of plenty of memory and produces a large amount of memory from the heavy load.</span></li>
<li style="font-weight: 400;" aria-level="1"><b>Web Application: </b><span style="font-weight: 400;">You can test web applications by using JMeter, but cannot be used for the testing desktop application.</span></li>
<li style="font-weight: 400;" aria-level="1"><b>Limited support</b><span style="font-weight: 400;">: JMeter doesn’t support ajax, javascript, etc. We can’t render it like a browser so we can’t run the Javascript in the web application. It has limited support for the flash and other scripting languages, which will affect the accuracy of the application.</span></li>
<li style="font-weight: 400;" aria-level="1"><b>Lack of Knowledge in Scripting: </b><span style="font-weight: 400;">There is a lack of knowledge to understand scripting in JMeter. It needs some experience for understanding JMeter elements, regular expressions, session handling, etc.</span></li>
<li style="font-weight: 400;" aria-level="1"><b>No visualization features</b><span style="font-weight: 400;">: JMeter doesn’t support network visualization features compared to other performance testing tools like Loadrunner.</span></li>
<li style="font-weight: 400;" aria-level="1"><b>Requires high configuration capacity</b><span style="font-weight: 400;">: Single configuration machine is not sufficient to carry out load tests with a large number of users. In order to meet this requirement, we need high-configuration cloud machines or we have to do distributed testing.</span></li>
<li style="font-weight: 400;" aria-level="1"><b>Limited real-time testing options</b><span style="font-weight: 400;">: JMeter has very limited real-time test monitoring capabilities compared to other tools.</span></li>
<li style="font-weight: 400;" aria-level="1"><b>No vendor support</b><span style="font-weight: 400;">: JMeter is an open-source tool so it lacks vendor support for the application development compared to other commercial applications and their support. Only support possibilities are referring to the open source forums and communities.</span></li>
<li style="font-weight: 400;" aria-level="1"><b>Large-scale testing</b><span style="font-weight: 400;">: In case we want to perform large-scale testing, we have to create test servers and a centralized orchestrator should be built. All such things will become complicated when we use JMeter. It requires dedicated hardware and network resources, so it is unrealistic to perform large-scale testing.</span></li>
<li style="font-weight: 400;" aria-level="1"><b>Lack of cloud adoption</b><span style="font-weight: 400;">: Similar to other on-prem tools, JMeter doesn’t offer an option to host the application on the cloud or management opportunities. If we want our application to scale significantly or have distributed geographies then cloud adoption is a must.</span></li>
<li style="font-weight: 400;" aria-level="1"><b>Excess memory consumption</b><span style="font-weight: 400;">: JMeter can simulate heavy workloads and visualize the test report. It causes major memory consumption and results in the applications running out of memory.</span></li>
</ul>
<p>&nbsp;</p>
<h2><b>Demo 1 : How to Perform JMeter Load Testing?</b></h2>
<p><span style="font-weight: 400;">Before we begin with JMeter load testing, make sure you have JMeter installed in your system.</span></p>
<p><a href="https://jmeter.apache.org/download_jmeter.cgi"><span style="font-weight: 400;">https://jmeter.apache.org/download_jmeter.cgi</span></a></p>
<p><span style="font-weight: 400;">In this, we are going to create a basic test plan in a few simple steps. </span></p>
<p style="padding-left: 40px;"><b>1. Setting up Apache JMeter</b></p>
<ul>
<li style="list-style-type: none;">
<ul>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">The first step is to go to the Apache JMeter folder</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Go inside the bin folder </span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Select the JMeter .bat file</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Double-click on this file</span></li>
</ul>
</li>
</ul>
<p>&nbsp;</p>
<p><a href="https://optimumbrew.com/wp-content/uploads/2023/01/JmeterStartImage.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-31593 size-large" src="https://optimumbrew.com/wp-content/uploads/2023/01/JmeterStartImage-1024x540.png" alt="" width="800" height="422" srcset="https://optimumbrew.com/wp-content/uploads/2023/01/JmeterStartImage-1024x540.png 1024w, https://optimumbrew.com/wp-content/uploads/2023/01/JmeterStartImage-300x158.png 300w, https://optimumbrew.com/wp-content/uploads/2023/01/JmeterStartImage-768x405.png 768w, https://optimumbrew.com/wp-content/uploads/2023/01/JmeterStartImage.png 1434w" sizes="(max-width: 800px) 100vw, 800px" /></a></p>
<p>&nbsp;</p>
<p style="padding-left: 40px;"><span style="font-weight: 400;">This might take a while, and then the JMeter window will open on the screen.</span></p>
<p style="padding-left: 40px;"><b>2. Adding a Thread Group</b></p>
<ul>
<li style="list-style-type: none;">
<ul>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Open the JMeter window.</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">The window is divided into two parts. The left side has all the added elements, while the right side has all the configurations of that element.</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Rename the test plan and save it.</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Let&#8217;s rename it as the FirstJMeter.</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Right-click on the test plan.</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Go to add -&gt; Threads (Users) -&gt; Thread Group</span></li>
</ul>
</li>
</ul>
<p>&nbsp;</p>
<p><a href="https://optimumbrew.com/wp-content/uploads/2023/01/Adding_Threads_JMeter-1.jpg"><img loading="lazy" decoding="async" class="aligncenter wp-image-31595 size-full" src="https://optimumbrew.com/wp-content/uploads/2023/01/Adding_Threads_JMeter-1.jpg" alt="" width="670" height="329" srcset="https://optimumbrew.com/wp-content/uploads/2023/01/Adding_Threads_JMeter-1.jpg 670w, https://optimumbrew.com/wp-content/uploads/2023/01/Adding_Threads_JMeter-1-300x147.jpg 300w" sizes="(max-width: 670px) 100vw, 670px" /></a></p>
<p>&nbsp;</p>
<p style="padding-left: 40px;"><span style="font-weight: 400;">Now once you click on Thread Group, there are three things on the screen that are important concerning the load test:</span></p>
<ul>
<li style="list-style-type: none;">
<ul>
<li><b>Number of Threads</b></li>
<li><b>Ramp-Up Period</b></li>
<li><b>Loop Count</b></li>
</ul>
</li>
</ul>
<p>&nbsp;</p>
<p><a href="https://optimumbrew.com/wp-content/uploads/2023/01/DefaultThreadGroup.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-31596 size-large" src="https://optimumbrew.com/wp-content/uploads/2023/01/DefaultThreadGroup-1024x483.png" alt="" width="800" height="377" srcset="https://optimumbrew.com/wp-content/uploads/2023/01/DefaultThreadGroup-1024x483.png 1024w, https://optimumbrew.com/wp-content/uploads/2023/01/DefaultThreadGroup-300x142.png 300w, https://optimumbrew.com/wp-content/uploads/2023/01/DefaultThreadGroup-768x362.png 768w, https://optimumbrew.com/wp-content/uploads/2023/01/DefaultThreadGroup.png 1136w" sizes="(max-width: 800px) 100vw, 800px" /></a></p>
<p>&nbsp;</p>
<p style="padding-left: 40px;"><b>Let’s explore the Thread Group options:</b></p>
<p style="padding-left: 40px;"><b>Action to be taken after a Sampler error:</b><span style="font-weight: 400;"> These are the actions that can be taken by the user if an error occurs in any sampler. By default, this is set to Continue. let us see what all are the options that actually can be used</span></p>
<ul>
<li style="list-style-type: none;">
<ul>
<li style="font-weight: 400;" aria-level="1"><b>Continue – </b><span style="font-weight: 400;">To continue with the next element</span></li>
<li style="font-weight: 400;" aria-level="1"><b>Start next Thread loop – </b><span style="font-weight: 400;">which means stop this Thread group and continue with other thread groups of test plan</span></li>
<li style="font-weight: 400;" aria-level="1"><b>Stop thread – </b><span style="font-weight: 400;">To stop the current Thread</span></li>
<li style="font-weight: 400;" aria-level="1"><b>Stop Test – </b><span style="font-weight: 400;">If any error comes stop the test completely</span></li>
<li style="font-weight: 400;" aria-level="1"><b>Stop Test Now – </b><span style="font-weight: 400;">This is almost the same as above which means to stop the test immediately.</span></li>
</ul>
</li>
</ul>
<p>&nbsp;</p>
<p style="padding-left: 40px;"><b>Thread Properties</b></p>
<ul>
<li style="list-style-type: none;">
<ul>
<li style="font-weight: 400;" aria-level="1"><b>Number of Threads</b><span style="font-weight: 400;"> – This is the count of virtual users that we are expecting to connect to the server. For example, if we give 100, Jmeter will simulate 100 virtual users that connect to the server and perform the same steps given. By default, it is set to 1 thread.</span></li>
<li style="font-weight: 400;" aria-level="1"><b>Ramp-Up Period</b><span style="font-weight: 400;"> – This can be defined as the time in which JMeter can bring the number of threads mentioned above into the running state. This is given in seconds. For Example: If you set “Number of Threads” to “20”, and “Ramp-Up Period to 40 seconds&#8221;, then JMeter will wait till 40 seconds to make all threads up and running. That means each thread will start 2 seconds late after the previous thread was started.</span></li>
</ul>
</li>
</ul>
<p style="padding-left: 40px;"><span style="font-weight: 400;">           </span><b>   Formula: </b><span style="font-weight: 400;">Ramp-Up Period / Number of Threads i.e. 40 / 20 = 2 (seconds)</span></p>
<ul>
<li style="list-style-type: none;">
<ul>
<li style="font-weight: 400;" aria-level="1"><b>Loop Count</b><span style="font-weight: 400;"> – This indicates how many times each thread was supposed to perform the task. If the number of threads is 100 and the loop count is 2 then the same task will be performed 200 times. If this value is set to infinity the task will continue to run until the test was stopped. By default is value is one iteration.</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">below these properties, there are a few checkboxes among which </span><b>“same user on each iteration”</b><span style="font-weight: 400;"> is checked by default.</span></li>
<li style="font-weight: 400;" aria-level="1"><b>Delay Thread Creation Until Needed</b><span style="font-weight: 400;"> – This is to be checked when the ramp-up delay and startup delay are to be performed even before the thread group is created. By default, this is not checked.</span></li>
<li style="font-weight: 400;" aria-level="1"><b>Specify Thread lifetime</b><span style="font-weight: 400;"> – Here we can give the duration and startup delay to the threads.</span></li>
</ul>
</li>
</ul>
<p>&nbsp;</p>
<p style="padding-left: 40px;"><b>Note: In all properties of the thread group the time is taken in seconds, not in minutes or milliseconds.</b></p>
<p style="padding-left: 40px;"><b>For example,</b><span style="font-weight: 400;"> if you set the number of threads as 100; JMeter will create and simulate 100 user requests to the server under test.</span></p>
<p>&nbsp;</p>
<p><a href="https://optimumbrew.com/wp-content/uploads/2023/01/ThreadGroup.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-31597 size-full" src="https://optimumbrew.com/wp-content/uploads/2023/01/ThreadGroup.png" alt="" width="747" height="352" srcset="https://optimumbrew.com/wp-content/uploads/2023/01/ThreadGroup.png 747w, https://optimumbrew.com/wp-content/uploads/2023/01/ThreadGroup-300x141.png 300w" sizes="(max-width: 747px) 100vw, 747px" /></a></p>
<p>&nbsp;</p>
<p style="padding-left: 40px;"><b>Let’s add value in thread property.</b></p>
<ul>
<li style="list-style-type: none;">
<ul>
<li><b>Number of Threads(Users) : 100</b></li>
<li><b>Ramp-Up Period(Seconds): 60</b></li>
<li><b>Loop Count: 1</b></li>
<li><b>Specify</b> <b>Thread lifetime </b></li>
<li><b>Duration(Seconds): 60   </b></li>
<li><b>Startup delay (Seconds): 0</b></li>
</ul>
</li>
</ul>
<p>&nbsp;</p>
<p><a href="https://optimumbrew.com/wp-content/uploads/2023/01/ThreadGroupExample.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-31598 size-large" src="https://optimumbrew.com/wp-content/uploads/2023/01/ThreadGroupExample-1024x463.png" alt="" width="800" height="362" srcset="https://optimumbrew.com/wp-content/uploads/2023/01/ThreadGroupExample-1024x463.png 1024w, https://optimumbrew.com/wp-content/uploads/2023/01/ThreadGroupExample-300x136.png 300w, https://optimumbrew.com/wp-content/uploads/2023/01/ThreadGroupExample-768x347.png 768w, https://optimumbrew.com/wp-content/uploads/2023/01/ThreadGroupExample.png 1138w" sizes="(max-width: 800px) 100vw, 800px" /></a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p style="padding-left: 40px;"><b>3. Add an HTTP Request Sampler</b></p>
<ul>
<li style="list-style-type: none;">
<ul>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Right-click on the Thread Group.</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Go to Add -&gt; Sampler -&gt; HTTP Request</span></li>
</ul>
</li>
</ul>
<p>&nbsp;</p>
<p><a href="https://optimumbrew.com/wp-content/uploads/2023/01/Adding_HttpRequest.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-31599 size-large" src="https://optimumbrew.com/wp-content/uploads/2023/01/Adding_HttpRequest-1024x419.png" alt="" width="800" height="327" srcset="https://optimumbrew.com/wp-content/uploads/2023/01/Adding_HttpRequest-1024x419.png 1024w, https://optimumbrew.com/wp-content/uploads/2023/01/Adding_HttpRequest-300x123.png 300w, https://optimumbrew.com/wp-content/uploads/2023/01/Adding_HttpRequest-768x314.png 768w, https://optimumbrew.com/wp-content/uploads/2023/01/Adding_HttpRequest-1536x628.png 1536w, https://optimumbrew.com/wp-content/uploads/2023/01/Adding_HttpRequest.png 1908w" sizes="(max-width: 800px) 100vw, 800px" /></a></p>
<p>&nbsp;</p>
<p style="padding-left: 80px;"><span style="font-weight: 400;">Under the HTTP Request section, HTTP Request gives the path that each thread or user will request. We will set it to be &#8220;/api/login&#8221; so that each thread can access the login page of our server.</span></p>
<p>&nbsp;</p>
<p><a href="https://optimumbrew.com/wp-content/uploads/2023/01/ImgD14.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-31600 size-large" src="https://optimumbrew.com/wp-content/uploads/2023/01/ImgD14-1024x322.png" alt="" width="800" height="252" srcset="https://optimumbrew.com/wp-content/uploads/2023/01/ImgD14-1024x322.png 1024w, https://optimumbrew.com/wp-content/uploads/2023/01/ImgD14-300x94.png 300w, https://optimumbrew.com/wp-content/uploads/2023/01/ImgD14-768x242.png 768w, https://optimumbrew.com/wp-content/uploads/2023/01/ImgD14.png 1513w" sizes="(max-width: 800px) 100vw, 800px" /></a></p>
<p>&nbsp;</p>
<p style="padding-left: 40px;"><span style="font-weight: 400;">   Any number of HTTP requests can be added. Further, all you need to do is repeat the above step.</span></p>
<p style="padding-left: 40px;"><b>4. Adding Listeners</b></p>
<p style="padding-left: 80px;"><span style="font-weight: 400;">Listeners are something that is used to provide the outputs of a load test. There are different types of listeners present in JMeter, and a good deal may be added using plugins.</span></p>
<p style="padding-left: 80px;"><span style="font-weight: 400;">The listener we will use here is the Table, as it is comparatively easy to read.</span></p>
<ul>
<li style="list-style-type: none;">
<ul>
<li style="list-style-type: none;">
<ul>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Right-click on the Thread Group.</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Go to Add -&gt; Listener -&gt; View Results in Table</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Go to Add -&gt; Listener -&gt; View Results Tree</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Go to Add -&gt; Listener -&gt; Aggregate Report</span></li>
</ul>
</li>
</ul>
</li>
</ul>
<p style="padding-left: 80px;"><span style="font-weight: 400;">Now, it&#8217;s time to run the test.</span></p>
<p style="padding-left: 40px;"><b>5. Run the Basic Test Plan</b></p>
<ul>
<li style="list-style-type: none;">
<ul>
<li style="list-style-type: none;">
<ul>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Save the test plan.</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Click on View Results in Table.</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Click on the Run button (green start button).</span></li>
</ul>
</li>
</ul>
</li>
</ul>
<p>&nbsp;</p>
<p style="padding-left: 40px;"><a href="https://optimumbrew.com/wp-content/uploads/2023/01/Image3.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-31496 size-large" src="https://optimumbrew.com/wp-content/uploads/2023/01/Image3-e1672744120617-1024x351.png" alt="" width="800" height="274" srcset="https://optimumbrew.com/wp-content/uploads/2023/01/Image3-e1672744120617-1024x351.png 1024w, https://optimumbrew.com/wp-content/uploads/2023/01/Image3-e1672744120617-300x103.png 300w, https://optimumbrew.com/wp-content/uploads/2023/01/Image3-e1672744120617-768x264.png 768w, https://optimumbrew.com/wp-content/uploads/2023/01/Image3-e1672744120617.png 1512w" sizes="(max-width: 800px) 100vw, 800px" /></a></p>
<p>&nbsp;</p>
<ul>
<li style="list-style-type: none;">
<ul>
<li style="list-style-type: none;">
<ul>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Now when you visit the &#8220;View Results in Table,&#8221; you can see the test running. Same with View Results Tree &amp; Aggregate Report results. Then you can also see the time the test has been executing. </span></li>
<li style="font-weight: 400;" aria-level="1">You will see the test results in the Table, View Results Tree &amp;  Aggregate Report as shown below:</li>
</ul>
</li>
</ul>
</li>
</ul>
<p>&nbsp;</p>
<p style="padding-left: 80px;"><b>     Result 1 : View Results in Table</b></p>
<p>&nbsp;</p>
<p style="padding-left: 40px;"><a href="https://optimumbrew.com/wp-content/uploads/2023/01/Agreegate_Report.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-31601 size-large" src="https://optimumbrew.com/wp-content/uploads/2023/01/Agreegate_Report-1024x521.png" alt="" width="800" height="407" srcset="https://optimumbrew.com/wp-content/uploads/2023/01/Agreegate_Report-1024x521.png 1024w, https://optimumbrew.com/wp-content/uploads/2023/01/Agreegate_Report-300x153.png 300w, https://optimumbrew.com/wp-content/uploads/2023/01/Agreegate_Report-768x391.png 768w, https://optimumbrew.com/wp-content/uploads/2023/01/Agreegate_Report.png 1512w" sizes="(max-width: 800px) 100vw, 800px" /></a></p>
<p>&nbsp;</p>
<ul>
<li style="list-style-type: none;">
<ul>
<li style="list-style-type: none;">
<ul>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">The result shows the status of all the requests as “Success”. Then there are two important columns, Sample Time (ms) and Latency.</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Latency refers to the number of milliseconds between the time JMeter sent the request and when an initial response was received.</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Sample time refers to the milliseconds taken by the server to complete the request.</span></li>
</ul>
</li>
</ul>
</li>
</ul>
<p>&nbsp;</p>
<p style="padding-left: 80px;"><b>   Result 2 : View Results Tree</b></p>
<p>&nbsp;</p>
<p style="padding-left: 40px;"><a href="https://optimumbrew.com/wp-content/uploads/2023/01/View_Results_Tree.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-31602 size-large" src="https://optimumbrew.com/wp-content/uploads/2023/01/View_Results_Tree-1024x513.png" alt="" width="800" height="401" srcset="https://optimumbrew.com/wp-content/uploads/2023/01/View_Results_Tree-1024x513.png 1024w, https://optimumbrew.com/wp-content/uploads/2023/01/View_Results_Tree-300x150.png 300w, https://optimumbrew.com/wp-content/uploads/2023/01/View_Results_Tree-768x385.png 768w, https://optimumbrew.com/wp-content/uploads/2023/01/View_Results_Tree.png 1519w" sizes="(max-width: 800px) 100vw, 800px" /></a></p>
<p>&nbsp;</p>
<p style="padding-left: 80px;"><b>  Result 3 : Aggregate Report</b></p>
<p>&nbsp;</p>
<p style="padding-left: 40px;"><a href="https://optimumbrew.com/wp-content/uploads/2023/01/Image2.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-31603 size-large" src="https://optimumbrew.com/wp-content/uploads/2023/01/Image2-1024x178.png" alt="" width="800" height="139" srcset="https://optimumbrew.com/wp-content/uploads/2023/01/Image2-1024x178.png 1024w, https://optimumbrew.com/wp-content/uploads/2023/01/Image2-300x52.png 300w, https://optimumbrew.com/wp-content/uploads/2023/01/Image2-768x134.png 768w, https://optimumbrew.com/wp-content/uploads/2023/01/Image2-1536x267.png 1536w, https://optimumbrew.com/wp-content/uploads/2023/01/Image2.png 1918w" sizes="(max-width: 800px) 100vw, 800px" /></a></p>
<p>&nbsp;</p>
<p style="padding-left: 80px;"><b>=&gt; Statistics</b></p>
<p style="padding-left: 80px;"><span style="font-weight: 400;">In the feature image above, you can see the Aggregate Report has 13 headers in its table. Let see what do they mean and how to calculate these data?</span></p>
<ul>
<li style="list-style-type: none;">
<ul>
<li style="list-style-type: none;">
<ul>
<li style="font-weight: 400;" aria-level="1"><b>Label:</b><span style="font-weight: 400;"> The label/name of the samples.</span></li>
<li style="font-weight: 400;" aria-level="1"><b>Samples:</b><span style="font-weight: 400;"> The total number of samples executed. </span></li>
</ul>
</li>
</ul>
</li>
</ul>
<p style="padding-left: 160px;"><span style="font-weight: 400;">The formula: Samples = Number of Threads (users) * Loop Count</span></p>
<p style="padding-left: 160px;"><span style="font-weight: 400;">Example 1: Thread Group has a configuration</span></p>
<p style="padding-left: 200px;"><span style="font-weight: 400;">– Number of Threads (users): 100</span></p>
<p style="padding-left: 200px;"><span style="font-weight: 400;">– Loop Count: 1</span></p>
<p style="padding-left: 160px;"><span style="font-weight: 400;">So, an HTTP Request under this thread group will run 100 x 1 = 100 (times)</span></p>
<p style="padding-left: 200px;"><span style="font-weight: 400;">—&gt; # Samples: 100</span></p>
<ul>
<li style="list-style-type: none;">
<ul>
<li style="list-style-type: none;">
<ul>
<li style="font-weight: 400;" aria-level="1"><b>Average(millisecond):</b><span style="font-weight: 400;">  The average response time of a set of results.</span></li>
<li style="font-weight: 400;" aria-level="1"><b>Min(millisecond):</b><span style="font-weight: 400;"> represent Minimum Response Time, it’s the shortest time for </span>the samples with the same label.</li>
<li style="font-weight: 400;" aria-level="1"><b>Max(millisecond):</b><span style="font-weight: 400;"> represent Maximum Response Time, it’s the longest time for the samples with the same label.</span></li>
<li style="font-weight: 400;" aria-level="1"><b>Percentiles(millisecond):</b><span style="font-weight: 400;"> A percentile (or a centile) is a measure used in statistics indicating the value below which a given percentage of observations in a group of observations fall. For example, the 20th percentile is the value (or score) below which 20% of the observations may be found.</span></li>
<li style="font-weight: 400;" aria-level="1"><b>Median:</b><span style="font-weight: 400;"> is a number which divides the samples into two equal halves. Half of the samples are smaller than the median, and half are larger (Some samples may equal the median.) This is a standard statistical measure. See, for example, Median entry at Wikipedia. The Median is the same as the 50th Percentile.</span></li>
</ul>
</li>
</ul>
</li>
</ul>
<p style="padding-left: 80px;"><span style="font-weight: 400;">           In other words, the median is the time in the middle of a set of results. 50% of the samples took no more than this time; the remainder took at least as long.</span></p>
<ul>
<li style="list-style-type: none;">
<ul>
<li style="list-style-type: none;">
<ul>
<li style="font-weight: 400;" aria-level="1"><b>90% Line (90th Percentile)</b><span style="font-weight: 400;"> means 90% of the samples took NO MORE THAN this time. The </span><b>10% remaining samples took at least as long as this.</b></li>
<li style="font-weight: 400;" aria-level="1"><b>95% Line (95th Percentile)</b><span style="font-weight: 400;"> means 95% of the samples took NO MORE THAN this time. The 5% remaining samples took at least as long as this.</span></li>
<li style="font-weight: 400;" aria-level="1"><b>99% Line (99th Percentile) </b><span style="font-weight: 400;">means 99% of the samples took NO MORE THAN this time. The 1% remaining samples took at least as long as this.</span></li>
<li style="font-weight: 400;" aria-level="1"><b>Error %: </b><span style="font-weight: 400;">Percent of requests with errors. Eg: the test runs Request A 100 times and got 15% Error, means the Request A has 15 times of error (100 * 15%).</span></li>
<li style="font-weight: 400;" aria-level="1"><b>Throughput:</b><span style="font-weight: 400;"> is calculated as requests/unit of time. The time is calculated from the start of the first sample to the end of the last sample. This includes any intervals between samples, as it is supposed to represent the load on the server. The formula is:</span></li>
</ul>
</li>
</ul>
</li>
</ul>
<p style="padding-left: 160px;"><span style="font-weight: 400;">Throughput = (number of requests) / (total time) * conversion</span></p>
<p style="padding-left: 160px;"><span style="font-weight: 400;">Where:</span></p>
<p style="padding-left: 200px;"><span style="font-weight: 400;">number of requests = number of executed requests</span></p>
<p style="padding-left: 200px;"><span style="font-weight: 400;">total time = (lastSampleStartTime + lastSampleLoadTime – firstSampleStartTime)</span></p>
<p style="padding-left: 200px;"><span style="font-weight: 400;">conversion: the unit of conversion value, for example 1000 will convert the value to the second, 1000*60 will convert the value to the minute, etc.</span></p>
<p style="padding-left: 160px;"><span style="font-weight: 400;">Example: I will run this test with 100 threads and loop count 1. Refer result below:</span></p>
<p>&nbsp;</p>
<p><a href="https://optimumbrew.com/wp-content/uploads/2023/01/Throughoutput.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-31607 size-large" src="https://optimumbrew.com/wp-content/uploads/2023/01/Throughoutput-1024x1006.png" alt="" width="800" height="786" srcset="https://optimumbrew.com/wp-content/uploads/2023/01/Throughoutput-1024x1006.png 1024w, https://optimumbrew.com/wp-content/uploads/2023/01/Throughoutput-300x295.png 300w, https://optimumbrew.com/wp-content/uploads/2023/01/Throughoutput-768x754.png 768w, https://optimumbrew.com/wp-content/uploads/2023/01/Throughoutput-1536x1509.png 1536w, https://optimumbrew.com/wp-content/uploads/2023/01/Throughoutput.png 1912w" sizes="(max-width: 800px) 100vw, 800px" /></a></p>
<p>&nbsp;</p>
<p style="padding-left: 160px;"><span style="font-weight: 400;">I used View Results in Table to collect the Start Time, and Response Time in the easiest way.</span></p>
<p style="padding-left: 200px;"><span style="font-weight: 400;">firstSampleStartTime: 16:42:03.114 (1672744323114 in ms)</span></p>
<p style="padding-left: 200px;"><span style="font-weight: 400;">lastSampleStartTime: 16:43:02.405 (1672744382405 in ms)</span></p>
<p style="padding-left: 200px;"><span style="font-weight: 400;">lastSampleLoadTime: 11ms</span></p>
<p style="padding-left: 200px;"><span style="font-weight: 400;">total time = (1672744382405 + 11 – 1672744323114 ) = 59302</span></p>
<p style="padding-left: 200px;"><span style="font-weight: 400;">number of requests = 100</span></p>
<p style="padding-left: 200px;"><span style="font-weight: 400;">Throughput = (number of requests) / (total time) * conversion</span></p>
<p style="padding-left: 200px;"><span style="font-weight: 400;">                        Throughput = 100 / 59302* 1000 ≈ 1.7/sec</span></p>
<p style="padding-left: 160px;"><span style="font-weight: 400;">Let&#8217;s check with the Aggregate Report:</span></p>
<p style="padding-left: 40px;"><a href="https://optimumbrew.com/wp-content/uploads/2023/01/Image2-1.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-31604 size-large" src="https://optimumbrew.com/wp-content/uploads/2023/01/Image2-1-1024x178.png" alt="" width="800" height="139" srcset="https://optimumbrew.com/wp-content/uploads/2023/01/Image2-1-1024x178.png 1024w, https://optimumbrew.com/wp-content/uploads/2023/01/Image2-1-300x52.png 300w, https://optimumbrew.com/wp-content/uploads/2023/01/Image2-1-768x134.png 768w, https://optimumbrew.com/wp-content/uploads/2023/01/Image2-1-1536x267.png 1536w, https://optimumbrew.com/wp-content/uploads/2023/01/Image2-1.png 1918w" sizes="(max-width: 800px) 100vw, 800px" /></a></p>
<p style="padding-left: 160px;"><span style="font-weight: 400;">And it can prove that the formula works well. Let&#8217;s check it by yourself.</span></p>
<p style="padding-left: 160px;"><b>Note: The time unit is chosen so that the displayed rate is at least 1.0. When the throughput is saved to a CSV file, it is expressed in requests/second, i.e. 30.0 requests/minute is saved as 0.5.</b></p>
<ul>
<li style="list-style-type: none;">
<ul>
<li style="list-style-type: none;">
<ul>
<li><b>KB/sec:</b><span style="font-weight: 400;"> The throughput measured in Kilobytes per second. The formula is:</span>
<ul>
<li><span style="font-weight: 400;">Throughput KB/sec = (Throughput * Average Bytes) / 1024</span></li>
<li><span style="font-weight: 400;">Where Average Bytes is the average size of the sample response in bytes. We can found this data on Summary Report.</span></li>
</ul>
</li>
<li><b>Total:</b><span style="font-weight: 400;"> The last row in the table is Total, only # Samples, the value in Total is equal to the sum of all values above. For all remaining value, it’s equal to the average of all values above.</span></li>
</ul>
</li>
</ul>
</li>
</ul>
<p>&nbsp;</p>
<p><span style="font-weight: 400;">You can try the same demo by fluctuating the values of the number of threads or the loop. When you fluctuate these values, the sample time value or other output values will begin fluctuating, telling you if the system is overburdened or just fine.</span></p>
<h3><strong>Conclusion </strong></h3>
<p>By now, you would have understood everything you need to know about basic JMeter and its usage in load, performance, and API testing. Then finally, you understood the process of Load API Testing using JMeter with a hands-on demo.</p>
<p>To know more about JMeter API load Testing with real scenarios, you can have a look at this <a href="https://optimumbrew.com/api-load-testing-using-apache-jmeter/" target="_blank" rel="noopener">API Load Testing Using Apache JMeter (Step by Step Guide)</a>.</p>
<p>The post <a href="https://optimumbrew.com/what-is-jmeter-introduction-uses/">What is JMeter?  Introduction &#038; Uses</a> appeared first on <a href="https://optimumbrew.com">OptimumBrew Technology</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Regression Testing: Concepts, Tools &#038; Guide</title>
		<link>https://optimumbrew.com/regression-testing-concepts-tools-guide/</link>
		
		<dc:creator><![CDATA[Jaimisha Patel]]></dc:creator>
		<pubDate>Mon, 30 May 2022 10:24:41 +0000</pubDate>
				<category><![CDATA[Quality Assurance]]></category>
		<guid isPermaLink="false">https://optimumbrew.com/?p=31144</guid>

					<description><![CDATA[<p>Regression Testing is one of the important aspects as it helps to deliver a quality product by making sure that any change in the code whether it’s small or large does not affect the existing or old functionality.</p>
<p>The post <a href="https://optimumbrew.com/regression-testing-concepts-tools-guide/">Regression Testing: Concepts, Tools &#038; Guide</a> appeared first on <a href="https://optimumbrew.com">OptimumBrew Technology</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>In this <strong>Regression Testing</strong> guide, we will learn what is regression testing and the following.</p>
<ul>
<li>What is Regression Testing?</li>
<li>What are the types of Regression Testing?</li>
<li>What are the Techniques of Regression Testing?</li>
<li>How does Regression Testing Work?</li>
<li>What are the Benefits of Regression Testing?</li>
<li>Regression Testing in Agile</li>
<li>What are the Best practices of Regression Testing?</li>
<li>Difference Between Retesting and Regression Testing</li>
<li>What are the best Regression Testing Tools?</li>
<li>Conclusion</li>
</ul>
<h2>What is Regression Testing?</h2>
<p>Regression Testing is a process to make changes to an older program and also ensure that the old program still working even after making changes to a program. It is a normal part of software development in larger companies, performed by code specialists. Before the release of a new version of a software product, old test cases run against a new version to make sure that old capabilities are still working.</p>
<p><a href="https://optimumbrew.com/wp-content/uploads/2022/05/Iteration-in-Regression-Testing.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-31160" src="https://optimumbrew.com/wp-content/uploads/2022/05/Iteration-in-Regression-Testing-300x109.png" alt="" width="1080" height="391" srcset="https://optimumbrew.com/wp-content/uploads/2022/05/Iteration-in-Regression-Testing-300x109.png 300w, https://optimumbrew.com/wp-content/uploads/2022/05/Iteration-in-Regression-Testing-1024x370.png 1024w, https://optimumbrew.com/wp-content/uploads/2022/05/Iteration-in-Regression-Testing-768x278.png 768w, https://optimumbrew.com/wp-content/uploads/2022/05/Iteration-in-Regression-Testing-1536x556.png 1536w, https://optimumbrew.com/wp-content/uploads/2022/05/Iteration-in-Regression-Testing.png 2048w" sizes="(max-width: 1080px) 100vw, 1080px" /></a></p>
<section id="section1" class="table-of-contents-right-row">
<div class="table-of-contents-full-right">
<h3>Example of Regression Testing</h3>
<p>Here we are going to have cases to understand the example of regression testing.</p>
</div>
</section>
<section id="section2" class="table-of-contents-right-row">
<div class="table-of-contents-full-right">
<h4>Example 1</h4>
<p>Consider a Software application with multiple functionalities. Now, there are updates in the source code of that software application, and few changes occur. So after testing the updated changes, all the previously tested functionality needs to be tested again. Testers do it to verify that changes in the code have not affected the previous functionalities.</p>
<p>Regression Testing is not dependent upon any framework or development language. However, the user needs to verify that bug fixes and newly added features do not affect the previous version of the software.</p>
<h4>Example 2</h4>
<p>Consider that we have a software application with functionality: <strong>A1+B1</strong>. While testing that application, a bug gets identified. Bug-fixation processes, including few changes in the code, are being carried out to resolve the bug. However, some existing functionality of the software application also gets affected in the bug removal process: <strong>B1-A1</strong>. Thus, regression testing is carried out to check whether existing functionalities have been affected or not along with the detection of any new bug or issue in the event of changes and bug-fixation.</p>
<p>Further, we can also see that during the upgrade or addition of a new feature; <strong>C1</strong>, the existing functionalities of the application; A1+B1 have been impacted with the change in the functionality; <strong>A1*B1</strong>. Here, also regression tests are executed over software applications to find out whether existing functionalities have been affected or not.</p>
<p>This is the most basic example of regression testing. These regression test examples can be further elaborated depending upon the project and its requirement.</p>
</div>
<h2 id="what-are-the-types-of-regression-testing"><strong>What are the types of Regression Testing?</strong></h2>
<p>There are three types of Regression Testing.</p>
<ol>
<li>Unit Regression</li>
<li>Partial Regression</li>
<li>Complete Regression</li>
</ol>
<p><a href="https://optimumbrew.com/wp-content/uploads/2022/05/Regression-Testing-Types.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-31161" src="https://optimumbrew.com/wp-content/uploads/2022/05/Regression-Testing-Types-300x159.png" alt="" width="740" height="392" srcset="https://optimumbrew.com/wp-content/uploads/2022/05/Regression-Testing-Types-300x159.png 300w, https://optimumbrew.com/wp-content/uploads/2022/05/Regression-Testing-Types-1024x543.png 1024w, https://optimumbrew.com/wp-content/uploads/2022/05/Regression-Testing-Types-768x407.png 768w, https://optimumbrew.com/wp-content/uploads/2022/05/Regression-Testing-Types-1536x814.png 1536w, https://optimumbrew.com/wp-content/uploads/2022/05/Regression-Testing-Types.png 2048w" sizes="(max-width: 740px) 100vw, 740px" /></a></p>
<p><strong>1. Unit Regression</strong></p>
<p style="text-align: left;">Unit Regression Testing is done during the unit testing phase and the code is tested as a single unit without any dependencies. Dependencies if any are temporarily blocked to test the unit independently.</p>
<p><strong>2. Partial Regression</strong></p>
<p>Partial Regression Testing means when regression testing is done on a module where the change in the code is related to that particular module and there wont be any change impact on other modules.</p>
<p id="3-complete-regression"><strong>3. Complete Regression</strong></p>
<p>Complete Regression Testing means when regression testing is done on a number of modules where the change in the code is related to the other module is uncertain.</p>
</section>
<h2>What are the Techniques of Regression Testing?</h2>
<p>Software maintenance is the process of modifying a software application which includes improvements, bug fixing, deletion of existing features, and optimization. When we do these modifications, the system may work incorrectly. To avoid issues while modifying the code, we do follow regression testing techniques. These techniques help us to eliminate the risks associated with the modifying code.</p>
<p>Following are the various techniques.</p>
<ol>
<li>Retest All</li>
<li>Regression Test Selection</li>
<li>Test Case Prioritization</li>
</ol>
<p><a href="https://optimumbrew.com/wp-content/uploads/2022/05/Regression-Testing-Techniques.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-31162" src="https://optimumbrew.com/wp-content/uploads/2022/05/Regression-Testing-Techniques-300x172.png" alt="" width="740" height="424" srcset="https://optimumbrew.com/wp-content/uploads/2022/05/Regression-Testing-Techniques-300x172.png 300w, https://optimumbrew.com/wp-content/uploads/2022/05/Regression-Testing-Techniques-1024x587.png 1024w, https://optimumbrew.com/wp-content/uploads/2022/05/Regression-Testing-Techniques-768x440.png 768w, https://optimumbrew.com/wp-content/uploads/2022/05/Regression-Testing-Techniques-1536x880.png 1536w, https://optimumbrew.com/wp-content/uploads/2022/05/Regression-Testing-Techniques.png 2048w" sizes="(max-width: 740px) 100vw, 740px" /></a></p>
<p id="1-retest-all"><strong>1. Retest All</strong></p>
<p>All the test cases in the existing test bucket or test suite are re-executed to verify that there are no bugs that occurred due to the modified code. This is a very expensive method as it needs enormous time as well as resources when compared to the other techniques.</p>
<p id="2-regression-test-selection"><strong>2. Regression Test Selection</strong></p>
<p>By using the regression test selection technique, we select a part of test cases from the test suite to run to verify whether the modified code affects the application or not instead of re-executing the complete test suite. This selection of test cases from the test suite is done on the basis of the modified code. The test cases chosen are categorized into two parts such as reusable test cases and obsolete test cases.</p>
<p><strong>Reusable test cases –</strong> Test cases that can be used in succeeding regression cycles.</p>
<p><strong>Obsolete test case –</strong> Test cases that cannot be used in succeeding regression cycles.</p>
<p id="3-test-case-prioritization"><strong>3. Test Case Prioritization</strong></p>
<p>By using this technique, we select the test cases with high priority first to run instead of a medium and low priority ones. Test case priority depends on its business impact, frequency, and criticality.</p>
<h2>How does Regression Testing Work?</h2>
<p>It is done manually. However, as application development takes time, more and more functionality keeps increasing the scope of regression; therefore this Testing is executed in an automated way.</p>
<p>While preparing a test suite for regression, consider the following &#8211;</p>
<ul>
<li>Automate all the test cases of a test suite.</li>
<li>Update the regression suite whenever required, like if any new defect which not covered in a test case found, update the test case for that issue in a test suite. Perform Testing for a bug and uncover it next time.</li>
<li>Execute regression test cases, whenever changes made in code, perform bug fixing, new functionality added, and also an enhancement to existing functionality done.</li>
<li>Create a test execution report which includes the pass/fails status of executed test cases.</li>
</ul>
<h2 id="xenonstack4" class="offsetCh">What are the Benefits of Regression Testing?</h2>
<ul>
<li style="list-style-type: none;">
<ul>
<li>Change in requirements and code modified according to the requirement.</li>
<li>New features added to the software.</li>
<li>Defect fixing.</li>
<li>Unit testing.</li>
<li>Schedule a time to test.</li>
</ul>
</li>
</ul>
<h2 id="regression-testing-in-agile"><strong>Regression Testing in Agile</strong></h2>
<div class="wp-block-image"><a href="https://optimumbrew.com/wp-content/uploads/2022/05/Regression-in-Agile.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-31166" src="https://optimumbrew.com/wp-content/uploads/2022/05/Regression-in-Agile-300x194.png" alt="" width="740" height="477" srcset="https://optimumbrew.com/wp-content/uploads/2022/05/Regression-in-Agile-300x194.png 300w, https://optimumbrew.com/wp-content/uploads/2022/05/Regression-in-Agile-1024x661.png 1024w, https://optimumbrew.com/wp-content/uploads/2022/05/Regression-in-Agile-768x495.png 768w, https://optimumbrew.com/wp-content/uploads/2022/05/Regression-in-Agile-1536x991.png 1536w, https://optimumbrew.com/wp-content/uploads/2022/05/Regression-in-Agile.png 2048w" sizes="(max-width: 740px) 100vw, 740px" /></a></div>
<div>Now adays, most of the organizations are following Agile practices. Agile works in an iterative and incremental method. Developers work on new functionality and release them in every 2-4 weeks as sprint release. In agile, it is sure that for every 2-4 weeks once there will be a code change. In this case, the regression tests help in testing the new code change in every iteration to make sure that tested application continues to perform correctly after every iteration.</div>
<h2 id="xenonstack5" class="offsetCh">What are the Best practices of Regression Testing?</h2>
<p>To do this testing, select test cases in the best way. Best practices are as follows &#8211;</p>
<ul>
<li>Test cases that have frequent defects.</li>
<li>Functionalities that are more visible to the users.</li>
<li>Test cases that verify the deep /core features of a product.</li>
<li>Test cases for functionalities that undergo more and recent changes.</li>
<li>All Integration Test cases.</li>
<li>All complex test cases.</li>
<li>Boundary Value test cases.</li>
<li>A sample of successful test cases.</li>
<li>A sample of failed test cases.</li>
</ul>
<h2>Difference Between Retesting and Regression Testing</h2>
<section id="section23" class="table-of-contents-right-row blog-section-main ">
<div class="table-of-contents-full-right">
<p>Many people have difficulty understanding the difference between retesting and regression testing. Here we are going to look at the key differences between these two types of testing. But before we move to the difference between retesting and regression testing, let us understand retesting in brief.</p>
</div>
</section>
<section id="section24" class="table-of-contents-right-row">
<div class="table-of-contents-full-right">
<p><strong>Retesting</strong></p>
<p>Retesting is a process to check those specific cases that are detected with bugs in the final execution. Generally, when software testers find bugs in any software application, they assign them to software developers to fix them. Then, software developers fix those bugs and give them back to software testers for verification. This process continues until every bug is fixed and is known as retesting.</p>
<p>Now that you understand both retesting and regression testing, let us dive into their key differences.</p>
</div>
</section>
<section id="section25" class="table-of-contents-right-row">
<div class="table-of-contents-full-right">
<p><strong>Regression Testing vs. Retesting</strong></p>
<table>
<tbody>
<tr>
<td><strong>Regression Testing</strong></td>
<td><strong>Re-testing</strong></td>
</tr>
<tr>
<td>Regression Testing is performed for the passed test cases.</td>
<td>Retesting is performed only for failed test cases.</td>
</tr>
<tr>
<td>Regression testing checks for unexpected side effects.</td>
<td>Regression testing checks the direct fixes.</td>
</tr>
<tr>
<td>Regression Testing does not include defect verification.</td>
<td>Defect verification is a part of re-testing.</td>
</tr>
<tr>
<td>Regression testing is ideal for automation as test cases increase with time.</td>
<td>Retesting is not ideal for automation as test cases changes with time.</td>
</tr>
<tr>
<td>Regression testing is known as genetic testing.</td>
<td>Retesting is known as planned testing.</td>
</tr>
<tr>
<td>The purpose of regression testing is to check whether a recent code change has not affected the other existing features.</td>
<td>The goal of retesting is to check that failed test cases in final execution are fixed or not.</td>
</tr>
<tr>
<td>It involves the general area of software.</td>
<td>It involves the specific feature of the software.</td>
</tr>
</tbody>
</table>
</div>
</section>
<h2 id="xenonstack6" class="offsetCh">What are the best Regression Testing Tools?</h2>
<p>If your software undergoes frequent changes, then regression testing costs will be very high. In such cases, using manual testing can increase test time as well as costs. However, automated regression testing is an intelligent choice in such situations.</p>
<p>Automaton testing is an area where we can reduce the efforts by using automated regression testing tools. It is an efficient as well as time-saving method. At the same time, the extent of automation depends on the test cases that will remain re-usable over time.</p>
<p>Most of the regression testing tools available in the market are record and playback types. Selecting a proper testing tool is necessary to maintain the quality of software.</p>
<p>Here is the list of top regression testing tools:</p>
<ul>
<li><a href="https://www.selenium.dev/" target="_blank" rel="noreferrer noopener nofollow">Selenium</a></li>
<li><a href="https://www.ibm.com/products/rational-functional-tester" target="_blank" rel="noreferrer noopener nofollow">IBM Rational Functional Tester</a></li>
<li><a href="https://www.microfocus.com/en-us/products/uft-one/overview" target="_blank" rel="noreferrer noopener nofollow">Micro Focus Unified Functional Testing (UFT)</a></li>
<li><a href="http://watir.com/" target="_blank" rel="noreferrer noopener">Watir</a></li>
<li><a href="https://www.microfocus.com/en-us/products/silk-test/overview" target="_blank" rel="noreferrer noopener nofollow">SilkTest</a></li>
<li><a href="https://www.vornexinc.com/our-overview.htm" target="_blank" rel="noreferrer noopener nofollow">TimeShiftX</a></li>
<li><a href="https://www.sahipro.com/" target="_blank" rel="noreferrer noopener nofollow">Sahi Pro</a></li>
</ul>
<p>These are the standard tools for functional and regression testing. Here is a brief about the <a href="https://www.softwaretestinghelp.com/regression-testing-tools/">list of t</a><a href="https://www.softwaretestinghelp.com/regression-testing-tools/" target="_blank" rel="noreferrer noopener nofollow">he most famous regression testing </a><a href="https://www.softwaretestinghelp.com/regression-testing-tools/">tools</a>.</p>
<h2 id="xenonstack7" class="offsetCh">Conclusion</h2>
<p>It is one of the most critical aspects of Testing as it helps to deliver a quality product, providing ensure that change in code, whether it&#8217;s small or large, should not affect the existing or old functionality. A large number of available automated tools help in the automation of a regression best test case. A tool should have the ability to update a test suite, as the Regression test suite needs to be updated frequently.</p>
<p>The post <a href="https://optimumbrew.com/regression-testing-concepts-tools-guide/">Regression Testing: Concepts, Tools &#038; Guide</a> appeared first on <a href="https://optimumbrew.com">OptimumBrew Technology</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Software Testing : Basic, Types, Tools &#038; Guide</title>
		<link>https://optimumbrew.com/software-testing-basic-types-tools-guide/</link>
		
		<dc:creator><![CDATA[Jaimisha Patel]]></dc:creator>
		<pubDate>Wed, 25 May 2022 12:03:09 +0000</pubDate>
				<category><![CDATA[Quality Assurance]]></category>
		<guid isPermaLink="false">https://optimumbrew.com/?p=30985</guid>

					<description><![CDATA[<p>Software testing is a process of identifying the correctness of software by considering its all attributes (Reliability, Scalability, Portability, Re-usability, Usability) and evaluating the execution of software components to find the software bugs or errors or defects.</p>
<p>The post <a href="https://optimumbrew.com/software-testing-basic-types-tools-guide/">Software Testing : Basic, Types, Tools &#038; Guide</a> appeared first on <a href="https://optimumbrew.com">OptimumBrew Technology</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Today’s world of technology is completely dominated by machines, and their behavior is controlled by the software powering it. Software testing provides the solution to all our worries about machines behaving the exact way we want them to.<br />
This article on “What is Software Testing” will provide you with in-depth knowledge about how testing works in the following sequence :</p>
<ul>
<li><a href="https://optimumbrew.com/software-testing-basic-types-tools-guide/#What-is-software-testing">What is Software Testing?</a></li>
<li><a href="https://optimumbrew.com/software-testing-basic-types-tools-guide/#why-software-testing-is-important">Why Software Testing is Important?</a></li>
<li><a href="https://optimumbrew.com/software-testing-basic-types-tools-guide/#benefits-of-software-testing">What are the benefits of Software Testing?</a></li>
<li><a href="https://optimumbrew.com/software-testing-basic-types-tools-guide/#types-of-software-testing">Types of Software Testing</a></li>
<li><a href="https://optimumbrew.com/software-testing-basic-types-tools-guide/#principles-of-software-testing">Principles of Software Testing</a></li>
<li><a href="https://optimumbrew.com/software-testing-basic-types-tools-guide/#testing-strategies-in-software-engineering">Testing Strategies in Software Engineering</a></li>
<li><a href="https://optimumbrew.com/software-testing-basic-types-tools-guide/#what-is-program-testing-in-software-testing">Program Testing</a></li>
<li><a href="https://optimumbrew.com/software-testing-basic-types-tools-guide/#which-software-testing-tools-should-you-use">Which Testing Tools Should You Use?</a></li>
</ul>
<p>&nbsp;</p>
<h2><span id="What-is-software-testing">What is Software Testing?</span></h2>
<p>Software Testing is a process of evaluating the functionality of a software application to find any software bugs. It checks whether the developed software met the specified requirements and identifies any defect in the software in order to produce a quality product. It is basically executing a system in order to identify any gaps, errors, or missing requirements in contrary to the actual requirements.</p>
<p>It is also stated as the process of verifying and validating a software product. It checks whether the software product:</p>
<ul>
<li>Meets the business and technical requirements that guided its design and development</li>
<li>Works as per the requirement</li>
<li>Can be implemented with the same characteristics</li>
</ul>
<p>&nbsp;</p>
<h2><span id="why-software-testing-is-important">Why Software Testing is Important?</span></h2>
<p><strong>Software Testing is Important</strong> because if there are any bugs or errors in the software, it can be identified early and can be solved before delivery of the software product. Properly tested software product ensures reliability, security and high performance which further results in time saving, cost effectiveness and customer satisfaction.</p>
<p><strong>Software Testing is Important</strong> because we all make mistakes. Some of those mistakes are unimportant, but some of them are expensive or dangerous. We need to check everything and anything we produce because things can always go wrong – humans make mistakes all the time.<span id="more-19"></span></p>
<p>Since we assume that our work may have mistakes, hence we all need to check our own work. However some mistakes come from bad assumptions and blind spots, so we might make the same mistakes when we check our own work as we made when we did it. So we may not notice the flaws in what we have done.</p>
<p>Ideally, we should get someone else to check our work because another person is more likely to spot the flaws.</p>
<p>There are several reasons which clearly tells us as why Software Testing is important and what are the major things that we should consider while testing of any product or application.</p>
<p>Software testing is very important because of the following reasons:</p>
<ol>
<li>Software testing is really required to point out the defects and errors that were made during the development phases.
<ul>
<li style="list-style-type: none;">
<ul>
<li>Example: Programmers may make a mistake during the implementation of the software. There could be many reasons for this like lack of experience of the programmer, lack of knowledge of the programming language, insufficient experience in the domain, incorrect implementation of the algorithm due to complex logic or simply human error.</li>
</ul>
</li>
</ul>
</li>
<li>It’s essential since it makes sure that the customer finds the organization reliable and their satisfaction in the application is maintained.
<ul>
<li style="list-style-type: none;">
<ul>
<li>If the customer does not find the testing organization reliable or is not satisfied with the quality of the deliverable, then they may switch to a competitor organization.</li>
<li>Sometimes contracts may also include monetary penalties with respect to the timeline and quality of the product. In such cases, if proper software testing may also prevent monetary losses.</li>
</ul>
</li>
</ul>
</li>
<li>It is very important to ensure the Quality of the product. Quality product delivered to the customers helps in gaining their confidence.
<ul>
<li style="list-style-type: none;">
<ul>
<li>As explained in the previous point, delivering good quality product on time builds the customers confidence in the team and the organization.</li>
</ul>
</li>
</ul>
</li>
<li>Testing is necessary in order to provide the facilities to the customers like the delivery of high quality product or software application which requires lower maintenance cost and hence results into more accurate, consistent and reliable results.
<ul>
<li style="list-style-type: none;">
<ul>
<li>High quality product typically has fewer defects and requires lesser maintenance effort, which in turn means reduced costs.</li>
</ul>
</li>
</ul>
</li>
<li>Testing is required for an effective performance of software application or product.</li>
<li>It’s important to ensure that the application should not result into any failures because it can be very expensive in the future or in the later stages of the development.
<ul>
<li style="list-style-type: none;">
<ul>
<li>Proper testing ensures that bugs and issues are detected early in the life cycle of the product or application.</li>
<li>If defects related to requirements or design are detected late in the life cycle, it can be very expensive to fix them since this might require redesign, re-implementation and retesting of the application.</li>
</ul>
</li>
</ul>
</li>
<li>It’s required to stay in the business.
<ul>
<li style="list-style-type: none;">
<ul>
<li>Users are not inclined to use software that has bugs. They may not adopt a software if they are not happy with the stability of the application.</li>
<li>In case of a product organization or startup which has only one product, poor quality of software may result in lack of adoption of the product and this may result in losses which the business may not recover from.</li>
</ul>
</li>
</ul>
</li>
</ol>
<h2><span id="benefits-of-software-testing">What are the benefits of Software Testing?</span></h2>
<p>Here are the benefits of using software testing:</p>
<ul>
<li><strong>Cost-Effective: </strong>Testing has many benefits and one of the most important ones is cost-effectiveness. Testing our project on time can save money in the long run. Software development consists of many stages and if bugs are caught in the earlier stages it costs much less to fix them.</li>
<li><strong>Security: </strong>It is the most vulnerable and sensitive benefit of software testing. User are looking for trusted products.  It helps in removing problems and risks beforehand.</li>
<li><strong>Product quality: </strong>It is an essential requirement of any software product. In order to make your product vision come to life, it has to work as planned. It is important to follow the product requirements because it helps you get the required end results.</li>
<li><strong>Customer Satisfaction: </strong>The ultimate goal for a product owner is to give the best customer satisfaction.  Software should be tested in order to bring the best user experience possible. Being the best product in this saturated market will help you gain trustworthy clients which will have great long-term effects.</li>
</ul>
<h2><span id="types-of-software-testing">Types of Software Testing</span></h2>
<p>Here are the software testing types:</p>
<p><a href="https://optimumbrew.com/wp-content/uploads/2022/05/Software-Testing-Types-e1653480493498.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-31029" src="https://optimumbrew.com/wp-content/uploads/2022/05/Software-Testing-Types-e1653480493498-300x184.png" alt="" width="740" height="453" srcset="https://optimumbrew.com/wp-content/uploads/2022/05/Software-Testing-Types-e1653480493498-300x184.png 300w, https://optimumbrew.com/wp-content/uploads/2022/05/Software-Testing-Types-e1653480493498-1024x626.png 1024w, https://optimumbrew.com/wp-content/uploads/2022/05/Software-Testing-Types-e1653480493498-768x470.png 768w, https://optimumbrew.com/wp-content/uploads/2022/05/Software-Testing-Types-e1653480493498-1536x940.png 1536w, https://optimumbrew.com/wp-content/uploads/2022/05/Software-Testing-Types-e1653480493498.png 1808w" sizes="(max-width: 740px) 100vw, 740px" /></a></p>
<p>Typically Testing is classified into three categories.</p>
<ul>
<li style="list-style-type: none;">
<ul>
<li style="list-style-type: none;">
<ul>
<li>Functional Testing</li>
<li>Non-Functional Testing or <a href="https://optimumbrew.com/services/qa/performance-testing/" data-lasso-id="186529">Performance Testing</a></li>
<li>Maintenance (Regression and Maintenance)</li>
</ul>
</li>
</ul>
</li>
</ul>
<p>&nbsp;</p>
<table class="table table-striped" style="height: 559px;" width="467">
<tbody>
<tr>
<th>Testing Category</th>
<th style="text-align: center;">Types of Testing</th>
</tr>
<tr>
<td>Functional Testing</td>
<td>
<ul>
<li>Unit Testing</li>
<li>Integration Testing</li>
<li>Smoke</li>
<li>UAT ( User Acceptance Testing)</li>
<li>Localization</li>
<li>Globalization</li>
<li>Interoperability</li>
<li>So on</li>
</ul>
</td>
</tr>
<tr>
<td>Non-Functional Testing</td>
<td>
<ul>
<li>Performance</li>
<li>Endurance</li>
<li>Load</li>
<li>Volume</li>
<li>Scalability</li>
<li>Usability</li>
<li>So on</li>
</ul>
</td>
</tr>
<tr>
<td style="text-align: left;">Maintenance</td>
<td>
<ul>
<li>Regression</li>
<li>Maintenanc</li>
</ul>
</td>
</tr>
</tbody>
</table>
<p>This is not the complete list as there are more than 150 types of testing types and still adding. Also, note that not all testing types are applicable to all projects but depend on the nature &amp; scope of the project.</p>
<h2><span id="principles-of-software-testing">Principles of Software Testing</span></h2>
<p>Testing of software is exceptionally imaginative and an intellectual task for testers to perform. Testing of software or applications consist of some principles that play a significant role for a software tester while testing the project.</p>
<div class="row course-curriculum-widget m-0 my-4 p-3">
<p style="padding-left: 40px;">The Principles of Software Testing are as follows :</p>
<ol>
<li style="list-style-type: none;">
<ol>
<li><strong>Software testing can help in detecting bugs</strong>: Testing any software or project can help in revealing a few or some defects that may or may not be detected by developers. However, testing of software alone cannot confirm that your developed project or software is error free. Hence, it’s essential to devise test cases and find out as many defects as possible.</li>
<li><strong>Testing with effectiveness is impossible</strong>: Until your project or application under test has a straightforward structure having limited input, it won’t be likely or achievable to check and test all feasible sets of data, modules, and scenarios.</li>
<li><strong>Early testing</strong>: The earlier you will begin to test your project or software the better you will find to utilize your existing time.</li>
<li><strong>Defect in clustering</strong>: At the time of testing, you can observe that majority of the defects or bugs reported are because of a small number of modules inside your software or system.<strong><br />
</strong></li>
<li><strong>Software testing is context-dependent</strong>: Various methods, procedures, and kinds of testing are there which defines the type and characteristics of the application. For example, an application related to health device needs more testing and doctor based feedback than a game or small software.</li>
<li><strong>Error free or Bug-free software is a myth</strong>: Just because when a tester tested an application and didn’t detect any defects in that project, doesn’t indicate or imply that your software is ready for shipping.</li>
</ol>
</li>
</ol>
<h2><span id="testing-strategies-in-software-engineering">Testing Strategies in Software Engineering</span></h2>
<p>Here are important strategies in software engineering:</p>
<p style="padding-left: 40px;"><strong>Unit Testing: </strong>This software testing basic approach is followed by the programmer to test the unit of the program. It helps developers to know whether the individual unit of the code is working properly or not.</p>
<p style="padding-left: 40px;"><strong>Integration testing: </strong>It focuses on the construction and design of the software. You need to see that the integrated units are working without errors or not.</p>
<p style="padding-left: 40px;"><strong>System testing: </strong>In this method, your software is compiled as a whole and then tested as a whole. This testing strategy checks the functionality, security, portability, amongst others.</p>
<h2><span id="what-is-program-testing-in-software-testing">Program Testing</span></h2>
<p><strong>Program Testing</strong> in software testing is a method of executing an actual software program with the aim of testing program behavior and finding errors. The software program is executed with test case data to analyse the program behavior or response to the test data. A good program testing is one which has high chances of finding bugs.</p>
<h2><span id="which-software-testing-tools-should-you-use">Which Software Testing Tools Should You Use?</span></h2>
<ul>
<li>List of 21 Best Software Testing Tools</li>
</ul>
<p>&nbsp;</p>
<p style="padding-left: 80px;">1. Selenium &#8211; Software Testing Tool</p>
<p style="padding-left: 80px;">2. Coded UI Test &#8211; Software Testing Tool</p>
<p style="padding-left: 80px;">3. TestRail &#8211; Automated &amp; Manual QA Tester</p>
<p style="padding-left: 80px;">4. IBM Rational Functional Tester &#8211; Automated Software Tool</p>
<p style="padding-left: 80px;">5. Load Testing Tools</p>
<p style="padding-left: 80px;">6. XRay</p>
<p style="padding-left: 80px;">7. WebLOAD &#8211; QA Test Tool</p>
<p style="padding-left: 80px;">8. JMeter &#8211; Automated Software Tester</p>
<p style="padding-left: 80px;">9. Test Pad</p>
<p style="padding-left: 80px;">10. Hewlett Packard Testing Tools &#8211; HP LoadRunner</p>
<p style="padding-left: 80px;">11. HPE Unified Functional Testing (UFT)</p>
<p style="padding-left: 80px;">12. JIRA Agile Testing Tool</p>
<p style="padding-left: 80px;">13. PractiTest &#8211; Automated Software Tester</p>
<p style="padding-left: 80px;">14. Watir &#8211; QA Test Tool</p>
<p style="padding-left: 80px;">15. Eggplant Mobile Application Testing Tool</p>
<p style="padding-left: 80px;">16. SeeTest Functional Testing Tool</p>
<p style="padding-left: 80px;">17. SpiraTest &#8211; Software Testing Tools</p>
<p style="padding-left: 80px;">18. Kobiton</p>
<p style="padding-left: 80px;">19. Avo Assure</p>
<p style="padding-left: 80px;">20. Lambda Testing Tool</p>
<p style="padding-left: 80px;">21. Testim</p>
<h2>Summary of Software Testing Basics:</h2>
<ul>
<li>Define Software Testing: Software testing is defined as an activity to check whether the actual results match the expected results and to ensure that the software system is Defect free.</li>
<li>Testing is important because software bugs could be expensive or even dangerous.</li>
<li>The important reasons for using software testing are: cost-effective, security, product quality, and customer satisfaction.</li>
<li>Typically Testing is classified into three categories functional testing, non-functional testing or performance testing, and maintenance.</li>
<li>The important strategies in software engineering are: unit testing, integration testing, validation testing, and system testing.</li>
</ul>
</div>
<p>The post <a href="https://optimumbrew.com/software-testing-basic-types-tools-guide/">Software Testing : Basic, Types, Tools &#038; Guide</a> appeared first on <a href="https://optimumbrew.com">OptimumBrew Technology</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>What is Software Testing Life Cycle?</title>
		<link>https://optimumbrew.com/what-is-software-testing-life-cycle/</link>
		
		<dc:creator><![CDATA[Jaimisha Patel]]></dc:creator>
		<pubDate>Mon, 02 May 2022 09:14:55 +0000</pubDate>
				<category><![CDATA[Quality Assurance]]></category>
		<guid isPermaLink="false">https://optimumbrew.com/?p=29382</guid>

					<description><![CDATA[<p>STLC is a step-by-step approach to testing, where QA, throughout a sequence of predefined steps, ensures the quality of the product.</p>
<p>The post <a href="https://optimumbrew.com/what-is-software-testing-life-cycle/">What is Software Testing Life Cycle?</a> appeared first on <a href="https://optimumbrew.com">OptimumBrew Technology</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Definition of the STLC and its role in the Software Development Life Cycle (SDLC)</p>
<h2>Table of Contents</h2>
<ul>
<li><a href="https://optimumbrew.com/what-is-software-testing-life-cycle/#what-is-stlc-software-testing-life-cycle">What is STLC (Software Testing Life Cycle)</a></li>
<li><a href="https://optimumbrew.com/what-is-software-testing-life-cycle/#what-to-use-the-stlc-for">What to use the STLC for</a></li>
<li><a href="https://optimumbrew.com/what-is-software-testing-life-cycle/#the-role-of-the-stlc-in-the-sdlc">The role of the STLC in the SDLC</a></li>
<li><a href="https://optimumbrew.com/what-is-software-testing-life-cycle/#what-are-the-stl%25d1%2581-phases">What are the STLС phases</a>
<ul>
<li><a href="https://optimumbrew.com/what-is-software-testing-life-cycle/#requirement-analysis">Requirement Analysis</a></li>
<li><a href="https://optimumbrew.com/what-is-software-testing-life-cycle/#test-planning">Test Planning</a></li>
<li><a href="https://optimumbrew.com/what-is-software-testing-life-cycle/#test-case-development">Test Case Development</a></li>
<li><a href="https://optimumbrew.com/what-is-software-testing-life-cycle/#test-environment-setup">Test Environment Setup</a></li>
<li><a href="https://optimumbrew.com/what-is-software-testing-life-cycle/#test-execution">Test Execution</a></li>
<li><a href="https://optimumbrew.com/what-is-software-testing-life-cycle/#test-cycle-closure">Test Cycle Closure</a></li>
</ul>
</li>
<li><a href="https://optimumbrew.com/what-is-software-testing-life-cycle/#conclusion">Conclusion</a></li>
</ul>
<h2 id="what-is-stlc-software-testing-life-cycle">What is STLC (Software Testing Life Cycle)</h2>
<p>The Software Testing Life Cycle (STLC) is a sequence of specific actions performed during the testing process to ensure that the software quality objectives are met. The STLC includes both verification and validation. Contrary to popular belief, software testing is not just a separate activity. It consists of a series of methodological activities to help certify your software product.</p>
<p>The STLC is a high-quality strategy directly associated with and part of the Software Development Life Cycle (SDLC), which in turn is a framework with 6 core principles:</p>
<ol>
<li>Requirements analysis;</li>
<li>Planning;</li>
<li>Engineering and design;</li>
<li>Software development;</li>
<li>Testing;</li>
<li>Deployment.</li>
</ol>
<p>In simple terms, the SDLC is a cycle where actions at each stage are reflected in subsequent stages.</p>
<p>The STLC also has its stages and most closely intersects with the SDLC at the fifth stage, which I’d describe below.</p>
<h2 id="what-to-use-the-stlc-for">What to use the STLC for</h2>
<p>By knowing that the STLC is a set of measures, we can assume that it includes various stages, such as planning, control, implementation, standardization, and so on. All this leads us to the fact that the STLC is needed not only to test the developed product but also for the following:</p>
<ul>
<li>Removing its shortcomings during the earliest and most profitable stage of development;</li>
<li>Increasing the quality and transparency of the development process;</li>
<li>Maximizing control over the quality of the product being developed at all stages of the SDLC;</li>
<li>Influencing the application of Agile, Scrum, SAFe, etc.;</li>
<li>Delivering a quality product not only to the Client but also to the Users.</li>
</ul>
<h2 id="the-role-of-the-stlc-in-the-sdlc">The role of the STLC in the SDLC</h2>
<p>As mentioned earlier, the Software Testing Life Cycle and the Software Development Life Cycle are closely related to each other, but they simultaneously pursue different tasks of the same goal, namely:</p>
<ul>
<li>collecting the requirements in the desired form and developing the declared functionality (as for the SDLC);</li>
<li>analyzing requirements, assisting the client and the development team, and confirming the quality of the implemented functionality (as for the STLC).</li>
</ul>
<p>The overall goal is client satisfaction and achieving the highest possible score at the Verification and Validation stages.</p>
<p>The role of the STLC in the SDLC can be represented with a double line graph:<a href="https://optimumbrew.com/wp-content/uploads/2022/05/Chart-2-1.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-29528" src="https://optimumbrew.com/wp-content/uploads/2022/05/Chart-2-1-300x218.png" alt="" width="740" height="539" srcset="https://optimumbrew.com/wp-content/uploads/2022/05/Chart-2-1-300x218.png 300w, https://optimumbrew.com/wp-content/uploads/2022/05/Chart-2-1-1024x746.png 1024w, https://optimumbrew.com/wp-content/uploads/2022/05/Chart-2-1-768x559.png 768w, https://optimumbrew.com/wp-content/uploads/2022/05/Chart-2-1-1536x1119.png 1536w, https://optimumbrew.com/wp-content/uploads/2022/05/Chart-2-1.png 2048w" sizes="(max-width: 740px) 100vw, 740px" /></a></p>
<p>Where the SDLC and the STLC lines move in parallel for most of the project but begin to converge rapidly during the software development phase with deep synchronization during the SDLC Test phase. This graph is relevant to many different types of projects, not just large or independent ones, and will remain the same for the implementation of a task within a project and reverse for a project with a huge number of iterations (but in this case, the lines will diverge and converge more often).</p>
<h2 id="what-are-the-stl%25d1%2581-phases">What are the STLС phases</h2>
<p>The STLC has several interconnected phases and is generally very similar to the SDLC system. These phases are sequential and are called:</p>
<ol>
<li>Requirement Analysis;</li>
<li>Test Planning;</li>
<li>Test Case Development;</li>
<li>Test Environment Setup;</li>
<li>Test Execution;</li>
<li>Test Cycle Closure.</li>
</ol>
<p><a href="https://optimumbrew.com/wp-content/uploads/2022/05/Infoghraphic-cycle-_2.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-29530" src="https://optimumbrew.com/wp-content/uploads/2022/05/Infoghraphic-cycle-_2-300x300.png" alt="" width="500" height="500" srcset="https://optimumbrew.com/wp-content/uploads/2022/05/Infoghraphic-cycle-_2-300x300.png 300w, https://optimumbrew.com/wp-content/uploads/2022/05/Infoghraphic-cycle-_2-1024x1024.png 1024w, https://optimumbrew.com/wp-content/uploads/2022/05/Infoghraphic-cycle-_2-150x150.png 150w, https://optimumbrew.com/wp-content/uploads/2022/05/Infoghraphic-cycle-_2-768x768.png 768w, https://optimumbrew.com/wp-content/uploads/2022/05/Infoghraphic-cycle-_2.png 1231w" sizes="(max-width: 500px) 100vw, 500px" /></a></p>
<p>Let’s take a closer look at each of them.</p>
<h3 id="requirement-analysis"><strong>Requirement Analysis</strong></h3>
<p>Requirements analysis is one of the most important phases because this is when you can fix project flaws almost completely free of charge. The requirements analysis phase also identifies the potential need for automated testing and allows making economic calculations of labor costs based on the project estimation. This is also when the Entry Criteria and the Exit Criteria are discussed and documented.</p>
<h3 id="test-planning"><strong>Test Planning</strong></h3>
<p>At this phase, a test plan is formed. This is the concretization of all phases of the testing itself, timing, participants, and responsibilities. As a result of this, we receive data on:</p>
<ul>
<li>the participants and their roles in testing;</li>
<li>the necessary testing tools;</li>
<li>the necessary test environment.</li>
</ul>
<h3 id="test-case-development"><strong>Test Case Development</strong></h3>
<p>Test development implies using manual and automated testing to achieve full coverage of the software’s functionality, with the process being based on the requirements set up beforehand. More often than not, the test cases for automated testing are written separately, since the cases for manual testing are described in the form of cheat sheets.</p>
<h3 id="test-environment-setup"><strong>Test Environment Setup</strong></h3>
<p>The test plan makes it clear which test environment should be used. At this STLC phase, operating systems and virtual machines are configured, testing tools like Selenium, Katalon Studio, and the project’s test environment and databases are deployed. We also make requests to DevOps and Admins if support is needed.</p>
<h3 id="test-execution"><strong>Test Execution</strong></h3>
<p>Tests are performed based on ready-made test documentation and a correctly configured test environment. All test results are recorded in the Test Management System. Negatively passed tests, where the actual result differs from the one expected, are recorded as errors and transferred to the development team for revision with subsequent rechecking after correction.</p>
<h3 id="test-cycle-closure"><strong>Test Cycle Closure</strong></h3>
<p>The last phase of the STLC is the final generation of testing reports for the client. These should include the time spent, the percentage of errors found to positive test results, the total number of errors found and fixed. As far as the testing department is concerned, this is the moment for analyzing its work, summing up the results, analyzing its productivity, and the opportunity to make suggestions for improving the quality of testing.</p>
<h2 id="conclusion">Conclusion</h2>
<p>Now that we know what the STLC is and what it is for, we can say what the graph of interaction between the STLC and the SDLC will look like with full certainty:</p>
<figure></figure>
<p><a href="https://optimumbrew.com/wp-content/uploads/2022/05/Chart-1.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-29529" src="https://optimumbrew.com/wp-content/uploads/2022/05/Chart-1-300x218.png" alt="" width="740" height="539" srcset="https://optimumbrew.com/wp-content/uploads/2022/05/Chart-1-300x218.png 300w, https://optimumbrew.com/wp-content/uploads/2022/05/Chart-1-1024x746.png 1024w, https://optimumbrew.com/wp-content/uploads/2022/05/Chart-1-768x559.png 768w, https://optimumbrew.com/wp-content/uploads/2022/05/Chart-1-1536x1119.png 1536w, https://optimumbrew.com/wp-content/uploads/2022/05/Chart-1.png 2048w" sizes="(max-width: 740px) 100vw, 740px" /></a></p>
<p>The fact that the closest point of convergence happens during the “Test Execution” stage is direct proof of the importance of testing in software development. At the same time, we see that some phases of the STLC and the SDLC are very similar to each other both in name and in meaning, which suggests that the Software Testing Life Cycle and the Software Development Life Cycle are inevitably linked at all stages of <a href="https://optimumbrew.com/services/">software product development</a>.</p>
<p>The post <a href="https://optimumbrew.com/what-is-software-testing-life-cycle/">What is Software Testing Life Cycle?</a> appeared first on <a href="https://optimumbrew.com">OptimumBrew Technology</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
