+3

Tự học JMeter A - Z (P1)

Series này được viết ra để tổng hợp các kiến thức mình tự học được về JMeter. Hope you enjoy it.

Cài Đặt Jmeter

Các thành phần cơ bản của Jmeter

Test plan

  • Mỗi chương trình chỉ bao gồm 1 test plan, là thành phần lớn nhất trong một test

Thread group

  • Thread group đại diện một nhóm người dùng ảo. Để thêm Thread Group, chuột phải vào Test Plan chọn Add --> Thread (Users) --> Thread Group
  • Number of Thread (Users): Số lượng user ảo
  • Ramp-up period (Seconds): Tổng time để chạy toàn bộ Thread. Example nếu chọn Number of Thread là 10 và Ramp-up period là 30 thì mỗi thread sẽ chạy trong 3s
  • Loop count: Số lần lặp lại

Sampler

  • Các lệnh thực thi. Ở đây mình ví dụ về HTTP Request - một trong những sampler hay sử dụng nhất
  • Để thêm HTTP Request, chuột phải vào Thread Group chọn Add --> Sampler --> HTTP request
  • Để config HTTP request cần điền các fields: Protocol: http/https, Server Name or IP, Chọn GET/POST/PUT/DELETE, Path và Body Data
  • Example 1: Nếu mình muốn gửi một request GET đến https://reqres.in/api/users?page=2 thì mình sẽ config như sau
    • Protocol: https
    • GET
    • Path: api/users?page=2

Listener

  • Dùng để xem kết quả của Test. Có nhiều dạng Listener. Ở đây mình ví dụ về View Result Tree
  • Để thêm Listener. Chuột phải vào Thread Group --> Listener --> View Result Tree
  • Bạn có thể xem được kết quả của test, response data trả về, thời gian request,...

Controller

  • Như cái tên, Controller dùng để controll các request (Sampler)
  • Để thêm Controller, chuột phải Add --> Logic Controller
  • Note: Controller chỉ áp dụng cho các request có vị trí thấp hơn nó
  • Một số dạng Controller thường gặp:
    • Loop Controller: Các request sẽ được lặp lại n lần
    • Random Controller: Chạy 1 request ngẫu nhiên trong list request dưới nó
    • Random Order Controller: Chạy các request dưới nó theo thứ tự ngẫu nhiên

Timer

  • Dùng để Delay các request trong một khoảng thời gian
  • Áp dụng cho tất cả các request có vị trí thấp hơn hoặc bằng nó
  • Để thêm Timer, chuột phải Add --> Timer
  • Một số dạng Timer thường dùng:
  • Constant Timer: Delay tất cả các Request có vị trí thấp hơn hoặc bằng nó một khoản thời gian cố định (đơn vị miliseconds)

Note: Controller và Timer sử dụng để giả lập cho thao tác của các thread group giống người dùng hơn vì người dùng sẽ không phải khi nào cũng thực hiện vào các trang theo đúng thứ tự hay thời gian ở lại giữa các trang cũng sẽ không giống nhau. Cho nên mình cần dùng Controller và Timer để giúp giả lập giống người dùng bình thường hơn.

Đối với các tooler sử dụng cái này để né các hệ thống detect ra mình là bot

Config Element

  • Được sử dụng để config biến cho Test case. Ở đây mình ví dụ một Config Element hay sử dụng là User Defined Variables
  • Để config Element cho Test Plan, chuột phải Add --> Config Element --> User Defined Variables
  • Điền tên biến vào cột name, điền giá trị biến vào cột value
  • Để sử dụng biến dùng cú pháp {{tên_biến}}
  • Example: Ở ví dụ trên, mình có thể config biến page với giá trị bằng 2. Sau đó ở phần Path: thay vì viết api/users?page=2 mình sẽ viết là api/users?page={{page}}
  • Tính năng này khá hay ho và được sử dụng rất nhiều trong JMeter. Thông thường URL sẽ được viết dạng biến để khi thay đổi môi trường dev --> stag --> prod thì tester không cần phải đi chỉnh từng request
  • Để lấy dữ liệu từ file csv làm data chạy test, chuột phải `Add --> Config Element --> CSV data set config'
  • Tên cột sẽ được JMeter tự hiểu là biến. Bạn thực hiện upload và sử dụng {{tên_cột}} để lấy ra các giá trị trong file csv đó

Assertion

  • Được sử dụng để check test failed hay success
  • VD: Theo test case nếu click vào màn home phải xuất hiện hình ảnh a thì mới coi là thành công hoặc nếu response data trả về có order = 10 mới thành công. Ta gọi những điều kiện để check đó là assertion
  • Để thêm Assertion. Chuột phải --> Add --> Assertion
  • Một số loại Assertion thường gặp gồm: Response Assertion và JSON Assertion

Phần 2: Sử dụng BlazeMeter Record Script cho JMeter


All Rights Reserved

Viblo
Let's register a Viblo Account to get more interesting posts.