Invalid postback or callback argument error in JMETER response Data - jmeter

I recorded a .net application using JMETER. After correlating and playing back it throws the below error. I have seen few posts which says eventvalidation has to be set false. Is there any other way to get rid of this error in Jmeter?
505|error|500|Invalid postback or callback argument.
Event validation is enabled using in configuration or <%# Page EnableEventValidation="true" %> in a page. For security purposes, this feature verifies that arguments to postback or callback events originate from the server control that originally rendered them.
If the data is valid and expected, use the ClientScriptManager.RegisterForEventValidation method in order to register the postback or callback data for validation
I have used added Regular expression extractor for all the VIEWSTATE and EVENTVALIDATION. However i am still getting this error.
Could you please help me in this.
Thanks in Advance
Theju.

Most probably your Regular Expression Extractor for the EVENTVALIDATION is failing to extract the value. Please double check the relevant variables using Debug Sampler and View Results Tree listener combination (see How to Debug your Apache JMeter Script artice for comprehensive information on JMeter scripts troubleshooting) to ensure that they are extracted and have non-default values.
The other point is that due to ASP.NET web applications specifics you need to extract these values from each and every request, if you do this for 1st request only - the second will be successful, but the 3rd and all further will fail.
References:
Understanding ASP.NET View State
ASP.NET Event Validation and “Invalid Callback Or Postback Argument” : Part II
Page.EnableEventValidation Property

Related

JMeter: CSS Extractor transfers wrong __VIEWSTATE-value to the Login Page

I am trying to log in into a ASP.NET website and can not transfer the right __VIEWSTATE to the Login Page. I am trying for hours now and cant seem to find what Im doing wrong.
Problem:
I have a start page where the VIEWSTATE is created and have to pass it to the login page where i then
First I added a CSS Extractor with following configuration:
[CSS-Config][1]
[1]: https://i.stack.imgur.com/rArRE.png
Then I referenced the variable in the next sampler:
[Login Page Sampler][2]
[2]: https://i.stack.imgur.com/jhroP.png
When I run the Testplan I get a different __VIEWSTATE in the Login Page.
The ViewState from Debug Sampler - Tree View Listener:
[Debug Sempler][3]
[3]: https://i.stack.imgur.com/gwXwb.png
Listener-Tree Start Page:
[Start Page][4]
[4]: https://i.stack.imgur.com/FP0Mr.png
Listener-Tree Login Page:
[Login Page][5]
[5]: https://i.stack.imgur.com/6p0dV.png
It's hard to say what's going on without seeing your test plan, most probably you're getting different values for your ${View} variable due to this CSS Selector Extractor scope including more than one HTTP Request sampler so the value gets overwritten somewhere somehow so first of all I would recommend getting familiarized with JMeter Scoping Rules concept. In short words:
If you place the Post-Processor at the same level with several samplers - it will be applied to all the samplers
If you make the Post-Processor a child of a single sampler - it will be applied to this sampler only
You need to correlate this __VIEWSTATEGENERATOR value as well
Make sure to add HTTP Cookie Manager to your test plan and if you did already double check that it sends all the cookies which are being sent by the real browser

Unable to pass Jmeter recording test when running the test in real website- one section get fail?

I want to do load test as well as performance test a website and I have recorded user step by step action through jmeter recording by proxy setting. And when I run this recorded test it gets passed all the sections except one section.
During recording steps, it gets filled all the required fields like POST, GET, PATH etc by default as well as like token, session id etc in the HTTP header manager. When user login again its get unique session id and token through Regular Expression Extractor. But my test gets failed when the user wants to accept a task it says unauthorized. I have attached screenshot.
This image showing all the steps user will do from login to logout.
Here steps 2.9 section gets fail.
Here its showing the response from the server.
Please let me know where am I doing wrong.
There are multiple possible issues with your test:
Location of the Regular Expression Extractor and other Post and Pre-Processors. According to JMeter Scoping Rules they are applied to all your Samplers so please double check if this is something you're looking for. If you want to apply the Post-Processor to a single sampler - you need to move it to be a child of the particular sampler
Since JMeter 3.1 it's recommended to use JSR223 Test Elements and Groovy language for scripting so consider converting your Beanshell test elements into JSR223 ones
Since JMeter 3.0 there is JSON Extractor which you should be using instead of the plugins
In general HTTP status 401 means Unauthorized so double check that your test is doing what it is supposed to be doing using View Results Tree listener. You might also want to double check JMeter Variables values using Debug Sampler as it might be the case that the variables are being overwritten with something you don't expect due to the aforementioned Scoping Rules potential issue

Jmeter: Issue with Response Data (HTML) and Is my script Functional?

I am using Jmeter(2.3.2) to create script for one of my application with a scenario which has flow for 4 to 5 pages. I have recorded the script using HTTP Proxy Server. The scripts has been generated successfully under Thread Group >> Recording Controller.
After running the scripts (Threads- 1, Ramp Up period - 1, Loop Count - 1 ), below are the observations I noted in View Results Tree:
The Result Tree view shows all as Checked(Green) - OK
The Sample result for all screens shows Error Count as 0 - OK
But in the response tab when I try to view the results by using 'Render Html' response data - the response data shows the same response for all the requests.
I am getting the response data of the first request for all the other requests.
I am not sure, whether the Jmeter script generated is functional or not? What is the cause for getting the same response data for all the requests?
Please, can anyone let me know what may the issue?
I bet that the same page you're observing is a kind of login page or dashboard which is accessible by unauthenticated user.
First of all make sure that you have HTTP Cookie Manager added to your test plan. It represents browser cookies and deals with user sessions and cookie-based authentication.
If it doesn't resolve your issue the problem is bigger and you will need to do some extra stuff. Modern web applications use multiple mechanisms of current state of things storing and managing, security enhancements and so on. From JMeter's point of view it results in dynamic mandatory parameters. The process of these dynamic parameters extraction from previous request and adding them to next request is called "correlation". So you need to do the following:
Detect which parameters being sent by a recorded script are dynamic. The easiest way is to record the same scenario several times and inspect request bodies to see what is being static and what changes.
Once you figure out which parameters are "interesting" you need to locate them in the first response body/headers/etc.
As soon as you have identified what necessary parameters are and where they live you need to use one of JMeter's PostProcessors to extract required values from previous response and save them to JMeter Variables
Once you have a JMeter Variable it can be used wherever required.
Depending on response data type the most commonly used JMeter's Post Processors which provide correlation capabilities are:
Regular Expression Extractor - the most commonly used test element which covers >90% of needs.
XPath Extractor - better to use against XML data i.e. for testing SOAP Web Services.
CSS/JQuery Extractor - when you need to fetch something from complex HTML where Regular Expression Extractor is useless.
So for putting everything together loog for "jmeter correlation" in your favorite search engine or see ASP.NET Login Testing with JMeter guide.
First JMeter 2.3.2 is WAY TOO OLD (10 years old), upgrade to JMETER 2.11.
Second, Jmeter cannot guess that the response if KO if the returned code is 200, so you need to add Response Assertion that will check for some text you expect in the page.

Redirecting back to Portlet from ResourceMapping in Spring 3 portlets

I am trying to work out a way to provide a CSV download through a Spring 3 Portlet. I have a method that uses the #ResourceMapping annotation to define a handler that takes some report params in the form of a #ModelAttribute, builds the report, and returns it. The catch-22 I am running into is validating the parameters being send in from the client form.
If I make the handler a #ResourceMapping, I can set the headers and write out the report as using the ResourceResponse, but I can't seem to figure out how to redirect the user back to the Portlet view with errors when their input fails validation. However, if I make it an #ActionMapping, I can then check the BindingResults and forward them back to the form as needed, but the ActionResponse doesn't allow me to set the Content-Disposition header nor write out the CSV bytes, which is sort of critical for sending the report back.
I am at a total loss here, as I don't even know what my options are. Is it even possible to do what I am trying to do with a Portlet? Are there other examples I could look at for a possible work-around?
I suggest you to use both #ActionMapping and #ResourceMapping to fulfill your requirement.
As you said you were able to handle the validation errors using the #ActionResponse, I'll tell you how to handle the Resource Streaming.
As you know every #ActionResponse is followed by a #RenderResponse, just return the same view but, with a hidden iframe this time whose src points to the ResourceURL.
Now the Request you receive in #ResourceMapping is something which is already Validated. So, you can now serve your CSV.
I dont know how complex is your UI and if you are using jsp as views in your application. If nicely managed, Validation can be handled by #ResourceMapping.
Thank you

Jmeter for pages having dynamic token

I am recording a set of pages using JMeter. Some of the pages have dynamically generated token stored in hidden field.
I retrieve this token using xpath extractor, query is
//input[#name='__RequestVerificationToken']/#value, store it in variable and use this variable for next request.
I don't know why this request is getting failed. I have checked the request value in View Results Tree. In raw tab the value is exactly the same as that of hidden field and on http tab "==" is missing at the end.
As mentioned by Andrey Bolatov, there is a visualization issue in Request HTTP Tab which has now been fixed (you can test using nightly build.
This does not explain you issue.
To debug, add a Debug Sampler to see what has been extracted.
You issue may come from the fact that you didn't encode the parameter, read:
Send Parameters With the Request
Looks like a bug in JMeter. I reported it here - https://issues.apache.org/bugzilla/show_bug.cgi?id=54055

Resources