Guy Salton is a technical expert on the whole performance testing ecosystem - load testing tools, monitoring tools, CI tools, Networking and Infrastructure. His expertise is helping with POCs and special technical projects for strategic customers. Guy talks at conferences and meetups around the world, writes blog posts and gives webinars.

Learn JMeter in 5 Hours

Start Learning
Slack

Run massively scalable performance tests on web, mobile, and APIs

Apr 09 2018

How to Load Test IPv6 with JMeter

IPv6 is the advanced version of IP, which is the address and identification system for computers and devices on the internet. Currently, most devices on the internet are identified in the network through IPv4. IPv4 is based on 32 bit addresses, represented by 4 decimal numbers with dots between them (e.g 100.15.1.17). The need to create an advanced version of IP came from the concern that the number of possible IPs would run out, with the growing number of devices on the internet.

 

As a result, IPv6 was created, and it consists of addresses made of 128 bits, represented by 8 groups of four hexadecimal digits, separated by colons (e.g AB01:C002:0000:9067:DEFA:C79G:H333:BAC1). The length of these addresses can sometimes be shortened, learn more here.

 

IPv6 provides many more IP options than IPv4. However, it seems that IPv4 is currently sufficient for internet purposes as IP addresses are often recycled. This blog post will explain how to load test devices that use IPv6, with Apache JMeter™.

 

Creating Your JMeter Script for IPv6

 

JMeter’s HTTP Request Sampler supports IPv6 out of the box. If you set the ‘Server Name or IP’ field to an IPv6 address, for example 2001:cdba::3257:9652, JMeter will automatically wrap it with brackets to match the IPv6 format for HTTP requests when sent to the server. In this case, GET http://[2001:cdba::3257:9652]/.

 

The HTTP Request Sampler:

 

jmeter ipv6 script

 

See how the request is sent in the View Results Tree Listener:

 

open srouce ipv6 testing


Of course, if your website supports IPv6 and has a matching Server name in DNS, you can simply set the ‘Server Name or IP’ field in the HTTP Request Sampler to your server name, for example: ipv6.cybernode.com/list-of-ipv6-only-sites.

 

ipv6 with jmeter

 

You can see that this server name has an IPv6 address by running the curl -6 command with the verbose option in your console:

 

curl -6 http://ipv6.cybernode.com/list-of-ipv6-only-sites -vvv 

 

load testing ipv6

 

As you can see, the system is trying to reach an IPv6 address.

 

Important: Don’t forget that in order to send an HTTP request to an IPv6 address, the machine that you are sending the request from, must also have an IPv6 address.

 

How to Set Up an IPv6 Machine with JMeter

 

If you are using a cloud provider like AWS to create your machines, you can follow its documentation to setup a VPC and Subnet that supports IPv6 addressing and then create a new machine on this VPC and Subnet. (Please note that this is not a free process).

 

performance testing ipv6

 

Once your machine is ready, you can verify that it has a public IPv6 address by running the following command:

 

ifconfig eth0 | grep "inet6 addr:"

 

running an ipv6 load test

 

The first IP on this list, which has Scope:Global after it, is your public IPv6 address.

 

Now, install JMeter on your new machine, copy your JMeter script and run the test in non-GUI mode with 1 thread for 1 iteration, just to see that you get a successful response:

 

./jmeter -n -t /home/ubuntu/ipv6.jmx -l /home/ubuntu/results.jtl

 

  • -n non-GUI mode
  • -t  JMX file
  • -l log file name of JTL file to log sample results to

 

ipv6 load testing guide

 

Great! You have now verified that you can run a load test on an IPv6 website with JMeter. Just adjust the script according your needs, and run it.

 

IPv6 Load Testing Reporting

 

But what about real-time reporting? The good news is that BlazeMeter supports IPv6!

 

Just follow the instructions in this article to install a BlazeMeter Private Location agent on the machine that you configured the IPv6 address on, and you should see a new agent on the ‘Private Locations’ section in your BlazeMeter account:

 

ipv6 jmeter tutorial

 

You can now create a new JMeter Test in BlazeMeter, upload the JMeter script that you created and choose the new Private Location that you installed as the location:

 

step by step jmeter ipv6 testing

 

That's it! You can now run your IPv6 load test in BlazeMeter and get real-time reporting and all the other BlazeMeter features like workspace collaboration and the ability to share your tests with non-technical audiences. To learn more, request a demo, or put your URL in the box below and your test will start in minutes.

 

ultimate guide for ipv6 testing

Interested in writing for our Blog?Send us a pitch!

Your email is required to complete the test. If you proceed, your test will be aborted.