Guide to install JMeter with AWSMeter plugin

Srinivas Nali
River Island Tech
Published in
4 min readOct 8, 2023

In today’s fast-paced world of cloud computing and serverless architecture, ensuring the optimal performance of your AWS Lambda functions is crucial. With JMeter, you will be able to simulate real-world workloads, unlock valuable insights into your serverless limitations, and fine-tune your AWS infrastructure for maximum efficiency.

Apache JMeter, an open-source powerhouse, has long been the preferred choice for performance testing across a wide spectrum of applications and platforms. In this article, I will guide you through the process of installing JMeter, the Plugins Manager, and AWSMeter plugin. Additionally, we’ll explore how to configure thread properties to tailor your performance testing precisely to your needs.

Step 1: JMeter Installation

Follow these steps to install on Mac :

  1. Install Java: Ensure that you have Java installed. Download the latest Java LTS version for free.
  2. Download JMeter: Obtain the Apache JMeter tool by downloading the binaries in a zip file format.
  3. Unzip JMeter: Extract the downloaded JMeter zip file to a specific folder of your choice (e.g., ~/Users/<user-name>/JMeter).
  4. CLI Setup: To use JMeter from the command line, add it to the PATH variable. You can do this by modifying your system’s PATH environment variable. For example, you can add PATH=$PATH:/Users/<user-name>/JMeter/bin to your .bash_profile or .zshrc file.
  5. Check Installation: Verify the installation by running the jmeter command in your terminal. You should see JMeter's interface.

Step 2: JMeter Plug-ins Manager

Next, we’ll enhance JMeter with the necessary plugins:

  1. Install jmeter-plugins-manager: Download the JAR file from https://jmeter-plugins.org/get/
  2. Plugin Installation: Copy the downloaded JAR file into the ext folder within your JMeter installation directory (e.g., ~/Users/<user-name>/JMeter/lib/ext).
  3. Restart JMeter: Restart the JMeter application to activate the newly installed plugins.

Step 3: AWSMeter Plugin

AWSMeter Plugin: When it comes to simulating AWS environments and pushing your serverless functions to the limits, the AWSMeter plugin is your trusty companion. It seamlessly integrates with JMeter, extending its capabilities to tackle AWS Kinesis and SQS.

Now, let’s add the AWSMeter plugin to facilitate AWS testing:

  1. Verify Java Version: Ensure that your Java version is at least 11 to support the AWSMeter plugin.
  2. Open JMeter Plugins Manager: In JMeter, navigate to the “Options” menu and open the “Plugins Manager.”
  3. Install AWSMeter: In the Plugins Manager, search for “AWS Support” under “Available Plugins.” Choose the AWSMeter version (e.g., awsmeter 2.0.0) and click “Apply.” Restart JMeter to activate the plugin.

Step 4: Configuring Thread Properties and Sample Load Examples

In this section, we’ll delve into the thread properties that control the concurrency of our load test and provide some sample example loads.

Thread Properties:

Thread properties are crucial for controlling how many virtual users (threads) participate in the load test, how they ramp up, and how many times they execute the test plan. Here are the key thread properties we need to consider:

  • Number of Threads (Users): This property specifies the total number of virtual users (threads) that will be created and run as part of the Thread Group. Each virtual user represents a concurrent user making requests to the target application or system.
  • Ramp-up Period (Seconds): The ramp-up period specifies the gradual time to load all virtual users. For example, if you have 100 threads and a ramp-up period of 10 seconds, JMeter will start 10 threads every second until all 100 threads are active. This simulates a gradual increase in the load on the server, similar to how real users might access a website or application over time.
  • Loop Count: The loop count determines how many times each thread (virtual user) will execute the test plan. If you set the loop count to 1, each thread will run through the test plan once and then terminate. If you set the loop count to a higher number (e.g., 5), each thread will run through the test plan the specified number of times before terminating.

Sample Example Loads:

Let’s consider some sample example loads to better understand these properties and their impact on our load test:

Example 1: Steady Load

  • Number of Threads: 50
  • Ramp-up Period: 10 seconds
  • Loop Count: 1

In this scenario, we start with 50 threads and gradually ramp them up over 10 seconds. Each thread runs the test plan once. This setup simulates a steady load of 50 concurrent users.

Example 2: Gradual Load Increase

  • Number of Threads: 100
  • Ramp-up Period: 60 seconds
  • Loop Count: 1

In this case, we have 100 threads, and we gradually increase the load over 60 seconds. Each thread runs the test plan once. This setup mimics a gradual increase in users over a minute.

Example 3: Continuous Load

  • Number of Threads: 25
  • Ramp-up Period: 5 seconds
  • Loop Count: -1

Here, we have 25 threads, and they all start within 5 seconds. With a loop count of -1, each thread runs the test plan continuously until we manually stop the test. This configuration represents a continuous, constant load.

These sample examples showcase different ways you can configure thread properties to simulate various load patterns and scenarios in your performance test.

By understanding and adjusting these properties, you can tailor your load test to closely mimic real-world usage and gain insights into how your AWS Lambda function performs under different conditions.

Optimising performance with JMeter and AWSMeter offers robust capabilities, but it’s important to be aware of some considerations:

Resource Optimisation: Running large-scale tests with JMeter may require significant computing resources. To address this, consider optimizing your resources by using temporary high-memory EC2 instances when conducting extensive load testing.

Realistic Simulations: Achieving realistic simulations is key to valuable test results. Ensure your test scenarios accurately mirror real-world usage patterns by investing time in thoughtful planning and, when possible, basing your test loads on historical production data.

Happy Testing.

--

--

Srinivas Nali
River Island Tech

In addition to practicing software testing, I have a strong passion for Test Automation and reading.