How Azure can help you with performance tests using JMeter

This article is rather dedicated to attendees of http://www.jstalks.net/ conference. You can use this article if you do not attendee to that conference, but probably it will need more engagement from you to understand of flow this:

During this session, you will learn how to adopt Azure to do a performance test using Jmeter. In the simple script, you will launch ~10 VM with installed Jmeter that will be ready to start your performance test. We will also create simple test plan and test your site.

Jmeter – Fast track how to install it:

Just after that it will work, but for better performance, several tweaks needed (the left is the final settings, right is the default one):

jmeter.properties file:

jmeter.bat file (right are desired one):

(all files are at the end of the documents – so you can use control-c, control-v)

JMeter – Test scenario:

So the next one is to launch jmeter.bat and create your first test scenario. How to do it some links:

But do not waste time using the previous one, rzetelnekursy, modify it using copy, paste and go ahead with your first test.

Jmeter – distribute tests accrost servers:

https://jmeter.apache.org/usermanual/jmeter_distributed_testing_step_by_step.html

But do not waste time using the previous one, just create new Virtual Machine Scale Sets with the desired scale of VMs. You can use cheap Low Priority VMs for that. To install Apache Jmeter use this cloud-init script:

cloud_init

BTW: you can use this to install JMeter on Linux just copy-paste on your workstation or on any other cloud.

Reconfigure Server to launch tests on salves:

user.properties file:

  • http.connection.stalecheck$Boolean=true
  • server.rmi.ssl.disable=true

jmeter.properties file (left is desired one):

And do not allow communication with 1099 port with the server or just disable the firewall on the server.

And now you can start your distributed tests.

Debug

tail -f /root/apache-jmeter-5.1.1/bin/jmeter-server.log

“java.rmi.ConnectException: Connection refused to host: 10.0.0.6; nested exception is” – solution:

  • Check communication, firewall, etc.
  • Use names instead IP – you can use http://ssl4ip.westeurope.cloudapp.azure.com/

    And this like remote_hosts=10-0-0-4.h.com.pl,10-0-0-5.h.com.pl,10-0-0-7.h.com.pl

  • jmeter.bat file:

    Set rmi_host=-Djava.rmi.server.hostname=10.0.0.6

    set ARGS=, adding one after %rmi_host%

All config files used in this article:

allmodifiedfiles