Wyślij zapytanie Dołącz do Sii

Charles jest ciekawym narzędziem, które może okazać się pomocne w pracy testera.

Dostępne do pobrania pod adresem: https://www.charlesproxy.com/

Czym jest Charles?

strona główna Charles Proxy

Charles Web Debugging Proxy to wieloplatformowa aplikacja serwera proxy do debugowania HTTP napisana w Javie. Umożliwia użytkownikowi przeglądanie HTTP, HTTPS, HTTP / 2 i włącza ruch portów TCP dostępny z, do, lub przez komputer lokalny (Wikipedia – przetłumaczone z języka angielskiego).

Jest to narzędzie płatne. Przez 30 dni można skorzystać z wersji próbnej. Bezpłatną alternatywą jest Fiddler – niestety jest on mniej przyjazny, jeżeli chodzi o interfejs i skonfigurowanie. W projekcie, w którym pracowałem Fiddler nie chciał współpracować, natomiast wdrożenie Charlesa okazało się szybkie i bezproblemowe.

Projekt, w którym jestem testerem dotyczy aplikacji medycznej dla pacjentów (umawianie spotkań, przeglądanie wyników badań), która poprzez REST API łączy się z wielkim systemem do obsługi placówek medycznych (aplikacja desktopowa).

REST API

W przypadku testowania REST API w projekcie używany jest Postman. Jednak w trakcie trwania, do stacka technologicznego doszedł również Charles i narzędzie to zrobiło na mnie duże wrażenie.

Deweloper dodał do naszej aplikacji mobilnej przekierowanie proxy, które umożliwiło aplikacji Charles na Windows 10 wyświetlanie requestów z aplikacji mobilnej (wielkie dzięki dla Tomka Marzeion ?)

Settings 1024x556 - Charles - pomocne narzędzie w testowaniu REST API

Charles umożliwia podgląd endpointów, a także wysyłanych requstów i otrzymywanych odpowiedzi na żywo w trakcie korzystania z aplikacji:

wyniki 1024x281 - Charles - pomocne narzędzie w testowaniu REST API

Charles pozwala także przeglądać dane strukturalnie:

2020 07 30 11 15 30 Charles 4.5.6 Session 1   1024x556 - Charles - pomocne narzędzie w testowaniu REST API

Podgląd odbieranych i wysyłanych danych jest bardzo przejrzysty i wygodny. Przechwycone endpointy można za pomocą kopiuj/wklej dodać do Postmana. Moim zdaniem w tym aspekcie Charles przydaje się bardziej niż Postman i w sposób przejrzysty widać jakie zapytania są odbierane i wysyłane.

Przechwytując request można ustawić “Breakpoint”, który w momencie, kiedy aplikacja natrafi na dany request, pozwoli go modyfikować i przejrzeć jego zawartość. 

Punkt wstrzymania lub pułapka (ang. breakpoint) – miejsce celowego wstrzymania wykonania programu w celu przeanalizowania jego działania. Uruchomiony pod kontrolą debuggera program przerywa wykonanie we wskazanym punkcie i przekazuje sterowanie do debugera, który zazwyczaj wyświetla kod źródłowy w miejscu wywołania wskazanej instrukcji. Po wstrzymaniu możliwe jest m.in. śledzenie aktualnych wartości zmiennych oraz zawartości rejestrów procesora. Zintegrowane środowiska programistyczne pozwalają na ustawienie takich punktów bezpośrednio w edytorze kodu oraz definiowanie warunków, jakie musi spełniać stan wykonania programu, aby pułapka spowodowała przerwanie wykonania programu (Wikipedia)

Oczywiście ustawione “Brakpointy” w ustawieniach (Proxy -> Breakpoint Settings) można modyfikować na przykład poprzez ustawienia tzw. “wild card”.

B Settings - Charles - pomocne narzędzie w testowaniu REST API
DD 1024x344 - Charles - pomocne narzędzie w testowaniu REST API

Dla przykładu niżej widać request, który odwołuje się do pojedynczego konkretnego spotkania.

Jeżeli użytkownik kliknie w to spotkanie, takie zapytanie zostanie wysłane i zwrócone zostaną szczególy spotkania. Inne spotkania będą już miały inny numer, więc w tym miejscu możemy zastosować “wild card” i użyć * podobny znak używamy w SQL, gdy chcemy przejrzeć wszystkie wyniki np. select * from nazwa_tabeli. Po zmodyfikowaniu “Breakpointu” będzie działać na każdym innym spotkaniu:

2020 10 23 17 09 25 Clipboard - Charles - pomocne narzędzie w testowaniu REST API

Charles jest również przydatny w sprawdzeniu odpowiedzi, jakie otrzymujemy. Możemy łatwo przejrzeć JSON, a także ilość obiektów i ich właściwości.

JSON 1024x556 - Charles - pomocne narzędzie w testowaniu REST API
Object 1024x556 - Charles - pomocne narzędzie w testowaniu REST API

W moim projekcie Charles ma duże zastosowanie, jeżeli chodzi o modyfikowanie kodu odpowiedzi. Na przykład, w przypadku jak aplikacja zachowa się w momencie, kiedy zmodyfikujemy status odpowiedzi z kodu 200(OK) na kod 500 (Internal Server Error).

2020 07 30 11 34 42 Settings 1024x497 - Charles - pomocne narzędzie w testowaniu REST API

Network throttling

W Charles możemy także skorzystać z opcji pozwalającej nam ustawić parametry połączenia internetowego. (Throttle Settings -> Enable Throttling)

2020 07 31 10 39 42 Window 1024x554 - Charles - pomocne narzędzie w testowaniu REST API

Należy pamiętać, że gdy mamy włączoną funkcje zwolnieniu ulegnie przepustowość także, gdy będziemy korzystać z przeglądarki internetowej na komputerze, więc jest to dobre narzędzie do testowania aplikacji webowej i sprawdzenia jak będzie działać aplikacja w warunkach słabszego połączenia internetowego.

Net 1024x564 - Charles - pomocne narzędzie w testowaniu REST API

Ikona “żółwia” pozwala nam kontrolować tę funkcję (włączenie / wyłączenie):

ikonki - Charles - pomocne narzędzie w testowaniu REST API

Narzędzie to posiada także wiele innych opcji np. tworzenie mock response. Podsumowując, Charles może być w pracy testera ciekawą alternatywą dla Postmana i w niektórych aspektach być bardzo pomocny (breakpointy, modyfikowanie requestów, podgląd w czasie rzeczywistym zapytań i odpowiedzi). W projekcie, w którym mam przyjemność pracować, korzystanie z tego narzędzia jest wygodne i znacznie ułatwia pracę testerom.

Zachęcam do wypróbowania i poznania Charles 🙂


Chcesz lepiej zrozumieć aplikacje i systemy, które testujesz? Dołącz do ModernTester, poznaj najpotrzebniejsze narzędzia, frameworki oraz języki programowania i ćwicz na specjalnie przygotowanych środowiskach testowych: Platforma e-learningowa ModernTester

5/5 ( głosy: 8)
Ocena:
5/5 ( głosy: 8)
Autor
Avatar
Łukasz Krause

Pracuje w Sii jako Inżynier ds. testów i analiz. Interesuje się komputerami i nowinkami technologicznymi. Lubi testować nowe urządzenia i aplikacje, dlatego zdecydował się na studia podyplomowe z zakresu testowania. Staram się opanować tajniki automatyzacji, a także schudnąć, choć szybciej uda mu się zrealizować chyba pierwszy punkt ;) Prywatnie ojciec kota lubiący niskobudżetowe podróże ;)

Zostaw komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Może Cię również zainteresować

Pokaż więcej artykułów

Bądź na bieżąco

Zasubskrybuj naszego bloga i otrzymuj informacje o najnowszych wpisach.

Otrzymaj ofertę

Jeśli chcesz dowiedzieć się więcej na temat oferty Sii, skontaktuj się z nami.

Wyślij zapytanie Wyślij zapytanie

Natalia Competency Center Director

Get an offer

Dołącz do Sii

Znajdź idealną pracę – zapoznaj się z naszą ofertą rekrutacyjną i aplikuj.

Aplikuj Aplikuj

Paweł Process Owner

Join Sii

ZATWIERDŹ

This content is available only in one language version.
You will be redirected to home page.

Are you sure you want to leave this page?