Skip to main content
Course/Module 6/Topic 3 of 5Advanced

JMeter & Performance Tools

Master Apache JMeter and other performance testing tools

60 minBy Priygop TeamLast updated: Feb 2026

JMeter Test Plan Structure

  • Test Plan: Root element containing all test elements
  • Thread Groups: Simulate users and their actions
  • Samplers: Send requests to servers
  • Listeners: Collect and display test results
  • Timers: Add delays between requests
  • Assertions: Validate responses

JMeter Test Configuration

Example
// JMeter Test Plan Example
<?xml version="1.0" encoding="UTF-8"?>
<jmeterTestPlan version="1.2">
  <hashTree>
    <TestPlan testname="E-commerce Load Test">
      <elementProp name="TestPlan.arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="TestPlan.user_define_classpath"></stringProp>
      <boolProp name="TestPlan.functional_mode">false</boolProp>
      <boolProp name="TestPlan.serialize_threadgroups">false</boolProp>
    </TestPlan>
    
    <hashTree>
      <ThreadGroup testname="User Load Test">
        <stringProp name="ThreadGroup.num_threads">100</stringProp>
        <stringProp name="ThreadGroup.ramp_time">60</stringProp>
        <stringProp name="ThreadGroup.duration">1800</stringProp>
        <stringProp name="ThreadGroup.delay">0</stringProp>
        <boolProp name="ThreadGroup.scheduler">true</boolProp>
      </ThreadGroup>
      
      <hashTree>
        <HTTPSamplerProxy testname="Login Request">
          <stringProp name="HTTPSampler.domain">api.example.com</stringProp>
          <stringProp name="HTTPSampler.port">443</stringProp>
          <stringProp name="HTTPSampler.protocol">https</stringProp>
          <stringProp name="HTTPSampler.path">/auth/login</stringProp>
          <stringProp name="HTTPSampler.method">POST</stringProp>
          <stringProp name="HTTPSampler.contentEncoding">UTF-8</stringProp>
        </HTTPSamplerProxy>
        
        <hashTree>
          <HeaderManager testname="HTTP Header Manager">
            <collectionProp name="HeaderManager.headers">
              <elementProp name="" elementType="Header">
                <stringProp name="Header.name">Content-Type</stringProp>
                <stringProp name="Header.value">application/json</stringProp>
              </elementProp>
            </collectionProp>
          </HeaderManager>
        </hashTree>
      </hashTree>
    </hashTree>
  </hashTree>
</jmeterTestPlan>

// JMeter Performance Metrics
const jmeterMetrics = {
    "Response Time": {
        "Average": "Time taken for average response",
        "Min": "Fastest response time",
        "Max": "Slowest response time",
        "90th Percentile": "90% of requests faster than this",
        "95th Percentile": "95% of requests faster than this"
    },
    "Throughput": {
        "Requests per Second": "Number of requests per second",
        "Bytes per Second": "Data transfer rate",
        "Transactions per Second": "Business transactions per second"
    },
    "Error Rate": {
        "Error Percentage": "Percentage of failed requests",
        "Error Count": "Total number of errors",
        "Error Types": "Different types of errors"
    }
};
Chat on WhatsApp
Priygop - Leading Professional Development Platform | Expert Courses & Interview Prep