Nhiều user thực hiện một hành động đồng thời trên jmeter

Có lẽ đây là 1 trong những yêu cầu thường được đưa ra trong dự án lúc làm performance test. Ví dụ:

  • 100 người cùng login
  • 1000 users cùng submit form

Để setup được trên Jmeter, các bạn cần phải sử dụng Synchronizing Timer. Mình có 1 sample test plan như sau:

  • 10 users view homepage –> có user xong trước, có user xong sau
  • 10 user “cùng lúc” gọi Login request (tương đương với cùng ấn button Login trên UI)

Điểm lưu ý:

  • 10 User đồng thời gọi 1 request, ko có nghĩa là cả 10 request đó đến server cùng lúc (sẽ có request đến trước, đến sau hoặc cùng đến, ko ai biết trước)

I. Setup Synchronizing Timer

File test plan cho mọi người thử. (lưu ý: cần cài Dummy Sampler plugin trước)

Nhiệm vụ của Synchronizing Timer là đợi 1 khoảng thời gian để gom đủ số lượng user cần thiết theo 2 tiêu chí:

  • Số lượng user = Number of Simulated Users to Group by
  • Theo thời gian = Timeout in milliseconds
  • Number of Simulated Users to Group by: Số lượng user sẽ được gộp vào thành 1 group để gửi request đồng thời, trong ví dụ này mình sẽ set bằng 10. Và số này phải là số mà Number of Thread có thể chia hết, nếu không Jmeter sẽ bị treo, không kết thúc test. Ví dụ: Number of Thread = 10 thì Number of Simulated Users to Group by = 10, 5, 2 hoặc 1.
  • Timeout in milliseconds: Thời gian đợi để group số lượng user.
    • Nếu timeout=0 (hoặc ko set) thì sẽ đợi đủ số lượng user trên mục Number of Simulated Users
    • Nếu timeout > 0 thì cứ 1 khoảng thời gian = timeout thì sẽ gửi một số request, ko quan tâm đến Number of Simulated Users nữa.

II. Ví dụ 1

Setting: Timeout=0, Number of Simulated Users to Group by = 10

  • 10 request Login có cùng thời điểm Start Time và đều chạy sau request Homepage

III. Ví dụ 2

Setting: Timeout=600, Number of Simulated Users to Group by = 10

  • Ở đây, vì cứ 600ms lại gửi request login 1 lần nên số lượng request có cùng Start time đã khác nhau, 3 group riêng biệt, chứ ko còn đủ 10 request như ở ví dụ trước.

IV. Tổng kết

Đây là 1 tính năng để làm thỏa mãn yêu cầu cơ bản của các PM, cũng khá hay ho và hữu ích, các bạn tester học lấy để “phòng thân” nhé. 😀

0 0 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments