1. Trang chủ
  2. » Luận Văn - Báo Cáo

Báo cáo môn kiểm chứng phần mềm PERFORMANCE TESTING

60 3,1K 15

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 60
Dung lượng 1,78 MB

Nội dung

3.Các thuật ngữ trong kiểm thử hiệu năng• Thời gian nghĩ think time: là khoảng thời gian người sử dụng nắm bắt nội dung của trang web hoặc là thời gian người dùng thực hiện một hành độ

Trang 1

SEMINAR Môn Kiểm Chứng Phần Mềm

PERFORMANCE TESTING

GV hướng dẫn: ThS.Nguyễn Công Hoan

Sinh viên thực hiện: Nhóm 2

Nguyễn Đức Bình Nguyên MSSV:08520567

Trang 2

Nội dung

1 Mục đích thực hiện kiểm thử hiệu năng

2 Khái niệm kiểm thử hiệu năng

3 Các thuật ngữ trong kiểm thử hiệu năng

4 Các hoạt động trong kiểm thử hiệu năng

5 Các kiểu kiểm thử hiệu năng

6 Các kỹ thuật trong kiểm thử hiệu năng

7 Một vài công cụ kiểm thử hiệu năng

8 Ví dụ về kiểm thử hiệu năng trên website Quản lý

trường học

Trang 3

1.Tại sao phải thực hiện Performance test

 Đây là một trong những cách tốt nhất để đảm bảo

hệ thống chịu đựng được sự tải thực tế và đồng

thời phục vụ đa người dùng một cách đáng tin cậy

và kịp thời

 Nâng cao khả năng dự đoán khi mà các mức tải trong tương lai sẽ làm kiệt quệ hệ thống web để từ

đó ta có các chiến lược nâng cao hệ thống hợp lý

để duy trì kinh nghiệm người dùng chấp nhận

được

Trang 4

• Test hiệu năng giải quyết các vấn đề sau:

– Trả lời câu hỏi hệ thống có thể xử lý các mức chịu tải trong khi vẫn giữ được thời gian hồi đáp

(response time) ở mức chấp nhận được

– Nếu không thì chỉ ra được vào thời điểm nào thì hệ thống bắt đầu hư hỏng và những thành phần nào là nguyên nhân của sự suy thoái đó?

– Hệ thống hiện tại có thể nâng cấp được không, để phù hợp với sự phát triển trong tương lai?

– Khi mà hệ thống gặp lỗi thì nó sẽ gây ra những ảnh hưởng gì lên mục đích kinh doanh của doanh

nghiệp? (company sales or technical support costs)

Trang 5

2.Khái niệm kiểm thử hiệu năng

• Kiểm thử hiệu năng là hành động kiểm định,

Trang 6

3.Các thuật ngữ trong kiểm thử hiệu năng

• Thời gian nghĩ (think time): là khoảng thời gian

người sử dụng nắm bắt nội dung của trang web hoặc là thời gian người dùng thực hiện một

hành động tương tác với hệ thống như nhấp

vào một đường dẫn, nút, v.v…

• Tải người sử dụng đồng thời (simultaneous

user load): là tải nhiều người đồng thời cùng sử

dụng ứng dụng, tại cùng một thời điểm bất kỳ mỗi người thực hiện một tương tác khác nhau

Trang 7

• Tải người sử dụng đồng thời thực hiện một

hành động (concurrent user load): là tải nhiều

người đồng thời cùng sử dụng ứng dụng và thực hiện cùng một hoạt động tại bất kỳ thời điểm nào

• Yêu cầu/mục đích hiệu năng (performance

Trang 8

• Tải công việc (workload): là tải người sử dụng

hệ thống trong thời gian thực khi người sử

dụng đang truy cập / khi kiểm thử hiệu năng.

• Hit: là yêu cầu gửi về máy chủ để truy cập vào

một trang web hoặc một tập tin hoặc một ảnh

từ máy chủ web

Trang 9

• Thời gian phản hồi (response time): là thời gian

phục vụ hoặc xử lý để phản hồi lại yêu cầu

– Thời gian phản hồi được tính từ khi trình duyệt web gửi yêu cầu tới máy chủ web cho tới khi trình duyện web nhận được những byte phản hồi đầu tiên từ

máy chủ

• Thông lượng (throughput): là tổng dữ liệu

(bytes) được chuyền từ máy chủ tới máy khách

để phục vụ yêu cầu người dùng

Trang 10

4.Các hoạt động trong kiểm thử hiệu năng

Trang 11

• Kiểm thử hiệu năng có tính linh động rất cao.

• Scott Barker đã từng so sánh:”kiểm thử hiệu năng như điều tra tội phạm” Vì nó là hoạt

động có thể điều tra theo bất kỳ hướng nào Rất khó để ước tính được nỗ lực bỏ ra để kiểm thử hiệu năng

Trang 12

• Công sức kiểm thử

Báo cáo kiểm thử

5%

Kế hoạch kiểm thử & mô hình tải

Trang 13

5.Các kiểu kiểm thử hiệu năng

 Kiểm thử cơ sở (baseline test): là kiểm thử được

xây dựng đánh giá hiệu năng ứng dụng với tải một

 Kịch bản kiểm thử có thể được tạo ra với thời gian nghĩ (think time) trong thực tế và những cài đặt khác giống

sử dụng trong thời gian thực.

 Kiểm thử chuẩn (benchmark test) :là kiểm thử

được tiến hành để đo lường hiệu năng của ứng

dụng trong một điều kiện tải thấp Thông thường kiểm thử chuẩn chiếm 15-20% mức tải mục tiêu

Trang 14

• Kiểm thử tải (load test) : được thực hiện xác định

hiệu năng hệ thống với điều kiện tải nhiều người

– Nó được xây dựng với mục đích tìm ra hiệu năng hệ thống trong điều kiện tải mục tiêu.

• Kiểm thử áp lực (stress test) :là kiểm thử được

tiến hành bằng cách kiểm thử hệ thống trong điều kiện tải bất hợp lý để xác định điểm dừng

(breakpoint) của hệ thống

Trang 15

• Kiểm thử Spike (spike test): giống kiểm thử áp lực (stress

test) nhưng hệ thống được đặt trong tải cực cao trong một thời gian gian ngắn

– Kiểm thử giúp xác nhận hiệu năng hệ thống trong điều kiện tải cao đột ngột trong giờ giao dịch cao điểm của ứng dụng.

• Kiểm thử chịu đựng (endurance test) :tập trung vào

đánh giá hiệu năng của hệ thống với mức tải định trước trong khoảng thời gian kéo dài Kiểm thử chịu đựng chạy với 70%- 80% của tải mục tiêu

– Trong kịch bản có cài đặt thời gian nghĩ giống như trong thực tế.

Trang 16

• Kiểm thử cô lập nghẽn cổ chai (bottleneck isolation

test) :là kiểm thử được thực hiện trên hệ thống

hoặc một thành phần cụ thể để tìm ra các vấn đề và nguyên nhân ảnh hưởng đến hiệu năng của hệ

thống

• Kiểm thử khối lượng (volume test) :là kiểm thử hiệu

năng cho hệ thống khi nó phải thao tác với một

lượng dữ liệu nhất định Số lượng này có thể là kích thước bản ghi dữ liệu hoặc nó cũng có thể là kích

thước của 1 tập tin

Trang 17

6.Các kỹ thuật kiểm thử hiệu năng

Xác định tải công việc của hệ thống (workload

of system)

Cài đặt môi trường kiểm thử hiệu năng

Xây dựng kịch bản kiểm thử hiệu năng

 Thực hiện kiểm thử hiệu năng (Performance test execution)

Báo cáo kiểm thử hiệu năng (Performance test reporting)

Trang 18

Xác định tải công việc của hệ thống

• Định nghĩa:

– Tải công việc (workload) là số lượng yêu cầu, giao dịch người dùng gửi về máy chủ xử lý trong thời gian người sử dụng truy cập hệ thống hoặc trong khi thực hiện kiểm thử hiệu năng

– G.Kotis :“tải công việc có thể được xác định như một tập các đầu vào từ những người sử dụng gửi tới hệ thống “

Trang 19

• Kiểu tải:

– tải ổn định (Steady-State Workload)

– tải bậc thang (Inclined Workload)

– tải bùng nổ (Bursty Workload)

– tải tại thời gian cụ thể (Time Specific Workload)

Trang 20

• Phân tích tải công việc hệ thống:là việc xác định các yếu tố sau đây

– tổng tải công việc của hệ thống phải xử lý

– loại yêu cầu mà người dùng gửi đến máy chủ

– luồng chức năng được sử dụng thường xuyên

– chu kỳ sử dụng của người dùng

– thời gian người dùng cuối sử dụng mỗi lần vào hệ thống – thời gian giữa các giao dịch

– phân loại người sử dụng

– số người sử dụng ứng dụng

– khi nào máy chủ chịu tải cao nhất

Trang 21

• Mô hình hóa tải công việc:

– Bước 1: Dựa vào yêu cầu về hiệu năng để xây dựng

mô hình tải công việc

– Bước 2: Phân tích tải công việc và xác định mô hình yêu cầu

– Bước 3: Xác định phân bố thống kê cơ sở cho mô hình yêu cầu

– Bước 4: Thu thập số liệu về sự tiêu thụ tài nguyên

phần cứng

– Bước 5: Xây dựng mô hình tải

Trang 22

• Ví dụ về mô hình tải sau khi áp dụng

Giao dịch Tần suất Thời gian

CPU(giây) Thời gian I/O(giây)

Trung

Trang 23

 Cài đặt môi trường kiểm thử hiệu năng

• Môi trường kiểm thử:

– Môi trường kiểm thử nên được cài đặt giống với môi trường sản phẩm

• Cô lập môi trường kiểm thử:

– Kiểm thử hiệu năng nên được xây dựng trong môi trường riêng biệt tránh tải không cần thiết để

đánh giá chính xác và những vấn đề ảnh hưởng đến hiệu năng

Trang 24

• Tạo tải (Load Generators ):

– Để tạo tải nhiều người sử dụng hệ thống như

trong thực tế chúng ta sử dụng phần mềm kiểm thử hiệu năng

• Tạo dữ liệu kiểm thử (Test data generator)

– Số lượng bản ghi của hệ thống trong thực tế phải được nghiên cứu đưa ra một con số cụ thể và

chính xác Khi đó chúng ta có thể tạo được số bản ghi dữ liệu giống như trong thực tế để thực hiện kiểm thử

Trang 25

 Xây dựng kịch bản kiểm thử hiệu

năng

• Chọn kịch bản kiểm thử hiệu năng

– Lựa chọn kịch bản trong kiểm thử hiệu năng cần được phân tích và thường xuyên được sử dụng

• Viết kịch bản kiểm thử hiệu năng

– Kịch bản kiểm thử được tạo ra bằng cách sử dụng phần mềm kiểm thử hiệu năng để ghi lại hành

động của người dùng như trong thực tế

Trang 26

 Thực hiện kiểm thử hiệu năng

(Performance test execution)

• Những chuẩn bị trước khi kiểm thử hiệu năng

– Bước 1: Hiểu mô hình người sử dụng (workload model) của hệ thống

– Bước 2: Thiết kế ca kiểm thử cùng với các tham số như

chiến lược tăng (ramp up), thời gian kiểm thử, cài đặt thời gian đợi (think time), kịch bản kiểm thử được thực hiện, các điều kiện tải, các loại kiểm thử được tiến hành cùng với chuẩn qua/lỗi

– Bước 3: Xác định phần mềm kiểm thử hiệu năng và chuẩn

bị dữ liệu kiểm thử

– Bước 4: Đảm bảo môi trường kiểm thử đã sẵn sàng, không

có người sử dụng truy cập ứng dụng trong khi thực hiện kiểm thử và máy chủ được cách ly với bất kỳ sử dụng khác

Trang 27

• Phương pháp thực hiện kiểm thử hiệu năng

– Sử dụng phần mềm kiểm thử và kịch bản đã tạo sẵn chúng ta thực hiện kiểm thử hiệu năng cho hệ thống Trong thời gian thực hiện kiểm thử hiệu

năng, đặt máy chủ trong một tải ổn định khoảng 15- 30 phút phụ thuộc vào mô hình sử dụng

– Kiểm tra hiệu năng của hệ thống với nhiều tình

huống trong các điều kiện tải khác nhau và sau đó đưa ra số liệu hiệu năng về thời gian phản hồi,

thông lượng và sử dụng tài nguyên của máy chủ

Trang 28

• Lời khuyên khi thực hiện kiểm thử tải và kiểm thử áp lực

– Kiểm thử tải (load test)

• Thực hiện ít nhất 3 vòng kiểm thử tải cần lên kế hoạch trước khi đặt hệ thống trong tải mục tiêu

• Kiểm thử tải thấp cho hệ thống chiếm 30 % tải mục tiêu, kiểm thử tải trung bình chiếm 60% trong tải mục tiêu và còn lại là kiểm thử tải cao chiếm 100% tải mục tiêu

– Kiểm thử áp lực (stress test)

• Thông thường khoảng 10% - 20 % tải được cộng thêm vào mức tải tối đa của hệ thống được đạt làm mức tải cho kiểm thử áp lực

• Khi thực hiện kiểm thử áp lực chúng ta nên tăng chậm tải cho hệ thống cho đến khi xuất hiện điểm dừng (break

point)

• Kiểm thử này có thể thực hiện một vài lần thu thập hành

vi của hệ thống và nâng cao độ tin cậy khi phân tích hành

vi này.

Trang 29

 Báo cáo kiểm thử hiệu năng

(Performance test reporting)

• Báo cáo kiểm thử hiệu năng

– yêu cầu hiệu năng cần kiểm thử

những lỗi phát sinh trong khi kiểm thử

– v.v…

Trang 30

• Các thành phần của báo cáo

1 Mục đích của kiểm thử hiệu năng (cam kết mức độ

dịch vụ cung cấp).

2 Môi trường kiểm thử và cấu hình máy chủ.

3 Kịch bản kiểm thử (theo bản kế hoạch).

4 Tóm tắt kết quả kiểm thử.

5 Trực quan hóa thông tin chi tiết hiệu năng hệ thống.

6 Trực quan hóa vấn đề, nguyên nhân ảnh hưởng đến

hiệu năng (nếu có).

7 Kết luận về hiệu năng và giải pháp để cải thiện hiệu

năng.

Trang 31

• Lời khuyên và ví dụ khi tạo báo cáo

– Đưa ra 90% giá trị của thời gian phản hồi không nên dùng giá trị trung bình Sử dụng bảng so sánh thời gian phản hồi (90% giá trị của thời gian phản hồi) để chúng ta thấy rõ hiệu năng cửa hệ thống ở các mức tải khác nhau

– Vẽ biểu đồ để thể hiện sự thay đổi thời gian phản hồi với mức tải khác nhau

Trang 32

So sánh thời gian phản hồi

Trang 33

Sự thay đổi thời gian phản hồi với các mức tải

khác nhau

Trang 34

7.Các công cụ trong kiểm thử hiệu năng

Trang 35

Apache JMeter

• Đây là một công cụ hỗ trợ Load testing

• Mã nguồn mở Java

• Nó được xem là một công cụ kiểm thử hiệu năng và có thể

được tích hợp với test plan.

• Công cụ này có khả năng được nạp vào máy chủ hoặc mạng để kiểm tra hiệu năng và phân tích hoạt động của nó dưới các

điều kiện khác nhau

• Còn được sử dụng để kiểm thử chức năng của Servlets,Perl Scripts và các đối tượng JAVA.

• Cần JVM 1.4 hoặc cao hơn

• Chạy dưới hệ điều hành UNIX hoặc Windows

Trang 36

• Là phần mềm kiểm thử hiệu năng, dùng để đo

lường và phân tích hiệu năng của website.

• Phân tích hiệu năng bằng cách tăng cường giao

thông cho website và tăng chịu tải nhờ đó biết

được tổng số người dùng có thể được phục vụ

trong một thời điểm

• Được phát triển bởi công ty Pháp Netosys và được viết bằng JAVA

• Chạy dưới hệ điều hành Windows, Linux và Solaris

Trang 38

8.Ví dụ về kiểm thử hiệu năng

Trang 39

Phân tích mô hình người sử dụng và mô hình

tải

• Các dữ liệu được Google Analytic cung cấp:

– Số người truy cập lớn nhất trong 1 tháng/1 tuần /

• Số người truy cập lớn nhất trong 1 ngày là 260/1 ngày

• Số người truy cập lớn nhất trong 1 giờ là : 46 người/ 1 giờ

Trang 40

– Luồng chức năng được sử dụng nhiều nhất

• Nhập điểm:

– Home -> /login/ -> /school/ -> /school/markTable/ -> /logout/

• Xuất ra báo cáo:

– Home -> /login/ -> /school/ -> /school/report/ -> /logout/

Trang 41

– Thời gian trung bình duyệt mỗi trang

Đường dẫn đến trang Thời gian nghĩ(think

Trang 42

Kịch bản kiểm thử

Trang 43

Tạo và cài đặt kịch bản kiểm thử sử dụng

phần mềm Jmeter

• Sử dụng phần mềm mã nguồn mở Jmeter để ghi lại các luồng chức năng cho 2 kịch bản: NHẬP ĐIỂM, BÁO CÁO trên trình duyệt IE

Trang 44

Phân tích kết quả kiểm thử

• Thời gian phản hồi

Trang 45

Thời gian phản hồi của kịch bản Nhập điểm

Trang 46

Thời gian phản hồi của kịch bản Báo cáo

Trang 47

• Sử dụng CPU trên máy chủ

Trang 48

So sánh mức sử dụng CPU với kịch bản NHẬP

ĐIỂM & BÁO CÁO

Trang 49

Sử dụng CPU với tải 50 và 100 người dùng với kịch bản

BÁO CÁO

Trang 50

So sánh mức sử dụng CPU với 2 mức tải 50 &

100 người

Trang 51

• Sử dụng Disk I/O trên máy chủ

Trang 52

So sánh số đĩa đọc/ghi với kịch bản NHẬP ĐIỂM

& BÁO CÁO

Trang 53

So sánh số đĩa đọc/ghi với kịch bản NHẬP ĐIỂM

& BÁO CÁO

Trang 54

• Sử dụng bộ nhớ trên máy chủ

Trang 55

So sánh sử dụng bộ nhớ với kịch bản NHẬP ĐIỂM &

BÁO CÁO

Trang 56

So sánh sử dụng bộ nhớ với kịch bản NHẬP

ĐIỂM & BÁO CÁO

Trang 57

Kết luận hiệu năng hệ thống trên máy chủ

thử nghiệm

• Thời gian phản hồi

– Với 2 mức tải 50 và 100 người dùng đồng thời thì thời gian phản hồi các yêu cầu trong 2 kịch bản NHẬP ĐIỂM và BÁO CÁO tăng không đáng kể.

• Sử dụng CPU trên máy chủ

– Các luồng chức năng trong kịch bản BÁO CÁO sử dụng

nhiều CPU trên máy chủ hơn trong kịch bản NHẬP ĐIỂM – Với 100 người dùng đồng thời mức sử dụng CPU trên máy chủ với kịch bản BÁO CÁO là cao có những lúc lên 100%

CPU, mức sử dụng CPU trung bình khá cao từ 40% CPU đến 80% CPU.

Trang 58

• Với kết quả phân tích tôi nhận thấy một vấn đề ảnh hưởng lớn đến hiệu năng hệ thống trên máy chủ thử nghiệm là việc sử dụng CPU trên máy chủ với kịch

bản BÁO CÁO

– So sánh mức sử dụng CPU với 2 mức tải 50 và 100 người dùng trong kịch bản BÁO CÁO thì chúng ta có thể dự đoán khi tăng mức tải lớn hơn 150- 200 người dùng đồng thời thì hệ thống gặp rủi ro cao là không phản hồi hoặc phản hồi rất chậm lại yêu cầu người dùng do mức sử dụng CPU trên máy chủ thường xuyên cao và có những lúc lên đến 100% CPU.

Trang 59

Muốn triển khai ứng dụng trên diện rộng

• Tính toán số người sử dụng đồng thời hệ

thống, số bản ghi dữ liệu, v.v… từ đó đưa ra

được yêu cầu hiệu năng mà hệ thống cần đạt.

• Mức sử dụng CPU trên máy chủ với kịch bản

kiểm thử BÁO CÁO là một trong các vấn đề sẽ ảnh hưởng lớn đến hiệu năng của hệ thống khi triển khai mở rộng  cải thiện thuật toán hoặc giải pháp công nghệ khác để giảm thiểu việc sử dụng CPU.

Trang 60

• THANK YOU!

Ngày đăng: 08/04/2015, 20:31

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w