1. Trang chủ
  2. » Công Nghệ Thông Tin

Kiểm thử dịch vụ quản lý trường trần nhân tông

66 254 0

Đ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 66
Dung lượng 2,86 MB

Nội dung

Có nhiều định nghĩa về kiểm thử hiệu năng. Theo 5, kiểm thử hiệu năng là hành động kiểm định, đánh giá phần mềm, một thành phần hoặc phần cứng có đúng với yêu cầu về hiệu năng và tối ưu hóa hiệu năng của nó. Một cách định nghĩa khác của kiểm thử hiệu năng theo 4, kiểm thử hiệu năng là kiểm thử xác định thời gian phản hồi (repsonsiveness), thông lượng (throughput), mức độ tin cậy (reliability) hoặc khả năng mở rộng (scalability) của hệ thống theo khối lượng công việc (workload). Mục tiêu của kiểm thử chức năng là kiểm thử và xác nhận các yêu cầu chức năng trong khi mục tiêu của thử nghiệm hiệu năng là kiểm thử và xác nhận các yêu cầu phi chức năng của hệ thống như hệ thống có thể phục vụ tối đa bao nhiêu người sử dụng đồng thời trong khoảng thời gian bao lâu, khi đó thời gian phản hồi và thông lượng là bao nhiêu, sử dụng bao nhiêu phần trăm CPU, bao nhiêu bộ nhớ của máy chủ, v.v… Trước kia để tăng hiệu năng của ứng dụng các tổ chức thường mua phần cứng dung lượng cao mặc dù nó không phải là cách để giải quyết triệt để vấn đề hiệu năng. Ngày nay các tổ chức đã nhận ra phải phân tích thiết kế hệ thống để đạt được yêu cầu về hiệu năng và thực hiện kiểm thử hiệu năng để xác nhận hệ thống đã đạt được hiệu năng yêu cầu chưa. Và nhiều người nghĩ rằng kiểm thử hiệu năng là việc sử dụng một công cụ mô phỏng nhiều người sử dụng và xác định thời gian phản hồi, thông lượng của hệ thống khi thực hiện các chức năng khác nhau. Nhưng thực sự làm thế nào để mô phỏng được nhiều người sử dụng giống như trong thực tế để có thể đánh giá đúng hiệu năng thực của hệ thống không thực sự đơn giản.

Trang 1

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

1.3 Tầm quan trọng của kiểm thử hiệu năng 7

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

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

1.4 Tính linh động trong kiểm thử hiệu năng 11

1.5 Hiểu lầm về kiểm thử hiệu năng 11

1.6 Kiểu kiểm thử hiệu năng 12

1.7 Công cụ kiểm thử hiệu năng 14

1.7.1 Công cụ kiểm thử hiệu năng 14

1.7.2 Tiêu chuẩn để chọn một công cụ kiểm thử hiệu năng 14

CHƯƠNG 2 CÁC KỸ THUẬT TRONG KIỂM THỬ HIỆU NĂNG

16 2.1 Xác định tải công việc của hệ thống (workload of system) 16

2.1.1 Định nghĩa 16

2.1.2 Kiểu tải công việc 16

2.1.3 Phân tích tải công việc của hệ thống 17

2.1.4 Mô hình hóa tải công việc (workload) 18

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

2.2.1 Môi trường kiểm thử 19

2.2.2 Cô lập môi trường kiểm thử 19

2.2.3 Tạo tải (Load Generators ) 19

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

Trang 2

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

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

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

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

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

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

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

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

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

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

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

CHƯƠNG 3 KIỂM THỬ HIỆU NĂNG DỊCH VỤ PHẦN MỀM QUẢN LÝ TRƯỜNG HỌC 26

3.1 Mục tiêu 26

3.2 Giới thiệu trang web quản lý trường học 26

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

3.3.1 Số người truy cập lớn nhất trong 1 tháng/1 tuần /1 ngày/1 giờ 27

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

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

3.4 Môi trường kiểm thử 30

3.5 Kịch bản kiểm thử 31

3.6 Chiến lược kiểm thử 32

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

3.8 Kết quả kiểm thủ 33

3.8.1 Kịch bản kiểm thử NHẬP ĐIỂM 33

3.8.2 Kịch bản kiểm thử Báo cáo 37

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

3.9.1 Thời gian phản hồi 40

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

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

Trang 3

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

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

CHƯƠNG 4 TRIỂN KHAI DỊCH VỤ QUẢN LÝ TRƯỜNG HỌC TRÊN DIỆN RỘNG……… 48

4.1 Vấn đề ảnh hưởng hiệu năng của hệ thống 48

4.2 Triển khai hệ thống trên diện rộng 48

4.3 Chú ý triển khai hệ thống trên diện rộng 48

KẾT LUẬN… 50

TÀI LIỆU THAM KHẢO 50

Trang 4

MỞ ĐẦU

Quy mô của các phần mềm và trang web ngày càng lớn để có thể phục vụ đượcnhiều người dùng hoặc xử lý nhiều nghiệp vụ cùng một lúc Điều này mở ra một tháchthức cho người phát triển là làm thế nào xây dựng được một hệ thống đáp ứng đượcyêu cầu này mà vẫn đảm bảo chất lượng dịch vụ Để có thể xây dựng được một hệthống như vậy thì người phát triển phải phân tích yêu cầu về hiệu năng và thiết kế hệthống để đặt được hiệu năng mong đợi Sau đó kiểm thử viên sẽ thực hiện kiểm thử

hiệu năng để đảm bảo hệ thống đã đạt hiệu năng yêu cầu

Kiểm thử hiệu năng cho một ứng dụng để đưa ra kết luận là ứng dụng có thểphục vụ được tối đa bao nhiêu người sử dụng đồng thời, thời gian phản hồi một yêucầu của người sử dụng, thông lượng, máy chủ sử dụng bao nhiêu CPU, bộ nhớ, lỗihoặc những vấn đề ảnh hưởng đến hiệu năng (nếu có) Từ những thông tin này giúpngười phát triển đưa ra giải pháp cải tiến ứng dụng để đặt được hiệu năng yêu cầu Nếukhông thực hiện kiểm thử hiệu năng cho hệ thống thì dự án gặp một rủi ro cao làkhông đáp ứng yêu cầu người sử dụng trong thực tế Khi đó hệ thống có thể xảy ra lỗi

hoặc không phản hồi khi có nhiều yêu cầu của người dùng gửi đến đồng thời

Như vậy kiểm thử hiệu năng cho hệ thống rất quan trọng và là hoạt động gópphần để đem lại thành công cho dự án Chính vì vậy mà luận văn tập trung nghiên cứu

lý thuyết, kỹ thuật và công cụ trong kiểm thử hiệu năng Đồng thời áp dụng kiểm thửhiệu năng vào hệ thống đang được triển khai thử nghiệm trong thực tế Từ kết quảkiểm thử và vận dụng lý thuyết luận văn phân tích đưa ra các chú ý khi triển khai hệ

thống trên diện rộng

Cấu trúc của luận văn như sau:

Chương 1 trình bầy khái niệm cơ bản kiểm thử hiệu năng, các hoạt động trongkiểm thử hiện năng, các kiểu kiểm thử hiệu năng, một vài công cụ kiểm thử hiệu năng

trên thị trường Từ chương này chúng ta có cái nhìn tổng quát về kiểm thử hiệu năng

Chương 2 mô tả chi tiết các kỹ thuật trong kiểm thử hiệu năng: phân tích và xácđịnh tải công việc cho ứng dụng, cài đặt môi trường kiểm thử, chọn và xây dựng kịchbản kiểm thử, thực hiện kiểm thử hiệu năng và phân tích đưa ra báo cáo kết quả Chương 3 là sự nỗ lực của bản thân áp dụng lý thuyết, học hỏi từ các đồngnghiệp, bạn bè và tham khảo từ việc thực hiện kiểm thử hiệu năng cho các dự án trongthực tế tôi thực hiện kiểm thử tải cho phần mềm quản lý trường học được xây dựngtrên nền web Luận văn miêu tả cách thực hiện và kết quả thu được khi: phân tích môhình người sử dụng và mô hình tải, luồng chức năng hay được sử dụng, thời gian nghĩ(think time), chọn kịch bản kiểm thử, ghi và cài đặt kịch bản kiểm thử tải sử dụng phần

Trang 5

mềm Jmeter, thực hiện kiểm thử, phân tích và báo cáo kết quả Từ kết quả tôi phân tíchđưa ra kết luận về hiệu năng và vấn đề ảnh hướng chính đến hiệu năng hệ thống khi

triển khai mở rộng

Chương 4 từ kết quả kiểm thử tải ở Chương 3, vận dụng lý thuyết kiểm thử hiệu năng và kinh nghiệm bản thân trong thực tế tôi đã phân tích đưa ra chú ý giúp đội phát triển và kiểm thử viên tham khảo để cải thiện và đảm bảo hệ thống đạt được hiệu năng

yêu cầu khi triển khai trên diện rộng

Tóm tắt kết quả đã đạt được, trình bày những hạn chế và hướng nghiên cứu pháttriển trong tương lai sẽ được trình bày trong phần kết luận

Trang 6

CHƯƠNG 1 TỔNG QUAN VỀ KIỂM THỬ HIỆU NĂNG

1.1 Giới thiệu

Không giống như kiểm thử chức năng, người sử dụng cuối cũng có thể tìm ra lỗichức năng của hệ thống Kiểm thử hiệu năng là một hoạt động rất phức tạp không phải

ai cũng dễ dàng thực hiện kiểm thử và đưa ra kết luận về hiệu năng cho một hệ thống

Để thực hiện kiểm thử đòi hỏi kiểm thử viên phải có hiểu biết về lý thuyết, kỹ thuật vàphần mềm hỗ trợ kiểm thử hiệu năng Trong kiểm thử hiệu năng có nhiều khái niệm,thật ngữ riêng đòi mà kiểm thử viên phải hiểu rõ ý nghĩa của nó Đồng thời các kỹthuật cài đặt môi trường, lựa chọn và xây dựng kịch bản, thực hiện kiểm thử rất đặcthù không giống như các loại kiểm thử khác Phải hiểu rõ bản chất và kỹ thuật trongkiểm thử hiệu năng thì kiểm thử viên mới có thể đưa ra cách tiến hành và chiến lượckiểm thử hiệu quả Đó là lý do Chương 1 và Chương 2 của luận văn sẽ giúp người đọc

có cái nhìn từ tổng quan và đến chi tiết kỹ thuật trong các hoạt động kiểm thử hiệunăng Chương 1 và Chương 2 là lý thuyết về kiểm thử hiệu năng, toàn bộ nội dung 2chương này tôi tham khảo trong các quyển sách được đề cập trong mục tài liệu thamkhảo

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

Có nhiều định nghĩa về kiểm thử hiệu năng Theo [5], kiểm thử hiệu năng là hànhđộng kiểm định, đánh giá phần mềm, một thành phần hoặc phần cứng có đúng với yêu cầu về hiệu năng và tối ưu hóa hiệu năng của nó

Một cách định nghĩa khác của kiểm thử hiệu năng theo [4], kiểm thử hiệu năng làkiểm thử xác định thời gian phản hồi (repsonsiveness), thông lượng (throughput), mức

độ tin cậy (reliability) hoặc khả năng mở rộng (scalability) của hệ thống theo khốilượng công việc (workload)

Mục tiêu của kiểm thử chức năng là kiểm thử và xác nhận các yêu cầu chức năngtrong khi mục tiêu của thử nghiệm hiệu năng là kiểm thử và xác nhận các yêu cầu phichức năng của hệ thống như hệ thống có thể phục vụ tối đa bao nhiêu người sử dụngđồng thời trong khoảng thời gian bao lâu, khi đó thời gian phản hồi và thông lượng làbao nhiêu, sử dụng bao nhiêu phần trăm CPU, bao nhiêu bộ nhớ của máy chủ, v.v… Trước kia để tăng hiệu năng của ứng dụng các tổ chức thường mua phần cứngdung lượng cao mặc dù nó không phải là cách để giải quyết triệt để vấn đề hiệu năng.Ngày nay các tổ chức đã nhận ra phải phân tích thiết kế hệ thống để đạt được yêu cầu

về hiệu năng và thực hiện kiểm thử hiệu năng để xác nhận hệ thống đã đạt được hiệunăng yêu cầu chưa Và nhiều người nghĩ rằng kiểm thử hiệu năng là việc sử dụng mộtcông cụ mô phỏng nhiều người sử dụng và xác định thời gian phản hồi, thông lượng

Trang 7

của hệ thống khi thực hiện các chức năng khác nhau Nhưng thực sự làm thế nào để

mô phỏng được nhiều người sử dụng giống như trong thực tế để có thể đánh giá đúnghiệu năng thực của hệ thống không thực sự đơn giản

1.3 Tầm quan trọng của kiểm thử hiệu năng

Kiểm thử hiệu năng là hoạt động cần thiết cho việc phát triển những giải pháp tối

ưu hóa hiệu năng cho phần mềm Kiểm thử hiệu năng giúp chúng ta tránh được cáctình huống không lường trước khi triển khai ứng dụng trong môi trường thực tế Ví dụkhi ứng dụng chạy đúng nhưng quá chậm thì sản phẩm sẽ không được người dùng hàilòng Ngoài ra chúng ta có thể thấy một số lý do của việc cần kiểm thử hiệu năng nhưsau:

• So sánh hiệu năng hiện tại của hệ thống với hiệu năng của hệ thống khác mà đãlàm hài lòng người sử dụng

• Kiểm định hiệu năng của hệ thống đã đúng yêu cầu của khách hàng chưa

• Phân tích hành vi của hệ thống ở những mức tải khác nhau Việc phân tích nàygiúp ta đánh giá về hiệu năng của hệ thống một cách toàn diện hơn

• Tìm nguyên nhân ảnh hưởng đến hiệu năng của hệ thống và nguyên nhân củanút nghẽn cổ chai Ví dụ một vài nguyên nhân như rò rỉ (thất thoát) bộ nhớ(memory leaks), thời gian phản hồi chậm

• Xác định khả năng của các thiết bị và đưa ra yêu cầu về tài nguyên trong tươnglai để ứng dụng đạt được hiệu năng sử dụng

• So sánh với hệ thống đã thành công khác tìm được một giải pháp tốt cho ứngdụng để đáp ứng được vấn đề thương mại

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

Theo [5] tôi đã chọn lọc và đưa ra một thuật ngữ hay được sử dụng trong kiểmthử 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ácvới hệ thống như nhấp vào một đường dẫn, nút, v.v…

Người dùng ảo (virtual user): công cụ kiểm thử hiệu năng mô phỏng nhiều

người dùng hệ thống như trong thực tế bằng cách tạo ra người sử dụng ảo trong quátrình kiểm thử

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

Trang 8

tương tác khác nhau Ví dụ có 100 người đang sử dụng hệ thống, sẽ có 100 phiên làmviệc khác nhau ở máy chủ

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 Ví dụ, tất cả 100 người dùng sẽ đăng nhập trangweb vào cùng thời điểm Một trang web ngân hàng trực tuyến có thể có 10.000 -20.000 người đồng thời sử dụng hệ thống, nhưng 1000 đến 1500 người cùng thực hiệnmột giao dịch với ứng dụng

Yêu cầu/mục đích hiệu năng (performance requirements/goals): là định

lượng đưa ra tiêu chí cho rằng hiệu năng của hệ thống là tốt Yêu cầu hiệu năng củamột ứng dụng được thể hiện trong thời gian phản hồi, số lượt truy cập trong 1 giây(hits), số giao địch trong 1 giây, v.v…

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 hoặc trong 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 Ví dụ, nếu một trang web có 5 ảnh, người sử dụng vàotrang đó thì sẽ có 6 hit trên máy chử web (5 hit cho mỗi ảnh và 1 hit cho tải trangweb) Với một trang web, yêu cầu về hiệu năng là số hit trong một đơn vi thời giannhư 'hệ thống hỗ chợ 10 hit / giây với thời gian phản hồi là dưới 5 giây

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ớimá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ủ Ví dụ thời gian phản hồi của một giao dịch: đăng nhập vào hệ thống là thờigian máy chủ xử lý việc đăng nhập thành công và hiển thị trang chủ của web (nó baogồm thời gian máy chủ xử lý, thời gian ứng dụng xử lý, thời gian máy chủ dữ liệu xử

lý và độ trễ của mạng)

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 Nó là chỉ số đánh giá hiệu năng của máychủ, nó nói lên số lượng công việc được thực hiện trên máy chủ Thông lượng cũngđược hiểu như là tổng số yêu cầu hoặc số phiên giao địch được xử lý bởi máy chủ tạimột thời điểm bất kỳ Ví dụ, thông lượng của máy chủ là 2.5Mbps hoặc 35hits/giây or

8 giao dịch (transaction)/giây

Nút nghẽn cổ chai (performance bottleneck): là nút mà các giao dịch của hệ

thống được thực hiện rất chậm Nó là tình trạng/khu vực không cho phép ứng dụngthực hiện như mong đợi Ví dụ, thời gian phản hồi tăng lên khi 100 người sử dụng

Trang 9

đồng thời do tham số kết nối HTTP không thích hợp trong máy chủ IIS, máy chủ sửdụng CPU lên đến 95% trong 100% Máy chủ bị quá tải sử dụng, đó là một kiểu nútnghẽn cổ chai tiêu biểu Một nút cổ chai sẽ làm cho hệ thống thất bại nếu không cógiải pháp

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

Hình 1.1: Các giai đoạn trong kiểm thử hiệu năng [5]

Dựa vào Hình 1.1 ta thấy có 4 giai đoạn chính trong thực hiện kiểm thử hiệunăng và lần lượt thứ tự thực hiện là: lên kế hoạch kiểm thử, tạo kịch bản, thực hiện vàphân tích, báo cáo kết quả Trong mỗi giai đoạn này có các hoạt động khác nhau

Lập kế hoạch kiểm thử

Trước khi đưa ra bản hoạch kiểm thử kiểm thử viên nên thực hiện những việcsau:

• Hiểu hệ thống: hiểu nghiệp vụ hay các luồng chức năng của hệ thống

• Xác định mục tiêu/yêu cầu hiệu năng: xác định mục tiêu/yêu cầu hiệu năng dựa

vào yêu cầu khách hàng và đặc thù của ứng dụng

• Mô hình người sử dụng: từ việc hiểu hệ thống và phân tích đối tượng sử dụng

hệ thống kiểm thử viên phải đưa ra mô hình về người sử dụng hệ thống

Trang 10

• Mô hình tải công việc: kiểm thử viên phải phân tích đưa ra được mô hình về cácyêu cầu người sử dụng gửi đến máy chủ như: đặc điểm các yêu cầu, thời

gian, số lượng yêu cầu, v.v…

Từ việc hiểu hệ thống, yêu cầu hiệu năng cần kiểm thử, mô hình người sử dụng

và tải công việc kiểm thử viên sẽ lập ra kế hoạch cho việc kiểm thử hiệu năng Trongbản kế hoạch kiểm thử kiểm thử viên phải chỉ ra: công cụ sử dụng để kiểm thử (tools),loại kiểm thử cần thực hiện, các kịch bản cần kiểm thử, thời gian thực hiện, chuẩn đầuvào, đầu ra để xây dựng ca kiểm thử Kế hoạch kiểm thử được tài liệu hóa và gửi chocác bên liên quan: các kiểm thử viên, khách hàng, đội phát triển hệ thống

Kịch bản

Những công việc kiểm thử viên phải thực hiện trong giai đoạn này: phát triểnkịch bản kiểm thử (test scripts) và tạo dữ liệu kiểm thử (generate data) Kiểm thử viên

sẽ sử dụng công cụ kiểm thử hiệu năng, các kịch bản đã đưa ra trong bản kế hoạch để

mô phỏng người sử dụng truy cập vào hệ thống như trong thực tế Để thực hiện kiểmthử hiệu năng thì kiểm thử viên phải tạo dữ liệu như trong thực tế để đảm bảo hiệunăng của hệ thống được đánh giá đúng

Thực hiện kiểm thử & phân tích kếtquả

Những công việc cần thực hiện trong giai đoạn này là:

• Cài đặt môi trường kiểm thử

• Thực hiện kiểm thử: sử dụng công cụ kiểm thử và kịch bản đã được tạo ra đểchạy kịch bản kiểm thử

• Phân tích và đưa ra kết luận về hiệu năng của hệ thống tại thời điểm kiểm thử

và nguyên nhân ảnh hưởng đến hiệu năng của hệ thống (nếu có)

Trước khi thực hiện kiểm thử hiệu năng của hệ thống, nên thực hiện kiểm thử cơ

sở (baseline test) và kiểm thử chuẩn Kiểm thử cơ sở là kiểm thử cho một người dùng

ảo để kiểm tra tính hợp lệ của kịch bản kiểm thử Nếu kết quả kiểm thử cơ sở có lỗi thìcần được phân tích là do hệ thống hay do kịch bản kiểm thử Lỗi này cần phải đượcsửa trước khi thực hiện kiểm thử chuẩn Kết quả của kiểm thử chuẩn (benchamark test)

là hiệu năng tốt nhất của hệ thống tại thời điểm kiểm thử Các kết quả của kiểm thử cơ

sở và chuẩn sẽ được lưu lại trong tài liệu để so sánh với các kết quả kiểm thử khác.Sau đó hệ thống sẽ được thực hiện các kiểm thử khác như kiểm thử tải, kiểm thử áplực, v.v…phụ thuộc vào chiến lược được đưa ra trong kế hoạch kiểm thử

Phân tích kết quả kiểm thử hiệu năng là phân tích hiệu năng của hệ thống hiện tại

đã đạt được yêu cầu đưa ra như thế nào Phân tích các vấn đề và nguyên nhân làm ảnh

Trang 11

hưởng đến hiệu năng Với các vấn đề khó như tìm nguyên nhân nút nghẽn cổ chai của

hệ thống cần sự tham gia phân tích của một nhóm người gồm kiểm thử viên, ngườiquản trị hệ thống, chuyên gia kỹ thuật và người quản lý dữ liệu

Thực hiện và phân tích kết quả kiểm thử là sự tuần hoàn Nếu kết quả kiểm thửhiệu năng chỉ ra rằng hệ thống chưa đạt được yêu cầu hiệu năng thì đội phát triển sẽđiều chỉnh hệ thống Khi đó kiểm thử viên sẽ thực hiện kiểm thử hiệu năng để đánh giálại hiệu năng hệ thống sau khi được điều chỉnh [2, 4, 5]

Báo cáo kết quả kiểm thử: sau khi phân tích kết quả kiểm thử hiệu năng, kiểm

thử viên đưa ra kết luận về hiệu năng hiện tại của hệ thống, các yếu tố và nguyên nhânảnh hưởng đến hiệu năng của hệ thống và những lời giải thích Kết quả này được báocáo trong tài liệu theo một định dạng dễ hiểu và gửi cho các bên liên quan

Khi thực kiểm thử hiệu năng thực nghiệm cho phần mềm quản lý trường họcđược xây dựng trên nền web như trình bầy chi tiết trong Chương 3, tôi cũng trải qua 4giai đoạn này và thực hiện các hoạt động trong từng giai đoạn như trong Hình 1.1.Hiện tại trang hệ thống này đang được triển khai thử nghiệm và có cài đặt Google Analytics nên khi phân tích mô hình người sử dụng và mô hình tải hệ thống tôi đã dựavào số liệu, biểu đồ Google Analytics cung cấp Cũng dựa vào thống kê của GoogleAnalytics về luồng chức năng mà người sử dụng thực hiện tôi lựa chọn các kịch bảnđược sử dụng nhiều nhất để thực hiện kiểm thử Trong kiểm thử thực nghiệm này tôichỉ thực hiện kiểm thử tải cho hệ thống với 2 mức tải là 50 người và 100 người sửdụng đồng thời Để tạo kịch bản và thực hiện kiểm thử tôi sử dụng phần mềm mãnguồn mở Jmeter Từ kết quả kiểm thử tôi cũng phân tích và dưa ra báo cáo chi tiết vềtình trạng và những vấn đề ảnh hưởng đến hiệu năng của hệ thống khi muốn triển khai

mở rộng

1.4 Tính linh động trong kiểm thử hiệu năng

Tính linh động trong kiểm thử hiệu năng rất cao Scott Barber đã 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 theobấ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 [5] Hầu hết các tổ chức sử dụng ROM (Rough Order of Magnitude) để ước tính nỗlực bỏ ra kiểm thử hiệu năng dựa vào dữ liệu trong quá khứ và yếu tổ rủi ro kỹ thuật.Với họ nỗ lực kiểm thử được chia ra như sau:

Trang 12

Hình 1.2: Nỗ lực kiểm thử [5]

Dựa vào Hình 1.2 ta thấy ở mức cao nhất, lập kế hoạch kiểm thử chiếm 20% tổngthời gian kiểm thử Phát triển kịch bản kiểm thử chiếm 30% tổng thời gian kiểm thử.Thực hiện việc kiểm thử chiếm 45% tổng thời gian Viết báo cáo kết quả kiểm thửchiếm 5% trong tổng thời gian Điều quan trọng các hoạt động trong mỗi giai đoạnphụ thuộc vào dự án Trong hầu hết các dự án, phải lập lại kế hoạch kiểm thử tronggiai đoạn thực hiện kiểm thử [5]

1.5 Hiểu lầm về kiểm thử hiệu năng

Sau khi thất bại trong một số dự án do hệ thống khi triển khai trong thực tế khôngphục vụ được nhiều người sử dụng đồng thời thì các tổ chức dần nhận ra tầm quan củakiểm thử hiệu năng và những ảnh hưởng của nó đến sự thành công của dự án Nhưnghầu hết trong số họ lại đều lên kế hoạch kiểm thử hiệu năng cho ứng dụng vào giaiđoạn cuối cùng của dự án Điều này mang lại rủi ro rất lớn cho dự án vì có thể nhữngvấn đề về hiệu năng của hệ thống sẽ không được giải quyết trước ngày ứng dụng đượcđưa ra sử dụng Tại sao biết tầm quan trọng của hiệu năng mà các dự án vẫn gặp rủi rocao về điều này? Phải chăng là chúng ta chưa thực sự hiểu đúng về hiệu năng của ứngdụng So sánh bản chất thực tế và những quan điểm sai lầm mà mọi người hay nhầmtưởng về kiểm thử hiệu năng sẽ giúp chúng ta có cái nhìn đúng đắn hơn và làm thế nào

để một dự án đạt được yêu cầu hiệu năng trước khi đưa ra triển khai trong thực tế

Bảng 1.1: So sánh hiểu lầm và thực tế về kiểm thử hiệu năng [5]

Trang 13

1 Kiểm thử hiệu năng là hoạt

động thực hiện sau cùng nếu

thời gian phát triển dự án

đang còn

Kiểm thử hiệu năng rất quan trọng và nênđược xem xét ngay từ giai đoạn tìm hiểu yêucầu và áp dụng công nghệ vào thiết kế hiệunăng cho ứng dụng cần được thực hiện trongcác giai đoạn phát triển dự án

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

làm tăng hiệu năng của hệ

thống

Xây dựng kiểm thử hiệu năng sẽ không làmtăng hiệu năng của hệ thống Nó giúp xácnhận hệ thống đã đạt được yêu cầu hiệu năngchưa và tìm ra các vấn đề về hiệu năng nếu có

3 Kiểm thử hiệu năng cần phải

thực hiện tất cả chức năng của

ứng dụng để xác định các vấn

đề về hiệu năng

Những chức năng được sử dụng thường xuyêntrong hê thống, chức năng quan trọng, chứcnăng dễ bị lỗi thh́ kiểm thử viên phải tiến hànhkiểm thử hiệu năng

4 Thời gian phản hồi (response

time) của một hệ thống theo

một chuẩn

Không có một chuẩn nào cho thời gian phảnhồi Thời gian phải hồi được đưa ra dựa trênkhả năng của phân cứng, phần mềm

5

Kiểm thử hiệu năng cho một

ứng dụng thực hiện một lần

trong thời gian phát triển

không quan tâm khi có nhiều

mô-đun của ứng dụng đã được

thiết kế lại

Kiểm thử hiệu năng cần thực hiện lại bất cứ khinào có sự thay đổi phần mềm hoặc phần cứng

6 Kiểm thử hiệu năng có thể

thực hiện song song trong khi

kiểm thử chức năng

Kiểm thử hiệu năng cần thực hiện trong một

hệ thống đáng tin cậy chỉ sau khi hoàn thànhgiai đoạn kiểm thử hệ thống

1.6 Kiểu kiểm thử hiệu năng

Khi thực hiện kiểm thử hiệu năng cho một ứng dụng chúng ta có thể thực hiệnmột hoặc một vài loại kiểu kiểm thử hiệu năng phụ thuộc vào đặc thù và yêu cầu củaứng dụng đó Một vài kiểu kiểm thử hay được sử dụng trong kiểm thử hiệu năng là:

Kiểm thử cơ sở (baseline test)

Kiểm thử cơ sở là kiểm thử được xây dựng đánh giá hiệu năng ứng dụng với tảimột người sử dụng [5, 6] Kiểm thử cơ sở được thực hiện để kiểm tra tính đúng củakịch bản kiểm thử được phát triển cho kiểm thử hiệu năng Kịch bản kiểm thử có thể

Trang 14

đượ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 Thông tin về thời gian phản hồi, các số liệu sử dụng tàinguyên máy chủ được thu thập và lưu lại trong tài liệu Những thông tin này là cơ sởđược dùng so sánh với hiệu năng của hệ thống ở điều kiện tải khác nhau [5]

Kiểm thử chuẩn (benchmark test)

Kiểm thử chuẩn là kiểm thử được tiến hành để đo lường hiệu năng của ứng dụngtrong 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ảimục tiêu Kiểm thử chuẩn còn có mục đích kiểm tra tính đúng đắn của kịch bản kiểmthử và tính sẵn sàng của hệ thống trước khi đặt trong điều kiện tải cao Nó giúp chúng

ta nhận ra các thành phần khác nhau của hệ thống kết hợp với nhau theo thiết kế cóđáp ứng mức dịch vụ cung cấp [5]

Thời gian phản hồi của hệ thống và số liệu về mức sử dụng tài nguyên máy chủ

sẽ giúp chúng ta phân tích hệ thống có thể đứng vững với kiểm thử tải người sử dụngcao Các số liệu thu thập trong kiểm thử chuẩn sẽ được xem như là kết quả hiệu năngtốt nhất của hệ thống Chúng ta có thể đánh giá sự giảm sút hiệu năng của hệ thốngbằng cách so sánh với hiệu năng hệ thống trong kiểm thử chuẩn

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

Kiểm thử tải được thực hiện xác định hiệu năng hệ thống với điều kiện tải nhiềungười sử dụng đồng hệ thống như trong thực tế 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 Ngoài ra kiểm thử tải giúp đánh giáhiệu năng hệ thống trong những điều kiện tải khác nhau như trong điều kiện tải bìnhthường và tải cao điểm [2, 5, 6]

Kịch bản kiểm thử tải được tạo ra với thời gian nghĩ (think time) tương tự nhưthời gian chờ của người sử dụng cuối trong thực tế Kiểm thử nên tạo được sự kết hợpcác giao dịch như trong thế giới thực Kiểm thử tải giúp chúng ta xác định thời gianphản hồi, thông lượng (throughput) của hệ thống, những vấn đề về phần cứng của máychủ triển khai ứng dụng và máy chủ đặt dữ liệu trong điều kiện tải bình thường và tảicao điểm Đồng thời kiểm thử tải còn giúp chúng ta xác định lỗi của ứng dụng xảy ratrong các điều kiện tải khác nhau

Ví dụ: Tải mục tiêu (tải tối đa) của một ứng dụng web là 1000 người dùng đồng

thời Yêu cầu kiểm tra khả năng chịu tải của trang web khi hoạt động trong mức tải

cao nhất trong 2 ngày

- Dùng một công cụ kiểm thử hiệu năng tạo mô phỏng ban đầu là 800 ngườidùng, cứ 1 phút tăng 2 người, cho đến khi đặt mức tải 1000 người dùng, để ứngdụng chạy liên tục trong 2 ngày với mức tải tối đa

Trang 15

- Quan sát: ứng dụng sử dụng tài nguyên trên máy chủ RAM, CPU, thời gianphản hồi của hệ thống, thông lượng (throughput)

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

Kiểm thử áp lực 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 [2, 5] Kiểmthử này được coi là kiểm thử tiêu cực vì hệ thống phải chịu một tải không thực tế Nóthường được tiến hành để biết tác hại tiền năng tạo ra trong quá trình hệ thống phảichịu tải không thực tế Kết quả của kiểm thử áp lực đôi khi giúp chủ sở hữu web sitethông báo người sử dụng về khả năng mở rộng của ứng dụng

Về cơ bản kiểm thử áp lực tập trung vào đánh giá hệ thống có thể tồn tại bao lâuvới mức tải lớn hơn mức tải mục tiêu Đồng thời nó cũng giúp xác định những vấn đề

về phần cứng của máy chủ triển khai ứng dụng và lên kế hoạch nâng cấp máy chủ.Kịch bản được tạo ra cho kiểm thử áp lực là không thực tế Kịch bản được tạo rakhông có thời gian nghĩ (think time) và lưu trữ (cache) được ẩn đi để nhanh chóng tạođược mức tải cao cho máy chủ Khi đó hành vi của máy chủ nhanh chóng được xácđịnh, đánh giá

Ví dụ một ứng dụng web có thể đáp ứng tối đa là 1000 người sử dụng đồng thời.Yêu cầu kiểm tra hành vi của ứng dụng khi yêu cầu gửi về máy chủ lớn hơn 1000người sử dụng đồng thời

- Dùng một công cụ kiểm thử hiệu năng mô phỏng có 1100 người đang đồngthời sử dụng ứng dụng Không tiếp tục tăng tải cho máy chủ

- Quan sát: Kết quả xử lý của máy chủ với 1000 yêu cầu đầu, 100 yêu cầu sau đó

bị từ chối như thế nào, máy chủ có hành vi như thế nào (khởi động lại hoặc bịtreo)

- Từ đó đưa ra kết luận tình trạng của ứng dụng khi được đạt ở mức tải mục tiêu(tải đối đa) và trong điều kiện quá tải

Kiểm thử Spike (spike test)

Kiểm thử này rất giống kiểm thử áp lực (stress test) nhưng hệ thống được đặttrong tải cực cao trong một thời gian gian ngắn [2, 5] Kiểm thử giúp xác nhận hiệună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 ứngdụng Kịch bản kiểm thử được tạo ra cho kiểm thử này không thực tế Thời gian đợi(Think time) được lờ đi và lưu trữ (cache) được ẩn đi trong kịch bản

Kiểm thử chịu đựng (endurance test)

Trang 16

Kiểm thử chịu đựng tập trung vào đánh giá hiệu năng của hệ thống với mức tải

sử dụng được định trước trong khoảng thời gian kéo dài Kiểm thử này còn giúp tìmvấn đề liên quan đến bộ nhớ và tràn bộ đệm xảy ra nếu tiếp tục sử dụng hệ thống Ngoài ra nó còn giúp đánh giá tính sẵn sàng của hệ thống dựa vào khoảng thời gianthực hiện kiểm thử Kiểm thử chịu đựng chạy với 70%- 80% của tải mục tiêu, trongkịch bản có cài đặt thời gian nghĩ giống như trong thực tế

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

Kiểm thử cô lập nghẽn cổ chai là kiểm thử được thực hiện trên hệ thống hoặcmộ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ăngcủa hệ thống [5] Nó thường được xây dựng sau kiểm thử tải (load test) để dễ dàng hơntrong việc tìm ra các vấn đề cụ thể của hiệu năng Kiểm thử này được thực hiện linhđộng để gỡ rối (debug) những vấn đề của hiệu năng

Kiểm thử khối lượng (volume test)

Kiểm thử khối lượng là kiểm thử hiệu năng cho hệ thống khi nó phải thao tác vớimộ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

Ví dụ nếu bạn muốn kiểm thử hiệu năng cho một ứng dụng mà dữ liệu của ứngdụng có khối lượng bản ghi cụ thể thì bạn phải tạo một dữ liệu có số lượng bản ghinhư vậy rồi thực hiện kiểm thử hiệu năng Hoặc nếu ứng dụng của bản phải đọc/ghitrên một tập tin, bạn sẽ phải tạo một tập tin mẫu có kích thước như yêu cầu trong hệthống rồi thực hiện kiểm thử hiệu năng

Khi thực hiện kiểm thử hiệu năng cho phần mềm quản lý trường học được xâydựng trên nền web (trình bầy chi tiết trong Chương 3), tôi cũng đã thực hiện các loạikiểm thử sau: kiểm thử cơ sở, kiểm thử tiêu chuẩn và kiểm thử tải Trải nghiệm trongthực tế cho tôi thấy thực hiện kiểm thử cơ sở là rất cần thiết Không phải cứ sử dụngphần mềm kiểm thử hiệu năng để ghi lại kịch bản kiểm thử thì kịch bản luôn chạyđúng Do giới hạn của phần mềm kiểm thử mà nhiều khi kiểm thử viên phải tốn thờigian để chỉnh sửa cài đặt các tham số, biến dữ liệu động như Cookie, Section Id, v.v…cho kịch bản để đảm bảo chạy đúng như trong thực tế Trong khi kiểm thử tải cho hệthống này tôi nhận thấy thời gian phản hồi, thông lượng trong kết quả kiểm thử nhậnđược chịu ảnh hưởng từ cấu hh́ nh máy ch ạy kịch bản kiểm thử và băng thông mạngtrong khi thực hiện

1.7 Công cụ kiểm thử hiệu năng

1.7.1 Công cụ kiểm thử hiệu năng

Trang 17

Có rất nhiều phần mềm kiểm thử hiệu năng trên thị trường Nó có thể được chiathành hai loại chính: phần mềm mã nguồn mở và phần mềm có bản quyền Phần mềm

có bản quyền thường hỗ trợ nhiều chức năng, kết quả kiểm thử hiệu năng được thểhiện trực quan trong các biểu đồ giúp ta dễ dàng phân tích đánh giá hiệu năng, và kếtquả này có độ tin cậy cao Còn các phần mềm mã nguồn mở thì thường hạn chế vềchức năng, ít dạng biểu đồ biểu diễn kết quả kiểm thử và đôi khi khó sử dụng Những

tổ chức có tiêu chuẩn về hiệu năng cho các ứng dụng và họ mong muốn kết quả kiểmthử có độ chính xác, tin cậy cao thì thích sử dụng những phần mềm có bản quyền như

HP Load Runner, HP performance Center, Segue’s SilkPerformer, Empirix E-Test,Radview Webload, Compuware QA-Load, v.v…Còn với những tổ chức nhỏ do lợinhuận thì phần mềm mã nguồn mở là lựa chọn duy nhất Một vài phần mềm mã người

mở hay được các công ty này lựa chọn sử dụng là Jmeter, OpenSTA

Một số công cụ kiểm thử hiệu năng thông dụng:

• HP’s Load Runner/Performance Center (có bản quyền)

• Radview’s Webload (có bản quyền)

• Compuware’s QAload (có bản quyền)

• Borland’s SilkPerformer (có bản quyền)

• Empirix’s e-Load (có bản quyền)

• Open STA (mã nguồn mở)

• Jmeter (mã nguồn mở)

• Grinder (mã nguồn mở)

1.7.2 Tiêu chuẩn để chọn một công cụ kiểm thử hiệu năng

Để chọn được một công cụ kiểm thử hiệu năng phù hợp với ứng dụng thì chúng

ta nên làm những bước sau [5]:

1 Xem xét những giao thức mà công cụ hỗ trợ Công cụ có hỗ trợ cho ứng dụngWeb và ứng dụng khách máy -chủ máy

2 Kiểm tra xem công cụ có cung cấp chức năng tạo kịch bản kiểm thử

3 Kiểm tra công cụ có cung cấp những thuộc tính để xác định những phiên giaodịch, cung cấp thời gian người sử dụng chờ (user think time), kiểm thử dữ liệu,thao tác với máy chủ để xem sự thay đổi của các biến và nhìn thấy những kịchbản được thực hiện trên trang ứng dụng

4 Kiểm tra công cụ có lựa chọn thiết lập trạng thái tăng, giảm và ổn định trongkhi thực hiện kiểm thử

Trang 18

5 Kiểm tra công cụ có chức năng để quản lý tài nguyên hệ thống trong khi kiểmthử

6 Kiểm tra có thể giám sát thông qua hệ thống tích hợp khác

7 Kiểm tra công cụ có cung cấp kết quả kiểm thử theo một định dạng dễ đọc(định dạng html or đoc)

8 Kiểm tra công cụ có cung cấp đầy đủ thông tin về Hits/giây, dung lượng (phiêngiao dịch/giây và bytes/giây), mô phỏng nhiều người dùng/giây, giám sát tàinguyên hệ thống và thông tin chi tiết về lỗi /giây

9 Công cụ không nên chiếm nhiều tài nguyên trên máy khách nó làm cho kếtquả kiểm thử tải không thực tế

Chọn một phần mềm kiểm thủ hiệu năng tốt phù hợp với đặc thù của ứng dụngcần kiểm thử không phải là việc quá khó với kiểm thử viên Phần mềm kiểm thử sẽ môphỏng người sử dụng cuối đúng như kịch bản kiểm thử và tính toán đưa ra các thôngtin chi tiết về hiệu năng của hệ thống Từ kết quả đó kiểm thử viên phải phân tích đưa

ra kết luận về hiệu năng hiệu tại của hệ tống Kết luận đó bao gồm hiệu năng hiện tại,các yếu tố ảnh hưởng đến hiệu năng của hệ thống và nguyên nhân các vấn đề Như vậykết luận của kiểm thử viên về hiệu năng của hệ thống mới là công cụ tốt nhất phântích, đánh giá hiệu năng của hệ thống [5]

Trong phần áp dụng thực nghiệm, để thực hiện kiểm thử tải cho phần mềm quản

lý trường học được xây dựng trên nền web tôi cũng đã tìm hiểu một số công cụ và cuốicùng chọn phần mềm mã nguồn mở Jmeter Công cụ có đầu đủ chức năng giúp tôi cóthể thực hiện được kiểm thử cở sở, kiểm thử tiêu chuẩn và kiểm thử tải Trong thực tế

có nhiều công ty đã sử dụng công cụ này để kiểm thử hiệu năng do phần mềm này cónhiều tài liệu hướng dẫn sử dụng và không mất phí khi sử dụng Ngoài ra cộng đồng

mã nguồn mở cũng đã xây dựng thêm một số thư viện mà có thể tích hợp với Jmeter

để kiểm thử viên có thể thu thập thêm nhiều số liệu khác nhau cho hiệu năng hệ thống.Trong phần thực hiện kiểm thử tải tôi cũng sử dụng một thư viện mở rộng của Jmeter

để thu thập các số liệu về mức độ sử dụng CPU, đọc/ghi và bộ nhớ trên máy chủ

Trang 20

CHƯƠNG 2 CÁC KỸ THUẬT TRONG KIỂM THỬ HIỆU NĂNG

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

2.1.1 Đị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áychủ 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 Như G.Kotis từng nói, “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 “ [5]

Tải công việc có thể là tự nhiên hoặc nhân tạo Tải công việc tự nhiên hay là tảicông việc thực tế mà máy chủ nhận được khi ứng dụng được triển khai sử dụng trongthực tế Tải công việc nhân tạo được tạo ra bằng cách sử dụng phần mềm kiểm thửhiệu năng mô phỏng hành vi của người sử dụng trong thế giới thực khi họ tương tácvới hệ thống và nó giống với mô hình tải công việc tự nhiên Đặc điểm của tải nhântạo là có thể điều khiển được

Tải công việc được tạo ra khi kiểm thử giống phải giống tải công việc trong thực

tế của hệ thống Nếu có nhiều sự chêch lệch giữa tải kiểm thử và tải công việc trongthực tế thì kết quả kiểm thử sẽ không thực sự là hiệu năng của hệ thống khi được đưavào sử dụng trong thực tế

2.1.2 Kiểu tải công việc

Tải công việc của hệ thống cần được phân tích và thiết kế Điều đó sẽ giúp chúng

ta hiểu được người sử dụng cuối và mô hình sử dụng [5] Nếu tải công việc của máychủ không được phân tích một cách đúng đắn và cặn kẽ thì kiểm thử hiệu năng có thểtạo một tải công việc khác với tải trên máy chủ trong thực tế Một vài loại tải côngviệc: tải ổn định (Steady-State Workload), tải bậc thang (Inclined Workload), tải bùng

nổ (Bursty Workload) và tải tại thời gian cụ thể (Time Specific Workload)

Tải công việc ổn định

Tải ổn định là một tải không đổi theo số người sử dụng hệ thống cùng lúc hoặccùng một hành động Số người sử dụng ứng dụng ở bất kỳ thời điểm nào là một hằng

số Nó không mô tả tải sử dụng trong thời gian thực, tải ổn định được sử dụng kiểmthử tính ổn định của hệ thống

Trang 21

Hình 2.1: Tải công việc ổn định [5]

Tải công việc sườn dốc (inclined workload)

Tải công việc sườn dốc tăng theo số lượng người đang sử dụng hoặc số ngườicùng thực hiện một hành động trên hệ thống Kiểm thử bắt đầu với số người sử dụngnhỏ nhất và số người dụng ảo tăng định kỳ từng bước một Kiểm thử tải sử dụng môhình tải sườn dốc để xác định số người dùng lớn nhất mà hệ thống hỗ trợ

Hình 2.2: Tải công việc sườn dốc [5]

Tải công việc bùng nổ (bursty workload)

Tải bùng nổ miêu tả truy cập cao điểm đột ngột của hệ thống trong một khoảngthời gian ngắn Tải này được tạo ra khi kiểm tra hiệu năng của hệ thống trong điềukiện tải tăng đột ngột Thỉnh thoảng trong khi kiểm thử ức chế, tải bùng nổ được sửdụng để xác định hiệu năng hệ thống khi truy cập lên đến đỉnh điểm

Hình 2.3: Tải công việc bùng nổ [5]

Tải công việc theo thời gian

Với một ứng dụng được truy cập bởi nhiều người dùng ở những vùng địa lý khácnhau, ở những múi giờ khác nhau thì tải công việc thực tế sẽ rất khác nhau theo thời

Trang 22

gian Mô hình người sử dụng sẽ có mức cao và thấp lặp lại trong ngày và tải lớn nhấtcủa ứng dụng trong khoảng thời gian chồng chéo múi giờ Khi đó tải công việc củaứng dụng nên được mô tả theo thời gian

Hình 2.4: Tải công việc theo thời gian [5]

2.1.3 Phân tích tải công việc của hệ thống

Phân tích tải công việc trước khi tiến hành kiểm thử hiệu năng là việc cần thiếtphải làm để đảm bảo tải công việc tạo ra trong kiểm thử giống tải công việc của hệthống khi triển khai trong thực tế [5, 7] Phân tích tải công việc là: xác định tổng tảicô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ồngchức năng được sử dụng thường xuyên, chu kỳ sử dụng của người dùng, thời gianngườ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ạingườ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 [5] Đểphân tích tải công việc của hệ thống chúng ta có thể dựa vào mô hình hành vi kháchhàng hoặc phân tích tập tin web log (nếu trang web đã được đưa vào sử dụng), v.v… Dựa vào mô hình hành vi khách hàng chúng ta có thể xác định được khoảng thờigian giữa các phiên giao dịch, số lượng người dùng, luồng sự kiện được sử dụngthường xuyên và chu kỳ sử dụng cửa người sử dụng

Phân tích tập tin log trên máy chủ của trang web có thể xác định: số người sửdụng trang web, tổng số yêu cầu gửi về máy chủ (ví dụ: hình ảnh, trang html), số trangđược hiển thị (number of page views), ngày nhiều người sử dụng nhất, giờ nhiều ngườiđồng thời sử dụng, số byte được truyền từ máy chủ tới máy khách ở bất kỳ thời điểmnào (throughput/Bytes transferred)

2.1.4 Mô hình hóa tải công việc (workload)

Tuần tự các bước để mô hình hóa tải công việc của ứng dụng:

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

Trang 23

Chúng ta dựa vào yêu cầu hiệu năng để mô hình hóa tải công việc cho hệ thốngcần kiểm thử Với các yêu cầu hiệu năng khác nhau thì mô hình tải công việc để xácđịnh trước khi kiểm thử cũng khác nhau Ví dụ, nếu chúng ta xác định tải công việc

của máy chủ để xác nhận hệ thống có thể xử lý giao dịch tăng 10% vào cuối năm, khi

đó tải công việc cần được tiến hành đánh giá số lượng khách hàng, số giao dịch xử lýtrong 1 giây, tình trạng sử dụng CPU và IO, tỷ lệ yêu cầu gửi đến và thời gian nghĩ(think time) của người sử dụng Nếu mục tiêu của kiểm thử hiệu năng là ước tính thờigian phản hồi (response time) cho dự báo kinh doanh tăng 20% người sử dụng, khi đotải công việc được thiết lập dựa vào các thông số của kiểm thử trước đây Một số chỉnhsửa trong các thông số trước đây được thực hiện trước khi thực hiện kiểm thử

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

Nếu chúng ta không hiểu khối lượng công việc của ứng dụng thì mô hình tảicông việc không thể được xây dựng Các luồng chức năng, kiểu khách hàng truy cập,mục đích của người sử dụng cuối, tổng số người sử dụng ứng dụng phải được kiểm thửviên tìm hiểu rõ Ngoài ra kiểm thử viên phải tìm các tình huống ảnh hưởng lớn đến tảicông việc của hệ thống Đặt mình vào ví trí người sử dụng cuối của ứng dụng để đưa

ra các thông tin như các chức năng hay được sử dụng, thời gian phản hồi mong muốncủa người dùng, số giao dịch trong giờ cao điểm và giờ nghỉ, v.v…Phân tích hệ thốngtrong nhiều tình huống và theo mục đích sử dụng khác nhau sẽ giúp chúng ta hiểu rõhơn về tải công việc hệ thống Nếu ứng dụng đã được triển khai sử dụng trong thực tếthì tập tin log trên máy chủ chứa nhiều thông hữu ích để phân tích tải, mô hình yêu cầunhận được trên máy chủ [5]

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

Kiểm thử viên cần xác định phân bố thống kê cho mô hình yêu cầu của người sửdụng ứng dụng Từ phân bố này giúp chúng ta tính toán được tải công việc lớn nhấttrên máy chủ Ví dụ, hai ứng dụng A1, A2 có cùng tải mục tiêu là 1000 người sử dụngnhưng chúng có phân bố thống kê khác nhau: A1- Possion, A2- Self similar Khi đó tảilớn nhất cần kiểm thử cho hai ứng dụng A1 và A2 là khác nhau Như vậy phân tích môhình phân bố thống kê cho tải của hệ thống sẽ cho ta biết tải lớn nhất của hệ thống cầnthực hiện kiểm thử

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

Theo tập tin log trên máy chủ chúng ta biết được các giao dịch diễn ra giữa máykhách và máy chủ của hệ thống Đặt hệ thống trong điều kiện tải thấp và thực hiện cácgiao dịch từ đó xác định được số liệu về việc sử dụng CPU và I/O của hệ thống

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

Trang 24

Chúng ta đã xác định được các giao dịch trên máy chủ và yêu cầu về sử dụng tàinguyên phần cứng Phụ thuộc và mức độ trừu tượng và độ chính xác chúng ta sẽ xâydựng mô hình tải mong muốn Nếu cần độ chính xác cao, chúng ta sẽ phân vùng dữliệu thành nhiều lớp dựa vào tài nguyên sử dụng, sự phân bố địa lý hoặc hiệu năng sửdụng

Bảng 2.1: Ví dụ về mô hình tải sau khi xây dựng [5]

Giao dịch Tần suất Thời gian CPU (giây) Thời gian I/O (giây)

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

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

Kiểm thử viên phải tìm hiểu môi trường sản phẩm hay là môi trường triển khai hệthống trong thực tế Ngoài ra kiểm thử viên nên biết kiến trúc triển khai ứng dụngtrọng môi trường sản phẩm và yêu cầu đội phát triển cài đặt môi trường kiểm thửgiống với sản phẩm để thực hiện kiểm thử hiệu năng [5]

Nếu môi trường sản phẩm và môi trường kiểm thử có sự khác nhau về phần cứng triển khai ứng dụng thì sẽ mang lại rủi ro cao là hiệu năng sau khi kiểm thử không phải

là hiệu năng thực tế của hệ thống trong thực tế Vì vậy 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

Ví dụ nếu một ứng dụng ba tầng triển khai trong môi trường kiểm thử lại đượctriển khai hai tầng trong môi trường sản phẩm thì hiệu năng của hệ thống trong thực tế

sẽ khác rất nhiều hiệu năng đã được kiểm thử

Hầu hết kiểm thử hiệu năng được xậy dựng trong môi trường có cấu hình thấphơn cấu hình máy chủ trong thực tế do vấn đề về tài chính Mặc dù vậy chúng ta nênxây dựng kiểm thử hiệu năng trong môi trường giống như cấu hình máy chủ của sảnphẩm Nếu môi trường sản phẩm và môi trường kiểm thử có sự khác nhau về phầncứng triển ứng dụng thì sẽ mang lại rủi ro cao là hiệu năng sau khi kiểm thử khôngphải là hiệu năng thực tế của hệ thống trong thực tế Kỹ sư kiểm thử hiệu năng cầnphải tìm hiểu môi trường, kiến trúc triển khai ứng dụng và đảm bảo đúng phiên bảnphần mềm (phiên bản ứng dụng, phiên bản máy chủ, hệ điều hành, thư viện nếu có…)được sử dụng triển khai trong môi trường kiểm thử giống như môi trường sản phẩm

Trang 25

Phần mềm (máy chủ web, máy chủ ứng dụng hoặc phiên bản phần mềm máy chủ cơ

sở dữ liệu, điều kiện bản quyền, mức độ log, những quy trình khác…), phần cứng (CPU, bộ nhớ và cấu hình đĩa), mạng (lưu lượng và chi tiết băng thông mạng) khácnhau trong hai môi trường kiểm thử và sản phẩm cần được xác định và lưu lại để tracứu trong tương lai

2.2.2 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ảikhông cần thiết để đánh giá chính xác và những vấn đề ảnh hưởng đến hiệu năng.Ngoài ra nếu kiểm thử trong cùng môi trường nó sẽ làm ảnh hưởng đến những hoạtđộng khác trong quá trình phát triển dự án nếu trong quá trình kiểm thử tải máy chủ bịlỗi

Nếu mục tiêu của kiểm thủ là xác định yêu cầu về băng thông hỗ trợ người dụngthì cần kiểm thử hiệu năng trong một mạng riêng biệt Nếu mạng trong quá trình kiểmthử có giao dịch khác thì tổng dữ liệu được gửi qua lại giữa máy chủ và máy kháchkhông đảm bảo độ chính xác cao Trong trường hợp này cách tốt nhất là xây dựng mộtmạng LAN riêng biệt và chỉ có máy chủ và máy kiểm thử đặt trong mạng LAN đó

2.2.3 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ầnmềm kiểm thử hiệu năng Hầu hết các phần mềm kiểm thử hiệu năng đều có chức năngtạo tải được gọi là Load Generator Khi chúng ta cài đặt mô phỏng 10 người sử dụng

hệ thống thì phần mềm kiểm thử tạo 10 luồng hoặc tiến trình gửi yêu cầu từ máy kháchđến máy chủ theo thời gian nghĩ (think time) đã được cài đặt trong kịch bản kiểm thử.Chúng ta có thể sử dụng nhiều tiện ích khác của các phần mềm như cài đặt tăng dần sốngười sử dụng hệ thống theo một khoảng thời gian, thời gian thực hiện kiểm thử, v.v…

Ví dụ cần kiểm thử hiệu năng của một hệ thống với 1000 người sử dụng đồngthời Chúng ta sẽ sử dụng một phần mềm kiểm thử hiệu năng, cài đặt trên 5 máy khácnhau và cấu hình 200 người dùng ảo trên mỗi máy Khi đó chúng ta sẽ cấu hình chạykịch bản theo lịch đặt trước Việc lên lịch kiểm thử giúp chúng ta có thể điều khiển tảitheo thời gian, vùng địa lý khác nhau, v.v… Theo thời gian đã cài đặt thì phần mềm tựđộng tạo người sử dụng ảo sử dụng hệ thống theo kịch bản kiểm thử Như vậy cácphần mềm kiểm thử hiệu năng giúp ta tạo và cài đặt tải cho hệ thống theo đúng kịchbản kiểm thử

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

Trang 26

Trong kiểm thử hiệu năng, hầu hết thời gian kiểm thử diễn ra trên máy cá nhân

do đó số bản ghi dữ liệu trong kiểm thử sẽ ít hơn dữ liệu của hệ thống trong thực tế 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ư trongthực tế để thực hiện kiểm thử

Thực hiện kiểm thử hiệu năng với dữ liệu như trong thực tế giúp ta đánh giá đúnghiệu năng của hệ thống và tìm được những vấn đề tìm ẩn trong truy vấn dữ liệu (nếucó) Thật vậy chúng ta có thể thấy thời gian truy vấn dữ liệu có thể không đáng kể với

Trang 27

1000 bản ghi nhưng khi dữ liệu có 10 000 bản ghi thì thời gian truy vấn sẽ ảnh hưởngnhiều phụ thuộc vào các sắp xếp bản ghi, các chỉ mục hoặc câu truy vấn dữ liệu

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

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

Kiểm thử chức năng là kiểm thử tính đúng, sai của tất cả các luồng chức năngtrong hệ thống Không giống như kiểm thử chức năng, kiểm thử hiệu năng chỉ kiểmthử hiệu năng của hệ thống trên một vài kịch bản mà được sử dụng nhiều nhất Việcchọn kịch bản kiểm thử hiệu năng ảnh hưởng tích cực đến việc đánh giá hiệu năng hệthống [2, 5]

Lựa chọn kịch bản trong kiểm thử hiệu năng cần được phân tích và nó chỉ chiếm20% trong tổng số kịch bản Đó là những kịch bản mà người dùng sử dụng thườngxuyên khi sử dụng hệ thống Thực hiện kiểm thử hiệu năng cho 80% kịch bản còn lại

sẽ làm tốn thời gian, công sức mà không mang lại kết quả mong đợi [5,7]

2.3.2 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ế Tuy nhiên do hạn chế của phầnmềm mà thời gian nghĩ (think time) và một số tham số khác không được ghi lại trongkịch bản Vì vậy mà mà kiểm thử viên phải tự cài đặt lại thời gian nghĩ và tham sốkhác để đảm bảo kịch bản chạy đúng như trong thực tế Kiểm thử viên nên lưu ý một

số chú ý sau để tạo hoặc chỉnh sửa kịch bản [5]:

• Kịch bản nên có tên để tiện cho việc thu thập và lưu lại thông tin về thời gianphản hồi, thông lượng (throughput) Cần đặt tên theo quy ước để dễ dàng tham chiếuđến giao dịch cụ thể

• Cung cấp quy ước đặt tên phù hợp cho mỗi hành động của người sử dụng đểxác định thời gian phản hồi cho tất cả các giao dịch

• Cài đặt thời gian nghĩ (think time) hoặc thời gian đợi (waiting time) giữa cáchành động cửa người sử dụng để mô phỏng đúng hành vi của người sử dụng cuối trongthế giới thực

• Cung cấp các biến trong kịch bản để phục vụ cho những liên kết động của dữliệu và cho những người dùng khác nhau

• Kiểm soát giá trị động được tạo bởi máy chủ như giá trị phiên làm việc(secssion) để tạo kịch bản đủ lớn cho việc mô phỏng nhiều người sử dụng

Trang 28

• Có thể sửa đổi logic kịch bản để kiểm soát hành vi người sử dụng mà vẫn đảmbảo mô phỏng đúng hành vi của người dùng

Kho tài liệu miễn phí của Ket-noi.com blog giáo dục, công nghệ `

Cài đặt thời gian đợi (think time) giữa mỗi giao dịch rất quan trọng để tạo ra tảitrên máy chủ như trong thực tế Chúng ta có thể xác định thời gian nghĩ bằng các thảoluận hoặc khảo sát với nhà phân tích kinh doanh, người sử dụng cuối hoặc từ việcphân tích tập tin log trên máy chủ (nếu hệ thống đã được dưa vào sử dụng trong thựctế) Thời gian đợi có thể đặt ngẫu nhiên khoảng 20%- 25% để phù hợp với người dùngnhanh và chậm [5]

Ví dụ giả sử rằng bạn có 2 giao dịch trong kịch bản, giao dịch đăng nhập (login)với thời gian đợi 10 giây, sau đó là giao dịch thoát (logout) Nếu thời gian nghĩ (thinktime) được thay là 5 giây thì yêu cầu đăng nhập và thoát được gửi tới máy chủ tăng, thìtải trên máy chủ sẽ cao Nếu thời gian nghĩ là 20 giây tải trên máy chủ giảm Cungcấp thời gian nghĩ lớn (think time) giảm tải máy chủ, giảm thời gian nghĩ (think time)tăng tải máy chủ Như vậy đặt thời gian đợi khi xây dựng kịch bản là rất quan trọng.Nếu thời gian đợi (think time) được đặt không đúng thì là tải trên máy chủ trong khithực hiện kiểm thử sẽ sai mặc dù kiểm thử được tạo

Từ máy chủ có thể có một vài dữ liệu động được tạo ra cho mỗi người dùng và

có thể là duy nhất cho mỗi người dùng Ví dụ session id của mỗi người dùng là duynhất Nếu máy chủ cung cấp sesion id của người sử dụng trong khi phản hồi lại yêucầu từ máy khách Khi đó kịch bản không thể chạy đúng nếu chạy với id của ngườidùng khác Giá trị động có thể được kiểm soát trong kịch bản bằng các cách khác nhauphụ thuộc vào công cụ kiểm thử

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

2.4.1 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 thông qua

việc phân tích mô hình người sử dụng hoặc từ tập tin log trên máy chủ

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ựchiệ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 Dựavào ca kiểm thử và sử dụng nó để lên kế hoạch cho những phần còn lại của hoạt độngkiểm thử

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ử.

Tìm kiếm một phần mềm trên thị trường (có bản quyền hoặc mà nguồn mở) dựa vào

Trang 29

ngân sách và các chức năng của phần mềm Sử dụng phần mềm đã lựa chọn và pháttriển kịch bản kiểm thử mô phỏng người sử dụng truy cập thực tế Tạo đủ dữ liệu kiểmthử trong kịch bản để giả lập nhiều người dùng khác nhau sử dụng dữ liệu khác nhau

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

`

Kho tài liệu miễn phí của Ket-noi.com blog giáo dục, công nghệ

2.4.2 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 trahiệ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êncủa máy chủ Kịch bản kiểm thử nên được cài đặt có đủ thời gian cho việc tăng sốngười sử dụng trước khi đặt hệ thống trong tải mong đợi trong một khoảng thời gian.Tất cả các đánh giá về hiệu năng máy chủ chỉ được thực hiện trong khoảng thời giantải ổn định [5]

Ví dụ: Đánh giá hiệu năng của ứng dụng với 100 người dùng thực hiện 3 kịch bản:

(1) Kịch bản giao dịch A – 60% tải mục tiêu

(2) Kịch bản giao dịch B – 30% tải mục tiêu

(3) Kịch bản giao dịch C – 10 % tải mục tiêu

Theo phân tích kịch bản A được thực hiện 6 lần trong 1 giờ, kịch bản B thực hiện

2 lần trong 1 giờ và kịch bản C được thực hiện 1 lần trong 1 giờ Biết rằng tải cao điểmtrên máy chủ là 200 yêu cầu/1 giây trong giờ cao điểm Chúng ta có một chiến lượckiểm thử như sau:

Hình 2.5: Ví dụ chiến lược kiểm thử tải [5]

Dựa vào Hình 2.5 ta thấy chiến lược kiểm thử tải là: đặt hệ thống trong tải mụctiêu 100 người truy cập hệ thống trong khoảng thời gian tải ổn định là 40 phút Trong

Trang 30

thời gian tải ổn định khi cả 3 kịch bản giao dịch đang thực hiện trong 10 phút (từ40:00 đến 50:00 mm:ss), tải máy chủ được tăng lên với 200 yêu cầu/giây

Kịch bản kiểm thử ở trên đã đạt yêu cầu kiểm thử hiệu năng của ứng dụng và nócung cấp hiệu năng hệ thống khi sử dụng hệ thống thực Nhưng kịch bản ở trên đã bỏqua là mực độ tin tưởng của máy chủ khi thao tác 200 yêu cầu/1 giây Nó mới chỉ đưa

ra một trường hợp trong khoảng thời gian 10 phút cả 3 kịch bản đang được thực hiện

Do đó chúng ta có thể thực hiện một kiểm thử khác là chạy cả 3 kịch bản giao dịchcùng nhau ít nhất 20 – 30 phút và tăng tải máy chủ lên 200 yêu cầu/1 giây để thu thậpthêm thông tin về số liệu, thời gian phản hồi, sử dụng tài nguyên máy chủ

Trang 31

Khi thực hiện kiểm thử tải nên tập trung đánh giá hiệu năng máy chủ trong môhình sử dụng thực Để tạo độ tin tưởng cao khi phân tích hiệu năng thì nên thực hiện 3đến 4 mẫu kiểm thử và thu thập các số liệu về thời gian phản hồi, thông lượng, mức độ

sử dụng CPU Từ đó so sánh, đánh giá và đưa ra kết luận chính xác về hiệu năng của

hệ thống

2.4.3 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ốngtrong 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 [5]

Khi thực hiện kiểm thử tải có 3 vùng tải: tải từ từ tăng, tải ổn định, tải từ từ giảm.Trong vùng tải từ từ tăng số người sử dụng hệ thống từ từ tăng trong khoảng thời gian

cụ thể (5 người/1 phút) được cài đặt trong kịch bản kiểm thử Giá trị này có thể quyếtđịnh dựa vào mô hình sử dụng của ứng dụng Ví dụ nếu ứng dụng của bạn là trang webbán ðấu giá thì có thể 50 người sử dụng cùng đăng nhập vào hệ thống trong 1 giâytrong giờ giao dịch cao điểm Trong vùng tải từ từ giảm số người sử dụng hệ thống dầngiảm trong một khoảng thời gian và nó cũng được cài đặt trong kịch bản kiểm thử Trong vùng tải ổn định thì số người sử dụng hệ thống là không đổi khi đó tải trên máychủ tải trên máy chủ cũng không đổi Chúng ta thu thập số liệu về hiệu năng máy chủtrong khoảng thời gian tải ổn định [5]

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

Không giống như kiểm thử tải, kiểm thử áp lực (stress test) được xây dựng vớimục đích gây áp lực cho hệ thống để tìm ra điểm dừng (breakpoint) và nguyên nhânảnh hưởng đến hiệu năng của hệ thống (nếu có) [5] Hành vi của hệ thống được xácđịnh khi nó được đặt ở mức tải cao Thông thường khoảng 10% - 20 % tải được cộngthê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 Khithự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ấthiệ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ậphành vi của hệ thống và nâng cao độ tin cậy khi phân tích hành vi này

Sau khi kiểm thử tải và áp lực (stress test), phụ thuộc vào yêu cầu hiệu năng của

hệ thống mà các kiểm thử khác như kiểm thử chịu đựng (endurance), Spike test… cóthể thực hiện để xác nhận thêm hành vi và hiệu năng của hệ thống

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

Trang 32

Phương pháp viết bản báo cáo kết quả kiểm thử hiệu năng thì hoàn toàn khác báocáo kết quả kiểm thử chức năng Trong kiểm thử hiệu năng không dễ dàng đưa ra kếtluận đúng/lỗi như trong báo cáo kiểm thử chức năng Báo cáo kiểm thử hiệu năng đưacác kết luận về hiệu năng, các yếu tố và nguyên nhân ảnh hưởng đến hiệu năng của hệthống (nếu có)

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

Thông tin viết trong báo cáo gồm: yêu cầu hiệu năng cần kiểm thử, tổng quan về

hệ thống, các kịch bản kiểm thử, mô hình phân bố người sử dụng và kết quả kiểm thử.Mặc dù một số thông tin đã được nêu chi tiết trong tài liệu kế hoạch kiểm thử nhưngtrong khi viết báo cáo chúng ta nên cung cấp để người đọc báo cáo dễ dàng hiểu đượckết quả kiểm thử [5]

Thông tin quan trọng nhất trong báo cáo là chi tiết thời gian phản hồi, thônglượng trong các giao dịch, các chỉ số về mức độ sử dụng tài nguyên phần cứng, lỗi ứngdụng hoặc những lỗi phát sinh trong khi kiểm thử…Trong báo cáo nên có một vài biểu

đồ kết quả kiểm thử và giải thích cho kết quả kiểm thử cho mỗi biểu đồ Các kết luận

về yếu tố, nguyên nhân ảnh hưởng đến hiệu năng của hệ thống cần được nêu rõ và giảithích Kết quả báo cáo nên có sự tham gia phân tích của một nhóm người gồm: kiểmthử viên, người phân tích hệ thống người quản lý dữ liệu Sau đó kiểm thử viên mớiđưa kết luận cuối cùng về hiệu năng hệ thống [5]

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

Báo cáo kiểm thử hiệu năng sẽ có nhiều người đọc khác nhau như người làmkinh doanh (business people), người phân tích , người quản lý máy chủ và người quản

lý dữ liệu Vì vậy để tất cả mọi người đều hiểu kết quả thì các kết luận và giải thíchtrong báo cáo cần có thông tin chi tiết về kỹ thuật nhưng cũng đủ thông tin cho ngườilàm kinh doanh hiểu được Một cách khái quát báo cáo kiểm thử hiệu năng nên cóthông tin sau:

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 33

Kiểm thử viên nên hiểu trực quan trong báo cáo gồm những phần sau:

• Biểu đồ (Kiểu đồ thị, trục X và Y, tiêu đề và màu phù hợp)

• Biên hiệu năng (rất tốt, tốt và phần nổi bật rất xấu)

• Thuật ngữ (hỗ trợ cho biểu đồ)

• Lời chú thích

• Lời giải thích (dấu hiệu xấu trong hiệu năng của ứng dụng và kết luận)

• Tổng kết lại

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

Kết quả trình bầy trong báo cáo nên đưa ra các thông tin:

• Đư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[5,7]

• 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 [5]

• 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

Ví dụ 1: Bảng só sanh thời gian phản hồi

Bảng 2.2: So sánh thời gian phản hồi [5]

Bảng so sánh thời gian phản hồi (90% giá trị của thời gian phản hồi (sec))

Giao dịch 50 Người 100 người 200 người 300 người

Ví dụ 2: Biểu đồ sự thay đổi thời gian phản hồi với mức tải khác nhau

Bảng 2.3: Thời gian phản hồi theo số người dùng [5]

Bảng Thời gian phản hồi (90% giá trị của thời gian phản hồi (sec))

Trang

1

người

10người

25người

50người

75người

100người

125người

150người

175người

200người

Ngày đăng: 24/08/2017, 12:19

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w