PHP Internet Speed Tester là mã nguồn xây dựng trên PHP. Công cụ giúp kiểm tra tốc độ đường truyền mạng giữa máy chủ tải lên và đường truyền Internet nhà bạn. Không cần máy chủ mạnh cũng không khó để cài đặt để có được một trang Speedtest của riêng bạn.
Script đo tốc độ đường truyền giữa hệ thống mạng máy tính người dùng với máy chủ tải mã nguồn lên. Vì máy chủ chỉ cố định nên có thể cho tốc độ khác nhau giữa những người dùng.
Tính năng chính:
- Kiểm tra tốc độ tải về – Download speed test
- Kiểm tra tốc độ tải lên – Upload speed test
- Đo thời gian Ping – Ping time measurement
- Hỗ trợ nhiều trình duyệt [cả mobile] – Cross browser support
- Đo tốc độ theo thời gian thực
- Responsive
Yêu cầu:
- Hỗ trợ PHP >5.x
- php_curl[]
- Cho phép Javascript trên trình duyệt
Cài đặt:
- Upload và giải nén mã nguồn lên hosting/server
- Cài đặt Database trong thư mục /data/ nếu muốn lưu lại dữ liệu
Xử lý sự cố
- Kiểm tra xem máy chủ có hỗ trợ curl[] không?
- Tắt tính năng chặn quảng cáo
- Javascript được bật trên trình duyệt
Demo: //speedtest.yehudae.ga/
Tag:
k6 run demo.js
4
Thời gian gửi dữ liệu đến máy chủ
http_req_waiting Show
- Thời gian chờ phản hồi từ máy chủ
- http_req_receiving
- Thời gian nhận dữ liệu phản hồi từ máy chủ
- http_req_duration
- Ví dụ: Để kiểm tra trạng thái của response trả về có phải là 200 không, ta có thể chạy file .js chứa nội dung dưới đây
- Kết quả trả về sẽ bao gồm tỉ lệ pass/fail như dưới đây
- Mô tả
- iterations
- Số liệu được sinh ra khi có HTTP request
- http_req_blocked
- http_req_tls_handshaking
thời gian máy khách và máy chủ xác nhận lẫn nhau
Thời gian chờ phản hồi từ máy chủ
http_req_receiving
Thời gian nhận dữ liệu phản hồi từ máy chủ
http_req_duration
Ví dụ: Để kiểm tra trạng thái của response trả về có phải là 200 không, ta có thể chạy file .js chứa nội dung dưới đây
http_req_receiving
Thời gian nhận dữ liệu phản hồi từ máy chủ
Thời gian nhận dữ liệu phản hồi từ máy chủ
http_req_duration người dùng ảo [virtual users - VUs] và duration - 1 chuỗi quy định khoảng thời gian quá trình kiểm thử diễn ra.
Ví dụ: Để kiểm tra trạng thái của response trả về có phải là 200 không, ta có thể chạy file .js chứa nội dung dưới đâydefault function giúp VUs xác đỉnh điểm đầu vào, tương tự hàm main[] ở các ngôn ngữ lập trình.
Kết quả trả về sẽ bao gồm tỉ lệ pass/fail như dưới đâydefault function gọi là VU code, nó sẽ được chạy hết lần này đến lần khác trong quá trình chạy test. Code nằm
ngoài default là init code và chỉ được chạy 1 lần duy nhất với mỗi VU
http_req_duration
Ví dụ: Để kiểm tra trạng thái của response trả về có phải là 200 không, ta có thể chạy file .js chứa nội dung dưới đây
import{ sleep } from 'k6';
import http from 'k6/http';
export let options = {
duration : '15s',
vus : 50,
};
export default function[] {
http.get['//test.k6.io/contacts.php'];
sleep[1];
}
Kết quả trả về sẽ bao gồm tỉ lệ pass/fail như dưới đây
Nguồn tham khảo
k6 docs
Performance testing with k6
k6 run demo.js
Ví dụ: Để kiểm tra trạng thái của response trả về có phải là 200 không, ta có thể chạy file .js chứa nội dung dưới đây
Kết quả trả về sẽ bao gồm tỉ lệ pass/fail như dưới đây
import{ sleep } from 'k6';
import http from 'k6/http';
export let options = {
duration : '15s',
vus : 50,
};
export default function [] {
const url = '//example.com/login';
const body = JSON.stringify[{
name: 'wfng',
age: '99',
}];
const params = {
headers: {
'Content-Type': 'application/json',
},
};
http.post[url, body, params];
}
Kết quả trả về sẽ bao gồm tỉ lệ pass/fail như dưới đây
Nguồn tham khảo
k6 docs
- Performance testing with k6
- Đã bao giờ bạn code 1 API mà khi dùng postman tạo request thì thấy cũng có response. Tuy nhiên, sau khi đưa vào sử dụng thì ngày nào cũng thấy bị log lỗi do request gửi vào liên tục, dẫn đến tình trạng cao tải, thành ra tính năng thì có, nhưng gần như không dùng được chưa?
- Nội dung chính Show
- Performance và Load Testing
Tên thông sốMô tả vus Số lượng active users vus_max Số lượng VU tối đa iterations Tổng số lần VUs thực thi default function iteration_duration Thời gian cần thiết để thực hiện 1 lần thực thi default function data_received Lượng data nhận về data_sent Lượng data gửi đi checks Tỉ lệ check thành công
Số liệu được sinh ra khi có HTTP request
Tên thông sốMô tả vus Số lượng active users vus_max Số lượng VU tối đa iterations Tổng số lần VUs thực thi default function iteration_duration Thời gian cần thiết để thực hiện 1 lần thực thi default function data_received Lượng data nhận về data_sent Lượng data gửi đi checks Tỉ lệ check thành công Số liệu được sinh ra khi có HTTP request Tên thông số
Mô tả
vus
Số lượng active users
k6 run --vus 10 --duration 30s script.js
vus_max
export let options = {
duration : '15s',
vus : 50,
};
Số lượng VU tối đa
iterations
Tổng số lần VUs thực thi default function
thresholds: {
http_req_failed: ['rate