Kiểm tra một trang web từ dòng lệnh Linux [đã đóng]


29

Tôi đang tìm kiếm một công cụ để kiểm tra một trang web từ dòng lệnh Linux.

Từ đầu ra, tôi cần biết phản hồi http (mã trạng thái) nhưng cũng đánh giá thời gian cần thiết để tải xuống các yếu tố khác nhau của trang web.

Cảm ơn bạn trước.


Những gì bạn đã tìm thấy, nhìn vào, hoặc đang xem xét (phù hợp / không phù hợp) cho đến nay?
mctylr

Không ai trong số những câu trả lời này nghe rất tốt với tôi. Bạn vẫn phải đợi tuổi cho một tiêu cực
geotheory

Câu trả lời:


35

Bạn có thể thử wgetvới -ptùy chọn:

wget -p http://site.com

Nó sẽ cho bạn biết phải mất bao lâu để tải xuống từng phần tử và mã trả lại cho mỗi yêu cầu.


2
wget -p URL -O /dev/null
Fedir RYKHTIK 30/03/2016

9

Vui lòng xem Điểm chuẩn của Apache:

Điểm chuẩn Apache

Điều này sẽ cung cấp cho bạn một cái nhìn tổng quan về hiệu suất trang của bạn.


Apache benckmark không thể được sử dụng cho việc này vì đây là nguồn bên ngoài, thực tế nó là danh sách phát video youtube. Chúng tôi đang theo dõi việc truy cập vào nguồn tài nguyên này. TY
Embreau

Tôi không thấy lý do tại sao bạn không thể sử dụng ab; giống như wget trong câu trả lời tiếp theo, nó sẽ hoạt động miễn là URL của trang web của bạn có thể truy cập được từ máy mà bạn đang chạy công cụ đo điểm chuẩn.
gareth_bowles

Điểm chuẩn Apache không bị giới hạn đối với tài nguyên cục bộ, nó có nghĩa là một công cụ đo lường hiệu suất đầy đủ (bao gồm độ trễ mạng, i / o, v.v.).
andre

Tốt để biết, tôi sẽ đánh giá tùy chọn này, cảm ơn bạn.
Embreau

6

Bạn có thể muốn xem các tùy chọn sau curl:

  • --write-out - hiển thị bất kỳ biến nào liên quan đến thời gian
  • --trace-time - Chuẩn bị một dấu thời gian cho mỗi dòng dấu vết hoặc dài dòng
  • --verbose
  • --include - (HTTP) Bao gồm tiêu đề HTTP trong đầu ra.
  • --trace-ascii <file> - Cho phép kết xuất theo dõi đầy đủ tất cả dữ liệu đến và đi, bao gồm thông tin mô tả

Và tùy chọn sau đây của wget:

  • --timestamping - Bật thời gian dập

curl --trace-ascii <file> --trace-time -o /dev/null <url>chính xác là những gì tôi cần. Cảm ơn!
DSummersl

3

Selenium và Curl là những lựa chọn tốt tùy thuộc vào mục tiêu của bạn là gì. Ngoài ra, một tiện ích mà tôi rất thích là một chút twill. Thêm thông tin có sẵn tại http://twill.idyll.org/ .

Thật tuyệt vì nó có ngôn ngữ chuyên ngành nhỏ của riêng mình để điền vào biểu mẫu, xác thực các liên kết và kiểm tra mã phản hồi. Vì đó chỉ là mã Python, bạn có thể dễ dàng nhập các thư viện và tự động kiểm tra nếu bạn muốn làm điều gì đó khác biệt.


2

Sử dụng curl để lấy tiêu đề cho trang và thời gian xử lý:

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

gói nó trong một vòng lặp và bạn tốt để đi. Giống như cách bạn có thể kiểm tra tất cả các yếu tố nếu bạn biết URL.


1

thử một công cụ dòng lệnh gọi là 'bao vây' như được hướng dẫn ở đây


6
Đó không phải là những gì anh ấy yêu cầu. và bạn cũng trễ 3 năm =)
mveroone

1

Công cụ bạn chọn phụ thuộc vào những gì bạn muốn đo và mức độ phức tạp của trang web.

Nếu hành vi của trang web phụ thuộc vào cookie (ví dụ: người dùng cần đăng nhập) thì ab / curl / wget (được mô tả trong các câu trả lời khác) sẽ không đủ. Một giải pháp là sử dụng http :: ghi / www :: cơ giới hóa .

Tất cả dữ liệu bạn đang yêu cầu có trong nhật ký máy chủ web của bạn - và một tập lệnh awk đơn giản sẽ trả về nó ở dạng dễ đọc hơn.

điểm chuẩn thời gian cần thiết để tải xuống các yếu tố khác nhau của trang web.

Đây là một chỉ số hiệu suất rất kém (mặc dù nó rất hữu ích để theo dõi sức khỏe của hệ thống sản xuất). Ngoại trừ các tài nguyên lớn / chậm như báo cáo cồng kềnh, hình ảnh iso, tệp đa phương tiện, nhận thức về hiệu suất có rất ít liên quan đến thời gian xử lý một yêu cầu - và thực sự rất khó để đo lường chính xác điều này (chỉ cần thêm% D để nhật ký apache của bạn xuất hiện để giải quyết vấn đề nhưng bỏ qua các bắt tay TCP, đàm phán SSL, hiệu ứng bộ đệm, thời gian tra cứu DNS).

Một giải pháp tốt hơn là sử dụng một cái gì đó như Boomerang - nhưng nó chạy trong trình duyệt có khả năng Javascript. Mặc dù điều này mang lại một chỉ số hiệu suất nhận thức tốt hơn so với theo dõi các yêu cầu HTTP riêng lẻ, nhưng nó dựa vào các sự kiện của trình duyệt để lấy giá trị cho hiệu suất - nhưng hiệu suất bị đánh lừa là tất cả thời gian để chế độ xem hiển thị (một lần nữa có các công cụ cho việc này - hãy xem các công cụ filmstrip trong WebPageTest ).

Ngoài ra còn có tranh luận về việc đo hiệu suất thực sự được phân phối cho người dùng của trang web (RUM) so với thử nghiệm tổng hợp.



0

Tôi nghĩ để chạy thử nghiệm hiệu suất, bạn có thể thử JMeter . Bạn có thể ghi lại bài kiểm tra của mình bằng proxy tích hợp. Nó cũng chạy trong chế độ văn bản, cục bộ hoặc phân phối. Bạn có thể lưu kết quả của bạn ở định dạng csv hoặc xml. Nếu sử dụng định dạng xml, bạn cũng có thể lưu trữ nội dung của trang.


0

Để kiểm tra các tiêu đề, tôi thích httpie( tài liệu ).

Cài đặt

pip install httpie --user

Sử dụng

$ 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
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.