Issue in file upload in Jmeter script - file-upload

As unable to record the application through JMeter recorder (encountered 401 Unauthorized while recording login), used Blazemeter Chrome plugin to record the script. But file upload is not getting successful during re-run. I have tried checking/unchecking "Use multipart/formdata" , provided details in File upload section of the transaction, used Java implementation but no luck.
enter image description here
enter image description here

We cannot "suggest" anything without seeing the:
Response Data and headers - can be observed using View Results Tree listener
Request Data and headers - the same listener can show you this
Values of any JMeter Variables used. Can be figured out from the request data but it's more convenient to use Debug Sampler
The most common reason for not being able to replay the recorded test script is missing or improperly implemented correlation so ensure that your test is doing what it supposed to be doing since the very first request.
The approach of "checking/unchecking" and switching to different implementations is not very good, you should rather use a sniffer tool to capture the requests originating from JMeter and from the real browser, compare them and amend JMeter's configuration unless the requests would be exactly the same (apart from dynamic parameters which need to be correlated)

Related

Recording scripts using HTTP Test Script Recording vs Blazemeter plugins

Just a simple question, which Jmeter recording method is better for the timebeing? Record script using HTTP Test Script Recording (using proxy) or Blazemeter plugins? Can provide justification for each?
Because at first I record with blazemeter plugins, when I tried to apply correlation, it never works. But then I try to record manual using proxy, my correlation works. I tried to correlate userSession in the webtours test application.
Mind if you can share your thoughts on that? In which scenario we have to choose scripting using Blazemeter plugins or proxy in Jmeter apps? Thanks!
Both basically intercept HTTP requests and convert them to JMeter's HTTP Request samplers
HTTP(S) Test Script Recorder requires extra steps like importing certificates, configuring proxy server, etc.
BlazeMeter Chrome Extension doesn't require any extra setup, however for certain POST requests it may add multipart/form-data where it's not needed
Going forward you can consider the following alternatives:
Correlations Recorder Plugin for JMeter - where you can add correlation rules beforehand and they will be automatically applied to the content substituting hard-coded values with the appropriate JMeter Variarbles, you will still have to perform correlation, but it will be one place only
BlazeMeter Proxy Recorder - which is capable of exporting recorded requests in "SmartJMX" mode with automatic detection and correlation of dynamic parameters (even including timestamps), but it requires Internet connectivity so if you're recording a local application you won't be able to use it.
If you're still interested in my "thoughts" I don't think that any "recording" solution can substitute a human, especially when it comes to more complex topics like simulation of AJAX requests so I would recommend using a 3rd-party sniffer tool to compare the network footprint from the real browser with JMeter's and amend JMeter configuration so it would be 100% accuracy.

Unable to get fingerprint in browser using Apache JMeter

I performed performance testing using Apache JMeter version 3.X.
At one of the step, I'm not able to get the browser fingerprint value. I receive NULL value and it cause my program to be terminated.
But when I'm using normal browser, it works find.
Is there any limitation on Apache JMeter where it cannot get the browser fingerprint value?
First of be aware that it's recommended to use latest version of JMeter so consider upgrading to JMeter 5.2 (or whatever is the latest stable version available at JMeter Downloads page)
With regards to the "fingerprint" itself, according to the main page of JMeter project:
JMeter is not a browser, it works at protocol level. As far as web-services and remote services are concerned, JMeter looks like a browser (or rather, multiple browsers); however JMeter does not perform all the actions supported by browsers. In particular, JMeter does not execute the Javascript found in HTML pages. Nor does it render the HTML pages as a browser does (it's possible to view the response as HTML etc., but the timings are not included in any samples, and only one sample in one thread is ever displayed at a time).
so you need to investigate the logic of this "fingerprint" check, you can make JMeter to behave like a real browser up to certain extent like:
use HTTP Cookie Manager to represent browser cookies
use HTTP Header Manager to send at least User-Agent and other headers which normal browser sends
etc.
however if the "fingerprint" check relies on JavaScript you will need to re-implement the same JavaScript using JSR223 Test Elements
The main rule is: the network footprint of JMeter must be exactly the same as network footprint of the real browser (apart from dynamic values which need to be correlated), if you will send proper requests using JMeter - your system under test will not see the difference.

I am not able to get the grid data in jmeter using post processor

I am having jmeter to perform testing. However I have visited to some while doing the testing. when I have view the result of the same in that except the grid table data it shows the every details on the web page. I am having jmeter 3.0 installed on windows 10 64 bit.
Thanks for replay
as you said i have change the path from "/ntes/specialTrains.jsp"
and made http request default as "enquiry.indianrail.gov.in"
Error message is not displayed, but still not able to get the grid in the output.
attached the screen shot please have look.
"Issue is still not resolved. so please assist for the same"
I'm not fully getting your answer, however here is a couple of advices:
You won't be able to see the JMeter Variable originating from the XPath Extractor in the View Results Tree listener unless you add a Debug Sampler to your Test Plan. View Results Tree listener itself has XPath Tester mode where you can evaluate your XPath queries directly against the "live" response without having to re-run the request. See How to Debug your Apache JMeter Script article for above instructions explained in details.
Your 2nd request is misconfigured. It should look as follows:
Server Name or IP: enquiry.ingianrail.gov.in
Path: /ntes/specialTrains.jsp
Actually the easiest way to get JMeter test script "skeleton" and avoiding errors like above is just recording it via JMeter's built-in proxy server. See JMeter Proxy Step by Step guide for instructions.

Converting loadrunner script to Neoload (using Fiddler maybe?)

Pretty much exactly what it says on the tin: I have a Loadrunner script and I would like to convert it to a Neoload one. There's no way to do this automatically, obviously, but my idea was to capture traffic created by a loadrunner playthrough and then somehow reroute it (or export it?) to Neoload, and then do the manual extraction/whatever later.
The answer given here gives some tantalizing hints on how to do it, but the problem is that I can't figure out how to get Neoload to accept anything other than manual recording (the answer is given for Webtest because Fiddler can export a Webtest file, but there's no such option for Neoload). Is there a viable way to make this approach work, or is there a different option I could explore?
NeoLoad records the HTTP traffic through a Proxy (default recording method). All you need to do is:
Tell LoadRunner to play the script through a Proxy: NeoLoad machine, port 8090 (default NeoLoad recording port)
Launch a NeoLoad recording (you can uncheck "Launch Browser")
Launch the LoadRunner playback of 1 VU
Stop NeoLoad recording
I hope this helps,
Christophe
Neotys
There no good conversion between the scripts.
Creating a script in that way would generate only the HTTP requests.
It would NOT generate:
1. Script changes (conditions, loops, etc)
2. Library attachments
3. Parameterizations
4. Validations
and extra stuff
Since Neoload 6.5.0 there is a new tool called
LoadRunner Converter.
The LoadRunner converter provides the capability to convert LoadRunner HTTP scripts to their NeoLoad equivalent for those organizations that currently use LoadRunner and want to move on to NeoLoad.
See:
https://www.neotys.com/neoload/whats-new

Recording AJAX requests and Pop ups using Jmeter or Badboy

I am trying to load test a website where lot of images are called via Ajax and the very first thing i.e. logging into the application opens up a pop up when we click on log in button. I tried JMeter proxy settings to record it but failed. Also tried with Badboy, and it didn't work out too.
The limitations I have with me is I need to load test it with JMeter only. Are there any plugins available which can be integrated to JMeter so that AJAX and pop ups in an application can be handled in a much better way.
In general, JMeter does not have a problem with Ajax or Popups - so there is no plugin to address such. Both recording and playback happens at the HTTP layer so things like popups are somewhat irrelevant and Ajax is more a matter of timing; but in both cases it is only the HTTP call that matters. So, if you are having a problem, it could be something else that is holding you up. Try playing with the Proxy settings or using a different browser, beyond that you would need to expand 'didn't work out' and 'it failed' into a more detailed problem statement!
One solution - regardless of your exact problem - is to build the testplan manually, this is often actually the easiest way to work with JMeter. You can use a tool like fiddler or charles to examine the traffic and create the requests directly based on what you see. You can also use browser dev tools to do this. You might instinctively think this is going to be difficult but it's not and the added bonus is that the process gives you a solid understanding of how whatever it is you are testing actually works - which is always nice to have.
JMeter is a tool for testing server-side activity; as long as you record every request to server-side it doesn't care whatever happens on the client. Can you give details abt why JMeter "failed" to record Ajax requests?
Are you sure that you have included recording controller to your Jmeter thread group?
I think you are missing with you configuration for "recording controller" or "HTTP Request Sampler"
Some more information about your "didn't work" situation will be much more helpful.
I'll suggest that you should also have a look at the Jmeter Log file(jmeter.log) created in "Bin" folder to understand the root cause of of the issue.
Thanks,