Bộ hẹn giờ là gì?
Theo mặc định, JMeter gửi yêu cầu mà không tạm dừng giữa mỗi yêu cầu. Trong trường hợp đó, JMeter có thể áp đảo máy chủ thử nghiệm của bạn bằng cách đưa ra quá nhiều yêu cầu trong một khoảng thời gian ngắn.
Hãy tưởng tượng rằng bạn gửi hàng nghìn yêu cầu đến một máy chủ web đang được thử nghiệm trong vài giây. Đây là những gì sẽ xảy ra!
Bộ định thời cho phép JMeter trì hoãn giữa mỗi yêu cầu mà một luồng thực hiện. Bộ đếm thời gian có thể giải quyết vấn đề quá tải của máy chủ .
Ngoài ra, trong cuộc sống thực, khách truy cập không đến một trang web cùng một lúc mà vào những khoảng thời gian khác nhau. Vì vậy, Timer sẽ giúp bắt chước hành vi thời gian thực.
Trong hướng dẫn này, bạn sẽ học
- Hẹn giờ liên tục
- Hẹn giờ ngẫu nhiên Gaussian
- Hẹn giờ ngẫu nhiên thống nhất
- Bộ hẹn giờ BeanShell
- Bộ hẹn giờ BSF
- Bộ hẹn giờ JSR223
- Cách sử dụng bộ hẹn giờ không đổi
Sau đây là một số loại bộ hẹn giờ phổ biến trong JMeter
Hẹn giờ liên tục:
Bộ hẹn giờ liên tục trì hoãn mỗi yêu cầu của người dùng trong cùng một khoảng thời gian.
Hẹn giờ ngẫu nhiên Gaussian:
Bộ đếm thời gian ngẫu nhiên Gaussian trì hoãn mỗi yêu cầu của người dùng trong một khoảng thời gian ngẫu nhiên .
Thông số:
Thuộc tính | Sự miêu tả |
---|---|
Tên | Tên mô tả cho bộ hẹn giờ này được hiển thị trên cây |
Sai lệch (mili giây) | Một tham số của Hàm phân phối Gaussian |
Chênh lệch độ trễ liên tục (mili giây) | Giá trị bổ sung tính bằng mili giây |
Vì vậy, tổng độ trễ được mô tả như hình dưới đây:
Hẹn giờ ngẫu nhiên thống nhất:
Bộ đếm thời gian ngẫu nhiên đồng nhất trì hoãn mỗi yêu cầu của người dùng trong một khoảng thời gian ngẫu nhiên.
Thông số:
Thuộc tính |
Sự miêu tả |
---|---|
Tên |
Tên mô tả cho bộ hẹn giờ này được hiển thị trên cây |
Độ trễ Ngẫu nhiên Tối đa |
Số mili giây ngẫu nhiên tối đa để trì hoãn. |
Chênh lệch độ trễ liên tục (mili giây) |
Giá trị bổ sung tính bằng mili giây |
Tổng độ trễ là tổng của giá trị ngẫu nhiên và giá trị bù đắp.
Bộ hẹn giờ BeanShell
Bộ hẹn giờ BeanShell có thể được sử dụng để tạo thời gian trễ giữa mỗi yêu cầu của người dùng.
Bộ hẹn giờ BSF
Bộ hẹn giờ BSF có thể được sử dụng để tạo độ trễ giữa mỗi yêu cầu của người dùng bằng cách sử dụng ngôn ngữ kịch bản BSF.
Bộ hẹn giờ JSR223
Bộ định thời JSR223 có thể được sử dụng để tạo độ trễ giữa mỗi yêu cầu của người dùng bằng ngôn ngữ kịch bản JSR223
Cách sử dụng bộ hẹn giờ không đổi
Trong ví dụ này, bạn sẽ sử dụng Bộ hẹn giờ cố định để đặt độ trễ cố định giữa các yêu cầu của người dùng đến google.com.
Hãy bắt đầu với một tập lệnh thử nghiệm đơn giản
- JMeter tạo một yêu cầu của người dùng tới http://www.google.com 100 lần
- Độ trễ giữa mỗi yêu cầu của người dùng là 5000 mili giây
Đây là lộ trình cho ví dụ thực tế này:
Điều kiện trước:
Chúng tôi sử dụng lại Bước 1 và Bước 2 trong hướng dẫn Kiểm tra hiệu suất JMeter.
Bước 1) Thêm nhóm chủ đề
Nhấp chuột phải vào Kế hoạch kiểm tra và thêm một nhóm chủ đề mới: Thêm -> Chủ đề (Người dùng) -> Nhóm chủ đề
Trong bảng điều khiển Nhóm Chủ đề, nhập Thuộc tính Chủ đề như sau
Cài đặt này cho phép JMeter tạo một yêu cầu của người dùng tới http://www.google.com trong 100 lần
Bước 2) Thêm các phần tử JMeter
- Thêm mặc định yêu cầu HTTP
- Thêm yêu cầu HTTP
Bước 3) Thêm bộ hẹn giờ không đổi
Nhấp chuột phải vào Nhóm chủ đề -> Bộ hẹn giờ -> Bộ hẹn giờ không đổi
Định cấu hình độ trễ chuỗi 5000 mili giây
Bước 4) Thêm kết quả xem trong bảng
Xem Kết quả trong Bảng hiển thị kết quả thử nghiệm ở định dạng bảng.
Nhấp chuột phải vào Thêm -> Trình nghe -> Xem kết quả trong bảng
Xem kết quả trong bảng hiển thị như hình dưới đây
Bước 5) Chạy thử nghiệm của bạn
Khi bạn đã sẵn sàng chạy thử nghiệm, hãy nhấp vào nút Chạy trên thanh menu hoặc phím tắt Ctrl + R
Đây là kết quả của bài kiểm tra này
Ví dụ, trong hình trên, hãy phân tích Mẫu 2
- Thời gian bắt đầu là 22: 05: 01.866
- Thời gian lấy mẫu của Mẫu 2 là 172 ms
- Hẹn giờ liên tục : 5000 ms (như được định cấu hình)
- Thời gian kết thúc của mẫu này là = 22: 05: 01.866 + 172 + 5000 = 22: 05: 07.038
Vì vậy, Mẫu 3 sẽ bắt đầu tại thời điểm 22: 05: 07.039 (Như trong hình trên)
Độ trễ của mỗi mẫu là 5000 ms
Nếu bạn thay đổi Bộ hẹn giờ không đổi bằng 0 , bạn sẽ thấy kết quả được thay đổi
Hãy phân tích mẫu 1
- Thời gian bắt đầu là 22: 17: 39.141
- Thời gian lấy mẫu của Mẫu 2 là 370 ms
- Hẹn giờ liên tục : 0 ms (như đã định cấu hình)
- Thời gian kết thúc của mẫu này là = 22: 17: 39.141+ 370 + 0 = 22: 17: 39.511
Vì vậy, Mẫu 2 sẽ bắt đầu tại thời điểm là 22: 17: 39.512 (Hiển thị trong hình trên)
Xử lý sự cố:
Nếu bạn gặp sự cố khi chạy trường hợp trên… hãy làm như sau
- Kiểm tra xem bạn có đang kết nối Internet qua proxy hay không. Nếu có, hãy xóa proxy.
- Mở phiên bản mới của JMeter
- Mở TimerTestPlan.jmx trong Jmeter
- Nhấp đúp vào Nhóm chủ đề -> Xem kết quả trong bảng
- Chạy thử nghiệm