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.
Charles needs to be set up properly in order to record HTTPS Traffic, otherwise it will display like this:
- 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 *
Trust Charles certificate¶
Now when recording we may see a message like this:
This is because we also need to trust Charles 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: 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: 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.
Simply drop the file in the HAR area or use the Upload new HAR file button and hit Next.
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.
This option consumes a lot of computing power, to compensate for that we will consider the virtual users as Heavy VUs.
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: