Что это простыми словами

Charles Proxy — это программа-перехватчик, которая показывает, что приложение или сайт отправляет на сервер и что получает в ответ.

Аналогия: представьте почтальона, который стоит между вами и адресатом. Вы отправляете письмо, почтальон его перехватывает, читает содержимое, записывает всё в журнал и только потом передаёт дальше. Обратно то же самое. Charles делает это с интернет-запросами: встаёт посередине между приложением и сервером, записывает всю переписку и показывает её в удобном виде.

Это нужно, чтобы понять, что именно пошло не так, когда приложение работает неправильно: может, сервер вернул ошибку, а может, само приложение отправило неверные данные.

Официальное определение

Теперь, когда суть понятна, вот как Charles описывают в вакансиях и документации. Эту формулировку вы будете встречать у заказчика, в резюме и в речи тестировщиков и разработчиков — теперь вы понимаете, что за ней стоит.

«Charles Proxy — HTTP/HTTPS прокси-сервер для перехвата и анализа сетевого трафика между клиентом и сервером с возможностью модификации запросов, throttling и SSL proxying».

Разберём по словам. «HTTP/HTTPS» — протоколы, по которым браузеры и приложения общаются с серверами; HTTPS — защищённая версия. «Прокси-сервер» — посредник, который стоит между приложением и сервером. «Клиент» — это приложение или браузер на вашем устройстве. «Трафик» — данные, которые летают туда-сюда. «Модификация запросов» — Charles умеет не только смотреть, но и изменять данные на лету. «Throttling» — искусственное замедление соединения, чтобы проверить, как приложение работает на медленном интернете. «SSL proxying» — расшифровка защищённых HTTPS-соединений, чтобы видеть их содержимое.

Какую задачу решает

Когда приложение или сайт ломается, непонятно, где проблема: в самом приложении или на сервере. Приложение может отправить неверный запрос, а может сервер вернуть ошибку. Без Charles это чёрный ящик — ничего не видно.

Charles показывает всю переписку между приложением и сервером: какие данные ушли, что пришло в ответ, сколько времени это заняло, какой код ответа вернул сервер. Это позволяет точно понять, на каком этапе что-то пошло не так.

Ещё Charles умеет:

Это платная программа, но она стала стандартом в тестировании.

Кто им пользуется

Charles — это не язык программирования и не фреймворк, он ни к какому языку не привязан. Это рабочий инструмент нескольких ролей сразу:

Чаще всего Charles встречается в вакансиях тестировщиков — для них это повседневный рабочий инструмент.

Аналоги / чем заменяется

Charles решает ту же задачу, что и другие прокси-инструменты:

Переход между прокси-инструментами несложный: человек, который умеет работать с Charles, освоит Fiddler или Proxyman за несколько дней. Логика везде одна, отличается интерфейс.

Что не путать

Насколько это важно при отборе

Короткий ответ: важен не сам Charles, а умение анализировать сетевой трафик.

Если кандидат работал с Fiddler, Proxyman или даже просто с DevTools браузера и понимает, как устроено взаимодействие клиента и сервера, — он освоит Charles за неделю. Отсеивать хорошего тестировщика только потому, что в резюме указан не тот прокси-инструмент, — ошибка: логика у них общая.

А вот понимание HTTP и умение читать запросы/ответы — это базовые навыки для тестировщика API и мобильных приложений. Без них никакой инструмент не поможет. Если в резюме нет упоминаний о работе с сетевым трафиком, это серьёзный сигнал для вакансий, где тестируют взаимодействие с сервером.

Когда стоит обратить внимание именно на Charles: если команда уже работает на нём и нужен человек, который выйдет и сразу начнёт без обучения. Но чаще это желательное требование, а не обязательное — уточните у нанимающего менеджера.

Это общий ориентир. В разных компаниях требования отличаются, поэтому всегда сверяйтесь с текстом конкретной вакансии.