Tải bản đầy đủ (.pdf) (27 trang)

Kcpm btcn09 huong dan su dung jmeter

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.83 MB, 27 trang )

.

CÔNG CỤ KIỂM THỬ
HIỆU NĂNG


MỤC LỤC
1.

Tổng quan về JMeter ................................................................................................................................. 2
3.1

Jmeter là gì? ........................................................................................................................................ 2

3.2

Tại sao sử dụng Jmeter ........................................................................................................................ 2

3.3

Các loại kiểm thử hiệu năng của JMeter ............................................................................................. 2

3.4

Cách thức hoạt động của Jmeter.......................................................................................................... 3

3.5

Các element của Jmeter ....................................................................................................................... 3

1.5.1



Thread Group ............................................................................................................................... 3

1.5.2

Listener ........................................................................................................................................ 5

1.5.3

Controller ..................................................................................................................................... 8

1.5.4

Timer .......................................................................................................................................... 11

1.5.5

Assertion .................................................................................................................................... 12

3.6

Các bước thực hiện JMeter................................................................................................................ 13

2.

Hướng dẫn cài đặt Jmeter ........................................................................................................................ 13

3.

Hướng dẫn sử dụng Jmeter ...................................................................................................................... 15

3.1

Scenario 1 .......................................................................................................................................... 15

3.2

Scenario 2 .......................................................................................................................................... 19

3.3

Scenario 3 .......................................................................................................................................... 22

3.4

Scenario 4: Dynamic Data................................................................................................................. 24

Trang 1


1. Tổng quan về JMeter
3.1 Jmeter là gì?


Apache JMeter TM là phần mềm mã nguồn mở Java thuần túy, được phát triển lần đầu bởi Stefano
Mazzocchi của tổ chức phần mềm Apache.



JMeter được thiết kế để thực hiện kiểm tra hiệu năng, kiểm tra tải (load testing) và đo lường hiệu suất
của ứng dụng web hoặc nhiều dịch vụ.


3.2 Tại sao sử dụng Jmeter


Nguồn mở (Open Source): JMeter hồn tồn miễn phí, cho phép developer sử dụng mã nguồn mở cho
sự phát triển



Giao diện thân thiện: dễ sử dụng và khơng mất thời gian để làm quen với nó



Nền tảng độc lập (Platform Independent): JMeter là ứng dụng Desktop Java thuần túy 100%. Vì vậy,
JMeter có thể chạy nhiều nền tảng.



Đa luồng (Full Multithreading Framework): Jmeter cho mơ phỏng đồng thời và cùng thời điểm nhiều
sampler với các chức năng khác nhau trên các thread group khác nhau.



Hiển thị kết quả kiểm thử (Visualize Test Result): kết quả kiểm thử có thể được hiển thị ở định dạng
khác nhau như biểu đồ, bảng, cây và file log.



Khả năng mở rộng cao (High Extensible): tester có thể viết các kịch bản kiểm thử của riêng mình.
JMeter cũng hỗ trợ các plugin trực quan.




Cài đặt dễ dàng: bạn chỉ cần sao chép và chạy tập tin *.bat để chạy JMeter, không cần cài đặt



Nhiều chiến lược kiểm thử (Multiple Testing Strategy): JMeter hỗ trợ nhiều chiến lược kiểm thử như
Load Testing, Distributed Testing và Fuction Testing



Mơ phỏng (Simulation): JMeter có thể mơ phỏng nhiều người dùng với các threads đồng thời, tạo tải
nặng đối với ứng dụng web đang được kiểm thử.



Hỗ trợ đa giao thức (Support multi-protocol): JMeter không chỉ hỗ trợ kiểm thử ứng dụng web mà
còn đánh giá hiệu năng máy chủ cơ sở dữ liệu. Tất cả các giao thức cơ bản như HTTP, JDBC, SOAP,
JMS và FPT đều được JMeter hỗ trợ



Record và Playback: ghi lại hoạt động của người dùng trên trình duyệt và mơ phỏng chúng trong một
ứng dụng web sử dụng JMeter



Kịch bản Test (Script Test): JMeter có thể được tích hợp với Bean Shell và Selenium để kiểm thử tự
động.


3.3 Các loại kiểm thử hiệu năng của JMeter


Load Testing: tìm capacity của server, xác định ngưỡng có thể chịu tải được của hệ thống

Ví dụ: hệ thống chịu được 5000 request và khơng xảy ra lỗi. Vượt quá 5000 sẽ bắt đầu có lỗi, response
time bị chậm và sẽ có issue xảy ra → Vậy thì 5000 là capacity của server hoạt động ổn định
Trang 2




Stress Testing: đánh giá hệ thống tại và bên trên ngưỡng limit (capacity của hệ thống), tìm ra breaking
point của hệ thống (làm cho hệ thống die hoặc response được nữa)

Ví dụ: 5000 là nó hoạt động ổn khơng lỗi, 7000 thì nó bắt đầu issue, 10000 thì nó chết luôn hệ thống →
Vậy 10000 là break point
3.4 Cách thức hoạt động của Jmeter

3.5 Các element của Jmeter
1.5.1


Thread Group

Thread Group là điểm bắt đầu của một test plan bất kỳ. Tất cả các Controllers và Samplers phải được
đặt dưới một Thread Group, Thread Group điều khiển số lượng threads mà JMeter sẽ sử dụng để thực
thi kịch bản test




Cách tạo: Click phải chuột vào Test Plan → Add → Threads (users) → Thread Group

Thread Group có những thành phần sau:

Trang 3


1.5.1.1

Action to be taken after a Sampler error

Nó xác định những gì sẽ xảy ra nếu một sampler xảy ra lỗi hoặc vì bản thân sampler bị lỗi. Các lựa chọn
có thể là:


Continue (default): bỏ qua lỗi và tiếp tục kiểm thử và chạy sampler tiếp theo



Start Next Loop: bỏ qua lỗi, bắt đầu vòng lặp tiếp theo và tiếp tục với bài kiểm thử



Stop Thread: thốt khỏi thread hiện tại



Stop Test: tồn bộ kiểm thử được dừng lại ở cuối sampler hiện tại. Nó có nghĩa là các sampler đang

chờ xử lý vẫn chạy cho đến khi hồn tất.



Stop Test Now: toàn bộ kiểm thử được dừng lại và ngay lập tức. Mọi sampler hiện tại đều bị gián đoạn

1.5.1.2

Thread Properties



Name: có thể tạo bất cứ tên gì cho Thread Group



Number of Threads (users): giả lập số user



Ramp-up Period (in seconds): mất bao lâu để ramp-up cho toàn bộ các Threads đã chọn

Ví dụ: có 10 threads và ramp-up reriod là 100 giây, thì JMeter sẽ mất 100 giây để chạy 10 threads. Mỗi
thread sẽ bắt đầu 10 giây sau khi thread trước đó đươc bắt đầu.
Lưu ý: nếu ramp-up period = 0, kiểm thử sẽ được diễn ra cho đến khi tất cả các threads được tạo ra, sau
đó bắt đầu tất cả các thread cùng một lúc.


Loop Count: số lần thực thi kiểm thử cho mỗi thread group, giá trị mặc định là 1 nghĩa là không lặp
lại. (Forever: lặp lại vơ hạn số lần kiểm thử)




Delay Thread creation until needed: làm chậm việc tạo ra thread mới. Hữu ích khi tạo Thread Group
với lượng user lớn. Khi đó tránh được tải lớn do tạo ra một lượng user lớn ngay lập tức.



Scheduler: khi được tích, tùy chọn cho scheduler sẽ được enable để thiết lập việc chạy/ dừng test lại
Trang 4


những thời điểm nhất định. Nếu không chọn, bản test sẽ chạy ngay khi chúng ta bấm Start
1.5.1.3


Scheduler Configuration

Duration (seconds): nếu scheduler checkbox được chọn, có thể chọn thời gian kết thúc tương đối.
JMeter sẽ sử dụng tính năng này để tính thời gian kết thúc và bỏ qua giá trị thời gian kết thúc. Khi
kiểm thử chạy hết thời gian này, nó sẽ dừng lại và đang sử dụng chế độ Stop Test như trên.



Startup delay (seconds): nếu scheduler checkbox được chọn, có thể chọn độ trễ khởi động tương đối,
JMeter sẽ sử dụng điều này để tính thời gian bắt đầu và bỏ qua giá trị thời gian bắt đầu.



Start time: nếu scheduler checkbox được chọn, có thể chọn thời gian bắt đầu tuyệt đối. Khi bắt đầu

kiểm thử, JMeter sẽ đợi cho đến khi thời gian bắt đầu được chỉ định bắt đầu kiểm thử.



End time: nếu scheduler checkbox được chọn, có thể chọn thời gian kết thúc tuyệt đối. Khi bạn bắt
đầu kiểm thử, JMeter sẽ đợi cho đến khi thời gian bắt đầu được chỉ định bắt đầu kiểm thử và nó sẽ
dừng lại ở thời gian kết thúc được chỉ định.

1.5.2

Listener

1.5.2.1

Định nghĩa Listener



Cung cấp thông tin mà JMeter thu thập được về các test case trong lúc JMeter chạy



Cho phép xem những kết quả thu được từ việc chạy thử nghiệm dưới các dạng khác nhau như: tables,
graphs, trees hoặc một vài log files đơn giản… Lưu ý: tất cả Listener đều lưu trữ cùng một dữ liệu/ kết
quả test, chỉ khác nhau ở cách mà data hiển thị trên màn hình.



Listener có thể trích xuất data thu thập ra file cho người dùng. Mỗi listener cung cấp một field để chỉ
định file sẽ chứa data. Có thể tùy chọn định dạng file là csv hoặc xml.




Listener có thể đặt bất cứ nơi đâu trong test plan. Chúng sẽ chỉ thu thập data từ các elements cùng cấp
hoặc dưới cấp.

1.5.2.2

Phân loại Listener

Có rất nhiều dạng Listener được JMeter cung cấp, có thể kể đến một số Listener thường được sử dụng để
cung cấp như Aggregate Result, View Results in Table, View Results Tree, Summary Report, Graph
Results, …
1.5.2.2.1

Aggregate Result

Aggregate Result: là một report dạng table, với 12 coulumn ứng với 12 thông số

Trang 5


- Label: hiển thị tên của từng requests có trong test plan
Lưu ý: mặc định tất cả những request bị trùng tên trong test plan, sẽ chỉ hiển thị 1 dòng duy nhất trong
table này, cho dù nội dung của các request đó có khác nhau hay nằm khác Thread Group. Vì vậy, khi
đặt tên cho các request, nên lưu ý là đặt tên khác nhau
- Include group name in label? Mặc định là UNCHECK
Nếu Include group name in label = CHECK, thì những request sẽ được gán thêm tiền tố = tên của
Thread Group chứa request đó.
- #Samples: tổng số lần run của request

Công thức: #Samples = Number of Threads (users) * Loop Count
Ví dụ: Thread Group có cấu hình
Number of Threads (users): 100, Loop Count: 1, chạy 2 trang (trang chủ và trang báo thể thao) → thì 1
HTTP Request của Thread Group này sẽ run 100 x 1 x 2 = 200 (lần)
- Average (millisecond): thời gian phản hồi trung bình của request, tính cho đến lần run cuối cùng
Ví dụ: một request run tổng cộng 2 lần với các kết quả response time tương ứng là 662ms và 212ms →
response time trung bình là 437ms
- Min (millisecond): response time thấp nhất của request tính cho tồn bộ tất cả các lần run
Ví dụ: Min = 75ms
- Max (millisecond): response time cao nhất của request tính cho tồn bộ tất cả các lần run
Ví dụ: Min = 3550ms
- Percentiles (millisecond): là một con số x và đi kèm theo 1 giá trị A. Nghĩa là sẽ có x% có giá trị
thấp hơn giá trị A, cịn lại (100-x)% sẽ có giá trị lớn hơn giá trị A
- Median (millisecond): nó gần giống với trung bình, nhưng ý nghĩa thì khác hồn tồn, Median + một
giá trị A, sẽ chia toàn bộ các giá trị của bạn thành 2 phần khác nhau, một phần sẽ chứa những giá trị
< A, phần còn lại sẽ chứa những giá trị > A. Median sẽ chỉ ra, sẽ có 50% số request có response time
nhỏ hơn giá trị và 50% số request cịn lại có response time lớn hơn giá trị này.
- 90% line (90th Percentile) (millisecond): nghĩa là 90% số requests sẽ có response time nhỏ hơn giá
trị hiển thị trong table, 10% số request cịn lại sẽ có request time lớn hơn giá trị hiển thị trong table.
Trang 6


- 95% line (90th Percentile) (millisecond): nghĩa là 95% số requests sẽ có response time nhỏ hơn giá
trị hiển thị trong table, 5% số request cịn lại sẽ có request time lớn hơn giá trị hiển thị trong table.
- 99% line (90th Percentile) (millisecond): nghĩa là 99% số requests sẽ có response time nhỏ hơn giá
trị hiển thị trong table, 1% số request cịn lại sẽ có request time lớn hơn giá trị hiển thị trong table.
- Error (%): % số lượng request bị fail
Ví dụ: run 200 lần, thấy 0% nghĩa là request khơng có lỗi
- Throughput (thơng lượng) con số cho bạn biết được số lượng requests được hệ thống (server) xử lý
trong 1 đơn vị thời gian, có thể giây, phút, giờ.

Cơng thức tính throughput = (Tổng số lượng requests) / (tổng thời gian * đơn vị chuyển đổi)
Tổng số lượng requests = tổng số lần request này được run
Tổng thời gian = (thời gian bắt đầu chạy của request cuối cùng) + (thời gian chạy/response time của
request cuối cùng) – (thời gian bắt đầu chạy của request đầu tiên)
Đơn vị chuyển đổi: mặc định nó sẽ tính theo millisecond, nên để đổi về second thì số này sẽ là 1000
hoặc 1000*60 nếu bạn muốn chuyển về phút.
- KB/sec: cũng là thông lượng, nhưng không đo lường bằng số request, mà đo bằng kilobytes/second
Công thức thoughput KB/sec = (thoughput * average bytes) /1024
- Total: tổng kết lại toàn bộ kết quả từ request bên trên. Ngoại trừ #samples, throughput và KB/sec, nó
sẽ được cộng lại theo đúng nghĩa total. Cịn các thơng số cịn lại đều được tính total bằng cách lấy
trung bình từ tất cả những request ở trên
1.5.2.2.2

Graph Result

Những thông số của graph này được biểu thị bằng những màu sắc khác nhau:
- Đen: tổng số samples hiện đang gửi
- Đỏ: độ lệch chuẩn hiện tại
- Xanh lá: tỷ lệ throughput hiện tại đại diện cho số request là server đang xử lý
- Xanh dương: trung bình samples hiện tại
1.5.2.2.3

View Result in Table

Hiển thị những thông số về thời gian phản hồi của từng yêu cầu, những yêu cầu thực hiện thành công và
thất bại… dưới dạng bảng
1.5.2.2.4

View Result Tree


Hiển thị kết quả dạng cây của tất cả các sample responses, các request xanh là pass, các request đỏ là fail.
1.5.2.2.5

Summary Report

Hiển thị kết quả, bảng thống kê bao gồm:
- Label: tên request
- Sample: số request
Trang 7


- Average: thời gian trung bình xử lý
- requestMin: thời gian nhỏ nhất xử lý
- requestMax: thời gian lớn nhất xử lý
- requestStd.Dev: độ lệch chuẩn của thời gian xử lý
- requestError: phần trăm bị lỗi các request (lỗi kết nối hoặc lỗi đầu ra không mong muốn)
- thoughput: số request/s của serveravg
- bytes: số bytes trung bình
- responseKB/sec = (agv.bytes *thoughput) /1024
- …
1.5.2.3

Phân tích Report

Hãy tập trung vào 2 thông số quan trọng nhất của mọi performance report
1. Response Time: chỉ ra được việc xử lý request nhanh hay chậm → response time thì càng thấp càng
tốt
2. Throughput: chỉ ra được số lượng requests được server xử lý trong một đơn vị thời gian. Vậy cùng
một thời gian, càng xử lý được càng nhiều càng tốt → throughput càng cao càng tốt
Có các trường hợp xảy ra bao gồm:



Trường hợp 1: Response time thấp và throughput thấp → trường hợp này khơng bao giờ xảy ra, vì
response time thấp nghĩa là thời gian đáp ứng rất nhanh, nhưng throughput thấp nghĩa là số request xử
lý rất ít → KẾT LUẬN VƠ LÝ



Trường hợp 2: Response time thấp và throughput cao → kết quả lý tưởng. thời gian xử lý thấp và số
request xử lý đồng thời lại cao → KẾT LUẬN SERVER ĐANG RẤT TỐT



Trường hợp 3: Response time cao và throughput thấp → performance test của bạn đã bị fail. Test chỉ
rằng thời gian xử lý quá cao và lượng request được xử lý lại rất thấp→ KẾT LUẬN PHẢI XEM XÉT
ĐỂ IMPROVE VỀ PHÍA SERVER



Trường hợp 4: Response time cao và throughput cao → throughput cao, tức là server đang làm việc
rất tốt, response time cao nghĩa là thời gian xử lý cao (không tốt) → KẾT LUẬN ĐOẠN SCRIPT
VIẾT CHƯA ĐƯỢC TỐI ƯU, KHIẾN QUÁ TRÌNH XỬ LÝ MẤT NHIỀU THỜI GIAN

1.5.3

Controller

1.5.3.1

Sampler




Sampler thực hiện cơng việc thực của JMeter, mỗi sampler có thể tạo ra một hoặc nhiều kết quả sample.
Những kết quả sample có những thuộc tính đa dạng được hiển thị ở listener



Cách tạo: Click phải chuột vào Thread Group → Add → Sampler → HTTP Request

Trang 8




Có rất nhiều Sampler cho kiểu request như: HTTP, FTP, JDBC, Java, SOAP/XML, RPC, MongoDB,
TCP …

Giải thích cụ thể 1 loại sampler là HTTP Request
HTTP Request này cho phép bạn gửi yêu cầu HTTP, HTTPs tới máy chủ web. Nó cũng cho phép bạn
kiểm sốt hoặc khơng kiểm sốt JMeter phân tích cú pháp các tệp HTML cho hình ảnh, các resources
được nhúng khác và gửi yêu cầu HTTP để truy xuất chúng. Các loại resource nhúng sau đây được truy
xuất: hình ảnh, applet, bảng định kiểu (css) và tài nguyên được tham chiếu từ các tệp đó, external scripts,
frames, iframes, background images (body, table, TD, TR), background sound.



HTTP Request Properties
- Name: đặt tên cho HTTP Request
Trang 9



- Server Name of IP: điền vào Domain hoặc IP trang web mà mình đang cần test
- Port Number: chỉ ra port của web, nếu để trống thì sẽ default là 80
- Protocol: giao thức được sử dụng là HTTP hoặc HTTPs, nếu bỏ trống mặc định là HTTP
- Method: phương thức để các HTTP request, có các method: GET, POST, HEAD, PUSH…
- Path: đường dẫn các nguồn để xử lý các request
- Parameter: biểu diễn các danh sách các tham số để gửi cùng request (có thể thêm hoặc xóa thơng
số này)
- Send files with the request: giả lập việc upload file
- Retrieve all embedded Resources: dùng để download các trang java applet được nhúng trên trang
web đang test.
- Ngồi ra, cịn có các thơng số cấu hình cho timeout, respon …
1.5.3.2


Logic Controller

Logic controller giúp bạn định nghĩa thứ tự xử lý request trong một Thread. Ví dụ, bạn có thể sử dụng
Random Controller để gửi HTTP Request tới server một cách ngẫu nhiên



Logic controller định nghĩa thứ tự request để thực thi



Cách tạo: Click phải chuột vào Thread Group → Add → Logic Controller

Trang 10



1.5.3.2.1

Recording Controller

Jmeter có thể ghi lại các thao tác test. Recording controller là một Place Holder để lưu trữ lại các recording
step này

1.5.3.2.2

Simple Controller

Simple controller chỉ là một container cho user request. Simple controller cho phép bạn tổ chức và lưu trữ
các bộ điều khiển khác

1.5.3.2.3

Loop Controller

Loop controller làm cho các request chạy trong số lần chỉ định hoặc forever, ngồi giá trị vịng lặp mà bạn
đã thiết lập cho thread group

1.5.3.2.4

Once Only Controller

Thiết lập once only controller cho phép Jmeter xử lý các bộ điều khiển bên trong nó chỉ một lần cho mỗi
thread. Nếu once only controller được thiết lập thì nó sẽ chạy duy nhất trong lần đầu tiên của thread group,
cịn các lần chạy sau đó thì request được pass over

1.5.3.2.5

Random Controller

Random controller làm cho tất cả các yêu cầu người dùng chạy với random order trong mỗi vòng lặp
1.5.4

Timer

Timer là một phần rất quan trọng khi xây dựng một Test Plan, nó cho phép cài đặt khoảng thời gian giữ 2
Trang 11


yêu cầu kế tiếp nhau mà người dùng ảo gửi đến server. Điều này sẽ tạo ra một mô phỏng thực tế nhất so
với hoạt động thực tế của người dùng trên website. JMeter cung cấp nhiều Timer với các dạng khác nhau
để thiết lập thời gian nghỉ giữa việc thực hiện 2 yêu cầu như:


Constant Timer: xác lập thời gian là một hằng số



Uniform Random Timer: xác lập thời gian nghỉ ở một khoảng xác định





1.5.5


Assertion



Assertion để xác nhận và kiểm tra lại các kết quả trả về



Assertion có nhiều loại như Response Assertion, Duration Assertion, Size Assertion, XML Assertion,
MD5Hex Assertion, HTML Assertion, Xpath Assertion…

1.5.5.1

Response Assertion

Response Assertion xác nhận phản hồi cho phép bạn thêm một chuỗi được so sánh với các trường khác
nhau của request hoặc response
Cách tạo: Click phải chuột vào HTTP Request → Add → Assertions → Response Assertion

Chi tiết các field trong Response Assertion:


Name: tên



Apply to: điểu này là để sử dụng với các samplers có thể tạo các sub sampler
o Main sample and sub-samplers: áp dụng cho cả hai
o Main sample only: chỉ áp dụng cho sample chính
o Sub-samples only: chỉ áp dụng cho sample phụ

o JMeter Variable Name to use: áp dụng cho nội dung biến được đặt tên



Field to test: chọn các field nào của request hay response để kiểm tra
o Text Response: kiểm tra text trả về từ server
o Request data: kiểm tra text của request đã gửi đến server
Trang 12


o Response code:ví dụ: 200
o Response message: ví dụ: OK
o Response Headers bao gồm Set-cookie headers
o Request Headers
o URL sampled
o Document (text)
o Ignore status: nếu được check thì status của response bắt buộc phải thành cơng trước khi đánh
giá Assertion


Pattem to test: nội dung muốn được kiểm tra từ response trả về



Custom failure message: cho phép thay thế thơng báo lỗi (hiển thị trong Assertion result)

1.5.5.2

Duration Assertion


Duration Assertion để xác minh khoảng thời gian phản hồi. Bất kỳ phản hồi nào nhiều hơn số thời gian
cho phép thì được là phản hồi thành công
1.5.5.3

Size Assertion

Size Assertion để kiểm tra xem mỗi response/ phản hồi có chứa đúng số byte yêu cầu hay không (số bytes
trả về của response được hiển thị trong cột bytes tại View Result in table)
1.5.5.4

XML Assertion

XML Assertion để kiểm tra rằng dữ liệu response bao gồm một document XML chính xác
1.5.5.5

MD5HEX Assertion

MD5HEX Assertion cho phép người dùng kiểm tra MD5 Hex trong dữ liệu phản hồi, MD5 Hex có 32 chữ
số thập lục phân đại diện cho MD5 Hash
1.5.5.6

HTML Assertion

HTML Assertion cho phép người dùng kiểm tra cú pháp HTML của dữ liệu phản hồi bằng cách sử dụng
Jtidy
3.6 Các bước thực hiện JMeter
Bao gồm 4 bước:
1. Tạo test plan để thực hiện test website
2. Tạo request đến server
3. Xem kết quả của kịch bản test

4. Run test và get result
2. Hướng dẫn cài đặt Jmeter
Điền kiện tiên quyết: JMeter được viết bằng ngôn ngữ Java, nên muốn chạy JMeter trước hết máy của
bạn phải cài JRE hoặc JDK
Link download: />Trang 13


3.
Bước 1: truy cập trang web: />Bước 2: Tiến hành download file: apache-jmeter-5.1.1.zip

Bước 3: Giải nén file vừa download về ta được thư mục “apache-jmeter-5.1.1”
Bước 4: Mở thư mục “apache-jmeter-5.1.1” ra → tìm đến thư mục “bin” → click đúp vào file
“ApacheJMeter.rar”

Giao diện JMeter hiển thị như sau:

Trang 14


3. Hướng dẫn sử dụng Jmeter
3.1 Scenario 1
Giả lập 100 user cùng truy cập vào báo dân trí ở trang chủ và trang báo thể thao đồng thời
Bước 1: Tạo Test Plan để thực hiện test website
o Tạo Test Plan với tên là “Demo Performance 1”
o Thêm Thread Group
Click chuột phải vào Test Plan và thêm Thread Group mới Add → Threads (users) → Thread Group

Trong bảng điều khiển Thread Group, nhập Thread Properties như sau:
o Name: Facebook
o Number of Threads (users): 100 (số người dùng kết nối đến trang facebook là 100)

o Ramp-Up Period: 100
o Loop Count: 1

Bước 2: Tạo request đến server


HTTP Request Default

Click phải chuột vào Test Plan → Add → Config Element → HTTP Request Default

Trang 15


Trong bảng điều khiển HTTP Request Defaults, nhập các thông tin như:


Server name of IP: dantri.com.vn



Port number: 80



HTTP Request

Click phải chuột vào Thread Group → Add → Sampler → HTTP Request

Chỉnh các thơng số trong form HTTP Request:



Name: đặt tên request



Server name of IP: dùng mặc định mà HTTP Request Default đã khai báo.
Trang 16




Port Number: cùng dùng các HTTP Request Default khai báo



Method: chọn GET



Path: / (chọn trang chủ của báo dân trí)

Tương tự làm HTTP Request với trang báo thể thao

Bước 3: xem kết quả của kịch bản test


Xem kết quả tổng hợp của tất cả các thread

Click chuột phải vào Thread Group → Add → Listener → Summary Report



Xem kết quả của từng Request trong kịch bản

Click chuột phải vào Thread Group → Add → Listener → View Results Tree


Xem kết quả dưới dạng đồ thị

Click chuột phải vào Thread Group → Add → Listener → Graph Results

Trang 17


Bước 4: Run test và get result
Chạy chương trình test: nhấn nút Run (Ctrl + R) trên toolbar để bắt đầu tiến trình test
Kết quả: click vào View Results Tree, Summary Report hoặc Graph Results để xem kết quả


View Results Tree: hiển thị thông tin các request và kết quả của chúng. Các request xanh là pass, các
request đỏ là fail.

Click vào request tổng của 2 trang (trang chủ và trang báo thể thao) bên cạnh sẽ có 3 phần thơng tin về
request đó là: Sampler result, Request, Response data.

→ Kết luận: tất cả các request đều PASS


Summary Report: hiển thị kết quả, bảng thống kê bao gồm:

Trang chủ


Thể thao

Samples = 100

Samples = 100

Average: thời gian trung bình xử lý là 931

Average: thời gian trung bình xử lý là 313

Request Min: thời gian nhỏ nhất xử lý là 293

Request Min: thời gian nhỏ nhất xử lý là 84

Request Max: thời gian lớn nhất xử lý là 4084

Request Max: thời gian lớn nhất xử lý là 1174

Request Std.Dev: độ lệch chuẩn của thời gian xử lý

Request Std.Dev: độ lệch chuẩn của thời gian xử lý

là 551.61

là 196.28

Request Error: phần trăm bị lỗi các request 0%

Request Error: phần trăm bị lỗi các request 0%


Thoughput: 1.0 / sec

Thoughput: 1.0 / sec
Trang 18


ResponseKB/sec = (agv.bytes *thoughput) /1024

ResponseKB/sec = (agv.bytes *thoughput) /1024

= (201851.4 * 1.0)/1024 = 197.121

= (107144.4 * 1.0)/1024 = 104.633

→ Kết luận: website có khả năng tải khá tốt. Trong suốt thời gian hoạt động, với số lượng là 100 người dùng
cùng truy cập vào website, gần như tất cả các giao dịch đều được thực hiện thành cơng


Graph Results: những thông số của graph này được biểu thị bằng những màu sắc khác nhau:

• Tổng số samples hiện đang gửi = 200
• Độ lệch chuẩn hiện tại = 516
• Throughput = 119.902/minutes (xử lý 119.902 request trên 1 phút)
• Trung bình samples hiện tại = 622
• Median = 489
→ Server của wesbsite báo dân trí xử lý request tốt
3.2 Scenario 2
Giả lập 500 user cùng truy cập vào blazedemo.com đồng thời
Bước 1: Tạo Test Plan để thực hiện test website

o Tạo Test Plan với tên là “Demo Performance 2”
o Thêm Thread Group
Trong bảng điều khiển Thread Group, nhập Thread Properties như sau:
o Number of Threads (users): 500
o Ramp-Up Period: 100
o Loop Count: 1
Trang 19


Bước 2: Tạo request đến server


HTTP Request

Click phải chuột vào Thread Group → Add → Sampler → HTTP Request

Chỉnh các thơng số trong form HTTP Request:


Name: Trang chủ



Server name of IP: blazedemo.com

Trang 20





Timers

Click phải chuột vào HTTP Request → Add → Timer → Constant Timer

Trong trường hợp này, chúng ta sẽ chờ 300 milisecond

Bước 3: xem kết quả của kịch bản test
Xem kết quả dưới dạng View Results Tree và Aggregate Report
Cách tạo:


Click chuột phải vào Thread Group → Add → Listener → View Results Tree



Click chuột phải vào Thread Group → Add → Listener → Aggregate Report

Bước 4: Run test và get result
Chạy chương trình test: nhấn nút Run (Ctrl + R) trên toolbar để bắt đầu tiến trình test
Kết quả:
Trang 21


3.3 Scenario 3
Tương tự như Scenario 2, ta tạo tiếp HTTP Request đường dẫn đến trang blazedemo.com/reserve.php



Tạo HTTP Request
Trang 22





Ngoài xem kết quả dưới dạng View Results Tree, Aggregate Report trong scenario 2, chọn xem thêm
kết quả dưới dạng View Results in Table

Trang 23


3.4 Scenario 4: Dynamic Data


Tạo 1 file “CSV DATA.csv”



Tạo Csv Data Set Config

Click chuột phải vào Thread Group → Add → Config Element → CSV Data Set Config

Trang 24


×