Selenium: Can I tunnel through an *External* HTTP/SOCKS proxy over Firefox? - proxy

I know Selenium Server acts AS a proxy. But I want to know if I can instruct a test to connect through to either a SOCKS or plain http proxy, eg: Tuenneling through an external Proxy. (It's so hard to search for because the word proxy just shows how Selenium works, not if it supports this feature....)

You can use -DsocksProxyHost=socks.******.*** -DsocksProxyPort=1080 while running it .
or
In the MANual , you can find this..
-proxyInjectionMode: puts you into proxy injection mode, a mode
where the selenium server acts as a proxy server for all content
going to the test application. Under this mode, multiple domains
can be visited, and the following additional flags are supported:
or
set the settings mentioned above in the system variables..
Yenjoy!

Related

How can I record JMeter scripts behind company's proxy auto config (PAC) file?

The Internet Options settings are managed by my company's system administrator.
The Proxy is set to use automatic configuration script (http://proxypac.abcd.com/proxyrouting). I cannot disable this.
I cannot change the proxy to localhost. The above PAC script will override no matter what I try to change.
The IT security does not allow me to install Chrome Blazemeter plugin, or install Badboy, or use Fiddler, or be able to manually change the proxy.
The company's proxy host is proxy.abcd.com and port is 8080, but I don't know how this info will help if the browser is reading the PAC file.
Is there any option for me to record JMeter scripts in the above scenario?
Is there any way for me to create GUI scripts with plenty of data and dynamic values coming back from the server without recording (if recording is not an option in my case)?
You can use a browser which doesn't use operating system proxy settings, a good example is Mozilla Firefox. You need to configure Firefox to use JMeter as the proxy
Once done you can configure JMeter to use your company proxy server by putting the following lines to system.properties file:
http.proxyHost=proxy.abcd.com
https.proxyHost=proxy.abcd.com
http.proxyPort=8080
https.proxyPort=8080
These PAC files don't do any magic, they're normal JavaScript files which are being interpreted by browsers to determine which proxy should be used for which URL. For certain URLs you might not even need to use the proxy. So I would recommend checking whether you really need the proxy for accessing the application you're trying to record, it might be the case you don't need this step #2

How to use direct connection applications behind a kerberos proxy

I have a corporate proxy using Squid and kerberos for authentication, the proxy is configured for standard use, I.E allow http, https, a few others and block everything else. Now, there are many applications that support basic proxy authentication, but do not support Kerberos based authentication and many others that connect directly to the internet. I used Proxifier before the upgrade to kerberos to make my applications use the proxy, but I cannot do so now. I then installed an application called PX to create a proxy that connects to kerberos, but the proxy it creates is a simple HTTP Proxy and proxifier doesn't work correctly with it. Anyone has a setup for a situation like this?. I use Windows 10 and I obviously don't have access to the server where squid is configured. The application I need to connect to the internet uses standard https ports, it's not a torrent application nor anything that uses the ports blocked by squid. Thanks in advance.
Ok, for this particular case I've found the following setup to solve 99% of my problems.
First get Px here https://github.com/genotrance/px
Next get Fiddler: http://www.getfiddler.com/dl/Fiddler4BetaSetup.exe
Configure PX with your user and your domain and run it. By default it creates a running proxy on 127.0.0.1:3128
Configure your sistem proxy to use the proxy supplied by PX.
Execute fiddler, it should create ANOTHER proxy at 127.0.0.1:8888
Use this proxy in your apps. Proxifier should work as well.
Why use fiddler and not the direct 127.0.0.1:3128?, PX creates a pure http proxy and fiddler allows to tunnel https and connect request through it.
Any requests will pass through fiddler which will redirect them to the PX proxy which will redirect them to the squid proxy (So expect very slow speeds).
In the end since you're just redirecting your apps towards your proxy, if your proxy bans using regex expressions or direct IP connections some apps will NOT work, and in these cases using TOR or a VPN is the only real solution. Hope it helps someone avoid all the headaches I went through.

Unable to record in JMeter 3.0 with corporate proxy

I am unable to record the operations in the JMeter 3.0. We use corporate proxy hence "No proxy" settings is selected. If I manually configure the proxy setting as IP address and port, unable to get the internet in FF. But, I am able to open the access the internet in IE.
Ensure you follow this documentation:
http://jmeter.apache.org/usermanual/get-started.html#proxy_server
FF uses the proxy settings you configure in it, while IE can use system proxy.
Anyway better use FF and set proxy to point to jmeter, but start jmeter passing your enterprise proxy settings as per reference documentation

Configure fiddler to use proxy

Is there way to configure such chain MyApp->Fiddler->Web Proxy*->Target Server?
*Web Proxy is one from this list.
P.S. I know how to configure MyApp->Fiddler->Target Server but I need to test some functional associated with situations when user login from unusual location (for example from Africa)
Fiddler can chain to any upstream proxy. By default, it chains to the proxy that Internet Explorer was configured to use when Fiddler started. But you can also manually set the upstream proxy in Fiddler by clicking Tools > Fiddler Options > Gateway.

Setup JMeter proxy to record activities on a local web application

I'm new to JMeter and I want to load test a local web application recording test case with JMeter proxy.
I've first followed instruction here http://jmeter.apache.org/usermanual/jmeter_proxy_step_by_step.pdf and all worked fine.
Than:
I launched my web application, say http://localhost:8080/my-application
Setup JMeter web proxy on port 8081
Added an HTTP Request Default to a Thread Group
Addea a Recording Controller
Invoked curl -X GET http://localhost:8081/my-application/index.html
I obtain:
Request are recorded but with wrong parameters, eg. https instead of http
I don't get the requested page with curl, but the exception: org.apache.http.client.ClientProtocolException: URI does not specify a valid host name: https:///my-application/index.html/my-application/index.html
The parameters I've specified in Http Request Default seems to be ingnored? I placed configuration element under HTTP Proxy Server, and tried many settings.
What's going wrong? I missed some basic configuration? I'm using JMeter Proxy in the wrong manner?
Firefox default setting will bypass "localhost, 127.0.0.1" from proxy so your JMeter still not able to record it. You have to empty the "No Proxy for" field, by removing the "localhost, 127.0.0.1". Hope this will help.
Firefox by default does not allow localhost or 127.0.0.1 to be proxied.
You have to modify a setting in about:config
change network.proxy.allow_hijacking_localhost to true
Go To Browser LAN Settings
Make sure "Bypass proxy server for local addresses" is unchecked so that request will hit JMeter proxy server.
Simple steps to be followed for recording in jmeter:
open ur jmeter (contains testplan and workbench in default)
add a threadgroup
add “http request defaults” whic is under config( change the server name i.ethe site u need to record)
add “http proxy server (workbench-rightclick-non testing elements-http proxy server)change the default port 8080 to
someother(eg 9090)
start the proxy server
change the browser settings to manual setup with 9090 port and localhost
http://brittoc.wordpress.com/2011/03/28/jmeter-recording-steps/
I would suggest using Apache's own tutorial on this, it is located here...
JMeter Proxy Tutorial
I see that you say you have followed it, but it may have changed since you used it as some of your steps do not match the current tutorial. Perhaps your version had a bug or you missed a step, because I just double checked it 5 minutes ago and it worked for me and I don't see some of the steps you are talking about above.
I realize you have specific questions about specific errors that you are concerned with, but based on your current unfamiliarity with the process in general, I would abandon the curl part, and just do the basic proxy recording as Apache describes it to get a better general understanding, then take it from there.
The only caveat I would add to their tutorial, they have you create filters to only record certain types of actions, I actually leave those out so it will record all actions, then I just clean it up later.
This way you don't miss anything that could potentially be causing lag because that type of resource was filtered out.
* Now, one thing in your original question, you can try if you have no intention of doing the tutorial, try the browser, not curl, and setup your browser to use a proxy, and make sure the port matches the one you specify in jmeter on the proxy node.
Its very simple to configure. Please have a look to the attached screenshot.

Resources