Is it possible to record JMeter scripts for performance testing Mendix App?
Yes it is, take a look at Load Testing Your Mendix Applications webinar
Record your test scenario using JMeter's HTTP(S) Test Script Recorder or JMeter Chrome Extension
Perform correlation of dynamic parameters
Perform parameterization of the test (i.e. credentials for different users and other test data)
Ensure that your test is doing what it's supposed to be doing by running it with 1-2 users/iterations and inspecting requests and responses using View Results Tree listener
Add more users and run your test in command-line non-GUI mode
Analyze the results using HTML Reporting Dashboard
More information: Building a Web Test Plan
Related
I create a maven project using selenium web driver in eclipse to automate one web-based application. Here I also used TestNG and the programming language Java. Now I want to integrate this selenium project into JMeter and want to do performance testing so how can I achieve this?
Although it's possible to kick off a TestNG test programmatically from JMeter's JSR223 Sampler using the code like:
TestListenerAdapter tla = new TestListenerAdapter()
TestNG testng = new TestNG()
testng.setTestClasses(new Class[] { YourClassWithTests.class })
testng.addListener(tla)
testng.run()
I don't think you will get the results you're looking for.
The main limitations are:
In general it's not advised to use Selenium for performance testing
You won't get metrics and KPIs like number of concurrent users, connect time, response time, etc.
Test will be very resource intensive as one instance of browser requires 1 CPU core and a couple of gigabytes of RAM so the resource footprint will be immense.
So I would recommend converting your Selenium tests to "pure" JMeter, you can kick off JMeter's HTTP(S) Test Script Recorder and configure your Selenium tests to use JMeter as the proxy, this way JMeter will be able to intercept the relevant HTTP requests and create HTTP Request samplers which are lightweight comparing to the real browsers and this way you will get all the metrics.
I am new to jmeter. Creating a simple script seems easy via browser actions recording. Can that be done without launching the jmeter IDE?
As per latest stable JMeter version 5.4.1 it's not possible to start HTTP(S) Test Script Recorder without starting JMeter GUI
If you cannot do this for any reason the options are in:
Use JMeter Chrome Extension
Use your browser developer tools to record your test request into a .HAR file, once done you can:
either use online conversion tool to convert .har file into a JMeter script
or manually create JMeter's HTTP Request samplers by looking into requests details in the browser developer tools. If you cannot launch JMeter GUI at this stage as well you can consider using Taurus automation framework which allows creation of JMeter test plans using YAML syntax
You need to start the JMeter proxy for recording the test and it is not possible to start the proxy through available options.
There is a number of ways available for building test plans including the HTTP(S) Test Script Recorder.
Ten different ways to build JMeter Test Plans
The recording feature can be used even for complex scripts. You will have to use/add JMeter components and configure them once the recording is done to achieve the desired user actions.
My Jmeter Webdriver sampler test is too heavy on my machine. I'm planning to use selenium grid, with selenium grid ,will it make my test more lighter? As of the moment while running my test on gui and non gui mode I'm encountering a web driver timeout , connection timeout, and an out of memory error. Will this approach help?
Have you tried to read WebDriver Sampler's documentation?
Note: It is NOT the intention of this project to replace the HTTP Samplers included in JMeter. Rather it is meant to compliment them by measuring the end user load time.
You should not be creating the main load using WebDriver Samplers, 99.99999% of the virtual users should be simulated on HTTP protocol level, WebDriver Sampler could be used only for specific use cases like OAuth login, checking client side performance, etc.
Check out How to make JMeter behave more like a real browser article to learn how to properly setup JMeter for web applications testing so it would generate the same network footprint as the real user using the real browser.
If your have a form of a strict requirement to use the real browsers - consider switching to Distributed Testing as in case of Selenium Grid you will not be able to collect samplers execution metrics precisely.
I'm new to Apache Jmeter here.
While reading user manual documents of Jmeter, I see this:
View Results Tree MUST NOT BE USED during load test as it consumes a lot of resources (memory and CPU). Use it only for either functional testing or during Test Plan debugging and Validation.
The above statement is taken from this document, just under the View Results Tree section
http://jmeter.apache.org/usermanual/component_reference.html#Save_Responses_to_a_file
I want to ask how I can use Listeners that is "MUST NOT BE USED during load test..."?
in GUI mode, Jmeter Apache.
Any suggest is appreciated.
GUI mode is only for creating & debugging your test. So, You can use any listeners you want which will help you to debug your test. Once your test is created/updated, remove/disable those listeners. When you actually do the loadtest with Jmeter, You need to run your test in Non-GUI mode. This site has really good information on using JMeter.
http://blazemeter.com/blog/jmeter-performance-and-tuning-tips
When you run in non-gui mode, you pass the argument for the location where the result file should be created. Later you can import the result file in JMeter for analysis.
I am using jmeter for load and performance testing. I am able to successfully generate summary report by using only one user as load. But, if I want to generate summary report for multiple users (say 100 users), how can I configure jmeter GUI to generate summary report?
Thanks in advance :)
JMeter doesn't care about number of users. The only thing to consider: don't use JMeter GUI to perform load test itself.
The easiest approach to use:
Configure your test as required. JMeter GUI can be used at this stage.
Run your test in non-GUI console mode as follows:
jmeter -n -t /path/to/your/test.jmx -l /path/to/test/results.jtl
After load test open JMeter GUI (even empty test plan)
Add the listener of your choice, i.e. Summary Report
Click "Browse" button and open your /path/to/test/results.jtl
Perform analysis, raise bugs, etc.
Also make sure that you're following other recommendations from JMeter Performance and Tuning Tips guide.
You have to put the Summary Report controller at the top level, just beside (not inside) the Thread Group. Otherways, its scope becomes a single thread, which is not useful.