Skip to content

Charles HAR record

Charles is a web-proxy which allows to capture HTTP and HTTPS requests and responses. Charles is very simple to use once configured. It allows to record HTTP scenarios within minutes.


Download Charles and install it. Then, launch Charles. It should configure the HTTP proxy automatically on your browser and starts recording HTTP requests.

HTTPS Configuration

Charles needs to be set up properly in order to record HTTPS Traffic, otherwise it will display like this: Recording HTTPS

  • Click on Proxy > SSL Proxying settings..., a dialog should be displayed,
  • Check Enable SSL Proxying,
  • The easiest way to record any host is to clear the list and add only one line with * Add host

Trust Charles certificate

Now when recording we may see a message like this: Not secure

This is because we also need to trust Charles certificate: Trust root certificate Select install certificate and follow through the end of the procedure.

Recording the scenario

Record your scenario by browsing with your favorite web-browser. The requests and responses should appear in Charles. We strongly recommend using the sequence tab to preserve the request order: Sequence Once finished, remove any unwanted request from the list before saving exporting your recorded charles sessions.

Saving the recording

To export, select all requests with CTRL+A and right click: Export all Then save it as an HAR file on your disk.

Create Virtual User: Import HAR

Great, we're just one step behind having a virtual user created from a Charles recording. Import the previously saved HAR file on OctoPerf. Create Virtual User from HAR

Simply drop the file in the HAR area or use the Upload new HAR file button and hit Next.

Ad blocker

By default OctoPerf will filter a certain number of URLs based on a few blocklists:

Make sure to Disable ad blocker if you prefer to keep everything.

Download resources

You may also select Download resources automatically if you want OctoPerf to remove the static resources requests (images, JavaScript and Css files, etc.). These requests will then be downloaded dynamically during runtime using the Download resources option of each request. Note that since this will extract resources from HTML hyperlinks, we only enable this option on requests that have a non-empty HTML response body.

Static resources

Dynamic resources


This option consumes a lot of computing power, to compensate for that we will consider the virtual users as Heavy VUs.

Think times

We will automatically apply think time on requests based on the timings inside the HAR file. If you prefer to have one think time per container, you can use Convert as delays between containers instead:

Request Think time

Container delays