Skip to main content

Website Load Testing with Apache JMeter

I was exploring different load testing tools in order to make sure that the Ethics Canvas platform would resist peaks of up to 100 users signing in every 10 seconds, when I came across Apache JMeter.

JMeter is a robust Java-based open-source tool that allows users to test performance both on webservices, web dynamic languages, Java Objects, databases and queries, FTP servers, etc.


Running JMeter (Linux):
  1. Download Apache JMeter
  2. Extract the content from the compressed file
  3. From the Terminal, navigate into the apache-jmeter/bin
  4. Type ./jmeter and it will open the Java app (make sure you have Java installed)


Running load tests on Ethics Canvas:
  1. Right-click on Test Plan -> Add -> Threads -> Thread Group
  2. On Number of Threads we enter the desired number of users: 100
  3. On Ramp-Up Period we enter the desired test duration: 10
  4. Right-click on Thread Group -> Add -> Sampler -> HTTP Request
  5. On Server Name we type ethicscanvas.org
  6. On Path we type our sign-in file: /php/log-in.php
  7. On Send Parameter we add the email and the password
  8. Right-click on Thread Group -> Add -> Listener -> View Results in Table
  9. Click PLAY and the test will start, populating the table with the results


Understanding the results:
The most important factors are the average sample time (response time), deviation (from the average response time) and the status of all the responses (no errors). In our case, with an average of 2.2289 seconds from a mobile data connection, we can say we have passed the test.

It is worth looking for unusual values in latency and connect times. Always start with light-weight tests, and gradually increase the number of threads and reduce ramp-up period to know your limits. You might want to try as well from different Internet connections (mobile, wifi, remote,...) and never from localhost (unless it's only used internally).

Popular posts from this blog

How to jump to time offsets in HTML5 video

Let's say that you have a 30-minute WEBM video file, from which you just want to play the following video segments , jumping from one to the other automatically  without interruptions : [00:01:25.00 - 00:02:25.00] -> from second 85 to 145 [00:11:40.00 - 00:11:55.00] -> from second 700 to 715 [00:20:26.00 - 00:21:07.00] -> from second 1226 to 1267 [00:26:11.00 - 00:28:01.00] -> from second 1571 to 1681 To increase the complexity, let's think that you have these video segments in a PHP variable $arrayVideoSegments  (normally the case if they were retrieved from the database).   $arrayVideoSegments[0]->startTime = 85   $arrayVideoSegments[0]->endTime = 145   $arrayVideoSegments[1]->startTime = 700   $arrayVideoSegments[1]->endTime = 715   $arrayVideoSegments[2]->startTime = 1226   $arrayVideoSegments[2]->endTime = 1267   $arrayVideoSegments[3]->startTime = 1571   $arrayVideoSegments[3]->endTime = 1681 The fo

5 learnings from a techie turned into a NFT artist

In September 2021 I chose to sell my crypto AI art business after two enriching (and often painful) years as a part-time sole founder. Today  AImade.art  is one of the best-selling AI art collections on Opensea . I want to share with you some of the key lessons I learned during this period: Work hard and get lucky.  And I got really lucky. On February 24th 2021 I had planned to shut down AImade.art , back then a business selling AI Art printed on canvas. I was discouraged after several months with no sales and my Shopify billing cycle was ending that day. Then something incredible happened: I missed the Shopify deadline and I sold an artwork one hour later. The buyer asked me: " Can I get it in as an NFT? ". I had absolutely no idea what an NFT was, but after a bit of research I found the concept so interesting that, two days later, I had pivoted the entire business to  NFT art made by AI . Sales started to pick up: I had finally found product-market fit . Impostor syn

Microsoft will soon launch a feature to schedule chat messages on Teams

In 2021 I wrote an article  where I shared why I started scheduling my emails and the positive impact this easy action has had on the wellbeing of the recipients and on my own work-life balance . However, one of my frustrations is that, as of today, it is not possible to schedule chat messages or posts on Microsoft Teams. Have you ever received a push notification on a Friday evening  from a non-urgent message that could have easily waited until Monday? Yes, you know what I am talking about! The good news is that Microsoft is currently working on this feature, and it is expected to be released in July 2022 , as we can see on Microsoft's roadmap . It was back in June 2019 when this useful functionality was first proposed on Microsoft Tech Community . It soon gained many supporters that pushed it through the approval channels. I can't wait to start using this!