Bir web sitesini Linux komut satırından test etme [kapalı]


29

Linux komut satırından bir web sitesini test etmek için bir araç arıyorum.

Çıktıdan itibaren, http yanıtını (durum kodları) bilmem gerekiyor, aynı zamanda sitenin farklı öğelerini indirmek için gereken süreyi de ölçmem gerekiyor.

Şimdiden teşekkür ederim.


Şimdiye kadar ne buldun, baktın ya da düşünüyor (uygun / uygun değil)?
mctylr

Bu cevapların hiçbiri bana çok iyi gelmiyor. Olumsuz bir yaş için hala beklemek zorundasınız
jeotheory

Yanıtlar:


35

Seçeneği wgetile deneyebilirsiniz -p:

wget -p http://site.com

Her bir öğenin indirilmesinin ne kadar sürdüğünü ve her istek için dönüş kodlarını size söyleyecektir.


2
wget -p URL -O /dev/null
Fedir RYKHTIK

9

Lütfen Apache Benchmark'a bakınız:

Apache Benchmark

Bu, sayfanızın performansına bir genel bakış sağlayacaktır.


Apache benckmark bunun için kullanılamaz çünkü harici bir kaynaktır, aslında youtube video oynatma listesidir. Bu kaynağa erişimi izliyoruz. TY
Embreau

Neden ab kullanamadığını anlamıyorum; Bir sonraki cevaptaki wget gibi, sitenizin URL’sini kıyaslama aracını kullandığınız makineden erişilebilir olduğu sürece çalışacaktır.
gareth_bowles

Apache kıyaslaması yerel kaynaklarla sınırlı değildir, tam performans ölçüm aracı olması (ağ gecikmesi, giriş / çıkış vb. Dahil) anlamına gelir.
andre

Bilmek güzel, bu seçeneği değerlendireceğim, teşekkür ederim.
Embreau

6

Aşağıdaki seçeneklere bakmak isteyebilirsiniz curl:

  • --write-out - zamana bağlı değişkenlerin herhangi birini gösterir
  • --trace-time - Her iz veya ayrıntılı satır için bir zaman damgası kullanır
  • --verbose
  • --include - (HTTP) Çıktıya HTTP başlığını dahil et.
  • --trace-ascii <file> - Açıklayıcı bilgiler dahil olmak üzere tüm gelen ve giden verilerden eksiksiz bir izleme dökümü sağlar

Ve aşağıdaki seçenek wget:

  • --timestamping - Zaman damgasını aç

curl --trace-ascii <file> --trace-time -o /dev/null <url>tam ihtiyacım olan şeydi. Teşekkürler!
dsummersl

3

Selenyum ve Kıvrılma, hedefinizin ne olduğuna bağlı olarak iyi seçeneklerdir. Ayrıca, biraz hoşuma gittiğim bir yardımcı program twill. Daha fazla bilgi http://twill.idyll.org/ adresinde bulunabilir .

Formları doldurmak, bağlantıları doğrulamak ve yanıt kodlarını kontrol etmek için kendi küçük özel dili olması güzel. Sadece Python kodu olduğundan, farklı bir şey yapmak istiyorsanız kütüphaneleri kolayca içe aktarabilir ve testlerinizi kendiniz otomatikleştirebilirsiniz.


2

Sayfa başlığını almak için kıvrılma kullanın ve işlemi zamanlayın:

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

Bunu bir süreliğine tamamla ve gitmen iyi olur. URL’yi biliyorsanız, aynı şekilde tüm öğeleri de kontrol edebilirsiniz.


1

burada anlatıldığı gibi 'kuşatma' adlı bir komut satırı aracını deneyin


6
İstediği şey bu değil. ve ayrıca 3 yıl geciktin =)
mveroone

1

Seçtiğiniz araç neyi ölçmek istediğinize ve sitenin karmaşıklığına bağlıdır.

Sitenin davranışı çerezlere bağlıysa (örneğin, kullanıcının giriş yapması gerekir), ab / curl / wget (diğer cevaplarda açıklanmıştır) yeterli olmaz. Çözümlerden biri http :: recorder / www :: mechanize kullanmaktır .

İstediğiniz tüm veriler web sunucusu günlüklerinizde - basit bir awk betiği daha okunaklı bir şekilde geri dönecek.

sitenin farklı öğelerini indirmek için geçen süreyi ölçmek.

Bu, çok zayıf bir performans göstergesidir (bir üretim sisteminin sağlığını izlemek için yararlı olmasına rağmen). Hacimli raporlar, iso görüntüleri, multimedya dosyaları gibi büyük / yavaş kaynaklar haricinde, performans algısı tek bir isteği işleme almak için harcanan zamanla çok az ilgilendi - ve bunu doğru bir şekilde ölçmek gerçekten zor (sadece% ekleyerek) Apache günlüğünüzde D sorunu çözmek için görünür ancak TCP anlaşmaları, SSL anlaşması, önbellekleme efektleri, DNS arama süreleri yok sayılır)

Daha iyi bir çözüm Boomerang gibi bir şey kullanmaktır - ancak Javascript özelliği olan bir tarayıcıda çalışır. Bu, bireysel HTTP isteklerini izlemekten daha iyi bir algılanan performans göstergesi verirken, performans için bir değer elde etmek için tarayıcı olaylarına dayanır - ancak önceden belirlenmiş performans, görünümün oluşturması için geçen zamanla ilgilidir (bunun için araçlar vardır - WebPageTest'teki film şeridi araçlarına bir göz atın ).

Sentetik testler yerine, sitenin kullanıcılarına (RUM) verilen performansın ölçülmesi konusunda da tartışma var.



0

Sanırım performans testi yapmak için JMeter'i deneyebilirsiniz . Dahili proxy kullanarak testinizi kaydedebilirsiniz. Ayrıca yerel veya dağıtılmış metin modunda çalışır. Sonuçlarınızı csv veya xml formatında kaydedebilirsiniz. Eğer xml formatını kullanıyorsanız, sayfanın içeriğini de saklayabilirsiniz.


0

Başlıkları kontrol etmek için, seviyorum httpie( docs ).

Kurulum

pip install httpie --user

kullanım

$ 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
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.