Przejdź do treści
BigTree108

Usługi testów wydajnościowych i obciążeniowych

Usługi testów wydajnościowych i obciążeniowych: testy obciążenia, stresu, skoków ruchu i długotrwałe (soak) w k6, JMeter, Gatling i Locust, planowanie pojemności przed premierami i szczytami sprzedaży, analiza wąskich gardeł w kodzie, bazach danych i infrastrukturze, wydajność frontendu i Core Web Vitals oraz testy wydajności w CI, z dedykowanymi inżynierami testów wydajnościowych w Państwa zespole lub projektami testów wydajnościowych realizowanymi od początku do końca.

Testy wydajnościowe, które wykonujemy

  • Testy obciążeniowe

    Spodziewany ruch, modelowany na podstawie logów produkcyjnych i analityki jako ścieżki użytkowników z czasem namysłu i realistycznymi danymi, utrzymywany do momentu, gdy czasy odpowiedzi, odsetek błędów i zużycie zasobów pokażą, jak system wypada na tle założonych celów.

  • Testy stresu i skoków ruchu

    Obciążenie podnoszone ponad oczekiwany szczyt, aby znaleźć punkt załamania i to, co zawodzi najpierw, oraz nagłe skoki ruchu, takie jak wysyłka mailingu lub otwarcie sprzedaży biletów, aby sprawdzić, czy autoskalowanie reaguje na czas, a system sam wraca do normy.

  • Testy długotrwałe (soak)

    Stałe obciążenie utrzymywane przez godziny lub dni, aby znaleźć wycieki pamięci, wyczerpane pule połączeń, rosnące kolejki i dyski zapełniane logami, czyli problemy, do których krótki test nie dociera.

  • Skrypty k6, JMeter, Gatling i Locust

    Grafana k6 w JavaScript, Apache JMeter dla istniejących planów testów i protokołów innych niż HTTP, Gatling w Java lub TypeScript oraz Locust w Python, ze skryptami przechowywanymi w repozytorium obok testowanego kodu.

  • Analiza wąskich gardeł

    Wyniki analizowane razem ze śladami, metrykami i profilami w Grafana, Datadog, New Relic lub Application Insights, dzięki czemu wolną odpowiedź da się prześledzić do zapytania, blokady, puli wątków lub wywołania zewnętrznego, które za nią stoją, a każda poprawka jest testowana ponownie przy tym samym obciążeniu.

  • Planowanie pojemności na premiery i szczyty

    Testy obciążeniowe dobrane do premiery, szczytu sprzedaży lub kampanii, z zapisaną liczbą instancji i limitami autoskalowania, które wytrzymują takie obciążenie, oraz kosztem pracy w szczycie oszacowanym przed tym dniem.

  • Wydajność frontendu i Core Web Vitals

    Largest Contentful Paint, Interaction to Next Paint i Cumulative Layout Shift śledzone na podstawie danych terenowych prawdziwych użytkowników, z Lighthouse i WebPageTest w laboratorium do znalezienia przyczyny, a następnie poprawiane zmianami w obrazach, skryptach, czcionkach i cache'owaniu.

  • Testy wydajności w CI

    Krótkie testy obciążeniowe z progami zaliczenia i niezaliczenia przy każdym wydaniu w GitHub Actions, GitLab CI lub Azure Pipelines, większe uruchomienia w Grafana Cloud k6, Azure Load Testing lub BlazeMeter, a każdy przebieg porównywany z poprzednim buildem, aby regresję wychwycić, zanim odczują ją użytkownicy.

  • Testy odporności i przełączania awaryjnego

    Instancje, strefy i zależności wyłączane pod obciążeniem za pomocą AWS Fault Injection Service, Azure Chaos Studio lub Chaos Mesh, aby sprawdzić, czy przełączanie awaryjne, ponowienia i wyłączniki obwodu (circuit breakers) działają, a odtworzenie mieści się w założonym celu.

Zatrudnienie: inżynierowie testów wydajnościowych

  • Dedykowani inżynierowie testów wydajnościowych

    Inżynierowie testów wydajnościowych dołączają do Państwa zespołu na pełny etat, pracują w Państwa narzędziach i procesie oraz podlegają Państwa liderowi. Państwo przeprowadzają rozmowy kwalifikacyjne, a my bierzemy na siebie ukraińską umowę, wynagrodzenia, fakturowanie i urlopy.

  • Projekty: Testy wydajnościowe

    Wydzielona część prac w obszarze „testy wydajnościowe”, z określonym zakresem, stałym planem i wskazanym liderem po naszej stronie, który odpowiada za wynik i raportuje postępy w Państwa kanałach.

  • Stała współpraca: testy wydajnościowe

    Usługa ciągła w obszarze „Testy wydajnościowe”: ci sami ludzie co miesiąc, backlog, któremu Państwo ustalają priorytety, oraz godziny widoczne w naszym portalu i na fakturze.

Strona o dedykowanym zespole wyjaśnia, jak specjaliści dołączają do Państwa zespołu, a strona o outsourcingu opisuje realizację projektów, przejęcia i sposób rozliczania.

Kto realizuje Państwa prace w obszarze „testy wydajnościowe”

  • Inżynierowie wydajności

    Modele obciążenia, skrypty i analiza

  • Inżynierowie site reliability

    Monitoring, autoskalowanie i pojemność

  • Programiści backend

    Poprawki w kodzie, zapytaniach i cache'owaniu

  • Administratorzy baz danych

    Plany zapytań, indeksy i limity połączeń

  • Programiści frontendu

    Usprawnienia Core Web Vitals

Jak prowadzimy testy wydajnościowe

Każdy test zaczyna się od zapisanego celu: liczby użytkowników lub żądań, czasu odpowiedzi na 95. lub 99. percentylu, akceptowalnego odsetka błędów i kosztu. Obciążenie jest modelowane na ruchu produkcyjnym, dane testowe są generowane w skali produkcyjnej, a test działa na środowisku o wielkości produkcyjnej albo na samej produkcji w uzgodnionym oknie.

Wyniki dostają Państwo z wyjaśnieniem, a nie tylko z wykresem: który komponent osiągnął limit, dlaczego i jaka zmiana go przesuwa, a każda poprawka jest potwierdzana ponownym uruchomieniem przy tym samym obciążeniu. Skrypty, generatory danych i progi zostają w Państwa repozytorium, więc Państwa zespół może uruchamiać te same testy przed każdym wydaniem.

Pozostałe usługi testowania oprogramowania

Testowanie oprogramowania i QA: przegląd

Pytania o testy wydajnościowe i obciążeniowe

W jakich branżach pracują Państwa inżynierowie testów wydajnościowych?

Głównie e-commerce i handel detaliczny, przed szczytami sprzedaży i kampaniami; fintech i bankowość, gdzie systemy płatności i handlu mają cele dotyczące opóźnień; produkty SaaS dla przedsiębiorstw, które przyjmują większych klientów; usługi medialne i streamingowe, w których ruch pojawia się naraz; oraz dostawcy telekomunikacyjni, chmurowi i hostingowi dobierający rozmiar swoich platform.

Czy mogą Państwo testować obciążenie na produkcji?

Tak, gdy środowisko stagingowe nie odwzorowuje prawdziwego systemu. Test działa w uzgodnionym oknie niskiego ruchu, narasta stopniowo z warunkami zatrzymania dla odsetka błędów i opóźnień, używa kont i danych testowych, które po teście są usuwane, a po każdej stronie obserwuje go wskazana osoba kontaktowa.

k6, JMeter czy Gatling?

k6 do większości nowych prac: testy pisze się w JavaScript, uruchamia z wiersza poleceń i dobrze pasują do pipeline'u. JMeter tam, gdzie plany testów już istnieją lub protokół nie jest HTTP, na przykład JDBC, JMS czy czysty TCP. Gatling dla zespołów pracujących w Java lub TypeScript, a Locust dla zespołów Python. Pracujemy też w narzędziu, którego Państwa zespół już używa.

Jak szybko mogą zacząć inżynierowie testów wydajnościowych?

Gdy odpowiedni inżynier testów wydajnościowych jest dostępny, o terminie startu decydują wyłącznie Państwa rozmowa oraz NDA i przeniesienie praw własności intelektualnej. W przeciwnym razie prowadzimy poszukiwania, które zwykle dają profile kandydatów w ciągu dwóch do trzech tygodni, a nikt nie zaczyna pracy, dopóki Państwo nie powiedzą „tak”.

Jak wygląda zatrudnienie przez BigTree108: inżynierowie testów wydajnościowych?

Prosimy o informację o zakresie pracy, poziomie doświadczenia i potrzebnych godzinach. Proponujemy jedną lub dwie osoby wraz z ich profilami, Państwo przeprowadzają z nimi rozmowy tak, jak z własnym kandydatem, podpisują jedną umowę z BIG TREE 108 LLC i otrzymują jedną fakturę miesięcznie.

Do kogo należy praca, którą wykonują?

Do Państwa. Każdy specjalista ma podpisaną z BigTree108 umowę, która przenosi wszystkie rezultaty pracy na spółkę, a nasza umowa z Państwem przenosi je dalej. Kod, projekty i dokumenty są przekazywane do Państwa własnych repozytoriów i narzędzi, a nie przechowywane tam, gdzie zmieniać je możemy tylko my.

Spodziewają się Państwo większego ruchu?

Prosimy o informację o tym, co robi system, jaki ruch ma dziś i jakiego Państwo oczekują. Odpowiedź otrzymają Państwo w ciągu jednego dnia roboczego: plan testów z celami, profile kandydatów lub zakres pierwszego testu obciążeniowego.