Try EMQX Platform on Azure, Enjoy AI Integration and Simplified Billing →

XMeter 3.3.1 Release: Accelerating MQTT Performance Testing with Automated AWS Terraform Deployment

XMeter Team
Jul 22, 2023
XMeter 3.3.1 Release: Accelerating MQTT Performance Testing with Automated AWS Terraform Deployment

Introduction

We are excited to announce the release of XMeter 3.3.1, a comprehensive performance test platform explicitly designed for IoT applications. With an emphasis on scalability, flexibility, and ease of use, XMeter 3.3.1 revolutionizes how you test and optimize the performance of your IoT systems.

In this blog, let's delve into the enhanced deployment options and improved usability that makes XMeter a game-changer in MQTT performance testing.

The Challenge of MQTT Performance Testing

The challenges of IoT performance testing stem from the rapid growth of IoT devices, the increasing scale of systems, and the adoption of advanced technologies like cloud computing, big data, and microservice architecture. IoT platform providers face the following challenges in ensuring stable and acceptable performance:

  1. Rapid Iteration and Delivery: Testing performance becomes challenging with the need for rapid development and delivery cycles. Ensuring stability and acceptable performance during rapid iterations requires efficient testing methodologies.
  2. Scalability: As IoT systems scale up to accommodate more devices, testing their performance under increasing loads becomes crucial. A system's scalability is essential to maintain performance standards.
  3. Massive User/Device Access: IoT systems are often accessed by a massive number of users and devices simultaneously. Testing the system's performance under heavy load scenarios becomes critical to ensure optimal performance and user experience.

How XMeter Accelerates MQTT Performance Testing

XMeter is designed to tackle these challenges and provide reliable performance insights for IoT applications.

  1. Cloud-Native Performance Test Platform: Its architecture is optimized for scalability, flexibility, and efficient resource utilization in cloud environments. By leveraging cloud infrastructure, XMeter provides a streamlined and scalable solution for conducting performance tests in IoT scenarios.
  2. Large Scale of Concurrent Testing: With the ability to simulate a high volume of concurrent users and devices, XMeter enables you to accurately assess the performance of your IoT systems under real-world scenarios.
  3. Based on Apache JMeter: XMeter is built on top of Apache JMeter, a widely adopted open-source performance testing tool, and thus inherits its robust performance testing core.
  4. Real-Time Test Data Collection and Display: XMeter leverages a big data architecture to collect and process test data in real-time. This architecture enables XMeter to efficiently handle and analyze large volumes of performance data generated during testing.

XMeter architecture

XMeter architecture

Automated Deployment on AWS with Terraform

Terraform is an open-source infrastructure as code (IaC) tool developed by HashiCorp. It allows users to define and provision infrastructure resources in a declarative manner using simple and human-readable language.

XMeter 3.3.1 integrates automated deployment on Amazon Web Services (AWS) through Terraform. This powerful combination enables you to provision and deploy XMeter instances on AWS infrastructure with minimal effort.

XMeter Terraform Code for AWS

In XMeter 3.3.1, we defined the AWS provider in our AWS Terraform code:

provider "aws"{
  access_key = var.access_key
  secret key = var.secret_key
  region     = var.region
}

resource "aws_eip" "asteroid" {
    tags = {
        Name = "xmeter_asteroid"
    }
}

resource "aws_instance" "asteroid" {
  ami           ="ami-024e6efaf93d85776"
  instance_type = var.instance_type
  subnet_id     = aws_subnet.subnet.id
  vpc_security_group_ids = [aws_security_group.public.id, aws_security_group.asteroid.id]
  private_ip    = var.asteroid_private_ip
  key_name      = "xmeter-containerization"
  associate_public_ip_address = true
  root_block_device {
    delete_on_termination = true
    volume size = 30
    volume_type = "gp3"
  }
  tags = {
    Name = "xmeter _ctz asteroid"
  }

  provisioner "remote-exec" {
    inline = [
      "sudo hostnamectl set-hostname xmeter-asteroid",
    ]
  }
}

One Click to Deploy XMeter on AWS

  1. Update the public/xmeter/testenv.properties file, and fill in the prepared email account information and SMTP mail server information.

    public/xmeter/testenv.properties

  2. Update deployment parameters in the terraform.tfvars file.

    Update deployment parameters in the `terraform.tfvars` file.

  3. In your command line terminal, go to the directory where the main.tf file is located, first execute export ALICLOUD_ACCESS_KEY="<access_key>" and export ALICLOUD_SECRET_KEY="<secret_key>", and then initialize and apply Terraform.

    $ terraform init
    $ terraform plan
    $ terraform apply
    
  4. Terraform will apply XMeter deployment on AWS.

    Terraform

  5. Enter YES, then you will see the XMeter can be deployed on AWS automatically;

    Enter `YES`

  6. Now, you can log in to XMeter console to start your IoT Performance test!

    XMeter console

By leveraging the power of AWS, you can dynamically allocate resources, ensuring that your performance tests accurately simulate real-world scenarios. Whether you need to test a few hundred or millions of concurrent users/devices, XMeter has you covered.

Conclusion

XMeter 3.3.1 is revolutionizing IoT performance testing, empowering IoT platform providers to deliver seamless performance and optimize their applications. With enhanced deployment via supporting Terraform on AWS, XMeter 3.3.1 provides a robust framework for unlocking the true potential of IoT systems. To experience the power of XMeter 3.3.1 and learn more about its capabilities, please visit our official website.

You can also explore the Open MQTT Benchmark Suite presented by EMQ to evaluate the scalability and performance of MQTT brokers. It is fully open to the community with typical and practical use cases, primary metrics for measuring broker performance, and a tool to simulate loads and collect benchmark results.

Join the growing community of IoT platform providers who are harnessing XMeter to elevate the performance of their applications and drive unparalleled user experiences.

Try XMeter Cloud for Free
A fully managed MQTT load testing service
Get Started →