Response message: Unauthorized in Jmeter - performance

I'm new to using Jmeter tool.
I have recorded my application using blazemeter (v3.1) and then trying to run that .jmx file in Jmeter, however I am running into an authorization issue and the script fails to run.
I have also tried setting my "HTTP Authorization Manager" with username, url, password but it does not help. If anyone can, please guide me on this Issue. Thanks.

As per 4 Things You Should Never Do with Your JMeter Script article:
Don’t run the script exactly as you recorded it
After recording your script, there is still some work to do before you run it. It’s necessary to correlate variables, parameterize and add elements, to faithfully simulate users.
There are too many ways of possible authentication implementation in your application, most probably you need to send some dynamic value along with credentials which can be fetched from the previous request.
Record your test scenario 2 times and compare recorded requests. Be careful as differences might be in response headers and URL, not only in response data. It makes sense to add View Results Tree listener directly to HTTP(S) Test Script Recorder - this way you will be able to see what data is captured by JMeter and amend its configuration so simulated request would look exactly like the request from the real browser.

Related

Unable to get right jmeter response

I have a post request and the response is success
Initially, I was able to execute the jmeter script and get the correct response but from today Im getting the below issue while testing a portal even though there is no changes made in the portal.
Im not understanding were am I going wrong. Kindly help me
Most probably you recorded your test using HTTP(S) Test Script Recorder and the recording included some hard-coded Cookie or Token
Initially it was working because the Cookie or token was active and "today" is expired and cannot be used anymore.
Basically it means that your script is missing correlation, you need to:
Identify the dynamic parameters used in your test
Use suitable JMeter Post-Processors to extract them into JMeter Variables
Replace recorded hard-coded values with the JMeter Variables from the previous step
See Advanced Load Testing Scenarios with JMeter: Part 1 - Correlations article for more information and examples if needed.

I have to login with multiple users and like or dislike the post using JMeter

My website is like Facebook. I need to login with multiple users and like the post from all the logins. Now using JMeter i can able to successfully login with multiple users but i can't like it from all the logins.I have recorded the script to like the post from one login. Please assist how can i achieve this. I am attaching my HTTP Request below.
Normally "like" is a HTTP Request which should be implemented via the HTTP Request sampler so you need either create the relevant request manually or simply record it using HTTP(S) Test Script Recorder
Once done you might need to perform the correlation - the process of identifying dynamic parts of the requests, using Post-Processors to convert the values into JMeter Variables with the recorded hard-coded values with dynamic variables.
Check the request and response details using View Results Tree listener and if you're happy with what your test is doing you can start adding more virtual users to check how does your application under test behave under the load.

Unable to get security token for Jmeter

I am trying to do some basic performance testing on an app I look after.
I am using Jmeter and done the steps recorder and the same as following Jmeter tutorials on youtube, but I am getting stuck when I need put the variable into the X-CSRF-Token
The issue is I cant find X-CSRF-Token in the captured steps. Is it using some other form of authentication? Any suggestions for me as to other methods would be great.
If the post doesn't make much sense, I don't really have an in-depth knowledge of Jmeter or testing.
To find where the token appeared:
clear browser history
record your scenario using jmeter recording template
then in the view result tree located un HTTP(s) Test Script recorder, use the search field to find the first response in which it appears. You’ll need to add an extractor in the corresponding sampler
you ‘ll then be able to inject it using ${varName}
Depending on your server configuration this X-CSRF-Token can come in:
In the response HTML body
In the response headers, inspect HTTP Header Manager for any hard-coded values
As a HTTP Cookie (which is basically a header as well, however it will be much more convenient to get it from the HTTP Cookie Manager rather than from response headers)
So make sure to inspect all the tabs of the first request in the View Results Tree listener as this X-CSRF-Token guy can hide anywhere.
You can try an alternative way of recording a JMeter test, it can export test in "SmartJMX" mode with automatic detection and correlation of any dynamic parameters including but not limited to CSRF tokens so theoretically it can make your life easier, check out How to Cut Your JMeter Scripting Time by 80% guide for more information and technical details.
If you need further help you will have to provide more details, like full dump of 2 requests along with responses. You can use a sniffer tool like Wireshark or Fiddler to capture it.

Why there is difference in test and data interaction speed when use API vs jmeter recording

I have a login function in website. I have tried 2 things to create load testing plan :
Record login scenario using jmeter and complete load test
Use login API, configure in Jmeter and complete load test
I realize that 2nd option from above is faster than 1st when running load test? Can anyone help me to understand why?
Well-behaved test should simulate end-user behaviour as close as possible, so basically you have at least 2 requests:
Open login page
Perform login
In addition when mimicking real browser you have to deal with a lot more data, i.e. complete HTML response, JavaScript, CSS, images, etc.
In case of API you have only one request consisting of username and password and one small response indicating whether login attempt successful or not.
I believe load test should be as close to reality as possible so I would recommend 1st option. Make sure that you add the next test elements to your Test Plan:
HTTP Cookie Manager
HTTP Cache Manager
HTTP Header Manager
and follow recommendations from How To Make JMeter Behave More Like A Real Browser guide for detailed instructions.

Save response from certain WEB resources while recording scenario

I need to create scenario for user interaction with single-page WEB application. The application does lots of AJAX calls in order to authenticate user and get user data.
So I created simple scenario with HTTP Test Script Recorder and tried to record my script.
Everything went well, however I noticed that whilst request data is recorder properly, the response data is not recorder at all. I tried to enable Add assertions and Regex matching - but that didn't work as well.
Can you please advice how do I record response texts as well?
View Results Tree under proxy will record request, responses during recording.
This is useful to understand where a dynamic field comes from. This will help your find from which response X you need to extract data to inject in request X+N.
I think you may find this option useful to add in user.properties:
proxy.number.requests=true
This will give a number to each request and corresponding sampler so you will be able to find response for the request.
Once you have done this, you will start adding Post Processors (Regex, CSS/JQuery, XPAth ...) to Sampler X to extract data from its response.
This will create variables you can then use as ${varName} in request X+N.

Resources