I am doing performance testing on jsf application using jmeter. I went through this link(http://jmeter.apache.org/usermanual/jmeter_proxy_step_by_step.pdf) and followed the steps whatever mentioned. I have changed the proxy server setting also but still i am not able to record the scenarios. I am facing problem with the proxy server.
There are several common mistakes in regards to proxy server configuration like:
If application under test lives on the same host with JMeter it is necessary to remove localhost, 127.0.0.1 from "No proxy for" input in your browser proxy configuration window
If your application uses HTTPS - you need to check Use this proxy for all protocols box
If you're running JMeter from behind the corporate proxy you need to pass its details via command line arguments
-H, --proxyHost <argument>
Set a proxy server for JMeter to use
-P, --proxyPort <argument>
Set proxy server port for JMeter to use
-N, --nonProxyHosts <argument>
Set nonproxy host list (e.g. *.apache.org|localhost)
-u, --username <argument>
Set username for proxy server that JMeter is to use
-a, --password <argument>
Set password for proxy server that JMeter is to use
By the way, there is an easier way of recording JMeter test without needing to worry about proxies, SSL certificates, adding a HTTP Cookie Manager to test plan, etc.
Check out JMeter Chrome Extension which allows to record a JMeter test right from Google Chrome browser.
Related
I need to perform JMETER TEST and Record a WEB Login Page, my company is behind the proxy. If I change the proxy and port of the Firefox to 8080, My Application doesn't launch.
If I don't change the proxy in Firefox, Then the recorder doesn't record the script.
I tried with IE, Where due to corporate policy, I cant change the policy and it is disabled.
How I get out of this situation?
You need to keep Firefox proxy settings to point to JMeter's HTTP(S) Test Script Recorder, i.e. server name should be localhost, port should be 8888
In its turn JMeter needs to be configured to use your corporate proxy, it can be done in 2 ways:
Via command-line parameters, like:
jmeter -H your_corporate_proxy_host -P your_corporate_proxy_port -n -t ...
this way the change will be applied only once
If you want the changes to be permanent you can add the following lines to system.properties file (located in the "bin" folder of your JMeter installation)
http.proxyHost=your_corporate_proxy_host
http.proxyPort=your_corporate_proxy_port
https.proxyHost=your_corporate_proxy_host
https.proxyPort=your_corporate_proxy_port
References:
Using JMeter behind a proxy
Configuring JMeter
Apache JMeter Properties Customization Guide
I am trying to record any client-server activity in JMeter as a start for learning. I am doing this from a company network and hence have to go through proxy. Below are the steps I took for recording.
I read in JMeter documentation that for recording through proxy I have to invoke from command by giving the proper proxy. I used below code to invoke JMeter.
jmeter -H "proxy address taken from Internet settings" -P "8080" -u "Domain*UserName*" -a "password".
With this JMeter invokes fine and then I start the normal process of creating a thread group and a recording controller.
Now I am changing the internet setting in IE to local host and mentioning the port as given in JMeter (8080). I am keeping the proxy used as it is because without proxy no site will open except for the internal company sites.
Also I have imported the certificate which JMeter uses for the browsers.
This is now resolved
I added : JAVA_HOME variable in User environment variables with value pointing to jre installed on my machine C:\Program Files\Java\jdk1.8.0_60\jre
Also I had to select Java under HTTP Sampler Setting in HTTP(S) Test Script Recorder. (Though I don't get the purpose of this setting).
HTTP Sampler setting changed to Java
After doing above changes script is recording fine under company proxy.
I would recommend you to consider to use chrome extension for jMeter script recording without launching JMeter benefits: You can export the script written to JMeter and/or to cloud as well and run it on the cloud.
Please guide me what all are the settings needs to be done in jmeter while recording an https request through jmeter. I am getting unknown host exception while doing the same.
Thanks
Assumption 1: you have misconfigured JMeter and/or browser. You can get JMeter configured for recording in a couple of clicks using Templates feature.
From JMeter's main menu select File -> Templates -> Recording -> Create
Configure your browser to use the following proxy:
Proxy host: hostname or IP address where JMeter is running
Proxy port: 8888
Use proxy for all protocols (if available) - check
Bypass proxy for local addresses (or equivalent) - uncheck
Assumption 2: you (or your company) are using corporate proxy to access Internet and/or intranet. In that case you need to pass proxy details to JMeter startup script like:
jmeter -H proxy_host -P proxy_port ...
See Using JMeter behind a proxy guide for more information on the domain.
You can also consider an alternative solution which allows recording JMeter test right from browser without having to configure proxies, worry about SSL certificates, etc. Check out JMeter Chrome Extension
For unknown host exception, you should add the domain name and ip address pair in hosts file. For windows, this file is present at C:\Windows\System32\driver\etc\.
For example:
102.54.94.97 rhino.acme.com
For recording HTTP requests through JMeter, you have to configure some elements in your system. Steps are :
1.Add thread to test plan.
2.Add recording controller to plan
3.Add Http Proxy Server to Work Bench
4.address 127.0.0.1 port is 8888
5.Start proxy server
6.go on the recording when finished stop proxy server.
You have to configure your browser setting or install Certificates to record through JMeter. For step by step JMeter Proxy setting follow this PDF Step by step JMeter HTTP(S) Test Script Recorder Configuration
My company is trying to use JMeter in a VM (Windows Server 2003 :( )with no internet connectivity to hit another VM with a server set up and code running on IIS. I set up the ip address in my hosts file, let's call it server.dev for now. Our goal is to hit server.dev/doSomething When we go into IE and hit server.dev we get a response.
We use a keystore with JMeter and it says that it creates it correctly. In JMeter we have an HTTP Request where we hit the server.dev, and the path is set to /doSomething. JMeter then starts, and the log has no errors, but once it says "Creating the HTTPS Trusall Scheme" it hangs. When I put debug flags on it shows that it created the SOAP Request correctly and seems to send it out. The Headers should all be correct. It hangs here for about 1 minute and then shuts down with error with saying something along the lines of "Could not get response from server".
Does anyone have any ideas on where to go from here? I tried to debug for hours, but got nowhere. I can't seem to load up Fiddler to see the network traffic either, since there is no localhost set up.
Most likely that IE uses proxy and JMeter does not. Try other browser, i.e. Firefox (it doesn't respect system proxy settings if you won't import anything during installation) and if Firefox won't be able to establish the connection - my assumption is correct and you're sitting behind the proxy server.
There is a way to "tell" JMeter to use a proxy server, it is controllable via command-line arguments, to wit:
-H [proxy server hostname or ip address]
-P [proxy server port]
-N [nonproxy hosts] (e.g. *.apache.org|localhost)
-u [username for proxy authentication - if required]
-a [password for proxy authentication - if required]
See Using JMeter behind a proxy guide for details and Full list of command-line options for the full list.
You can also configure proxy settings in system.properties file (which lives under /bin folder of your JMeter installation), add the following lines to it:
http.proxyHost=your.proxy.ip.address.or.host.name
http.proxyPort=your.proxy.port
https.proxyHost=your.proxy.ip.address.or.host.name
https.proxyPort=your.proxy.port
And after JMeter restart everything should work as expected.
See Apache JMeter Properties Customization Guide for more information on JMeter properties and ways of setting and overriding them
Does anyone know,how can we use proxy server to do multiple location testing in distributed environment with the help of jmeter.
Theoretically it is possible, you can set proxy host, port, username and password via command-line arguments
-H, --proxyHost <argument>
Set a proxy server for JMeter to use
-P, --proxyPort <argument>
Set proxy server port for JMeter to use
-N, --nonProxyHosts <argument>
Set nonproxy host list (e.g. *.apache.org|localhost)
-u, --username <argument>
Set username for proxy server that JMeter is to use
-a, --password <argument>
Set password for proxy server that JMeter is to use
See How do I run JMeter in non-gui mode? guide for full options list.
However in that case your load results may be impacted by proxy performance, like you'll be load testing the proxy, not the application behind it. So I would rather go for running JMeter in distributed mode from different physical locations. For instance, Amazon EC2 provides capability to have instances in different geographic regions and micro instances are free.