báo cáo bài tập lớn chuyên đề công nghệ thông tin đề tài kiểm thử website bằng công cụ selenium ide

62 0 0
Tài liệu đã được kiểm tra trùng lặp
báo cáo bài tập lớn chuyên đề công nghệ thông tin đề tài kiểm thử website bằng công cụ selenium ide

Đ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

Nó kiểm soát trình duyệt bằng cách giao tiếp trực tiếp với trình duyệt.Các ngôn ngữ được WebDriver hỗ trợ cũng tương tự RC: Java, C#, PHP, Python, Perl, Ruby.Selenium Grid là gì?Selenium

Trang 1

PHÂN HIỆU TRƯỜNG ĐẠI HỌC THỦY LỢI KHOA CÔNG NGHỆ THÔNG TIN

BÁO CÁO BÀI TẬP LỚN “Chuyên đề công nghệ thông tin ”

Đề tài: Kiểm thử website bằng công cụ selenium ideGVHD:Thạc sĩ Viên Thanh Nhã

Sinh viên thực hiện: Trần Minh Phúc _ S23-62TH

Nguyễn Anh Hào _ S23-62TH

Bình Thạnh ,ngày 22 tháng 10 năm 2023.

Trang 3

Giảng viên hướng dẫn: Thạc Sĩ Viên Thanh Nhã

Sinh viên thực hiện: Nguyễn Anh HàoTrần Minh Phúc

Mã số sinh viên: 205106773 2051067217

Phân định công việc:

Trần Minh Phúc- Chạy demo testing website Nguyễn Anh Hào- Viết báo cáo chuyên đề

Khái niệm chung :

Trang 5

Selenium Remote Control (Selenium RC) là gì?

Selenium RC là framework kiểm thử hàng đầu trong dự án Selenium Nó là công cụ kiểm thử web tự động hoá đầu tiên cho phép người dùng sử dụng một ngôn ngữ trình duyệt theo ý thích Tính đến phiên bản 2.25.0, RC hỗ trợ các ngôn ngữ lập trình gồm: Java, C#, PHP, Python, Perl, Ruby.

WebDriver là gì?

WebDriver tốt hơn IDE và RC trên nhiều khía cạnh Nó có hướng tiếp cận hiện đại và ổn định hơn trong việc tự động hoá các hành động trình duyệt WebDriver, không như RC, không dựa vào JavaScript để thực hiện tự động hoá kiểm thử Nó kiểm soát trình duyệt bằng cách giao tiếp trực tiếp với trình duyệt.

Các ngôn ngữ được WebDriver hỗ trợ cũng tương tự RC: Java, C#, PHP, Python, Perl, Ruby.Selenium Grid là gì?

Selenium Grid là một công cụ được sử dụng cùng với RC để chạy các bài kiểm thử song song trên nhiều máy tính và trình duyệt khác nhau cùng lúc Tức là bạn có thể chạy nhiều bài kiểm thử cùng lúc!

Tính năng của Grid bao gồm:

– Cho phép chạy đồng thời các bài kiểm thử trên nhiều trình duyệt và môi trường.– Tiết kiệm rất nhiều thời gian.

– Tận dụng mô hình hub-và-node Hub đóng vài trò nguồn trung tâm của các lệnh Selenium để mỗi node kết nối vào nó.

Trang 7

Selenium hỗ trợ trình duyệt và hệ điều hành nào?

Bởi sự khác biệt về kiến trúc, IDE, RC, và WebDriver hỗ trợ nhiều trình duyệt và môi trường hệ điều hành khác nhau Cụ thể:

– IDE hỗ trợ các trình duyệt Mozilla Firefox và Chrome, và các hệ điều hành Windows, macOS, Linux.

– WebDriver hỗ trợ các trình duyệt Google Chrome 12+, Firefox, IE 7+ và Edge, Safari, HtmlUnit và PhantomUnit Nó cũng hỗ trợ mọi hệ điều hành mà các trình duyệt nêu trên có thể chạy được.

Selenium RCChọn RC để:

– Thiết kế một bài kiểm thử bằng một ngôn ngữ mạnh mẽ hơn Selenese

– Chạy bài kiểm thử trên nhiều trình duyệt khác nhau (trừ HtmlUnit) trên nhiều hệ điều hành khác nhau– Triển khai các bài kiểm thử trên nhiều môi trường khác nhau bằng Grid

– Kiểm thử ứng dụng trên một trình duyệt mới hỗ trợ JavaScript– Kiểm thử các ứng dụng web với các bối cảnh AJAX phức tạp.WebDriver

Trang 9

– Chạy các script RC trên nhiều trình duyệt khác nhau và hệ điều hành khác nhau cùng lúc.– Chạy một bài kiểm thử lớn, cần hoàn thành trong thời gian sớm nhất có thể.

Chương 1 Xác định và phân tích về SELENIUM IDE

• Trong giao đoạn bùng nổ công nghệ thông tin như hiện nay, nhu cầu phát triển phân mềm tăng nhanh chóng đặc biệt là các ứng dụng web

• Kéo theo đó là nhu cầu kiêm thử phần mềm để ứng dụng đạt chất lượng tối ưu khi đến tay người sử dụng • Một công cụ hỗ trợ đắc lực cho kiểm thử phần mềm là Selenium- một công cụ mã nguồn mở, gồm nhiều tính năng

mạnh mẽ, hỗ trợ các ứng dụng trên nền web, nhiều platfom và các trình duyệt phổ biến

1.1 Khái niệm về kiểm thử

Trang 11

- Kiểm thử phần mềm là quá trình thực thi một hệ thống phần mềm để xác định xem phần mềm có đúng với đặc tả không và thực hiện trong môi trường như mong đợi hay không

- Mục đích của kiểm thử phần mềm là tìm ra lỗi chưa được phát hiện, tìm một cách sớm nhất và bảo đảm rằng lỗi sẽ đượcsửa

- Mục tiêu của kiểm thử phần mềm là thiết kế tài liệu kiểm thử một cách có hệ thống và thực hiện nó sao cho có hiệu quả,nhưng tiết kiệm được thời gian, công sức và chi phí

1.2 Kiểm thử đơn vị (Unit Test)

- Một đơn vị (Unit) 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), hoặc các phương thức (Method)

- Kiểm thử đơn vị 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ện cà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 mềm

- Mục đích của kiểm thử đơn vị là bảo đảm thông tin được xử lý và kết 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ăng xử lý củ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 được kiểm tra để phát hiện nhánh phát sinh lỗi

Trang 13

-

Cũng như các mức kiểm thử khác, kiểm thử đơn vị cũng đòi hỏi phải chuẩn bị trước các ca kiểm thử (hay trường hợp kiểmthử) (test case) hoặc kịch bản (test script), trong đó chỉ định rõ dữ liệu vào, các bước thực hiện và dữ liệu mong muốn sẽ xuất ra Các test case và test script được giữ lại để sử dụng sau này

1.3 Kiểm thử tích hợp (Integration Test)

Kiểm thử tích hợp kết hợp các thành phần của một ứng dụng và kiểm thử như một ứng dụng đã hoàn thành Trong khi kiểm thử đơn vị kiểm tra các thành phần và Unit riêng lẻ thì kiểm thử tích hợp kết hợp chúng lại với nhau và kiểm tra sự giao tiếp giữa chúng

Kiểm thử tích hợp có hai mục tiêu chính là: - Phát hiện lỗi giao tiếp xảy ra giữa các Unit

- Tích hợp các Unit đơn lẻ thành các hệ thống con (gọi là subsystem) và cuối cùng là nguyên hệ thống hoàn chỉnh chuẩn bị cho kiểm thử ở mức hệ thống (system test)

Có 4 loại kiểm thử trong kiểm thử tích hợp như sau:

- Kiểm thử cấu trúc (Structure test): Kiểm thử nhằm bảo đảm các thành phần bên trong của một chương trình chạy đúng, chú trọng đến hoạt động của các thành phần cấu trúc nội tại của chương trình, chẳng hạn các lệnh và nhánh bên trong - Kiểm thử chức năng (Functional test): Kiểm thử chỉ chú trọng đến chức năng của chương trình, không quan tâm đến cấu

trúc bên trong, chỉ khảo sát chức năng của chương trình theo yêu cầu kỹ thuật - Kiểm thử hiệu năng (Performance test): Kiểm thử việc vận hành của hệ thống - Kiểm thử khả năng chịu tải (Stress test): Kiểm thử các giới hạn của hệ thống

Trang 15

-

1.4 Kiểm thử hệ thống (System Test)

Mục đích của kiểm thử hệ thống là kiểm thử xem thiết kế và toàn bộ hệ thống (sau khi tích hợp) có thỏa mãn yêu cầu đặtra hay không

- Kiểm thử hệ thống kiểm tra cả các hành vi chức năng của phần mềm lẫn các yêu cầu về chất lượng như độ tin cậy, tính tiện lợi khi sử dụng, hiệu năng và bảo mật

- Kiểm thử hệ thống bắt đầu khi tất cả các bộ phận của phần mềm đã được tích hợp thành công Thông thường loại kiểm thử này tốn rất nhiều công sức và thời gian Trong nhiều trường hợp, việc kiểm thử đòi hỏi một số thiết bị phụ trợ, phần mềm hoặc phần cứng đặc thù, đặc biệt là các ứng dụng thời gian thực, hệ thống phân bố, hoặc hệ thống nhúng Ở mức độ hệ thống, người kiểm thử cũng tìm kiếm các lỗi, nhưng trọng tâm là đánh giá về hoạt động, thao tác, sự tin cậy và các yêu cầu khác liên quan đến chất lượng của toàn hệ thống

- Điểm khác nhau then chốt giữa kiểm thử tích hợp và kiểm thử hệ thống là kiểm thử hệ thống chú trọng các hành vi và lỗitrên toàn hệ thống, còn kiểm thử tích hợp chú trọng sự giao tiếp giữa các đơn thể hoặc đối tượng khi chúng làm việc cùng nhau Thông thường ta phải thực hiện kiểm thử đơn vị và kiểm thử tích hợp để bảo đảm mọi Unit và sự tương tác giữa chúng hoạt động chính xác trước khi thực hiện kiểm thử hệ thống

-Sau khi hoàn thành kiểm thử tích hợp, một hệ thống phần mềm đã được hình thành cùng với các thành phần đã được kiểm tra đầy đủ Tại thời điểm này, lập trình viên hoặc kiểm thử viên (Tester) bắt đầu kiểm thử phần mềm như một hệ thống hoàn chỉnh Việc lập kế hoạch cho kiểm thử hệ thống nên bắt đầu từ giai đoạn hình thành và phân tích các yêu cầu -Đòi hỏi nhiều công sức, thời gian và tính chính xác, khách quan, kiểm thử hệ thống được thực hiện bởi một nhóm kiểm tra viên hoàn toàn độc lập với nhóm phát triển dự án để đảm bảo tính chính xác và khách quan

Kiểm thử hệ thống thường có các loại kiểm thử sau:

Trang 17

-

- Kiểm thử chức năng (Functional test): Bảo đảm các hành vi của hệ thống thỏa mãn đúng yêu cầu thiết kế

- Kiểm thử khả năng vận hành (Performance test): Bảo đảm tối ưu việc phân bổ tài nguyên hệ thống (ví dụ bộ nhớ) nhằm đạt các chỉ tiêu như thời gian xử lý hay đáp ứng câu truy vấn,

Kiểm thử khả năng chịu tải (Stress test hay Load test): Bảo đảm hệ thống vận hành đúng dưới áp lực cao (ví dụ nhiều người truy xuất cùng lúc) Stress test tập trung vào các trạng thái tới hạn, các "điểm chết", các tình huống bất thường như đang giao dịch thì ngắt kết nối (xuất hiện nhiều trong test thiết bị như POS, ATM),

- Kiểm thử cấu hình (Configuration test): Đảm bảo hệ thống hoạt động tương thích với các loại phần cứng khác nhau - Kiểm thử khả năng bảo mật (Security test): Bảo đảm tính toàn vẹn, bảo mật của dữ liệu và của hệ thống

- Kiểm thử khả năng phục hồi (Recovery test): Bảo đảm hệ thống có khả năng khôi phục trạng thái ổn định trước đó trong tình huống mất tài nguyên hoặc dữ liệu; đặc biệt quan trọng đối với các hệ thống giao dịch như ngân hàng trực tuyến

1.5 Kiểm thử chấp nhận sản phẩm (Acceptance Test)

Mục đích của kiểm thử chấp nhận là kiểm thử khả năng chấp nhận cuối cùng để chắc chắn rằng sản phẩm là phù hợp và thỏa mãn các yêu cầu của khách hàng và khách hàng chấp nhận sản phẩm

Trong giai đoạn kiểm thử chấp nhận thì người kiểm tra là khách hàng Khách hàng sẽ đánh giá phần mềm với mong đợi theo những thao tác sử dụng quen thuộc của họ Việc kiểm tra ở giai đoạn này có ý nghĩa hết sức quan trọng tránh cho việc hiểu sai yêu cầu cũng như sự mong đợi của khách hàng

Gắn liền với giai đoạn kiểm thử chấp nhận thường là một nhóm những dịch vụ và tài liệu đi kèm, phổ biến như hướng dẫncài đặt, sử dụng, v.v…Tất cả tài liệu đi kèm phải được cập nhật và kiểm tra chặt chẽ

Trang 19

1.7 Kỹ thuật kiểm thử hộp đen (Black – box Testing)

Kiểm thử hộp đen còn được gọi là kiểm thử hướng dữ liệu (data - driven) hay là kiểm thử hướng vào/ra (input/output driven)

Trong kỹ thuật này, người kiểm thử xem phần mềm như là một hộp đen Người kiểm thử hoàn toàn không quan tâm đến cấu trúc và hành vi bên trong của chương trình Người kiểm thử chỉ cần quan tâm đến việc tìm các hiện tượng mà phần mềm không hành xử theo đúng đặc tả của nó Do đó, dữ liệu kiểm thử sẽ xuất phát từ đặc tả

Như vậy, cách tiếp cận kiểm thử hộp đen tập trung vào các yêu cầu chức năng của phần mềm Kiểm thử hộp đen cho phépngười kiểm thử xây dựng các nhóm giá trị đầu vào sẽ thực thi đầy đủ tất cả các yêu cầu chức năng của chương trình Kiểmthử hộp đen không thay thế kỹ thuật kiểm thử hộp trắng, nhưng nó bổ sung khả năng phát hiện các lớp lỗi khác với các phương pháp hộp trắng

Kiểm thử hộp đen cố gắng tìm các loại lỗi sau: Các chức năng thiếu hoặc không đúng - Các lỗi giao diện

Trang 23

Không giống với kiểm thử hộp trắng được thực hiện sớm trong quá trình kiểm thử, kiểm thử hộp đen được áp dụng trong các giai đoạn sau của kiểm thử Vì kiểm thử hộp đen không để ý có chủ đích cấu trúc điều khiển, sự quan tâm tập trung trên miền thông tin Nếu người kiểm thử muốn sử dụng phương pháp này để tìm tất cả các lỗi trong

chương trình thì điều kiện bắt buộc là phải kiểm thử tất cả các đầu vào, tức là mỗi một điều kiện đầu vào có thể có là một trường hợp kiểm thử Bởi vì nếu chỉ kiểm thử một số điều kiện đầu vào thì không đảm bảo được chương trình đã hết lỗi Vì thế, để đạt được mục tiêu kiểm thử, người ta đã áp dụng một số phương pháp kiểm thử hộp đen như: phân hoạch tương đương, phân tích giá trị biên

1.8 Kỹ thuật kiểm thử hộp trắng (White – box Testing)

Kiểm thử hộp trắng hay còn gọi là kiểm thử hướng logic, cho phép kiểm tra cấu trúc bên trong của phần mềm với mục đíchbảo đảm rằng tất cả các câu lệnh và điều kiện sẽ được thực hiện ít nhất một lần Người kiểm thử truy nhập vào mã nguồn chương trình và có thể kiểm tra nó, lấy đó làm cơ sở để hỗ trợ việc kiểm thử

1.9 Kiểm thử đường dẫn cơ sở

Kiểm thử đường dẫn cơ sở là một kỹ thuật kiểm thử hộp trắng do Tom McCabe đề xuất Phương pháp đường dẫn cơ sở cho phép người thiết kế trường hợp kiểm thử thực hiện phép đo độ phức tạp logic của thiết kế thủ tục và sử dụng phép đo này như một chỉ dẫn cho việc thiết kế một tập cơ sở các đường dẫn thực hiện Những trường hợp kiểm thử được suy diễn để thực hiện tập cơ sở Các trường hợp kiểm thử đó được đảm bảo để thực hiện mỗi lệnh trong chương trình ít nhất một lần trong quá trình kiểm thử

Chương 2: Giới thiệu về các công cụ testing và cài đặt Selenium IDE.2.1 Giới thiệu chung

Trang 25

• Selenium gồm nhiều công cụ với cách tiếp cận khác nhau để hỗ trợ kiêm thử tự động Một trong những tính năng chính của Selenium là hỗ trợ kiểm thử trên nhiều trình duyệt

• Selenium hỗ trợ kiểm tra hầu hết trên các trình duyệt phổ biến hiện nạy như Firefox , Internet Explorer , cũng như các hệ điều hành chủ yếu như Windows, Linux, Mac ,

Mặc dù Selenium-IDE chỉ là một Firefox add-on, nhưng các test case tạo ra bằng Selenium-IDE vẫn có thể chạy trên các trình duyệt khác bằng cách sử dụng Selenium- RC

- Selenium Core: Công cụ này đã được tích hợp trong Selenium IDE Selenium Core là một công cụ chạy các test script viết bằng Selenese Thế mạnh của công cụ này là có thể chạy test script trên hần hết các trình duyệt, nhưng lại yêu cầuđược cài đặt trên máy chủ của ứng dụng web cần kiểm tra Điều này là không thể khi nhân viên kiểm thử không có quyền truy cập đến máy chủ

Trang 27

- Selenium RC (Remote Control): Selenium- RC cho phép các nhà phát triển tự động hóa kiểm thử sử dụng một ngôn ngữ lập trình cho tính linh hoạt tối đa và mở rộng trong việc phát triển logic thử nghiệm Ví dụ, nếu trình ứng dụng trả về một tập kết quả của việc kiểm thử, và nếu chương trình thử nghiệm tự động cần chạy thử nghiệm trên mỗi phần tửtrong tập hợp kết quả, hỗ trợ lặp đi lặp lại các ngôn ngữ lập trình có thể được sử dụng để chuyển đổi thông qua việc tập hợp kết quả, kêu gọi lệnh Selenium chạy thử nghiệm trên mỗi mục

- Selenium-RC cung cấp một API (Application Programming Interface) và thư viện cho mỗi ngôn ngữ được hỗ trợ: HTML,Java, C #, Perl, PHP, Python, và Ruby Khả năng sử dụng Selenium- RC với một ngôn ngữ lập trình bậc cao để phát triểncác trường hợp thử nghiệm cũng cho phép thử nghiệm tự động được tích hợp với một dự án xây dựng môi trường tự động

- Selenium Grid: Thực hiện phương pháp kiểm tra phân bố, phối hợp nhiều kết quả của Selenium RC để có thể thực thi trên nhiều trình duyệt web khác nhau trong cùng một lúc Cũng cho phép lưu lại kết quả kiểm tra

Báo cáo trình bày cụ thể về hai thành phần của bộ công cụ Selenium là Selenium IDE và Selenium RC Các hướng dẫn cụ thể về Selenium IDE và Selenium RC sẽ được trình bày chi tiết ở phần sau của báo cáo

2.2 Lịch sử phát triển.

- SELENIUM(SE) là một phần mềm mã nguồn mở, được phát triển bởi Jason Huggins vào năm 2004 và được phát triển bởi Thoughtwork Ông phát triển thư viện Javascript để tự động chạy các test trên nhiều trình duyệt, chính thư viện này đã trở thành Selenium Core tạo cơ sở cho Selenium IDE và Selenium Remote Control (RC)

- Vào năm 2006, một nhân viên của Google tên là Simon Stewart bắt đầu tiếp tục công việc được đặt tên là Webdriver - Năm 2008, Selenium và webdiver kết hợp, cung cấp 1 tập các tính năng hữu ích cho người sử dụng

2.3 Selenium IDE

- Selenium IDE là công cụ giúp bạn phát triển ca kiểm thử được xây dựng dưới dạng add-ons của Firefox

Trang 29

- Bộ công cụ này cung cấp chức năng “thu và chạy lại”- Record and Playback Nhờ đó tester có thể nhanh chóng tạo mộtbộ kịch bản kiểm tra (test script) bằng cách trực tiếp thu các thao tác của mình trên đối tượng cần kiểm tra thành lập một tập những câu lệnh “Selenese”

- Ưu điểm: Dễ dàng cài đặt, sử dụng và tiết kiệm thời gian của người dùng, không yêu cầu kinh nghiệm lập trình, có thể debug, set breakpoint, thêm comment vào script để người đọc dễ hình dung, hỗ trợ biểu thức điều kiện và vòng lặp, có thể convert qua các ngôn ngữ lập trình khác nhau như: HTML, Java, C#, Python,…

- Nhược điểm: Không hỗ trợ test report (có thể cài đặt thêm để hiển thị report), không cho phép đọc dữ liệu từ các file như: text(.txt), excel (.xls) , (.csv),… (có thể cài đặt để đọc dữ liệu từ các file trên), không hỗ trợ database và cả mobile testing (việc này có thể vượt qua mức cho phép với 1 plugin trình duyệt)

2.4 Cài đặt.

- Selenium IDE (Intergrated Developed Enviroment) được phát hành dưới dạng phần mềm bổ trợ (add-ons) của Firefox, cho phép test, edit và debug code Selenium có thể cho code tự động hoặc nạo vào các đoạn mã viết tay do người sử dụng cung cấp

- Để cài đặt Selenium IDE, ta vào tab tools trên thanh công cụ của Firefox hoặc cái trình duyệt web chúng ta sử dụng , vào phần Add ons, tìm kiếm Selenium IDE hoặc vào trang chủ https://www.selenium.dev/selenium - ide/ và chọn cài

Trang 31

đặt, Selenium IDE có trên khá nhiều nên tảng như: Firefox, Chrome,… và người dùng có thể chọn cài đặt vào nền tảng tùy chọn để sử dụng, lúc này ở phần tools của web sẽ hiện thêm Selenium IDE

Chương 3: CÁCH THỰC HIỆN TESTING TỰ ĐỘNG 3.1 Thiết lập Base URL về trang web muốn kiểm thử

-Thực hiện viết các kịch bản kiểm thử (testcase): Sử dụng các câu lệnh kết hợp với các thuộc tính trên trang web để tạo ra các hành động tương tác theo tác testcase đã được định nghĩa từ trước

Các câu lệnh của Selenium được gọi là Selenese, là tập hợp các câu lệnh chạy test mà người dùng đã định nghĩa Một chuỗi các câu lệnh là một test script

Giải thích một số ký hiệu:

- Base URL: Đây là nơi điền URL của ứng dụng web được tiến hành kiểm thử

- Thanh trượt : Đây là thanh trượt nằm dưới nhãn trên màn hình Dùng để điều chỉnh tốc độ nhanh/chậm khi chạy test case

- Nút : Chạy tất cả các test case - Nút : Chỉ chạy test case được chọn - Nút : Tạm dừng một test case đang chạy - Nút : Bỏ qua một test case khi nó đã bị tạm dừng

- Nút : Nút thu được sử dụng để thu các test case qua những thao tác bạn tác động đến trang web cần kiểm thử

Ngày đăng: 16/05/2024, 16:21

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan