Điềunày dẫn tới việc kiểm thử ứng dụng Web trở nên thiết yếu đối với các dự án phầnmềm và cần phải có những phương pháp đặc biệt khác với phần mềm truyền thống.Kiểm thử phần mềm là hoạt
Trang 1LỜI CAM ĐOAN
Em xin cam đoan đây là phần nghiên cứu và thể hiện đồ án tốt nghiệp củariêng em, dưới sự hướng dẫn của Th.S Hoàng Thị Cành Những phần sử dụng tàiliệu tham khảo trong đồ án đã được nêu rõ trong phần tài liệu tham khảo Nếu sai
em xin chịu hoàn toàn trách nhiệm và chịu mọi kỷ luật của khoa và nhà trường đềra
Người cam đoan
Nguyễn Thị Thu Hoài
Trang 2LỜI CẢM ƠN
Để có được kết quả như ngày hôm nay, trước tiên em xin gửi lời cảm ơn sâusắc tới ThS Hoàng Thị Cành, giảng viên bộ môn Công nghệ phần mềm, khoa Côngnghệ thông tin, Trường Đại học Công nghệ thông tin và truyền thông Thái Nguyên
đã tận tình hướng dẫn, giúp đỡ em trong suốt quá trình nghiên cứu và thực hiện đồ
án tốt nghiệp
Em cũng xin bày tỏ lòng biết ơn chân thành tới các thầy cô giáo trong TrườngĐại học Công nghệ thông tin và truyền thông Thái Nguyên, đặc biệt là các thầy côtrong khoa Công nghệ thông tin đã tận tụy dạy dỗ em trong quá trình học tập, rènluyện suốt thời gian qua, giúp em có được những kiến thức không chỉ để hoàn thành
đồ án mà còn học tập và làm việc sau này
Trong quá trình thực hiện đồ án, mặc dù đã cố gắng để hoàn thiện đề tài tốtnhất có thể, nhưng chắc chắn không thể tránh khỏi những thiếu sót Vì vây, em rấtmong nhận được sự góp ý của thầy cô và các bạn để đồ án của em được hoàn thiệnhơn
Em xin chân thành cảm ơn!
Thái Nguyên, ngày 27 tháng 5 năm 2020
Sinh viên thực hiện
Nguyễn Thị Thu Hoài
Trang 3MỤC LỤC
LỜI CAM ĐOAN 1
LỜI CẢM ƠN 2
MỤC LỤC 3
DANH MỤC HÌNH ẢNH 5
LỜI NÓI ĐẦU 6
CHƯƠNG 1 MỘT SỐ KIẾN THỨC CƠ BẢN VỀ KIỂM THỬ PHẦN MỀM 8
1.1 Kiểm thử phần mềm là gì? 8
1.2 Quy trình kiểm thử phần mềm 8
1.3 Phân loại kiểm thử 10
1.3.1 Căn cứ vào kỹ thuật kiểm thử (Testing Techniques) 10
1.3.2 Căn cứ vào mức độ giai đoạn (Testing Level) 11
1.3.3 Căn cứ vào phương pháp kiểm thử (Testing Methods) 14
1.4 Kiểm thử ứng dụng website 16
1.4.1 Khái Quát 16
1.4.2 Đặc điểm về chất lượng của một ứng dụng Website 17
1.5 Công việc khi kiểm thử một ứng dụng website 18
1.5.1 Kiểm tra chức năng (hồi quy, tích hợp, kiểm thử khói…) 19
1.5.2 Kiểm tra sự tương thích trình duyệt 21
1.5.3 Thử nghiệm tính năng 22
1.5.4 Kiểm tra bảo mật 22
1.5.5 Giám sát sản xuất 23
1.5.6 Kiểm tra khả năng sử dụng 23
CHƯƠNG 2: NGHIÊN CỨU VỀ CÔNG CỤ KIỂM THỬ JMETER, POSTMAN 25
2.1 Giới thiệu chung về Jmeter 25
2.1.1 Tổng quan về Jmeter 25
2.1.2 Sử dụng Jmeter 31
2.2 Giới thiệu chung về Postman 34
2.2.1 Tổng quan về Postman 34
2.2.2 Sử dụng Postman 38
Trang 4CHƯƠNG 3: TRIỂN KHAI KIỂM THỬ TRÊN WEBSITE CỔNG THÔNG TIN
ĐIỆN TỬ HYNDAI THÀNH CÔNG 41
3.1 Giới thiệu Website Công thông tin điển tử Hyundai Thành Công 41
3.2 Thực thi kiểm thử website 43
3.3 Thực thi test 44
3.3.1 Kiểm thử hộp đen 44
3.3.2 Kiểm thử hộp trắng 45
3.3.3 Tiến hành thực thi test bằng công cụ Jmeter 49
3.3.4 Tiến hành thực thi test bằng công cụ Postman 55
KẾT LUẬN 63
TÀI LIỆU THAM KHẢO 64
PHỤ LỤC 66
Trang 5DANH MỤC HÌNH ẢNH
Hình 1.1: Giai đoạn kiểm thử phần mềm 9
Hình 1.2: Quy trình kiểm thử phần mềm 10
Hình 1.3: Sơ đồ các cấp độ kiểm thử 11
Hình 1.3: Mô hình kiểm thử hộp trắng 14
Hình 1.4: Mô hình kiểm thử hộp đen 15
Hình 2.1: Giao diện màn hình của Jmeter 26
Hình 2.2: Cách hoạt động của Jmeter 28
Hình 2.3: Các thành phần một kế hoạch kiểm thử 29
Hình 2.4: Giao diện ban đầu khi chạy phần mềm JMeter 30
Hình 2.5: Giao diện Theard Group 30
Hình 2.6: Các yếu tố trong Thread Group 31
Hình 3.7: Giao diện Thread Group 31
Hình 2.7: Giao diện Postman 36
Hình 2.8: Các thành phần của Settings 37
Hình 2.10: Các thành phần của API content 37
Hình 3.1: Giao diện trang web 42
Trang 6LỜI NÓI ĐẦU
Các ứng dụng Web càng ngày càng phát triển mạnh mẽ nhằm đáp ứng tối đanhững nhu cầu của người dùng và dần trở thành nền tảng kết nối thông tin thiết yếutrong nhiều doanh nghiệp, đóng vai trò quyết định của thương mại điện tử, trao đổithông tin Để có thể đạt được điều này, các ứng dụng Web cần phải có hiệu năngcao, đáng tin cậy, … Việc đưa ra một ứng dụng Web hoàn hảo cho những ngườiđang và sẽ sử dụng ứng dụng đã trở thành một thách thức chính trong đảm bảo chấtlượng phần mềm Sự phức tạp, tính linh hoạt và sự phụ thuộc của các ứng dụng vàomột dịch vụ với nhiều người sử dụng trên các nền tảng khác nhau (hệ điều hành,trình duyệt, …) là một thách thức mà các nhà phát triển Website phải đối mặt Điềunày dẫn tới việc kiểm thử ứng dụng Web trở nên thiết yếu đối với các dự án phầnmềm và cần phải có những phương pháp đặc biệt khác với phần mềm truyền thống.Kiểm thử phần mềm là hoạt động cần thiết vì không có bất cứ một sản phầmphần mềm nào được tạo ra một cách hoàn hảo, không có lỗi Một số những lỗi sẽkhông gây ảnh hưởng nhiều đến sản phẩm tuy nhiên có một số lỗi rất lớn cần phảiđược sửa chữa kịp thời Chúng ta cần kiểm tra tỉ mỉ mọi thứ, bất cứ thứ gì chúng tatạo ra bởi vì mọi thứ luôn không hoàn hảo 100% Có một số lý do rõ ràng chochúng ta biết lý do tại sao kiểm thử phần mềm là quan trọng và những điều chúng tacần lưu ý nên xem xét khi thử nghiệm bất kỳ sản phẩm hoặc ứng dụng nào Sau khi
tìm hiểu và xem xét, em quyết định chọn đề tài “Kiểm thử Website Cổng thông tin điện tử Huyndai Thành Công” với mong muốn có được cái nhìn xác thực, rõ
ràng hơn về kiểm thử phần mềm và tiếp cận được với các công cụ kiểm thử tự độngnhư Jmeter, Postman để làm tiền đề cho định hướng tương lai khi tốt nghiệp đại học
sẽ trở thành một kỹ sư kiểm thử phần mềm
Mục tiêu đồ án
Đồ án được thực hiện nhằm mục đích tìm hiểu về kiểm thử phần mềm, công
cụ kiểm thử tự động phần mềm Đồ án tập trung nghiên cứu các loại kiểm thử và công cụ kiểm thử đối với Website Từ đó, thực hiện phân tích, xây dựng các test case cho các chức năng của một website; sử dụng công cụ kiểm thử để kiểm thử Website Kết quả kiểm thử góp phần đánh giá được chất lượng của Website đó
Trang 7Với mục tiêu đặt ra như trên, những nội dung và kết quả chính của đồ án đượctrình bày trong ba phần như sau:
Chương 1: Một số kiến thức cơ bản về kiểm thử phần mềm
Chương 2: Nghiên cứu về công cụ kiểm thử Jmeter, Postman
Chương 3: Triển khai kiểm thử tự động trên Website Cổng thông tin điện tửHuyndai Thành Công
Em xin chân thành cảm ơn!
Sinh viên
Nguyễn Thị Thu Hoài
Trang 8CHƯƠNG 1 MỘT SỐ KIẾN THỨC CƠ BẢN VỀ KIỂM THỬ PHẦN MỀM 1.1 Kiểm thử phần mềm là gì?
Kiểm thử phần mềm là quá trình khảo sát một hệ thống hay thành phần dướinhững điều kiện xác định, quan sát và ghi lại các kết quả, và đánh giá một khíacạnh nào đó của hệ thống hay thành phần đó
Kiểm thử phần mềm là quá trình thực thi một chương trình với mục đích tìmlỗi
Kiểm thử phần mềm là hoạt động khảo sát thực tiễn sản phẩm hay dịch vụphần mềm trong đúng môi trường chúng dự định sẽ được triển khai nhằm cung cấpcho người có lợi ích liên quan những thông tin về chất lượng của sản phẩm hay dịch
vụ phần mềm ấy Mục đích của kiểm thử phần mềm là tìm ra các lỗi hay khiếmkhuyết phần mềm nhằm đảm bảo hiệu quả hoạt động tối ưu của phần mềm trongnhiều ngành khác nhau
Có thể định nghĩa một cách dễ hiểu như sau: Kiểm thử phần mềm là một tiếntrình hay một tập hợp các tiến trình được thiết kế để đảm bảo mã hóa máy tính thựchiện theo cái mà chúng đã được thiết kế để làm, và không thực hiện bất cứ thứ gìkhông mong muốn Đây là một pha quan trọng trong quá trình phát triển hệ thống,giúp cho người xây dựng hệ thống và khách hàng thấy được hệ thống mới đã đápứng yêu cầu đặt ra hay chưa
1.2 Quy trình kiểm thử phần mềm
Mục đích của kiểm thử là thiết kế một chuỗi các trường hợp kiểm thử mà cókhả năng phát hiện lỗi cao Để cho việc kiểm thử đạt được kết quả tốt cần có sựchuẩn bị về kế hoạch kiểm thử, thiết kế các trường hợp kiểm thử và các dữ liệukiểm thử cho các trường hợp Đây chính là đầu vào cho giai đoạn kiểm thử Và sảnphẩm công việc của giai đoạn kiểm thử chính là “báo cáo kiểm thử” mà tài liệu hóatất cả các trường hợp kiểm thử đã chạy, dữ liệu đầu vào, đầu ra mong đợi, đầu rathực tế và mục đích của kiểm thử, … (như Hình 1.1)
Trang 9Hình 1.1: Giai đoạn kiểm thử phần mềm
Quy trình kiểm thử bao gồm một số giai đoạn:
Lập kế hoạch kiểm thử: Bước đầu tiên là lập kế hoạch cho tất cả các hoạt động sẽ
được thực hiện và các phương pháp được sử dụng Các chuẩn IEEE bao gồm cácthông tin về tác giả chuẩn bị kế hoạch, danh sách liệt kê của kế hoạch kiểm thử.Vấn đề quan trọng nhất đối với kế hoạch kiểm thử:
+ Mục đích: Qui định về phạm vi, phương pháp, tài nguyên và lịch biểu củacác hoạt động kiểm thử
+ Các tài liệu tham khảo
- Giai đoạn bố trí nhân viên kiểm thử: Việc kiểm thử thường phải tiến hành mộtcách độc lập và các nhóm độc lập có trách nhiệm tiến hành các họat động kiểmthử, gọi là các nhóm kiểm thử
- Thiết kế các trường hợp kiểm thử: Các trường hợp kiểm thử là các đặc tả đầuvào cho kiểm thử và đầu ra mong đợi của hệ thống cùng với các câu lệnh đượckiểm thử
- Các phương pháp hộp đen để kiểm thử dựa trên chức năng
- Các phương pháp hộp trắng để kiểm thử dựa vào cấu trúc bên trong
- Xử lý đo lường kiểm thử bằng cách thu thập dữ liệu
- Đánh giá sản phẩm phần mềm để xác nhận sản phẩm có thể sẵn sàng phát hànhđược chưa?
Trang 10Hình 1.2: Quy trình kiểm thử phần mềm
1.3 Phân loại kiểm thử.
1.3.1 Căn cứ vào kỹ thuật kiểm thử (Testing Techniques).
• Kiểm thử tĩnh: (Static Testing)
Là phương pháp kiểm thử phần mềm đòi hỏi phải duyệt lại các yêu cầu và các đặc
tả bằng tay, thông qua việc sử dụng giấy, bút để kiểm tra logic, lần từng chi tiết màkhông cần chạy chương trình Kiểu kiểm thử này thường được sử dụng bởi chuyênviên thiết kế người mà viết mã lệnh một mình
Kiểm thử tĩnh cũng có thể được tự động hóa Nó sẽ thực hiện kiểm tra toàn bộ baogồm các chương trình được phân tích bởi một trình thông dịch hoặc biên dịch màxác nhận tính hợp lệ về cú pháp của chương trình
• Kiểm thử động: (Dynamic Testing)
Là phương pháp kiểm thử phần mềm thông qua việc dùng máy chạy chương trình
để điều tra trạng thái tác động của chương trình Đó là kiểm thử dựa trên các cakiểm thử xác định bằng sự thực hiện của đối tượng kiểm thử hay chạy các chươngtrình Kiểm thử động kiểm tra cách thức hoạt động của mã lệnh, tức là kiểm tra sựphản ứng vật lý từ hệ thống tới các biến luôn thay đổi theo thời gian Trong kiểmthử động, phần mềm phải thực sự được biên dịch và chạy Kiểm thử động thực sựbao gồm làm việc với phần mềm, nhập các giá trị đầu vào và kiểm tra xem liệu đầu
Trang 11ra có như mong muốn hay không Các phương pháp kiểm thử động gồm có kiểmthử Unit – Unit Tests, Kiểm thử tích hợp – Intergration Tests, Kiểm thử hệ thống –System Tests, và Kiểm thử chấp nhận sản phẩm – Acceptance Tests.
1.3.2 Căn cứ vào mức độ giai đoạn (Testing Level)
Kiểm thử phần mềm gồm có các cấp độ: Kiểm thử đơn vị, Kiểm thử tích hợp,Kiểm thử hệ thống và Kiểm thử chấp nhận sản phẩm (hình 1.3)
Hình 1.3: Sơ đồ các cấp độ kiểm thử
• Kiểm tra mức độ, đơn vị (Unit Test)
Một đơn vị là một thành phần phần mềm nhỏ nhất mà ta có thể kiểm thử được Ví
dụ, các hàm (Function), thủ tục (Procedure), lớp (Class) hay phương thức (Method)đều có thể được xem là Unit
Vì Unit được chọn để kiểm tra thường có kích thước nhỏ và chức năng hoạt độngđơn giản, chúng ta không khó khăn gì trong việc tổ chức kiểm thử, ghi nhận vàphân tích kết quả kiểm thử Nếu phát hiện lỗi, việc xác định nguyên nhân và khắcphục cũng tương đối dễ dàng vì chỉ khoanh vùng trong một đơn thể Unit đang kiểmtra Một nguyên lý đúc kết từ thực tiễn: thời gian tốn cho Unit Test sẽ được đền bùbằng việc tiết kiệm rất nhiều thời gian và chi phí cho việc kiểm thử và sửa lỗi ở cácmức kiểm thử sau đó
Unit Test thường do lập trình viên thực hiện Công đoạn này cần được thực hiệncàng sớm càng tốt trong giai đoạn viết code và xuyên suốt chu kỳ phát triển phần
Trang 12mềm Thông thường, Unit Test đòi hỏi kiểm thử viên có kiến thức về thiết kế vàcode của chương trình Mục đích của Unit Test là bảo đảm thông tin được xử lý vàxuất (khỏi Unit) là chính xác, trong mối tương quan với dữ liệu nhập và chức năngcủa Unit Điều này thường đòi hỏi tất cả các nhánh bên trong Unit đều phải đượckiểm tra để phát hiện nhánh phát sinh lỗi Một nhánh thường là một chuỗi các lệnhđược thực thi trong một Unit Ví dụ: chuỗi các lệnh sau điều kiện If và nằm giữathen else là một nhánh Thực tế việc chọn lựa các nhánh để đơn giản hóa việckiểm thử và quét hết Unit đòi hỏi phải có kỹ thuật, đôi khi phải dùng thuật toán đểchọn lựa.
Cùng với các mục kiểm thử khác, Unit Test cũng đòi h ỏi phải chuẩn bị trước các cakiểm thử (Test case) hoặc kịch bản kiểm thử (Test script), trong đó chỉ định rõ dữliệu đầu vào, các bước thực hiện và dữ liệu đầu ra mong muốn Các Test case vàTest script này nên được giữ lại để tái sử dụng
• Kiểm tra tích hợp (Intergration Test)
Integration testing là một loại kiểm thử phần mềm mà tìm kiếm để kiểm tra cácgiao diện giữa các thành phần dựa vào thiết kế của phần mềm Các thành phần phầnmềm có thể được tích hợp lại với nhau theo cách lặp đi lặp lại (từng phần nhỏ ghéplại với nhau, rồi ghép tiếp phần nhỏ khác vào nữa, hành động này lặp lại cho đếnkhi kết hợp toàn bộ phần mềm) hoặc tất cả các thành phần cùng tích hợp một lần(gọi là “big bang”) Thông thường trước đây được xem là một cách làm tốt hơn từkhi nó cho phép các vấn đề về giao diện được xác định vị trí nhanh hơn và cố định.Integration testing làm việc để tìm ra lỗi (defect) trong các giao diện và giao tiếpgiữa các thành phần (mô-đun) Các nhóm thành phần phần mềm đã được kiểm thửlớn dần từng bước tương ứng với các yếu tố của thiết kế kiến trúc đã được tích hợp
và kiểm thử cho đến khi phần mềm hoạt động như một hệ thống
• Kiểm tra mức hệ thống (System Test)
System testing kiểm thử một hệ thống đã được tích hợp hoàn chỉnh để xác minhrằng nó đáp ứng được yêu cầu Kiểm thử tích hợp hệ thống chứng thực rằng hệthống đã được tích hợp với các hệ thống bên ngoài hoặc hệ thống thứ ba đã đượcxác định trong các yêu cầu hệ thống
Trang 13• Kiểm tra hồi quy (Regression Test)
Regression testing tập trung vào việc tìm kiếm lỗi sau khi xảy ra việc thay đổi code.Đặc biệt, nó tìm kiếm theo cách hồi quy (đệ quy) hoặc kiểm tra các bug cũ có bị lạihay không Hồi quy như vậy xảy ra bất cứ khi nào mà chức năng phần mềm trướcđây làm việc đúng đã nhưng làm việc theo mong đợi Điển hình, hồi quy xảy ra như
là một kết quả không mong muốn của việc thay đổi chương trình, khi phần codecủa phần mềm mới được phát triển xung độ với code cũ đang có Phương phápthông thường của kiểm tra hồi quy là bao gồm việc chạy lại các kiểm thử trước đây
và kiểm tra xem có lỗi đã được fixed trước đây bị lỗi lại (bị lại các lỗi cũ đã fixedrồi) Độ sâu của việc kiểm thử phụ thuộc vào các giai đoạn trong quá trình pháthành và rủi ro của các tính năng được thêm vào Chúng có thể được hoàn thành – vìviệc thay đổi đã thêm vào sau bản phát hành hoặc coi nó là mạo hiểm, rất hời hợt,bao gồm các kiểm thử trường hợp đúng (positive) trên từng chức năng – nếu cácthay đổi được thêm vào trước khi phát hành hoặc coi nó ít rủi ro
• Kiểm tra chấp nhận sản phẩm (Acceptance Testing)
Kiểm thử chấp nhận có thể có là một trong hai điều sau đây:
1 Một smoke test được sử dụng như là một acceptance test trước khi giới thiệu bảnbuild mới để thực hiện việc kiểm thử chính, có nghĩa là trước khi thực hiện kiểmthử tích hợp hoặc hồi qui
2 Acceptance testing được thực thi bởi khách hàng, thường được thực hiện trongmôi trường thí nghiệm trên phần cứng của họ, được biết như là kiểm thử chấp nhậnngười dùng (viết tắt là UAT) Acceptance testing có thể được thực hiện như là mộtphần của quá trình chuyển giao (hand-off) giữa 2 pha của quá trình phát triển phầnmềm
• Alpha Test
Alpha testing là việc kiểm thử hoạt động chức năng thực tế hoặc giả lập do ngườidùng/khách hàng tiềm năng hoặc một nhóm test độc lập thực hiện tại nơi sản xuấtphần mềm Alpha testing thường dùng cho phần mềm đóng gói sẵn để bán (ví dụnhư MS office, window, chương trình diệt virus) là một hình thức kiểm thử chấpnhận nội bộ, trước khi phần mềm được tiến hành kiểm thử beta
Trang 14• Beta Test
Beta testing được thực hiện sau alpha testing Các phiên bản của phần mềm - đượcbiết như là các phiên bản beta – chúng được phát hành tới một số lượng giới hạnkhán giả bên ngoài nhóm sản xuất phần mềm Sản phẩm được phát hành đến một sốnhóm người để test nhiều hơn nữa có thể chắc chắn rằng sản phẩm có một số bug.Thỉnh thoảng, các phiên bản beta được phát hành rộng rãi để tăng phạm vi phản hồi
từ một lượng người sử dụng tương lai lớn nhất
1.3.3 Căn cứ vào phương pháp kiểm thử (Testing Methods)
Ba trong số những chiến lược kiểm thử thông dụng nhất bao gồm: Kiểm thử hộpđen, Kiểm thử hộp trắng và Kiểm thử hộp xám
• White box testing
Kiểm thử hộp trắng hay kiểm thử hướng logic cho phép khảo sát cấu trúc bên trongcủa chương trình Kiểm thử viên sẽ truy cập vào cấu trúc dữ liệu và giải thuật bêntrong chương trình (và cả mã lệnh thực hiện chúng)
Hình 1.3: Mô hình kiểm thử hộp trắng
Các phương pháp kiểm thử hộp trắng:
Kiểm thử giao diện lập trình ứng dụng API testing (application programminginterface): là phương pháp kiểm thử của ứng dụng sử dụng các API công khai vàriêng tư
Bao phủ mã lệnh – Code coverage: tạo các kiểm tra để đáp ứng một số tiêuchuẩn về bao phủ mã lệnh
Trang 15 Các phương pháp gán lỗi – Fault injection.
Các phương pháp kiểm thử hoán chuyển – Mutation testing methods
Kiểm thử tĩnh – Static testing: kiểm thử hộp trắng bao gồm mọi kiểm thử tĩnh
• Black box testing
Một trong những chiến lược kiểm thử quan trọng là kiểm thử hộp đen, hướng dữliệu, hay hướng vào/ra Kiểm thử hộp đen xem chương trình như là một “hộp đen”.Mục đích của kiểm thử viên là hoàn toàn không quan tâm về cách cư xử và cấu trúcbên trong của chương trình Thay vào đó, tập trung vào tìm các trường hợp màchương trình không thực hiện theo các đặc tả của nó
Theo hướng tiếp cận này, dữ liệu kiểm tra được lấy chỉ từ các đặc tả
Hình 1.4: Mô hình kiểm thử hộp đen
Các phương pháp kiểm thử hộp đen:
- Phân lớp tương đương – Equivalence partitioning
- Phân tích giá trị biên – Boundary value analysis
- Kiểm thử mọi cặp – Allpairs testing
- Kiểm thử fuzz – Fuzz testing
- Kiểm thử dựa trên mô hình – Modelbased testing
- Ma trận dấu vết – Traceability matrix
- Kiểm thử thăm dò – Exploratory testing
Kiểm thử dựa trên đặc tả – Specificationbase testing
Kiểm thử dựa trên đặc tả tập trung vào kiểm tra tính thiết thực của phần mềm theonhững yêu cầu thích hợp Do đó, kiểm thử viên nhập dữ liệu vào, và chỉ thấy dữliệu ra từ đối tượng kiểm thử Mức kiểm thử này thường yêu cầu các kiểm thử viên
Trang 16xác minh là đối với dữ liệu đầu vào đã cho, giá trị đầu ra (hay cách thức hoạt động)
có giống với giá trị mong muốn trong ca kiểm thử đó hay không Kiểm thử dựa trênđặc tả là cần thiết, nhưng không đủ để để ngăn chặn những rủi ro chắc chắn
Ưu điểm và nhược điểm: Các tester kiểm thử theo phương pháp black box không có
“mối ràng buộc” nào với code, và nhận thức của một tester rất đơn giản: một sourcecode có nhiều lỗi Sử dụng nguyên tắc, "Hỏi và bạn sẽ nhận" các tester black boxtìm được nhiều bug ở nơi mà các DEV không tìm thấy Mặt khác, việc kiểm thửblack box được xem như "là bước đi trong mê cung tối đen mà không mang đènpin” bởi vì tester không biết phần mềm đang test đã được xây dựng như thế nào
rõ ràng là ở bên ngoài “hộp đen” mà chúng ta vẫn gọi về hệ thống được kiểm tra
Sự khác biệt này đặc biệt quan trọng khi quản lý kiểm thử tích hợp – Intergartiontesting giữa 2 modun mã lệnh được viết bởi hai chuyên viên thiết kế khác nhau,trong đó chỉ giao diện là được đưa ra để kiểm thử Kiểm thử hộp xám có thể cũngbao gồm cả thiết kế đối chiếu để quyết định, ví dụ, giá trị biên hay thông báo lỗi
1.4 Kiểm thử ứng dụng website
1.4.1 Khái Quát
Các ứng dụng Website đã được phát triển và trở thành một nền tảng kết nốithông tin thiết yếu trong nhiều doanh nghiệp Các ứng dụng Website đóng vai tròquyết định của thương mại điện tử, trao đổi thông tin
Để có thể đạt được điều này các ứng dụng Website cần phải có hiệu năngcao, đáng tin cậy,… Việc đưa ra một ứng dụng website hoàn hảo cho những ngườiđang và sẽ sử dụng ứng dụng đã trở thành một thử thách chính trong đảm bảo chấtlượng Kiểm thử là một trong những công việc quan trọng để đánh giá chất lượngcủa một sản phẩm và đương nhiên là các ứng dụng Website cũng không phải làngoại lệ Các phương pháp kiểm thử thông thường là các kỹ thuật tập trung vào
Trang 17đánh giá các chức năng yêu cầu của ứng dụng Tuy nhiên, không thể tập trung đượcvào hết tất cả các chức năng yêu cầu của ứng dụng Bởi có rất nhiều chức năngquan trọng cho người sử dụng ứng dụng như: tính hiệu năng, tính dễ sử dụng, độ tincậy và tính bảo mật cần được xem xét Những yêu cầu và mong đợi của người sửdụng, những vấn đề về nền tảng và cấu hình, mô hình nghiệp vụ, sự phát triển vàchi phí cho việc kiểm thử là những vấn đề thường hay gặp phải và thay đổi liên tụcđổi xuyên suốt chu trình của một ứng dụng Website Vì thế, cần thiết phải phát triểnmột chiến lược hiệu quả cho việc kiểm thử mà có thể bao quát được giới hạn tổngthể và rộng lớn của những yêu cầu, chức năng cho một ứng dụng Website qua đó cóthể giúp cho việc cài đặt, hoàn thành ứng dụng cũng như tránh được các rủi ro cóthể gặp.
1.4.2 Đặc điểm về chất lượng của một ứng dụng Website
Người sử dụng không chỉ mong đợi chương trình của họ sẽ vận hành một cách
ổn định, chính xác mà họ còn yêu cầu một số chức năng nào đó phải luôn sẵn sàngtrên 24 giờ trong 1 ngày và 7 ngày trong tuần Hơn nữa, người sử dụng còn mongđợi ở chương trình những ưu điểm sau: tính dễ sử dụng, độ tin cậy, tốc độ, tươngthích với các hệ thống khác nhau và tương thích với các phiên bản trong tương lai.Còn với một ứng dụng Website, thì những yêu cầu về chất lượng gồm:
- Yêu cầu về chức năng: sự hiện diện của các chức năng đáp ứng những yêu cầu
được xác định Các yêu cầu cần có nữa là tính phù hợp, chính xác, khả năngtương tác, tuân thủ và bảo mật
- Yêu cầu về độ tin cậy: khả năng của một ứng dung để duy trì sự hiệu quả của
nó trong một điều kiện cụ thể và trong một khoảng thời gian xác định
- Yêu cầu về khả năng sử dụng: Tính dễ sử dụng và hiệu quả của một ứng dụng.
Vấn đề này có thể được thẩm định bởi một nhóm người dùng giả định
- Yêu cầu về hiệu quả: Tỷ lệ giữa mức độ hiệu quả của một ứng dụng và các tài
nguyên mà nó sử dụng trong các điều kiện cụ thể
Các yêu cầu về chất lượng đóng một vai trò thiết yếu khi thử nghiệm các ứng dụngWebsite Mặc dù nhìn chung thì chúng tương tự như những yêu cầu về chất lượngcho các hệ thống phần mềm truyền thống Tuy nhiên, chúng có thể có mức độ đòihỏi cao hơn về chiều sâu
Trang 18Do ý nghĩa quan trọng của các đặc điểm về chất lượng và sự khác biệt ở cách màchúng được kiểm thử, nhiều phương pháp để kiểm thử một ứng dụng Website tậptrung vào một vài đặc điểm Tuy nhiên, tất cả các đặc điểm đều quan trọng đối vớimột ứng dụng Website Và công việc kiểm thử phải đảm bảo được những yêu cầucài đặt thành công.
1.5 Công việc khi kiểm thử một ứng dụng website
Kiểm thử là một hoạt động để đánh giá chất lượng của một sản phẩm phầnmềm quan trọng là cải thiện nó bằng cách tìm ra những thiếu xót, khiếm khuyết.Một vấn đề thường hay xảy ra trong quá trình phát triển ứng dụng Website đó là cácyêu cầu thường không đầy đủ, tường minh và có thể thay đổi bất cứ lúc nào Thôngthường chúng ta cần có cái nhìn khái quát về các chức năng cơ bản mà ứng dụngWebsite sẽ có “Cái nhìn khái quát” này sẽ là tầm nhìn để thực hiện phát hành lầnđầu ứng dụng
Phương pháp tiếp cận nhanh – tập trung vào tính chất lặp và tiến hóa củamột ứng dụng Website và vòng đời phát triển của chúng mà không hề có bất cứ mộtđoạn văn bản cụ thể nào định nghĩa về phương pháp này Các mục tiêu, mối quantâm và mong đợi của các bên liên quan có đẻ hình hành cơ sở cho việc thựcnghiệm
Để hỗ trợ giúp cho những kiểm thử viên có thể có được những cái nhìn sâusắc và thấu đáo những mong đợi, kỳ vọng về chất lượng ứng dụng Website củangười sử dụng thì những kiểm thử viên này cần được tham gia càng sớm càng tốtvào công việc xác định và định nghĩa các yêu cầu theo các phương pháp kỹ thuậtsau:
- Kiểm tra chức năng (hồi quy, tích hợp, kiểm tra khói… )
- Kiểm tra sự tương thích trình duyệt
Trang 191.5.1 Kiểm tra chức năng (hồi quy, tích hợp, kiểm thử khói…)
Kiểm tra các website cho chức năng chính xác, định dạng, tập tin cookie, và xácnhận dữ liệu Chức năng thử nghiệm là lý tưởng để thực hiện kiểm tra khói, kiểmtra hồi quy, và thử nghiệm hội nhập
• Kiểm tra các liên kết:
Liên kết bên trong một cấu trúc siêu văn bản mà điểm đến không tồn tại một nút(các website, hình ảnh, ) gọi là liên hết hỏng thường xuyên xảy ra sai sót trongcác ứng dụng website Để kiểm tra tính chính xác của các trang liên kết (link kiểmtra), tất cả các liên kết được hệ thống theo sau bắt đầu trên một trang bắt đầu, và sau
đó được nhóm trong một đồ thị liên kết (bản đồ website) Khi chạy một kiểm traliên kết thường xuyên , người ta thường thấy các liên kết không chỉ là điểm đếnkhông tồn tại trang, nhưng cũng có các trang không được interlinked với nhữngtrang khác hoặc cái gọi là các trang mồ côi Những trang mồ côi có thể đến thôngqua một liên kết, nhưng không có một liên kết đến cấu trúc siêu văn bản Để đơngiản cho người sử dụng nó không xác định nơi để đi tới, để chúng rời bỏ website.Ngoài ra, khi vượt qua các liên kết, người ta thường có thể tìm thấy dữ liệu bổ sung
để cung cấp chỉ dẫn tiềm năng lỗi Ví dụ, độ sâu và bề rộng của các cơ cấu chuyểnhướng, khoảng cách giữa hai trang liên quan, được đo bằng số lượng các liên kếthoặc lần tải của các trang
• Kiểm tra các hình thức website trên trang
Kiểm tra các lĩnh vực logic xác nhận cho từng lĩnh vực
Kiểm tra các giá trị mặc định cho từng lĩnh vực
Kiểm tra xem các lĩnh vực mật khẩu không hiển thị nội dung mật khẩu
Kiểm tra giá trị đầu vào không hợp lệ cho từng lĩnh vực
Xác nhận đáp ứng với một hình thức gửi
• Thử nghiệm quản lý phiên làm việc và cookie
Kiểm tra các ứng dụng đăng nhập trong phiên bằng cách cho phép và vô hiệu hóacác tập tin cookie
Cookie thử nghiệm tiêu cực bằng cách sử dụng một tên miền không phối hợp Kiểm tra xem cookie phiên thiết lập lại giữa các phiên trình duyệt
Trang 20Kiểm tra bảo mật ứng dụng bằng cách xóa các tập tin cookie có chọn lọc trong khikiểm tra hoạt động.
• Xác nhận Cascading Style Sheet (CSS) tags
- Xác định các tag CSS 404 trả lại hoặc lỗi tải khác CSS
- Xác định trên HTML id, class, và các thuộc tính tên không phù hợp với bất kỳthẻ CSS nào
Trang 21• Xác nhận thẻ JavaScript:
- Xác định các tag Script trả lại lỗi 404 hoặc lỗi tải khác
- Xác định id, tên, trên thuộc tính không phù hợp với bất kỳ thẻ Script
• Kiểm tra nội dung động (kiểm tra cơ sở dữ liệu):
- Kiểm tra dữ liệu thống nhất trong các hình thức website cơ sở dữ liệu theo địnhhướng
- Kiểm tra chức năng tạo, chỉnh sửa, xóa, cập nhật công việc
- Kiểm tra dữ liệu cung cấp dữ liệu chính xác
- Xác định kết nối cơ sở dữ liệu và các lỗi truy vấn
1.5.2 Kiểm tra sự tương thích trình duyệt
Sự khác biệt trong các trình duyệt Website, môi trường hoạt động, và các thiết bịphần cứng ảnh hưởng đến các hoạt động chính xác của ứng dụng Website của bạn
• Trình duyệt tương thích:
Thử nghiệm ứng dụng website của bạn cho chức năng chính xác trên một số trìnhduyệt như Firefox, IE, Chrome, Opera, và Safari Lý tưởng nhất là ứng dụngwebsite của bạn xử lý sự khác biệt trình duyệt thanh lịch
Kiểm tra chức năng ứng dụng với một loạt các cài đặt cấu hình bảo mật trìnhduyệt
Kiểm tra chức năng ứng dụng với các tính năng trình duyệt bật – tắt (JavaScript,cookies)
Kiểm tra dựng hình trình duyệt của giao diện người dùng ứng dụng của bạn
Kiểm tra các thiết lập bảo mật của trình duyệt cho tên miền chéo truy cập và hack Kiểm tra chức năng ứng dụng nhất quán trên nhiều phiên bản của một trình duyệt
• Môi trường hoạt động tương thích:
Kiểm tra ứng dụng giao diện người dùng vẽ trên hệ thống cửa sổ hệ điều hành Kiểm tra chức năng tích hợp máy tính để bàn, bao gồm kéo và thả tập tin và lựachọn
thử nghiệm ứng dụng website của bạn trên các hệ điều hành khác nhau, bao gồm
cả Windows, Unix, Mac, Linux, và Solaris
• Thiết bị di động tương thích:
Kiểm tra khả năng tương thích ứng dụng với các dịch vụ thiết bị, bao gồm cả vị trí
và các dịch vụ quay số
Trang 22Kiểm tra giao diện người dùng vẽ trên điện thoại di động kích thước màn hình thiết
- Tuyến tính khả năng mở rộng nơi hiệu suất của một ứng dụng không thay
đổi khi số lượng người dùng tăng lên là Chén Thánh của thử nghiệm ứngdụng Website Kiểm tra tải trọng xác định một chỉ số Khả năng mở rộng chohiệu suất ứng dụng website của bạn
- Kiểm tra phản ứng máy chủ để dưới dạng trình duyệt gửi yêu cầu
- Xác định thay đổi hoạt động trong một khoảng thời gian.
- Thử nghiệm cho các chức năng mà ngừng làm việc ở các cấp độ cao hơn của
người sử dụng tải
- Xác định các vấn đề về độ trễ mạng về chức năng ứng dụng Website.
Stress Test
- Xác định cách thức ứng dụng đáp ứng theo mức độ tải.
- Xác định các phần của ứng dụng website mà không theo mức độ tải
- Xác định các chức năng ứng dụng sau khi một vụ tai nạn hệ thống hoặc
thành phần thất bại
- Xác định các hình thức và các liên kết hoạt động khác nhau theo mức độ tải.
1.5.4 Kiểm tra bảo mật
- Bảo vệ dữ liệu ứng dụng Website và duy trì chức năng như thiết kế
- Kiểm tra các hoạt động mà không cần loging
- Kiểm tra xác thực cơ bản sử dụng tên giả và các thông tin mật khẩu
- Kiểm tra giấy chứng nhận X.509 an ninh an toàn trên các website
- Thử nghiệm cho các chức năng ứng dụng chính xác dựa trên các giá trị thuộctính không hợp lệ URL
- Kiểm tra các chức năng ứng dụng với các lĩnh vực đầu vào không hợp lệ, baogồm các lĩnh vực văn bản
- Kiểm tra bảo vệ máy chủ website của các thư mục website không thể truy cậphoặc các tập tin
- Kiểm tra để xác định ứng dụng Website vi phạm an ninh, bao gồm cả thông báolỗi và vi phạm an ninh nỗ lực đang được đăng nhập
Trang 23- Kiểm tra các lĩnh vực CAPTCHA cho các hình thức website và đăng nhập.
- Kiểm tra các thiết lập bảo mật trình duyệt để di chuyển từ an toàn vào cácwebsite không an toàn
1.5.5 Giám sát sản xuất
- Vận hành thử nghiệm ứng dụng website theo định kỳ và lưu các bản ghi kiểmtra như là bằng chứng của Hiệp định Cấp Servlice (SLA) tuân thủ
- Định kỳ kiểm tra kinh nghiệm người dùng cuối
- Cung cấp tự động mở rộng quy mô và hệ thống cân bằng tải với cuối số liệukinh nghiệm người dùng
- Kiểm tra các chức năng ứng dụng đúng từ nhiều vị trí địa lý
1.5.6 Kiểm tra khả năng sử dụng
Việc thiết kế và trình bày của một ứng dụng có ảnh hưởng lớn đến thành côngngười dùng của bạn sẽ có trong việc sử dụng các ứng dụng Website
Kiểm tra đối với Danh mục chính:
- Kiểm tra người sử dụng có kiểm soát rõ ràng và dễ dàng di chuyển từ trang nàysang trang khác
- Kiểm tra dòng chảy của một ứng dụng website bằng cách quan sát cách người
sử dụng hoàn thành mục tiêu của họ
- Kiểm tra xem người dùng có thể tìm thấy hướng dẫn nên họ không trực giácbiết làm thế nào để vận hành một chức năng
- Kiểm tra các đối tượng chuyển hướng chung xuất hiện trên tất cả các trang luôn
- Chức năng tìm kiếm thử nghiệm cho các chức năng ứng dụng thích hợp
Kiểm tra nội dung:
- Kiểm tra nội dung là hợp lý sắp xếp và dễ dàng cho người sử dụng hiểu
- Kiểm tra lỗi chính tả
- Kiểm tra xem trang từ màu sắc đến hoa văn hướng dẫn phong cách, bao gồmphông chữ, khung hình, và biên giới
- Kiểm tra xem các hình ảnh tải một cách chính xác và có kích thước phù hợp
Trang 25CHƯƠNG 2: NGHIÊN CỨU VỀ CÔNG CỤ KIỂM THỬ JMETER,
POSTMAN 2.1 Giới thiệu chung về Jmeter
2.1.1 Tổng quan về Jmeter.
2.1.1.1 Sơ lược về JMeter
Stefano Mazzocchi của Apache Software Foundation là người đầu tiên xâydựng phần mềm JMeter Ông đã viết nó chủ yếu để kiểm thử hiệu năng của ApacheJServ (một dự án từ đó đã được thay thế bằng các dự án Apache Tomcat) JMeterđược phát triển và mở rộng để kiểm thử hiệu năng FTP Server, máy chủ cơ sở dữliệu, Java servlet và các đối tượng Ngày nay, JMeter công bố rộng rãi là một công
cụ kiểm thử hiệu năng cho các ứng dụng web Nhiều công ty, kể cả AOL sử dụngJMeter để kiểm thử tải cho trang web của họ SharpMind của Đức sử dụng JMeter
để kiểm thử chức năng và kiểm thử quy hồi cho các ứng dụng của nó
JMeter là một ứng dụng chạy trên máy khách, được thiết kế để kiểm thử, đolường hiệu năng các ứng dụng mô hình khách/chủ, chẳng hạn như các ứng dụngweb hoặc ứng dụng FTP Hơn nữa, JMeter là một trong những mã nguồn mở được
sử dụng rộng rãi nhất, là một phần mềm kiểm thử được dùng miễn phí mà Net cóthể cung cấp
JMeter là ứng dụng được xây dựng dựa trên nền Java và được đánh giá caothông qua API (Application Programming Interface) được cung cấp JMeter thực thitại máy khách trong mô hình “khách/chủ” Nó đo thời gian trả lời từ máy chủ trả vềmáy khách, và đo hiệu suất tất cả tài nguyên khác của máy chủ như khả năng tảiCPU, cách sử dụng bộ nhớ, cách sử dụng tài nguyên Về mặt này, JMeter có thểđược sử dụng hiệu quả để kiểm thử chức năng một cách tự động Ngoài ra, JMeter
là công cụ hỗ trợ kiểm thử quy hồi các loại ứng dụng tương tự nhau Mặc dù nó đãđược thiết kế cho việc kiểm thử các ứng dụng web, nhưng nó cũng được phát triển
để hỗ trợ các kiểm thử chức năng khác JMeter là dự án đầu tiên và hiện tại vẫnđang phát triển như là một trong những dự án của Apache Jakarta, dự án này đưa ratập hợp các giải pháp mã nguồn mở Java khác nhau
Trang 26Hình 2.1: Giao diện màn hình của Jmeter
Đặc trưng của JMeter
JMeter có thể được sử dụng để kiểm thử hiệu suất cả về tài nguyên tĩnh và tàinguyên động như các tập tin tĩnh, Java Servlets, CGI script, đối tượng Java, cơ sở
dữ liệu, FTP Server, … Để kiểm thử và đo lường hiệu suất của HTTP, FTP Server,mạng (network) thì kiểm thử viên cần kiểm thử JMeter cũng giúp kiểm thử viênthực hiện công việc này một cách chính xác trên các hệ thống lớn hơn Bên cạnh đó,các công cụ đồ họa của nó cho phép thực hiện các phân tích tốt hơn về hiệu suất tảinặng
Để kiểm thử chức năng hoạt động của các ứng dụng JMeter thực hiện các bàikiểm thử hồi quy về các ứng dụng Đơn giản, ngoài các kịch bản kiểm thử, các xácnhận của JMeter giúp đảm bảo rằng các ứng dụng trả lại kết quả mong đợi haykhông mong đợi
JMeter cung cấp một giao diện người dùng, làm cho nó dễ sử dụng hơn.JMeter cũng đưa ra một API (Application Programming Interface) cho phép chạycác kiểm thử của phần mềm JMeter dựa trên ứng dụng Java
Apache JMeter có những điểm đặc trưng sau:
Trang 27 Kiểm thử hiệu năng HTP, FTP Server, truy vấn cơ sở dữ liệu.
Có thể kiểm thử nhiều kiểu server: Web HTTP, HTTPS, SOAP, Database JDBC, LDAP, JMS, Mail - POP3, …
- Một công cụ độc lập có thể chạy trên nhiều nền tảng hệ điều hành khácnhau, trên Linux chỉ cần chạy bằng một shell script, trên Windows thì chỉcần chạy một file bat
Nguồn mở, miễn phí
Jmeter Performance Testing gồm 2 phần:
Load Testing: Mô hình hóa dự kiến sử dụng bởi nhiều người dùng truy cậpmột dịch vụ website trong cùng 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à webserver có thể xử lý
JMeter là một ứng dụng được viết bằng ngôn ngữ Java nên nó có các đặcđiểm mà bất kỳ các ứng dụng Java nào cũng có:
Kết quả kiểm thử lưu vào bộ nhớ đệm, xem lại kết quả kiểm thử
Kịch bản kiểm thử hay kế hoạch kiểm thử cơ bản nhất của JMeter đòi hỏi tạo
ra vòng lặp mô phỏng tuần tự các yêu cầu gửi đến máy chủ với một khoảng thờigian xác định trước và mô phỏng tải đồng thời của một Thread Group Kịch bản cóthể được thay đổi và mở rộng, cung cấp công cụ cần thiết cho phép kiểm thử và đolường hiệu suất hoạt động các ứng dụng hoặc máy chủ Trong khi đó, các yếu tố cơbản của một kế hoạch kiểm thử JMeter có thể bao gồm ít nhất ba yếu tố: ThreadGroup, Listeners và Samplers Yếu tố Thread Group mô phỏng một nhóm người
Trang 28dùng, trong đó có ít nhất một người dùng Yếu tố Sampler tạo ra và gửi các yêu cầuđến máy chủ, yếu tố Listener lưu lại dữ liệu trả về từ máy chủ
Hình 2.2: Cách hoạt động của Jmeter
Nhược điểm:
Tiêu thụ bộ nhớ: JMeter có thể mô phỏng tải nặng và trực quan hóa báo cáo
thử nghiệm Điều này có thể tiêu tốn rất nhiều bộ nhớ và có thể dẫn ra khỏi bộnhớ dưới tải nặng
Chỉ áp dụng cho ứng dụng web: JMeter là công cụ tốt để thử nghiệm ứng
dụng web nhưng nó không phải là công cụ phù hợp để thử nghiệm ứng dụng máy tính để bàn
Thiếu hỗ trợ cho JavaScript: JMeter không phải là một trình duyệt, vì vậy
nó không thể chạy JavaScript trong ứng dụng web Nó có hỗ trợ hạn chế để
xử lý JavaScript hoặc Ajax, điều này có thể ảnh hưởng đến độ chính xác của
mô phỏng
Giao diện JMeter
Một kế hoạch kiểm thử trong JMeter bao gồm một hay nhiều Thread Group,trình điều khiển logic, trình lắng nghe, thời gian, xác nhận, và các yếu tố cấuhình:
Trang 29 Thread group: Mỗi thread mô phỏng một người dùng đơn lẻ Các thànhphần khác của kế hoạch kiểm thử được đặt bên dưới Thread Group.
Trình lắng nghe: Trong khi JMeter thực thi, trình lắng nghe truy cập vàothông tin về trường hợp kiểm thử (test case) được JMeter thu thập
Trình điều khiển: Các Sampler yều cầu JMeter gởi các yêu cầu tới máy chủ,trong khi đó trình điều khiển logic cho phép thay đổi giá trị logic của nó
Thời gian: Cho phép JMeter trì hoãn giữa mỗi yêu cầu mà Thread tạo ra
Xác nhận: Cho phép kiểm tra là ứng dụng trả về kết quả mong đợi
Yếu tố cấu hình: các yếu tố cấu hình có thể thêm vào hoặc điều chỉnh cácyêu cầu được tạo ra bởi Sampler
Các biểu tượng cho các yếu tố nêu trên được trình bày trong Hình 2.3
Hình 2.3: Các thành phần một kế hoạch kiểm thử
Khi chạy phần mềm JMeter, trên màn hình sẽ có hai phần xuất hiện: Kế hoạchkiểm thử (Test Plan) và vùng làm việc tạm (Workbench) Kế hoạch kiểm thử mô tảcác bước JMeter thực thi khi chạy kế hoạch kiểm thử Trong khi đó chức năng củavùng làm việc tạm là một không gian làm việc tạm thời để lưu trữ các yếu tố kiểmthử Những yếu tố trong vùng làm việc tạm không được lưu cùng với kế hoạch kiểmthử, nhưng có thể được lưu một cách độc lập
Trang 30Hình 2.4: Giao diện ban đầu khi chạy phần mềm JMeter
Giao diện người dùng phần mềm JMeter gồm bảng điều khiển (panel): bảngđiều khiển bên trái (left panel) và bảng điều khiển bên phải (right panel) Các bảngđiều khiển trái hiển thị các yếu tố hoặc các nút được sử dụng trong kế hoạch kiểmthử Thêm và xóa các yếu tố này bằng cách kích chuột phải vào nút và chọn Add đểthêm hoặc Remove để xóa từ trình đơn phụ Bảng bên phải hiển thị các chi tiết củamỗi yếu tố
Hình 2.5: Giao diện Theard Group
Trang 31Một kế hoạch kiểm thử trong JMeter gồm một hoặc nhiều Thread Group, vàmỗi Thread Group có nhiều các yếu tố
Hình 2.6: Các yếu tố trong Thread Group
Sử dụng JMeter như một công cụ kiểm thử hiệu năng, yếu tố cần thiết nhất đó
là Thread Group Nó được dùng để mô phòng tải nhiều dữ liệu để kiểm tra hoạtđộng của máy chủ dưới tải trọng lớn nhất Ngoài ra, JMeter còn cài sẵn một lịchtrình chạy kiểm thử
Hình 3.7: Giao diện Thread Group
2.1.2 Sử dụng Jmeter
2.1.2.1 Thiết lập môi trường
Bước 1: Tạo Thead Group
Trang 32Chuột phải vào Testplan -> Add -> Threads(user) -> Thread Group
Name: Đặt tên cho ThreadGroup (HTC Portal)
Number of Threads(users): Số lượng người dùng mà mình muốn mô phỏng
Ramp-up Period (in seconds): Cho biết thời gian để Jmeter tạo ra tất cảnhững thread cần thiết
Loop Count Forever: 1 thread được tạo ra sẽ được thực hiện 1 lần (thay 1bằng n thì số các thread sẽ lặp lại n lần)
Bước 2: Tạo HTTP request
Click chuột phải vào ThreadGroup -> Chọn Add -> Sampler -> HTTP Request
Name: Đặt tên Request
Server name of IP: Điền vào Domain hoặc IP trang web mà mình đang cầntest
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
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 danh sách các tham số để gửi cùng request (có thểthêm hoặc xoá thông số này)