Menguji situs web dari baris perintah Linux [ditutup]

29

Saya mencari alat untuk menguji situs web dari baris perintah Linux.

Dari output, saya perlu tahu respon http (kode status) tetapi juga menentukan waktu yang diperlukan untuk mengunduh berbagai elemen situs.

Terima kasih sebelumnya.

Embreau
sumber
Apa yang Anda temukan, lihat, atau sedang pertimbangkan (cocok / tidak cocok) sejauh ini?
mctylr
Tidak satu pun dari jawaban ini yang terdengar sangat baik bagi saya. Anda masih harus menunggu lama untuk yang negatif
geotheory

Jawaban:

35

Anda dapat mencoba wgetdengan -popsi:

wget -p http://site.com

Ini akan memberi tahu Anda berapa lama untuk mengunduh setiap elemen dan kode pengembalian untuk setiap permintaan.

Dan Andreatta
sumber
2
wget -p URL -O /dev/null
Fedir RYKHTIK
9

Silakan lihat Tolok Ukur Apache:

Tolok Ukur Apache

Ini akan memberi Anda gambaran tentang kinerja halaman Anda.

andre
sumber
Apache benckmark tidak dapat digunakan untuk ini karena merupakan sumber eksternal, bahkan itu adalah daftar putar video youtube. Kami sedang memantau akses ke sumber daya ini. TY
Embreau
Saya tidak mengerti mengapa Anda tidak bisa menggunakan ab; seperti wget di jawaban berikutnya, itu akan berfungsi selama URL situs Anda dapat diakses dari mesin tempat Anda menjalankan alat benchmarking.
gareth_bowles
Tolok ukur Apache tidak terbatas pada sumber daya lokal, itu dimaksudkan untuk menjadi alat pengukur kinerja penuh (termasuk latensi jaringan, i / o, dll).
andre
Senang tahu, saya akan mengevaluasi opsi ini, terima kasih.
Embreau
6

Anda mungkin ingin melihat opsi berikut curl:

  • --write-out - Menampilkan salah satu dari beberapa variabel terkait waktu
  • --trace-time - Melampirkan stempel waktu untuk setiap jejak atau garis bertanda
  • --verbose
  • --include - (HTTP) Sertakan HTTP-header di output.
  • --trace-ascii <file> - Mengaktifkan dump jejak penuh dari semua data yang masuk dan keluar, termasuk informasi deskriptif

Dan opsi berikut wget:

  • --timestamping - Nyalakan injakan waktu
Dijeda sampai pemberitahuan lebih lanjut.
sumber
curl --trace-ascii <file> --trace-time -o /dev/null <url>persis apa yang saya butuhkan. Terima kasih!
dsummersl
3

Selenium dan Curl adalah pilihan yang baik tergantung pada apa tujuan Anda. Juga, sebuah utilitas yang saya sukai sedikit twill. Informasi lebih lanjut tersedia di http://twill.idyll.org/ .

Sangat menyenangkan karena memiliki sedikit bahasa khusus untuk mengisi formulir, memvalidasi tautan, dan memeriksa kode respons. Karena ini hanya kode Python, Anda dapat dengan mudah mengimpor perpustakaan dan mengotomatiskan tes Anda sendiri jika Anda ingin melakukan sesuatu yang berbeda.

McJeff
sumber
2

Gunakan ikal untuk mendapatkan header untuk halaman, dan waktu proses:

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

bungkus itu dalam loop sementara dan Anda siap melakukannya. Cara yang sama Anda dapat memeriksa semua elemen jika Anda tahu URL.

Pembuat tontonan
sumber
1

coba alat baris perintah yang disebut 'pengepungan' seperti yang diperintahkan di sini

Lefterav
sumber
6
Bukan itu yang dia minta. dan Anda juga terlambat 3 tahun =)
mveroone
1

Alat apa yang Anda pilih tergantung pada apa yang ingin Anda ukur dan kompleksitas situs.

Jika perilaku situs bergantung pada cookie (mis. Pengguna harus login) maka ab / curl / wget (dijelaskan dalam jawaban lain) tidak akan cukup. Salah satu solusinya adalah dengan menggunakan http :: recorder / www :: mechanize .

Semua data yang Anda minta ada di log server web Anda - dan skrip awk sederhana akan mengembalikannya dalam bentuk yang lebih mudah dibaca.

patokan waktu yang diperlukan untuk mengunduh berbagai elemen situs.

Ini adalah indikator kinerja yang sangat buruk (meskipun berguna untuk memantau kesehatan sistem produksi). Dengan pengecualian sumber daya besar / lambat seperti laporan besar, gambar iso, file multimedia, persepsi kinerja tidak banyak terkait dengan waktu yang dibutuhkan untuk memproses satu permintaan - dan sangat sulit untuk mengukurnya secara akurat (hanya menambahkan% D ke log apache Anda tampaknya menyelesaikan masalah tetapi mengabaikan handshake TCP, negosiasi SSL, efek caching, waktu pencarian DNS).

Solusi yang lebih baik adalah dengan menggunakan sesuatu seperti Boomerang - tetapi itu berjalan di browser yang mampu Javascript. Meskipun ini memberikan indikator kinerja yang lebih baik daripada melacak permintaan HTTP individu, ini bergantung pada acara browser untuk memperoleh nilai untuk kinerja - tetapi kinerja yang diterima adalah tentang waktu yang dibutuhkan untuk dilihat oleh viewport untuk di render (lagi-lagi ada alat untuk ini - lihat di alat filmstrip di WebPageTest ).

Ada juga argumen tentang mengukur kinerja yang sebenarnya dikirim ke pengguna situs (RUM) vs pengujian sintetis.

symcbean
sumber
0

Jika Anda akan membutuhkan sesuatu yang lebih besar dari keriting dan / atau wget, ada juga selenium

Tidak masuk akal
sumber
0

Saya pikir untuk menjalankan tes kinerja Anda dapat mencoba JMeter . Anda dapat merekam pengujian menggunakan proxy bawaan. Ini juga berjalan dalam mode teks, lokal atau didistribusikan. Anda dapat menyimpan hasil Anda dalam format csv atau xml. Jika menggunakan format xml, Anda juga dapat menyimpan konten halaman.

ghm1014
sumber
0

Untuk memeriksa tajuk, saya suka httpie( dokumen ).

Instalasi

pip install httpie --user

Pemakaian

$ 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
sumber