Testowanie strony internetowej z wiersza poleceń systemu Linux [zamknięte]

29

Szukam narzędzia do testowania witryny z wiersza polecenia systemu Linux.

Na podstawie danych wyjściowych muszę znać odpowiedź HTTP (kody stanu), ale także przeprowadzić analizę porównawczą czasu potrzebnego do pobrania różnych elementów witryny.

Z góry dziękuję.

Embreau
źródło
Co do tej pory znalazłeś, obejrzałeś lub rozważasz (odpowiednie / nieodpowiednie)?
mctylr
Żadna z tych odpowiedzi nie brzmi dla mnie zbyt dobrze. Nadal musisz czekać wieki na negatywny
geotheory

Odpowiedzi:

35

Możesz spróbować wgetz -popcją:

wget -p http://site.com

Powie ci, ile czasu zajmuje pobranie każdego elementu i kodów powrotu dla każdego żądania.

Dan Andreatta
źródło
2
wget -p URL -O /dev/null
Fedir RYKHTIK
9

Zobacz Benchmark Apache:

Benchmark Apache

To powinno dać ci przegląd wydajności twojej strony.

Andre
źródło
Nie można do tego użyć Apache Benckmark, ponieważ jest to zewnętrzne źródło, w rzeczywistości jest to playlista wideo na YouTube. Monitorujemy dostęp do tego zasobu. TY
Embreau
Nie rozumiem, dlaczego nie możesz użyć ab; podobnie jak wget w następnej odpowiedzi, będzie działać, dopóki adres URL Twojej witryny będzie dostępny z komputera, na którym uruchamiasz narzędzie do testowania wydajności.
gareth_bowles
Test porównawczy Apache nie jest ograniczony do lokalnych zasobów, ma być narzędziem do pomiaru pełnej wydajności (w tym opóźnienia sieci, operacji we / wy itp.).
andre
Dobrze wiedzieć, ocenię tę opcję, dziękuję.
Embreau
6

Możesz spojrzeć na następujące opcje curl:

  • --write-out - wyświetla dowolną z kilku zmiennych związanych z czasem
  • --trace-time - Przygotowuje znacznik czasu do każdej linii śledzenia lub pełnej linii
  • --verbose
  • --include - (HTTP) Dołącz nagłówek HTTP do wyniku.
  • --trace-ascii <file> - Umożliwia pełny zrzut śledzenia wszystkich danych przychodzących i wychodzących, w tym informacji opisowych

I następująca opcja wget:

  • --timestamping - Włącz znaczniki czasu
Wstrzymano do odwołania.
źródło
curl --trace-ascii <file> --trace-time -o /dev/null <url>było dokładnie tym, czego potrzebowałem. Dzięki!
dsummersl
3

Selen i Curl to dobre opcje w zależności od tego, jaki jest twój cel. Również narzędziem, które bardzo mi się spodobało, jest twill. Więcej informacji jest dostępnych na stronie http://twill.idyll.org/ .

To miłe, ponieważ ma swój własny mały specjalistyczny język do wypełniania formularzy, sprawdzania poprawności linków i sprawdzania kodów odpowiedzi. Ponieważ jest to tylko kod Python, możesz łatwo importować biblioteki i samodzielnie zautomatyzować swoje testy, jeśli chcesz zrobić coś innego.

McJeff
źródło
2

Użyj curl, aby uzyskać nagłówek strony, i zmierz czas procesu:

time curl -I http://yourpage.com | grep HTTP

obejmij to w pętli while i możesz już iść. W ten sam sposób możesz sprawdzić wszystkie elementy, jeśli znasz adres URL.

Sideshowcoder
źródło
1

wypróbuj narzędzie wiersza polecenia o nazwie „oblężenie” zgodnie z instrukcją tutaj

lefterav
źródło
6
Nie o to prosi. a także spóźniłeś się o 3 lata =)
mveroone
1

To, które narzędzie wybierzesz, zależy od tego, co chcesz zmierzyć i złożoności witryny.

Jeśli zachowanie strony zależy od plików cookie (np. Użytkownik musi się zalogować), ab / curl / wget (opisane w innych odpowiedziach) nie wystarczy. Jednym z rozwiązań jest użycie http :: recorder / www :: mechanize .

Wszystkie dane, o które prosisz, znajdują się w logach twojego serwera - a prosty skrypt awk zwróci je w bardziej czytelnej formie.

Benchmark, ile czasu zajmuje pobranie różnych elementów witryny.

Jest to bardzo słaby wskaźnik wydajności (chociaż jest przydatny do monitorowania kondycji systemu produkcyjnego). Z wyjątkiem dużych / wolnych zasobów, takich jak obszerne raporty, obrazy ISO, pliki multimedialne, postrzeganie wydajności ma niewiele wspólnego z czasem potrzebnym na przetworzenie pojedynczego żądania - i naprawdę trudno jest to dokładnie zmierzyć (wystarczy dodać% D do twojego dziennika apache wydaje się rozwiązać problem, ale ignoruje uzgadnianie TCP, negocjacje SSL, efekty buforowania, czasy wyszukiwania DNS).

Lepszym rozwiązaniem jest użycie czegoś takiego jak Boomerang - ale działa to w przeglądarce obsługującej Javascript. Chociaż daje to lepszy wskaźnik postrzeganej wydajności niż śledzenie pojedynczych żądań HTTP, opiera się na zdarzeniach przeglądarki, aby uzyskać wartość dla wydajności - ale uzyskana wydajność dotyczy czasu potrzebnego do renderowania rzutni (ponownie istnieją do tego narzędzia - spójrz na narzędzia paska filmowego w WebPageTest ).

Istnieje również argument na temat mierzenia wydajności faktycznie dostarczanej użytkownikom witryny (RUM) w porównaniu z testami syntetycznymi.

symcbean
źródło
0

Jeśli potrzebujesz czegoś większego niż curl i / lub wget, jest też selen

Nieuzasadniony
źródło
0

Myślę, że do uruchomienia testu wydajności można wypróbować JMeter . Możesz zarejestrować swój test za pomocą wbudowanego proxy. Działa również w trybie tekstowym, lokalnym lub rozproszonym. Możesz zapisać swoje wyniki w formacie csv lub xml. Jeśli używasz formatu xml, możesz także przechowywać zawartość strony.

ghm1014
źródło
0

Do sprawdzania nagłówków lubię httpie( dokumenty ).

Instalacja

pip install httpie --user

Stosowanie

$ http -h http://serverfault.com/q/124952/113899
HTTP/1.1 302 Found
Accept-Ranges: bytes
Age: 0
Cache-Control: private
Connection: keep-alive
Content-Length: 198
Content-Type: text/html; charset=utf-8
Date: Fri, 06 Jan 2017 10:01:06 GMT
Location: http://serverfault.com/questions/124952/testing-a-website-from-linux-command-line
Set-Cookie: prov=392298d9-103e-7dfc-5b55-8738be46cf3b; domain=.serverfault.com; expires=Fri, 01-Jan-2055 00:00:00 GMT; path=/; HttpOnly
Via: 1.1 varnish
X-Cache: MISS
X-Cache-Hits: 0
X-DNS-Prefetch-Control: off
X-Frame-Options: SAMEORIGIN
X-Request-Guid: 07a25de4-6e16-4aa8-acfc-12b1bbbc6180
X-Served-By: cache-hhn1543-HHN
X-Timer: S1483696865.976259,VS0,VE187
Martin Thoma
źródło