Như chúng ta đã biết Apache Jmeter là phần mềm mã nguồn mở được viết 100% bằng Java, đây cũng là tool đang được sử dụng khá nhiều hiện nay về việc kiểm tra hiệu suất và độ chịu tải (để hiểu về cách cài đặt và giao diện các bạn có thể tham khảo các bài viết về Jmter tại đây).
Vậy làm sao để chúng ta sử dụng nó một cách hiệu quả, dưới đây chúng ta sẽ cùng nhau đi tìm hiểu các tiện ích của Jmeter.

    1. Configuration Elements

Cho phép bạn tạo các giá trị mặc định và các biến để Tester sử dụng hoặc được sử dụng để thêm, sửa đổi các yêu cầu.
Giả sử có ví dụ như sau: trong trường hợp cả 3 HTTP Request dưới đây đều Server Name or IP là itmscoaching.com
Tien-ich-cua-jmeter-1 Tien-ich-cua-jmeter-2Tiện-ích-của-Jmeter-3
Trong trường hợp Developer thay đổi môi trường từ domain itmscoaching.com sang domain jmeter.apache.org như vậy bạn cần chỉnh sửa toàn bộ Servernam or IP cũ sang thông tin mới thì test mới run được. Vậy câu hỏi đặt ra là nếu việc thay đổi môi trường nhiều lần với khá nhiều request? như vậy việc chỉnh sửa sẽ mất khá nhiều thời gian và không hiệu quả, để làm được việc đó chúng ta cần sử dụng Config Elements.
Tiện-ích-của-jmeter-4
Config Elements giúp cung cấp cho người dùng khả năng tạo ra các giá trị mặc định cho các request ở bên trong Test Plan hoặc tạo ra các biến với các giá trị cụ thể cho trước và được gọi ra trong Test plan một hoặc nhiều lần.
Ngoài ra nó còn hỗ trợ việc cấu hình để đọc nội dung của một file data, truyền data đó từ file bên ngoài vào bên trong Test Plan để sử dụng.
Để giải quyết bài toán trên chúng ta sử dụng Element HTTP Request Defaults.

Tien-ich-cua-jmeter-5

Sau khi tạo xong bạn di chuyển nó lên trên cùng như hình dưới đây. Ở đây chúng ta sẽ truyền giá trị domain mới vào HTTP Request Defaults và sau đó remove hết Server name or IP của các HTTP Request.
Tien-ich-cua-jmeter-6
Tien-ich-cua-jmeter-7
Tuy nhiên bạn có thể tạo thêm các giá trị mặc định khác và khi run test thì HTTP Request Defaults sẽ được run trước để khởi tạo giá trị default cho Server name or IP là jmeter.apache.org và bên dưới Test plan đang không có Server nam or IP thì sẽ được run mặc định với giá trị ở HTTP Request Defaults.

  1. 2. Logic Controller

Khi run các request chúng ta có thể thấy một điều đơn giản là các request sẽ run từ trên xuống theo thứ tự hiển thị ở Test plan, tuy nhiên có lúc User họ thao tác khác thì thứ tự run theo thứ tự lại không đúng như vậy hoặc các request chạy theo điều kiện nào đó, nếu thảo mãn thì mới run request nếu không thỏa mãn thì thôi..vậy để giải quyết bài toán này chúng ta cần sử dụng đến Element Logic Controller.
Giúp định nghĩa việc gửi request lên server như nào? Các request sẽ được thực thi từ trên xuống theo thứ tự trong Test plan và Logic Controller sẽ thay đổi bằng logic khác dựa trên mong muốn của người thực hiện bằng cách thực hiện như hình dưới. Bạn sẽ thấy xuất hiện 1 list controller, tên của controller sẽ gắn liền với bản chất của nó.
Tien-ich-cua-jmeter-8
Chú ý: Muốn apply controller cho request nào nào thì bắt buộc request đó phải nằm bên trong controller đó
Ví dụ ở đây chúng ta chọn Loop Controller, để lặp lại request của home page bạn move request home page vào bên trong controller và set loop 2 lần ở loop count.
Tiện-ích-của-jmeter-9
Như vậy bạn sẽ có kết quả Home page sẽ run 2 lần rồi đến Dowload và User.
Tien-ich-cua-jmeter-10
Các bạn có thể lựa chọn việc run theo điều kiện mà bạn thiết lập dựa vào Logic Controller.
3. Timer
Nội dung tiếp theo chúng ta sẽ đề cập đến việc khi nào request tiếp theo sẽ được run? Như ví dụ trên thì Home page run xong khi nào Dowload được run hay run Dowload xong khi nào User sẽ được run?
Câu trả lời là trong một Test plan, các request sẽ được run một cách liên tục, ngay sau khi request trước đó run xong thì request tiếp theo sẽ được run. Nhưng theo thực tế khi bạn sử dụng phần mềm, mỗi khi bạn thực hiện xong một thao tác không phải bạn sẽ thực hiện ngay một thao tác khác nó sẽ có khoảng ngừng nghỉ do đó chúng ta cần giả lập khoảng thời gian đó bằng cách sử dụng đến Timer.
Timer giúp tạo ra các khoảng delay time giữa các request. Tuy nhiên bạn cần chú ý hai đặc điểm sau của nó:

  • Timer luôn được thực thực thi trước các request được thực thi
  • Timer sẽ apply cho tất cả các request ngang hàng hoặc có vị trị thấp hơn vị trí đặt Timer

Tiện-ích-của-jmeter-11
Ở đây mình sẽ dùng Constant Timer để demo, ở đây mình sẽ điền tham số Thread Delay đó là thời gian delay giữa các request, đơn vị ở đây là millisecond, bạn thiết lập 5s tương ứng là 5000 millisecond.
Tiện-ích-của-jmeter-12
Như đặc điểm Timer đã nói bên trên chúng ta sẽ có kết quả run là Delay 5s -> Dowloads -> Delay 5s -> User và cùng check lại kết quả các bạn nhé. Bạn có thể check time run ở góc bên trên bên phải màn hình (time khoanh đỏ như hình dưới đây).
Tiện-ích-của-jmeter-13
Bạn có thể kiểm tra lại bằng cách như sau:
Sẽ có 10s của Timer cộng với time của Dowloads là 1106 và User là 1150 vậy tồng là: 10 + 1106 + 1150 = 12,266 s. Trong đó time tổng là 12 s như vậy kết quả là gần chính xác.
Tiện-ích-của-jmeter-14
Tiện-ích-của-jmeter-15
4. Assertions
Khi chúng ta run scripts trên Jmeter và chỉ dựa vào trạng thái xanh hoặc đỏ (ở Lister – View Results Tree) là chưa đủ.
tien-ich-cua-jmeter-16

Có những trường hợp kết quả trả về là xanh nhưng respon data không chứa thông tin mà mình cần hoặc những thông tin đó không chính xác. Hay trường hợp liên quan đến các thông tin nhạy cảm: tiền, thông tin đăng nhập user,…cần phải kiểm tra những data đó là điều cần thiết và bắt buộc -> độ tin cậy cửa những request sẽ được tăng lên.

Vậy để giái quyết được bài toán này chúng ta sẽ cần sử dụng đến tiện ích Assertions.

Phạm vi sử dụng: áp dụng cho tất cả những request nằm ngang hàng với nó và request có vị trí đặt thấp hơn vị trí của nó. Ngoài ra nếu bạn đặt Assertions đó bên trong một request cụ thể thì lúc đó nó chỉ áp dụng cho chính request mà nó nằm trong đó.

tien-ich-cua-jmeter-17

Thứ tự run : Assertions sẽ run sau khi request run xong, vì khi đó nó mới lấy được giá trị để kiểm tra.

Thêm Assertions bằng cách chọn request cần verify chuột phải -> Assertions và chọn loại mà bạn muốn (mỗi 1 loại Assertions sẽ giúp chúng ta verify theo một kiểu khác nhau). Ở đây mình sử dụng Response Assertions và chọn một đặc điểm của Home page để xác minh.

Chú ý: Thông tin đưa vào verify nên là duy nhất

tien-ich-cua-jmeter-18

Và để thực hiện được chúng ta sẽ thực hiện các bước như sau:

B1: Copy paste đoạn text bạn muốn verify ở page đó

B2: Chọn Response Assertions tại Patterns to Test chọn button Add và paste đoạn text bạn vừa copy. Sau đó bạn run scritps

Bạn thấy kết quả bình thường, chứng tỏ Response Assertions đã pass.

tien-ich-cua-jmeter-19

Chúng ta có thể kiểm tra lại bằng cách verify một text ở page không có và bạn run lại.
tien-ich-cua-jmeter-20
Bạn sẽ thấy request Home page đã báo đỏ như vậy chứng tỏ request đã bị fail do Assertions .
tien-ich-cua-jmeter-21
Bạn click vào mũi tên, kết quả sổ xuống sẽ cho bạn biết Assertiosn đã fail, bạn click vào chi tiết nó sẽ hiển thị kết quả.
 tien-ich-cua-jmeter-22
Kết Luận: Như vậy việc sử dụng các Tiện ích của Jmeter sẽ giúp chúng ta giải quyết được khá nhiều bài toán phải không các bạn?Mời các bạn đón đọc và Chúc các bạn học tập tốt!

Nguồn: https://jmeter.apache.org/

Xem Thêm:

 

Recording trên Jmeter

Giao Diện Jmeter Và Cách Config API

Install Jmeter chỉ với hai bước

 

Leave a Reply

Your email address will not be published. Required fields are marked *