TestingBot and BrowserMob Proxy

Today we have added support for using a BrowserMob proxy together with our Selenium grid.

By using this proxy, you can manipulate HTTP traffic during your tests, and do some other cool things too:

  • Simulate network latency/traffic
  • Capture performance data in HAR files
  • Rewrite HTTP requests and responses
  • Set and get HTTP headers

We provide a private and secure proxy for every customer, free of charge.
The traffic flowing through this proxy will only be available to you.

Below is an example on how to start and use a proxy.

Starting a new Proxy

To start a proxy, please make a GET request to our API

curl -u API_KEY:API_SECRET http://api.testingbot.com/v1/tunnel

We will boot up a pristine virtual machine for you, which should take no longer than 45 seconds.
Once the machine is booted, make the same request again to obtain the IP address of your personal VM.
Now that you have the IP, you can start using the proxy and do some interesting things.

Use the proxy

In this example, we’ll capture performance data in a HAR file for a single Selenium test in Ruby.

Start off by creating a listener on a free port:

curl -X POST http://IP:9090/proxy

This call will return a free port (for example 9091), which you need to use in your test.
Also, create a HAR attached to the port you obtained:

curl -X PUT http://IP:9090/proxy/9091/har

Now run the test with your proxy:

#!/usr/bin/env ruby
require "rubygems"
require 'testingbot'
gem "selenium-webdriver"
require "selenium-webdriver"

caps = {
  :browserName => "firefox",
  :version => "10",
  :platform => "WINDOWS",
  :proxy => Selenium::WebDriver::Proxy.new(:http => "IP:9091") #use the 9091 port we retrieved earlier
}

urlhub = "http://API_KEY:API_SECRET@hub.testingbot.com:4444/wd/hub"
client = Selenium::WebDriver::Remote::Http::Default.new
client.timeout = 120

@webdriver = Selenium::WebDriver.for :remote, :url => urlhub, :desired_capabilities => caps, :http_client => client
@webdriver.navigate.to "http://testingbot.com/"
puts @webdriver.title
@webdriver.quit
		

When the test has finished running, you can fetch the HAR file from your personal proxy:

curl http://IP:9090/proxy/9091/har

We have added a page in our support area with this browsermob proxy example.

Should you have any questions about this, please let us know in the comments or contact us.

2 Comments

  • Matt July 3, 2012 Reply

    Are you able to take advantage of browsermob-proxy with browsers other than Firefox?

    • jochen July 3, 2012 Reply Author

      Yes, we can run any browser/mobile emulator through the browsermob-proxy.

Leave a Reply

Your email address will not be published. Required fields are marked *