I am recording one web application. At one point a pop-up appears (Application Expected Behavior) which is non-https/non-http window, which is not getting recorded in JMeter. How can I record this non-http/non-https pop-up window in JMeter. I have attached the image.
JMeter records every action which triggers a HTTP request, if opening a pop-up doesn't generate any traffic, i.e. happens solely on the client-side as a result of some JavaScript Popup:
You won't be able to record it with JMeter
You don't need to record it with JMeter as you're load testing the backend and need to focus on simulating real browser network footprint.
Double check whether the popup triggers a network request or not using "Network" tab of your browser developer tools and if it doesn't - just ignore it. If it does - check jmeter.log, normally any abnormal behaviour is reflected there.
If you need to check frontend performance - you won't be able to do this using JMeter's HTTP Request samplers, you will have to go for WebDriver Sampler plugin or something like Lighthouse.
Related
In Jmeter, I have used "Recording with Think Time" for an application. Now when i run, in the Response I get message "We are sorry but vue-dms-ui-component doesn't work properly witouth Javascript enabled.Please enable it to continue".
I get this message for all the requests. I have enabled JavaScript in Firefox and then captured the recording.
Attaching the screenshot of the message.
enter image description here
As per JMeter project main page:
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 it's not possible to "enable" JavaScript in JMeter.
If JavaScript is being executed on client-side only you can simply ignore this
If JavaScript generates a single network request - you need to mimic it using HTTP Request sampler
If JavaScript generates more than 1 network request at a time - use as many HTTP Request samplers as there are AJAX requests and put them under the Parallel Controller
Don't forget to perform correlation of dynamic parameters as in the vast majority of cases you cannot just replay the recorded network traffic.
My application uses the popup windows. These popup windows contain normal HTML code.
The first browser window contains the general application information. If the user adds the client id in the first browser window and pushes the search button then the second browser popup window opens. So the first browser sends the HTTP POST command and the network log of the first window shows response of the POST command. The second window contains the detailed information about the client.
The JMeter script recorder can record all the HTTP requests from the first and second windows.
But when I run the JMeter script, it seems that the JMeter can't handle correctly the second window. For example the JMeter log contains only response of the HTTP POST command which is same as in the first browser window when doing manual testing. The HTTP POST response which in the manual testing goes to the second window isn't in the log file.
Is the JMeter test running supporting the popup windows?
JMeter knows nothing about "popup windows", JMeter acts on protocol level, if opening the "popup" window triggers a HTTP Request - JMeter will record it and try to replay it.
If opening the "popup window" doesn't generate a HTTP Request - it means that everything is happening on the client (browser) side only and the server is not involved into it. So you will not be able to simulate the behaviour using JMeter's HTTP Request sampler.
If you need to test the opening of the popup window in the browser you will need to consider switching to browser automation tools, the most popular is Selenium. There is also WebDriver Sampler plugin which provides JMeter integration with Selenium
I am using JMeter to test a web application.
I have an HTML stepper with forms that contain dropdowns and buttons (GET, POST requests)
I still cant understand how to test a specific event..
for example lets say I have to select a department from my dropdown and then to pop up a window with a list of subdepartments (checkboxes)..
Where shall I find the HTTPS request urls to use them in the JMeter samplers? From developer tools/Network ?
If selecting a dropdown triggers a HTTP request (i.e. it's some form of AJAX call) you can replicate it using HTTP Request sampler (and most probably HTTP Header Manager) so JMeter will send exactly the same request as the browser does (you might need to perform correlation of the dynamic values)
Basically all you need to do is to configure JMeter to produce the same network footprint as the real browser does so cross-check the request payload from the browser developer tools with what you see in JMeter's View Results Tree listener
Also be aware that it is possible to record the requests generated by browser using JMeter's HTTP(S) Test Script Recorder, see Recording Tests user manual chapter for more details.
Is it possible to pass Keys.TAB or Keys.Slash using Jmeter HTTP request through a groovy script?
As per JMeter project main page:
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 if pressing tab or slash triggers a network request to your server - you can mimic it by sending the corresponding HTTP Request via HTTP Request sampler. You can check whether pressing a key generates network activity by looking at "Network" tab of your browser developer tools
If pressing a key doesn't generate a HTTP request - you won't be able to test this scenario using JMeter, you will need a real browser driven by the browser automation framework like Selenium. JMeter can be integrated with Selenium via WebDriver Sampler
I have tried recording one web application through JMeter and nothing has been given in the field "Urls to exclude". All the requests have been recorded except .swf. But when I tried recording in fiddler .swf got recorded. Could anyond pease tell me why JMeter is unable to record such requests when fiddler can able to do it??
Fiddler doesn't "play" it either - browser does. While Fiddler just sits in the middle and catches all HTTP(S) communications between your browser & target service. It doesn't even "know" & "care" something is "played" somewhere - it just listens to HTTP communications, that's all.
And as soon as you HAVE this particular request recorded in Fiddler, and all other recorded the way you wanted it, right into JMeter elements - what's the problem?
Just add that part manually to your test plan!