Part of the HTTPS response is changing on every session - jmeter

I have a HTTP response code. A part of it was changing with application upgrade, so I have created a variable for this and changing the variable after each upgrade and so that it will be automatically updated throughout the JMeter script.
Language|aB5U0Easj5xXnirzSu4eYyOxICkTU9uEgH4TPx/A++/hc6XBB3sgFdHmvXLriQxFq9RCj4T1Zq+fvzXouImGRIc93NkzkPUEMR1xqwMipVw4A4jJRruIBoLQ6SnP6JfOM3O7M0fV2bhJEHuRAoI04WmYI5eRfNCZhvG9e6Ye9h/8qyk8YRCMRfSjqaA1aZKAXPv1yYPFYXej+WDAt8L82LY/jW3URLc7LLDz/da87CZi3MLJgwRJvjhwB1fBu1Wp4mIR0e79ipNeGJyYY7ADxir0r9cYP611NTj+WF4tR5P7/epeDgexHXpuI/o2+q+vaALUn4+QikI+8KtSi5zE0g9oMJ39o/MIWpJIRAr0p4WmUoROB+6nTyNPG0MZaxKkuboD/7c/mdWzDOeB4eBOljGQpwg1PB53eWrSQJ8Gf7utR05sMOe87worG8lm34oAVlU/H32JzY82ig==
The above is the part which is changing and I have created a Variable as Language. And everything is fine till now.
Now, I am facing a new problem after upgrading my application. This variable is changing with every new login, because of this was unable to run the load test. It is giving me the following error.
java.lang.IllegalArgumentException: Error while decrypting message, close tab or re-login
Can someone came across similar issue or if anybody has some idea how to solve this. Please help me !!

So basically you are doing what is known as a "Correlation". The error you are getting is mostly related to correlation. when you are replaying the script, you are using dynamic value from the recording script which is expired.
Check the following:
Have you replaced all the changing values in the scripts with your variable? Maybe you
missed some parts. Some values could be in a request url or in a body data of a Post
request.
Check for other values that are changing, sometimes you will have many values to be
correlated, not just one (ex. JSessionID, CSRF token and ...)
What tool you are using to search for dynamic values and their locations? You can use
JMeter response to check for dynamic values but it is easier if you use Fiddler or if
you know LoadRunner, you can use its scripts comparison capabilities.

Related

Jmeter 5.4.1 failing for 500 response - Internal Server Error - while trying to login

I have recorded script by using Blazemeter. It worked fine for the first day. Now when I am running the same jmx file, it gives me Response code 500.
Please help me to understand what I did wrong.
Sampler Result:
This is how my parameters are posted at login.
BodyData tab does not open for me.
Login parameters:
When you say that it ran successfully yesterday and today it is failing, there is some parameter like session / token that was valid for like 12 hours / 24 hours and now it has expired. You will need to identify that and parameterize it. I cannot help you much right now as I don't know what is that variable value and how does it differ each day. Perhaps checking with developers will help.
It seems you're trying to test a secure web service and most probably there is a current timestamp included somewhere in your request body so the request was passing when it was more or less "recent" and after some time the request became invalid due to expiration.
I cannot state where exactly the problem is and how to fix it by looking at partial screenshot so I can give you only a generic piece of advice: consider using WS-Security Plugin for JMeter for adding the relevant SOAP header containing up-to-date information like timestamp and eventually a signature.
More information: Running SOAP WS-Security Load Tests in JMeter

Not getting proper response in the tree table after performing login scenario using JMeter

I just started to use JMeter with the tutorial (for a sample website), which returns clear response data.
But, when I started to use in one of my projects, I saw the response was encrypted in View results in tree.
So can anyone provide solution for it? This was the response i was getting
I doubt you haven't check marked 'Use this proxy server for all protocols' while creating manual proxy configuration. By checking/ ticking that check box it will allow you to record the scenarios and also it gives you a proper response.
and I also doubt that you are getting proper server name. By doing the above step it will solve your problem

Post Request is too large in jmeter

Facing the issue while developing the performance script for salesforce application. The issue is, one of the apexremote post call is too large in size. Jmeter is getting hanged if i am trying to click that particular request. Even if I manage to enhance the post request somehow the cursor is not going to end of the line. Hence at the end of the line there is one CSRF which I am not able to correlate. This is only happening for only one apex post request. Because of this my orders are getting rejected while provisioning. I tried by increasing my heapsize in jmeter.bat file but no help.Searched in google but didn't find related queries. I tried the same thing with neoload and I was successfully access and enhanced that particular request.
Has anyone experienced ever! How to resolve this.
Please HELP!
1.Basically for that you need to be Patience after clicking on the request and when the request populate properly copy that post data into notepad++for correlation purpose.
2.Or other solution is Open the .JMX directly into notepad and from there copy the post data into other notepad++ instance and form there with some manipulation you can do correlation.
3.Hope you already changed the property "view.results.tree.max_size=0" in "jmeter.properties" file because may be for next correlation you will get the message like "Response data is to Large".
I had also faced the same issue several times in past, so in that case just copy the complete post body and paste it into notepad++ and modify the content there instead of modifying in jmeter itself, then paste the content back to jmeter and execute it.
This will resolve your issue but have patience while clicking on http request to copy the post body because it'll take some time to open the request properly
I have found out the solution for the very big request for which meter is getting hanged. The best solution is to take the request from the html body of the view result tree listener for the recorded original one and paste in the payload of a new sampler. Then add it in appropriate place accordingly. We can also keep a raw request and make the correlation changes there itself instead of messing around in the big request payload.

Data entry through Jmeter not reflected in UI of application

I'm using Jmeter to perform load test on Moodle application
I followed the below steps to replicate a simple "add company " test scenario
1: Recorded the browser actions through HTTP Test script recorder and created a test plan with thread user of 1
2: Added HTTP Cache Manager,Added regular expression extractor for retrieving dynamically generated session for login HTTP request.
For Http request of adding new company, addded user parameters containing new company name
I run the test, everything seems ok in the view results tree- response section (response code: 200,response message:OK), all the required variables are passed in the HTTP POST
PROBLEM: New company added through Jmeter test is not reflected in UI of the moodle action
Can any of you please let me know
Is there something I could be missing or anyway I can debug the problem?
P.S: I'm new to Jmeter and looked around a lot for data inputted through Jmeter not being displayed in the UI of the web application,dint find useful results.
The answer to questions of this sort is almost always that you missed some necessary dynamic value besides session ID which you did catch.
An HTTP200 response just means the server returned a "good" response. Which could also happily contain an error message.
I would check the actual html body of the returned response for any errors. Checking the log on the server side can give you clues to what went wrong sometimes. You should also try adding a cookie manager.
Run your test with 1 virtual user in GUI mode with View Results Tree listener enabled and inspect responses to see where your scripts fails. My expectation is that you simply cannot log in.
See Moodle-JMeter-LoadTest.jmx file for reference, it uses XPath Extractor to get session key and course id.
I don't think you can test using JMeter. Try JUnit Test cases instead http://jakarta.apache.org/jmeter/usermanual/junitsampler_tutorial.pdf

Need to debug recorded jmeter script

I recently recorded a test script in Jmeter intended for use as a load test script (using this handy set of instructions. The recording itself worked great and I even figured out how to grab and parametrize the session ids and timestamps. However, if I run the recorded steps just as they were recorded some of them don't work -- they generate "500--Server encountered and internal error ...nested exception is java.lang.NullPointerException" The failing steps are all Ajax calls that populate sidebar elements. If I copy the request GET call (Request tab, ViewResultsTree) and paste it into a browser I get the exact same error. Do I need to record my script differently, or hand-code the ajax calls? Other, earlier steps work correctly and send the expected POST data, so it isn't the application under test or forgotten proxy settings. Currently running against Firefox 3.6.10
Any suggestions on how I can debug this would be greatly appreciated.
The first thing I'd do is determine if the java.lang.NullPointerException is happening on the client side (JMeter) or on your server. If it is happening in JMeter, than something is terribly wrong with either your script or with JMeter.
But assuming that the error is encountered on your server, then looking into the cause of the exception may shed light on what is wrong with the request issued by JMeter. Do you have access to the code where the exception is thrown?
I would also recommend comparing the request in the recording with the request that generated the error. You may need to determine which parts of the request are session-specific and ensure those fields are populated correctly.
It sounds like Jmeter isn't executing the AJAX calls, and this can be fine depending on your site. Can you simply do an HTTP request to get the pages the AJAX calls populate?
I would recommend reading this post, as it looks pretty good.
I've seen that situation caused by a few things:
a page is required to load and be cached BEFORE making the failing request;
the failing page needs to automatically redirected to work properly;
the failing page has sub-requests JMeter failed to record. Devs can help with this.
Hope this helps.

Resources