You are on page 1of 48

BÀI GI NG KI M TH PH N M M

BÀI 10:
I. KIỂM THỬ HIỆU NĂNG LÀ GÌ?

II. HƯỚNG DẪN SỬ DỤNG Apache


Jmeter
KI M TH HI U NĔNG (Performance Testing)

 Performance/ Load Testing là gì?


PERFORMANCE TESTING là gì?
 Kiểm thử hiệu năng là:
 Kiểm thử hiệu năng được thực hiện để xác định tốc độ một hệ thống thực
hiện hay xử lý một khối lượng công việc cụ thể. Hiệu năng chủ yếu được
xác định bởi sự kết hợp của các yếu tố:
 Số lượng tối đa người dùng truy cập đồng thời mà ứng dụng có thể đáp ứng
được (capacity measure), thông lượng (throughput) hay số lượng giao dịch
thành công trong một khoảng thời gian nhất định (transaction per second) và
thời gian đáp ứng (response time) là thời gian cần để hoàn thành một
nhiệm vụ hay chức năng.
 Ngoài ra kiểm thử hiệu năng cũng dùng để đo khả năng chiếm dụng tài
nguyên máy tính như RAM usage, CPU usage…
Các tiêu chí của ki m th hi u nĕng?
 Response time
 Respone time là thời gian phản hồi từ lúc client gửi request tới server cho
đến khi client nhận được response từ server trả về.
Response time = Transfering time + Waiting time + Processing time
 Trong đó:
•𝑇 𝑎 𝑖 𝑖 là thời gian truyền tải dữ liệu trên đường truyền.
• 𝑊𝑎𝑖 𝑖 𝑖 là thời gian request chờ trong queue.
•𝑃 𝑐 𝑖 𝑖 là thời gian request được xử lý thực sự.

Đơn vị của respose time là một đơn vị thời gian như giây(s), phút(m), mili
giây(ms)
Các tiêu chí của ki m th hi u nĕng?
 Throughput
 Thông lượng hệ thống, tính bằng số giao dịch (transaction) hệ thống đáp
ứng được trong một khoảng thời gian. Đơn vị tổng quát là transaction per
time_period ( viết tắt là TPS).
 Ví dụ như transactions per second, calls per day…
 Concurrency
 Số giao dịch đồng thời được thực hiện, tính bằng số giao dịch đồng thời hệ
thống đáp ứng được.
 Đơn vị là transaction, ví dụ 200 transactions đồng thời, 300 transactions
đồng thời…
Các tiêu chí của ki m th hi u nĕng?
 Capacity Measure
 Số lượng tối đa người dùng truy cập mà ứng dụng có thể đáp ứng. Nguyên
lí thực hiện như sau: Bắt đầu kiểm thử trong khoảng thời gian T nhất định
(response time) và tăng dần số lượng người dùng thực hiện chức năng cho
đến khi server chết hay nghẽn.
 Capacity Measure được tính bằng số lượng thời dùng truy cập ngay trường
thời điểm server nghẽn chết mà vẫn thỏa mãn chưa vượt quá thời gian T
và tỉ lệ lỗi chưa vượt quá 10%.
 Một số thông số khác
 CPU usage: Hiệu suất sử dụng CPU. Đơn vị là %.
 RAM usage: Hiệu suất sử dụng RAM. Đơn vị là %.
 Fail rate: Tỉ lệ lỗi, tính bằng số giao dịch không thực hiện thành công trên
tổng tổng số giao dịch đã thực hiện. Giá trị này dùng để làm điều cần cho
các mục tiêu trên. Đơn vị là %.
Quy trình Ki m th Hi u nĕng?

Lập k ho ch T o kịch b n Thực hi n Báo cáo


ki m th ki m th ki m th ki m th
hi u nĕng hi u nĕng hi u nĕng hi u nĕng
Bi u mẫu báo cáo Ki m th Hi u nĕng?

Kết quả thực tế


Set the
Số lượng (Người
STT Tên chức năng ramp-up Tiêu chí hiệu năng Kết quả mong muốn
dung hoặc dữ liệu)
period (*) Lần 1 Lần 2 Lần 3

Response Time 1.5s 0.048s 0.049s 0.048s


1 Tìm kiếm theo Mã
khách hàng Capacity Measure Max

Throughput 8/s 6/s 6/s 6/s


600 0
Error rate (%) 0% 0% 0%

CPU Usage 13% 20% 23%

RAM Usage 21% 21% 21.29%


JMETER PERFORMANCE TESTING

 CÀI Đ T Jmeter
 S D NG Jmeter
 LÀM BÁO CÁO HI U NĔNG
PERFORMANCE TESTING: Jmeter là gì?
 Jmeter là một phần mềm kiểm thử mã nguồn mở, nó là 100% ứng dụng Java cho
sự tải và việc kiểm thử hiệu năng. Nó được thiết kế để bao quát các loại kiểm thử
như là độ tải, chức năng, hiệu năng, etc... và nó yêu cầu JDK 7 hoặc cao hơn.
 Cách thức hoạt động: JMeter giả lập một nhóm người dùng gửi các yêu cầu tới
một máy chủ, và trả vể các số liệu thống kê cho người dùng dưới dạng các báo
cáo tóm tắt, bảng biểu và đồ thị dạng cây, đồ thị đồ họa.
 Jmeter có thể cung cấp phần lớn các phân tích đồ họa của báo cáo performance.
 Download Jmeter tại link: http://jmeter.apache.org/download_jmeter.cgi
PERFORMANCE TESTING: Jmeter là gì?
 JMeter Performance Testing bao gồm:
 Load testing: Đo khả năng chịu tải lượng truy cập một website trong cùng
thời điểm.
Ví dụ: Trang Đăng ký tín chỉ ở trường học chỉ tải được 300 sinh viên truy cập
cùng 1 thời điểm

 Stress testing: Tất cả các web server có thể tải một dung lượng lớn, khi mà
tải trọng vượt ra ngoài giới hạn thì web server bắt đầu phản hồi chậm và gây
ra lỗi. Mục đích của stress testing là có thể tìm ra độ tải lớn mà web server có
thể xử lý. Stress Test xác định sự ổn định và sự mạnh mẽ của hệ thống
PERFORMANCE TESTING: Jmeter là gì?
 Stress testing:
Ví dụ:
Trang web về Đăng ký nguyện vọng vào các trường ĐH sau kỳ thi tốt nghiệp
THP, có số lượng người sử dụng cao trong khoảng 1 thời gian dài xét nguyện
vọng vào các trường ĐH. Vì vậy, điều quan trọng là kiểm tra thường xuyên với
khả năng chịu tải của hệ thống. Điều này cũng giúp bạn chuẩn bị cho các tình
huống bất ngờ, dành nhiều thời gian hơn và nguồn lực để khắc phục bất kỳ sự
cố nào.
PERFORMANCE TESTING: Jmeter là gì?
 Cấu hình dưới đây chỉ ra Jmeter mô phỏng tải trọng lớn như thế nào:
Các bước thực hi n Test Hi u nĕng với JMeter

1. M ứng d ng JMeter
2. T o script (ghi l i các hành động của ngư i dùng)
3. Chỉnh s a script
4. C u hình đ l y t i của server
5. Thi t k kịch b n và Run script
6. Generate report và tổng h p báo báo

Khóa Tester cơ bản chỉ thực hành Mục 1, 2, 5 và 6 ở mức cơ bản, còn các
mục còn lại và chuyên sâu phải học Khóa Chuyên sâu mới đầy đủ
PERFORMANCE TESTING: download Jmeter
 Truy cập để download Apache Jmeter:
http://jmeter.apache.org/download_jmeter.cgi

 Máy tính cần phải cài bản Java 8 trở lên để chạy được Jmeter
Thực hi n Test Hi u nĕng với JMeter: M JMeter
Bước 1:
 Mở Jmeter

 Chạy file jmeter.bat


Thực hi n Test Hi u nĕng với JMeter: Ghi script
Bước 1:
 Tool Jmeter mở như sau:
Thực hi n Test Hi u nĕng với JMeter: Ghi script
Chọn template mặc định có sẵn
Thực hi n Test Hi u nĕng với JMeter: Ghi script
Đặt tên cho Thead group
Thực hi n Test Hi u nĕng với JMeter: Ghi script
Đặt tên cho Thead group
Thực hi n Test Hi u nĕng với JMeter: Ghi script
Đ t số lư ng user đồng th i truy cập
 Number of Threads: Bạn có thể nhập nhiều threads để giả lập. Mối user độc lập được
đại diện bởi một thread vì vậy bạn muốn giả lập với 5 user đồng thời bạn cần nhập giá
trị 5 cho thuộc tính này
 Ram-Up Period: Cho biết thời gian đưa ra bởi

jmeter để tạo tất cả những thread cần thiết.


Nếu bạn thiết lập 10s tại ramp-up period cho 5 thread thì Jmeter sẽ thực hiện trong 10s
để tạo ra 5 thread. Ngoài ra bằng cách thiết lập cho nó giá trị 0 tất cả các threads có thể
được tạo 1 lần.
 Forever: Nếu bạn chọn option này thì Jmeter sẽ quyết định thời gian gửi request

 Loop Count: Bằng cách chỉ rõ giá trị của nó Jmeter cho biết rằng có bao nhiêu lần
kiểm thử được lặp với điều kiện là Forever check box được uncheck.
Thực hi n Test Hi u nĕng với JMeter: Ghi script
Đ t số lư ng user đồng th i truy cập
Thực hi n Test Hi u nĕng với JMeter: Ghi script
Chọn:
Thực hi n Test Hi u nĕng với JMeter: Ghi script
Chọn Start và n OK:
Thực hi n Test Hi u nĕng với JMeter: Đổi proxy
Firefox: Cách s a proxy c u hình m ng là local host, cổng 8888 ( trùng
với port c u hình trong Jmeter

 Bật trình duyệt Firefox, chọn như hình:


Thực hi n Test Hi u nĕng với JMeter: đổi Proxy
 Chọn như bên dưới:
Thực hi n Test Hi u nĕng với Jmeter: Chuy n Proxy

 Đặt localhost và port:


Thực hi n Test Hi u nĕng với JMeter: Ghi script
 Tiếp tục Đăng nhập thành công và Jmeter sẽ ghi lại các script như bên
dưới
Thực hi n Test Hi u nĕng với JMeter: Ki m tra script

 Chọn view result tree: ấn chạy để kiểm tra script có thành công hay ko
Test Hi u nĕng với JMeter: Add Assertion

 Add Assertion:
 Mục đích để biết script sau mỗi lần chạy có trả về kết quả mong muốn không.

 Ví dụ: Xác định script sau đăng nhập đã thành công hay chưa:
 Xác định sau khi đăng nhập thành công có các thông tin gì, ví dụ có Label
“Thoát” hoặc có Fullname hiện ra
 Tìm các request trả về lable “Thoát” (Tìm trong view result tree trong
workbench)
 Trong phần Test plan tìm đến request có chứa label ‘Thoát’
Test Hi u nĕng với JMeter: Add Assertion

 Cách t o Add Assertion:

 Kích chuột phải vào request


có chứa từ ‘Thoát’ và chọn Add
 Asserstion  Response
Assertion
Test Hi u nĕng với JMeter: Add Assertion

 Cách t o Add
Assertion:

Chọn button Add (B2) và


nhập từ ‘Thoát’ ở B3
Test Hi u nĕng với JMeter: T o Report

 Tạo Report để xem Thông số


Hướng dẫn test hi u nĕng JMeter

Hướng dẫn cách


test 1 trang báo tin tức
Hướng dẫn test hi u nĕng JMeter
Hướng dẫn test hi u nĕng JMeter
Hướng dẫn test hi u nĕng JMeter
Hướng dẫn test hi u nĕng JMeter
Hướng dẫn test hi u nĕng JMeter

Mở trang 1
trang báo
mạng để test
Hướng dẫn test hi u nĕng JMeter

Chọn start
để bắt đầu
ghi
Hướng dẫn test hi u nĕng JMeter

Đổi proxy
trên trình
duyệt (
chrome)
Hướng dẫn test hi u nĕng JMeter

n F5 để reload
trang, rồi quay
lại JMeter kiểm
tra đã sinh ra
script chưa
Hướng dẫn test hi u nĕng JMeter

Click vào
cái icon
Khóa nếu
ghi đc script
Hướng dẫn test hi u nĕng JMeter

Mở 1 trang
báo muốn
test hiệu
năng
Hướng dẫn test hi u nĕng JMeter

Kiểm tra
script đã đc
tạo ra chưa
theo bài
báo, nếu đc
thì ngừng
ghi
Hướng dẫn test hi u nĕng JMeter

L y các Báo
cáo cần test
Question & Answer?

You might also like