Charles is an HTTP proxy, also known as HTTP monitor or Reverse Proxy, that allows the tester to observe and modify all of the HTTP and TLS/HTTPS traffic between their machine and the Internet. This includes requests, responses, and HTTP headers.
HeadSpin is the world’s first Digital Experience AI Platform combining cloud-hosted and on-prem global device infrastructure, test automation, and machine learning (ML)-driven performance & quality of experience analytics for mobile, web, audio, and video. HeadSpin empowers engineering, QA, operations, and product teams to assure optimal digital experiences throughout the development lifecycle. The platform’s extensive on-premise and cloud-hosted global device infrastructure enables teams to proactively test and monitor mobile, web, audio and video applications in real-time.
To run Charles proxy with a device connected from the HeadSpin device cloud to your local machine the following steps can be performed.
For running `hs connect` on your device you will be required to download the `hs` command-line tool. CLI is a HeadSpin Desktop Integration that enables additional IDE and test support for developer machines and integration servers. Go to settings in HeadSpin device cloud by clicking on the three-dot menu(Ellipses) and scroll down to Downloads section.
Check: Why cloud automation testing is gaining popularity
If you already have HeadSpin CLI installed on your local machine you can skip to Step 4.
The link will redirect you to a new page in which you are required to create an API Token only if you haven't created one before. Download the suitable file for your operating system from the Downloads section of this page.
After downloading the file for Mac or Linux use
Open terminal→navigate to the folder containing HeadSpin CLI→run command
To run Charles proxy using a remote device in the HeadSpin device cloud, first start the desired device in the HeadSpin Remote Control UI. Once the device is started, go to Tools.
Now that you have HeadSpin CLI installed in your system copy the link given for Remote Debug.
HS Connect bridges the device to the user's local development machine and makes it available to local development tools as if it was connected to the machine directly via USB.
HS connect the device by pasting this command in your terminal and press enter. The device will be available locally if the setup is done correctly.
Reverse the ports by setting 8181 as listener port instead of 8888 used by Charles Proxy. To reverse the ports use the command ‘adb reverse tcp:8181 tcp:8888’
Run this command in your terminal. (Running this command will not produce or return anything in the terminal window when you hit enter after typing this command the terminal will go to the next line.)
Go to the wifi setting of the remote device and click on advanced settings, now set the proxy to manual.
Set Proxy hostname as - localhost
And proxy port as - 8181
Now save these settings.
Open Charles Proxy on your local machine. You will be able to monitor and modify all of the HTTP and TLS/HTTPS traffic between the device and the Internet.
Click to know more about Charles Proxy.
1. Can HeadSpin CLI be used in continuous integration or other automated workflows?
Ans: Yes. The HeadSpin CLI can be used in continuous integration or other automated workflows. The usage of the CLI is the same in both manual and automated scenarios. However, automated workflows may require programmatic installation of the CLI.
2. What is an API token?
Ans: API tokens enable users to authenticate with cloud apps, bypass two-step verification, and retrieve data through REST APIs. Token controls help admins view and revoke their managed accounts' use of API tokens.
3. What is an SSL proxy?
Ans: SSL proxy is a transparent proxy that executes secure sockets layer encryption (SSL) and decryption between the client and the server. In this method, neither the server nor the client can detect its presence.
4. What is remote debugging?
Ans: Remote debugging is the debugging of an application that runs in a place other than its local environment. This process is performed by connecting the remotely running application with the development environment.