When you choose to install JMeter using Homebrew you may find yourself a bit lost with JMeter configuration files and ask yourself: “What is the location of the configuration files now?”
To make it easy for you to find the folders please see below the mapping for the folders in the Standard JMeter vs Homebrew installed JMeter table.
Configuration item
Standard JMeter
Homebrew installed JMeter
Configuration/bin folder
<jmeter home>/bin
/usr/local/Cellar/jmeter/5.3/libexec/bin/
Library folder for plugin dependencies
<jmeter home>/lib/ext
/usr/local/Cellar/jmeter/5.3/libexec/lib/
Plugins folder
<jmeter home>/lib/ext
/usr/local/Cellar/jmeter/5.3/libexec/lib/ext
By using the location from above you will now be able to:
edit user.properties / jmeter.properties file in “Configuration/bin folder”
LoadFocus is cloud Performance, load and stress testing tool which provides the infrastructure and the ability to run all these tests in less than a few minutes, keep history of the results, compare different runs to inspect performance improvements or performance degradation.
LoadFocus is cloud Performance, load and stress testing tool which provides the infrastructure and the ability to run all these tests in less than a few minutes, keep history of the results, compare different runs to inspect performance improvements or performance degradation.
Why is Apache JMeter very slow when creating and running load tests?
If you just downloaded and opened Apache JMeter and the UI it feels very slow, here are some items you can follow to make Apache Jmeter GUI move faster.
Increase the Apache JMeter Heap Size
Apache JMeter is a Java application, this means you have to increase the Java Virtual Machine initial heap size and maximum heap size
The easiest way to increase the heap sizes is to edit the jmeter.bat file and add the following line:
set HEAP=-Xms2g -Xmx2g -XX:MaxMetaspaceSize=1g
Save the changes made in the jmeter.bat file and restart JMeter. Now creating jmeter test scripts will feel much faster.
Run your JMeter load test in non-GUI mode
More details on how to run your JMeter test in non-GUI mode can be found here, however here is a quick example:
Most likely you don’t need the listeners during test execution, so you can easily disabled them by pressing Ctrl/Cmd + T and have the disabled during the test run.
Monitor machine resources CPU, Memory, Network
You can easily monitor the resources of the machine where JMeter load tests are running upon by using a plugin: JMeter PerfMon plugin. Check more details on how to install JMeter plugins in our other post.
By now, your JMeter test creation should feel much faster and your non-GUI performance tests should behave better.
Update Java to the Latest Version
Check which version of Java you have installed on your machine, for Mac users you can check by typing in the terminal the following command:
With JMeter Cloud Load Testing Tool from LoadFocus, you can upload your Apache JMeter test scripts (.jmx files), run and analyse JMeter results from multiple world locations, everything in an easy to use UI.
A lot of times you will need to install some extra plugins that will help you in developing or running the performance tests. For this you will need to use the JMeter Plugins Manager.
Below are the steps needed to install the Plugin Manager and install extra plugins:
Install Apache JMeter ( if you have not already installed JMeter for development please check how this is done in the following blog post: How to install Apache JMeter on Mac)
Once installed start JMeter by running:
jmeter (from command line if installed with Homebrew)
sh jmeter.sh (from command line if installed from the archive)
Check if you have Plugins Manager installed by clicking on the Options menu – see below image:
Apache JMeter Plugins Manager
If the Plugins Manager is not installed you need to install it by downloading the Plugins Manager JAR file and put it into JMeter’s lib/ext directory. Then start JMeter and go to Options menu to access the Plugins Manager.
Once installed the Plugins Manager menu item should appear
Select which plugins you need to install and start testing
Intall JMeter Plugins
For installing or updating plugins click on Options -> Plugins Manager; clicking on menu item will bring up the plugins manager dialog
LoadFocus is cloud Performance, load and stress testing tool which provides the infrastructure and the ability to run all these tests in less than a few minutes, keep history of the results, compare different runs to inspect performance improvements or performance degradation.
With JMeter Cloud Load Testing Tool from LoadFocus, you can upload your Apache JMeter test scripts (.jmx files), run and analyse JMeter results from multiple world locations, everything in a easy to use UI.
When starting with Apache JMeter for performance testing the first step you need to take is to install JMeter on your development machine so that you can develop the test scripts.
For installing JMeter on Mac machine you have a couple of options:
Installing JMeter via Homebrew
Installing JMeter by downloading the archive with the latest release
Installing JMeter via Homebrew
In case you do not know what Homebrew means, we can say just that is a package manager for macOS. (For more information on how the set up Homebrew you can find on https://brew.sh/. )
Installing JMeter using HomeBrew involves the following steps:
Open a Mac terminal where you will run all the commands
Check to see if Homebrew package manager is installed on your Mac. For that please run:
brew help or brew -v
If Homebrew is not installed, you can easy install it using the following command:
Use LoadFocus, cloud testing platform, to run load tests and JMeter load tests in less than a few minutes, keep history of the results, compare different runs to inspect performance improvements or performance degradation.
With JMeter Cloud Load Testing Tool from LoadFocus, you can upload your Apache JMeter test scripts (.jmx files), run and analyse JMeter results from multiple world locations, everything in a easy to use UI.
Cypress is one of the best web testing frameworks created so far.
With more and more new web development frameworks on the market, it’s harder and harder to find an end to end testing or integration testing framework that would work well in any situation.
In the recent years, we’ve seen a spike in web development frameworks, from Angular 1 or Angular 2, to the more popular React and VueJs, to new one like Svelte, and less popular like EmberJs and BackboneJs.
What do all these frameworks have in common? They are written in JavaScript, more recently most of the started supporting type-checking through TypeScript.
All along, developers and especially testing engineers, have been looking for web testing framework to satisfy their needs for their web application. Some of the options that I’ve personally tried are Selenium with WebDriver, Puppeteer, TestCafe and Cypress.
Most of these frameworks come with out of the box click and record functionality, which allows you to get started in a matter of minutes and create your first end to end test with assertions in no time.
Check the following video screencasts courses on how to get started with Cypress, TestCafe or Selenium WebDriver:
However, these click and record tools are nice and fun to work with, but long term, personally, I prefer writing tests on my own in an IDE, coding for complex test scenarios.
Let’s try to understand a more complex scenario. Suppose we need to test the “Change Password” functionality, inside our own application (authentication required), which is a very common scenario.
Our test will need to:
make an API call to get an Auth token (JSON Web Token) with a predefined user
add the token to the current session’s cookies (or local storage)
open the Change Password page
successfully change the password
check that your current session is not valid any more (session invalidation works as expected)
check that the new password works as expected (through API and/or Login Page)
check that the old password is not valid any more
This is a typical scenario where using a click and record tool might not be as useful, since you need to be able to store multiple account types for login, make the API call to login (you could use the UI, but this might be slower), store the auth token in the current session, the do the actual test and make all further assertions.
For this type of scenario, personally I would choose from two web testing frameworks: Cypress and TestCafe, they both come with pros and cons, please see full list here.
With Cypress, you can better mimic the UI interaction from a user’s perspective, whereas TestCafe has a similar JavaScript flow, where you extract the values you want to assert and can run assertions and manipulate data better with asyncs/awaits.
Since Cypress comes with a different approach on how write end to end and integration tests, I would say Cypress has a higher learning curve comparing to TestCafe.
It’s up to you which frameworks you decide to use, to better fit your needs and your team skills. Hope these frameworks will continue to evolve and make it easier and less error prone to write new tests and deliver high quality applications to end user with less and less critical issues.
LoadFocus is cloud Performance, load and stress testing tool which provides the infrastructure and the ability to run all these tests in less than a few minutes, keep history of the results, compare different runs to inspect performance improvements or performance degradation.