BrowserMob Proxy
BrowserMob Proxy ?is an open source tools which is used to?capture performance data?for a web applications in an HAR format. It also allows to manipulate browser behavior and traffic, such as simulating network traffic, rewriting HTTP requests and responses etc and manipulate network traffic from their AJAX applications. In short,?BrowserMob proxy ?helps us to capture client side performance data for a web application using Selenium WebDriver automated tests.
You can find more details about?BrowserMob Proxy ?from the?Python Documentation?and?this tutorial.
Demonstration of BrowserMob Proxy 2.0 with Python client on Windows
-
Install?browsermob-proxy?through the CLI : C:\Users\your_user>pip install browsermob-proxy
Collecting browsermob-proxy
Downloading browsermob-proxy-0.8.0.tar.gz
Collecting requests>=2.9.1 (from browsermob-proxy)
Downloading requests-2.18.4-py2.py3-none-any.whl (88kB)
100% |||||||||||||||||||||||||||||||||| 92kB 148kB/s
Collecting idna<2.7,>=2.5 (from requests>=2.9.1->browsermob-proxy)
Downloading idna-2.6-py2.py3-none-any.whl (56kB)
100% |||||||||||||||||||||||||||||||||| 61kB 639kB/s
Collecting urllib3<1.23,>=1.21.1 (from requests>=2.9.1->browsermob-proxy)
Downloading urllib3-1.22-py2.py3-none-any.whl (132kB)
100% |||||||||||||||||||||||||||||||||| 133kB 250kB/s
Collecting certifi>=2017.4.17 (from requests>=2.9.1->browsermob-proxy)
Downloading certifi-2017.11.5-py2.py3-none-any.whl (330kB)
100% |||||||||||||||||||||||||||||||||| 337kB 401kB/s
Collecting chardet<3.1.0,>=3.0.2 (from requests>=2.9.1->browsermob-proxy)
Downloading chardet-3.0.4-py2.py3-none-any.whl (133kB)
100% |||||||||||||||||||||||||||||||||| 143kB 296kB/s
Installing collected packages: idna, urllib3, certifi, chardet, requests, browse
rmob-proxy
Running setup.py install for browsermob-proxy ... done
Successfully installed browsermob-proxy-0.8.0 certifi-2017.11.5 chardet-3.0.4 id
na-2.6 requests-2.18.4 urllib3-1.22
-
Download ?the?browsermob-proxy?binaries?browsermob-proxy-2.1.4-bin?form the following url : https://bmp.lightbody.net/
-
Extract ?and?Save ?the directory within?C:\Utility -
Launch ?the?Browsermobproxy Server?manually through the CLI command : C:\Utility\browsermob-proxy-2.1.4\lib>java -jar browsermob-dist-2.1.4.jar --port 9090
Running BrowserMob Proxy using LittleProxy implementation. To revert to the legacy implementation, run the proxy with the command-line option '--use-littleproxy false'.
[INFO 2018-01-17T19:01:30,276 net.lightbody.bmp.proxy.Main] (main) Starting BrowserMob Proxy version 2.1.4
[INFO 2018-01-17T19:01:30,388 org.eclipse.jetty.util.log] (main) jetty-7.x.y-SNAPSHOT
[INFO 2018-01-17T19:01:30,471 org.eclipse.jetty.util.log] (main) started o.e.j.s.ServletContextHandler{/,null}
[INFO 2018-01-17T19:01:30,871 org.eclipse.jetty.util.log] (main) Started SelectChannelConnector@0.0.0.0:9090
-
You can also launch the?Browsermobproxy Server?through your code as below. -
Create a new?PyDev ?module (if using?Eclipse ) and write a basic program through your?IDE ?as follows : from browsermobproxy import Server
server = Server("C:\\Utility\\browsermob-proxy-2.1.4\\bin\\browsermob-proxy")
server.start()
proxy = server.create_proxy()
from selenium import webdriver
profile = webdriver.FirefoxProfile()
profile.set_proxy(proxy.selenium_proxy())
driver = webdriver.Firefox(firefox_profile=profile)
proxy.new_har("google")
driver.get("http://www.google.co.in")
proxy.har # returns a HAR JSON blob
server.stop()
driver.quit()
-
Snapshot :
|