Từ đó trên kiến thức về kiểm thử phần mềm, kiểm thử tự động và công cụ kiểm thử tự động Selenium để thiết kế test case và ứng dụng 2 thành phần của bộ công cụ Selenium là Selenium IDE và
Trang 1ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Nguyễn Thị Thu Hà
ỨNG DỤNG CÔNG CỤ SELENIUM TRONG KIỂM THỬ WEBSITE
KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY
Ngành: Công Nghệ Thông Tin
Trang 2LỜI CAM ĐOAN
Em xin cam đoan nội dung được trình bày trong khóa luận này là do em thực hiện dưới sự hướng dẫn của TS Đặng Văn Hưng
Tất cả các tài liệu tham khảm và trích dẫn từ những nghiên cứu liên quan đều được trình bày rõ ràng, chi tiết trong danh mục tham khảo của khóa luận Khóa luận không sao chép tài liệu, công trình nghiên cứu của người khác mà không chỉ rõ trong tài liệu tham khảo
Hà Nội, ngày 28 tháng 5 năm 2016
KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY
Ngành: Công Nghệ Thông Tin
Cán bộ hướng dẫn: TS Đặng Văn Hưng
HÀ NỘI - 2016
Trang 3LỜI CẢM ƠN
Đầu tiên, em xin gửi lời cảm ơn chân thành đến các thầy cô giáo khoa Công nghệ thông tin – Đại học Công Nghệ Các thầy cô đã giảng dạy và truyền đạt cho em rất nhiều kiến thức hay và bổ ích trong suốt quá trình học tập tại trường Em chân thành cảm ơn thầy cô đã trang bị cho em hành trang để em tự tin bước trên con đường sự nghiệp sau này của mình
Đặc biệt em xin gửi lời cảm ơn sâu sắc nhất đến TS Đặng Văn Hưng, giảng viên trường Đại học Công Nghệ đã hướng dẫn và chỉ bảo cho em tận tình trong suốt quá trình làm khóa luận tốt nghiệp
Em xin được gửi lời cảm ơn đến gia đình, bạn bè đã động viên, chăm sóc và giúp đỡ
em trong quá trình học tập và nghiên cứu trong suốt thời gian qua
Em xin chân thành cảm ơn!
Trang 4TÓM TẮT
Kiểm thử phần mềm tốn nhiều chi phí nhân công, thời gian Nếu cần ứng dụng an toàn hơn, chi phí kiểm thử còn cao hơn nữa Do vậy trong đề tài này em muốn giới thiệu
về kiểm thử tự động để có thể giúp việc kiểm thử được dễ dàng và nhanh chóng hơn, nhờ
đó mà giảm chi phí và giảm lỗi phần mềm Công cụ kiểm thử tự động được giới thiệu trong khóa luận là công cụ Selinium Một công cụ kiểm thử mạnh mẽ nhất hiện nay cho việc kiểm thử ứng dụng web Từ đó trên kiến thức về kiểm thử phần mềm, kiểm thử tự động và công cụ kiểm thử tự động Selenium để thiết kế test case và ứng dụng 2 thành phần của bộ công cụ Selenium là Selenium IDE và Selenium WebDriver vào kiểm thử 2
chức năng cơ bản của website “Book Store”.
Trang 5MỤC LỤC
Trang 6DANH MỤC CÁC THUẬT NGỮ VÀ TỪ VIẾT TẮT
Thuật ngữ/Từ viết tắt Ý nghĩa
Bug Lỗi tìm thấy trong quá trình kiểm thử
DEV Nhóm phát triển phần mềm
Framework Một thư viện các lớp đã được xây dựng hoàn chỉnh , bộ
khung để phát triển các phần mềm ứng dụng
Selenium IDE Selenium Integrated Development Environment
Selenium RC Selenium Remote Control
Tester Người kiểm thử phần mềm
Test case Ca kiểm thử
Test suite Tập hợp các ca kiểm thử
Test script Kịch bản kiểm thử
Test plan Tài liệu mô tả các mục tiêu, phạm vi, phương pháp tiếp
cận, tập trung vào nỗ lực kiểm thử phần mềm
Selenese Tập lệnh Selenium
Trang 7DANH MỤC HÌNH VẼ
Hình 1.1 Quy trình kiểm thử phần mềm
Hình 1.2 Sơ đồ các mức kiểm thử
Hinh 2.1 Thành phần của Selenium
Hình 2.2 Giao diện Selenium IDE
Hình 2.3 Giao diện vùng làm việc
Hình 2.4 Các thanh công cụ của Selenium IDE
Hình 2.5 Hình ảnh nút ghi Recording
Hình 2.6 Hình ảnh lưu Test case
Hình 2.7 Export test case
Hình 2.8 Kiến trúc Selenium RC
Hình 2.9 Kiến trúc Selenium WebDriver
Hình 3.1 Giao diện trang chủ website “Book Store”
Hình 3.2 Giao diện chức năng đăng nhập tài khoản của khách
hàng
Hình 3.3 Giao diện chức năng đăng ký tài khoản của khách hàng.Hình 3.4 Giao diện bắt đầu thu kịch bản kiểm thử
Hình 3.5 Giao diện Selenium ghi lại thao tác kiểm thử
Hình 3.6 Export Test case selenium từ IDE sang Java
Trang 8Hình 3.8 Kết quả đầu ra thu được từ việc kiểm thử các test case
đã tạo
Hình 3.9 Kịch bản kiểm thử sau khi chỉnh sửa
Hình 3.10 Kịch bản kiểm thử với chức năng đăng nhập tài khoản
Trang 9DANH MỤC CÁC BẢNG
Bảng 3.1 Mô tả yêu cầu cho chức năng đăng nhập
Bảng 3.2 Các trường hợp cần kiểm thử cho chức năng đăng nhậpBảng 3.3 Mô tả yêu cầu cho chức năng đăng ký
Bảng 3.4 Các trường hợp cần kiểm thử cho chức năng đăng ký
Bảng 3.5 Báo cáo kết quả kiểm thử chức năng đăng nhập tài khoản
của khách hàng
Bảng 3.6 Báo cáo kết quả kiểm thử chức năng đăng ký tài khoản của
khách hàng
Bảng 3.7 Báo cáo tổng hợp
Trang 10MỞ ĐẦU
Trong xu thế hội nhập hiện nay, các công ty, doanh nghiệp gia công phần mềm trong nước đang gặp rất nhiều khó khăn do tính cạnh tranh trên thị trường ngày càng trở nên gay gắt và quyết liệt, các doanh nghiệp càng ngày càng quan tâm hơn tới các phương pháp quản lý chất lượng phần mềm Nâng cao chất lượng sản phẩm nhằm mục đích tạo niềm tin với khách hàng Mỗi một sản phẩm trước khi được đưa đến tay khách hàng, đều phải được kiểm tra, kiểm thử một cách kỹ lưỡng, đảm bảo rằng sản phẩm đó không có lỗi,
và tuân thủ theo đúng thiết kế, đúng yêu cầu của khách hàng Để đạt được các yêu cầu về chất lượng phần mềm như vậy, thì việc kiểm thử phần mềm luôn luôn tốn rất nhiều thời gian, kinh phí và nguồn nhân lực mà kiểm thử thủ công chưa đáp ứng được…Vì thế, để giải quyết cho vấn đề này các công cụ kiểm thử tự động đang dần trở thành các trợ thủ đắc lực cho đội ngũ phát triển phần mềm
Selenium là một trong những công cụ kiểm thử tự động mã nguồn mở mạnh mẽ hiện nay cho việc kiểm thử ứng dụng Web Selenium có thể chạy được trên hầu hết các trình duyệt như IE, Mozilla FireFox, Chrome, Safari, Opera… và hầu hết các hệ điều hành như Windows, Mac, Linux hỗ trợ nhiều ngôn ngữ lập trình Tuy nhiên việc tiếp cận và phát triển các công cụ kiểm thử tự động ứng dụng vào kiểm thử phần mềm ở Việt Nam còn
chưa phổ biến Do vậy khóa luận đã nghiên cứu và trình bày về đề tài “Ứng dụng công cụ
Selenium trong kiểm thử Website” với mong muốn được tìm hiểu sâu hơn, xác thực hơn
về kiểm thử phần mềm nói chung và kiểm thử tự động nói riêng, cùng với cách tiếp cận công cụ kiểm thử tự động Selenium để ứng dụng vào thực tế, tạo tiền đề cho định hướng tương lai sau khi tốt nghiệp đại học sẽ trở thành một kỹ sư kiểm thử phần mềm chuyên nghiệp
Trang 11CHƯƠNG 1 CÁC KHÁI NIỆM CƠ BẢN
CỦA KIỂM THỬ PHẦN MỀM
Dưới đây là những vấn đề chương 1 sẽ trình bày:
• Khái niệm và mục đích của kiểm thử phần mềm
1.1.2 Mục đích
Kiểm thử phần mềm là yếu tố quyết định lên chất lượng của phần mềm Thông thường thì phần mềm không hoạt động như mong muốn dẫn đến việc lãng phí tiền bạc, thời gian, uy tín của doanh nghiệp, thậm chí có thể gây nên tổn thất, thiệt hại vô cùng lớn cho các doanh nghiệp
Mục tiêu chính của kiểm thử phần mềm:
• Phát hiện càng nhiều lỗi càng tốt trong thời gian kiểm thử xác định trước
• Chứng minh rằng sản phẩm phần mềm phù hợp với các đặc tả yêu cầu của nó
• Xác thực chất lượng kiểm thử phần mềm đã dùng chi phí và nỗ lực tối thiểu
• Tạo các Test Case chất lượng cao, thực hiện kiểm thử hiệu quả và tạo ra các báo cáo vấn đề đúng và hữu dụng
1.2 QUY TRÌNH KIỂM THỬ PHẦN MỀM
Trang 12Hình 1.1 Quy trình kiểm thử phần mềm[1]
• Lập kế hoạch kiểm thử: Nhiệm vụ quan trọng trong phần lập kế hoạch kiểm thử là xác
định được các yếu tố sau:
- Các giai đoạn kiểm thử áp dụng cho dự án
- Các phương pháp kiểm thử
- Các công cụ kiểm thử
- Nguồn lực kiểm thử
- Tài nguyên môi trường kiểm thử, bao gồm tài nguyên phần cứng và phần mềm
- Mốc bàn giao các tài liệu kiểm thử
• Chuẩn bị kiểm thử: Nhiệm vụ chiến lược của giai đoạn này là:
- Tìm hiểu nghiệp vụ hệ thống phải kiểm thử
- Xây dựng kịch bản kiểm thử, phát triển các thủ tục và các kịch bản kiểm thử tự động( trong trường hợp kiểm thử tự động)
- Chuẩn bị dữ liệu kiểm thử
- Xem xét phê duyệt các tài liệu kiểm thử
• Thực thi kiểm thử:
- Thực hiện kiểm thử dựa trên các kịch bản kiểm thử, test script, thủ tục, dữ liệu có sẵn từ bước chuẩn bị kiểm thử
- Tham gia quá trình quản lý lỗi, báo cáo, sửa lỗi
• Báo cáo test và phân tích dữ liệu kiểm thử:
- Báo cáo kiểm thử
- Phân tích nguyên nhân và đề xuất các hành động khắc phục
1.3 PHƯƠNG PHÁP KIỂM THỬ PHẦN MỀM
Phương pháp kiểm thử phần mềm là hoạt động kiểm tra xem phần mềm đó có chạy chính xác hay không và có thỏa mãn yêu cầu của khách hàng hay không nhằm hướng tới mục tiêu chất lượng cho phần mềm
Theo khái niệm thông thường được nhắc đến thì kiểm thử phần mềm có hai phương pháp là: Kiểm thử hộp đen (Black Box Testing) và Kiểm thử hộp trắng (white Box Testing) Gần đây trong các phương pháp kiểm thử còn phát triển thêm một khái niệm
Lập kế hoạch
Kiểm thử
Báo cáo, phân tích dữ liệu Chuẩn bị kiểm thử Thực thi kiểm thử
Trang 131.3.1 Kiểm thử hộp đen (Black Box Testing)
Kỹ thuật kiểm thử hộp đen hay còn gọi là kiểm thử vào/ra 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 bên trong của chương trình mà chỉ quan tâm tới dữ liệu đầu vào và đầu ra sau khi được xử lý vì thế dữ liệu kiểm thử sẽ xuất phát từ đặc tả
Kiểm thử hộp đen sẽ cố gắng tìm được các lỗi về: giao diện, các chức năng thiếu hoặc không đúng, các lỗi cấu trúc dữ liệu trong việc truy cập cơ sở dữ liệu bên ngoài, lỗi thi hành, các lỗi khởi tạo hoặc kết thúc
Kiểm thử hộp đen có ưu và nhược điểm như sau:
• Ưu điểm: kiểm thử hộp đen không có mối liên quan nào đến mã lệnh, vì vậy người kiểm
thử sẽ tìm được những lỗi mà lập trình viên không tìm thấy được
• Nhược điểm: Kiểm thử hộp đen “giống như là đi trong bóng tối mà không có đèn” bởi vì
kiểm thử viên không biết các phần mềm được kiểm tra thực sự xây dựng như thế nào Đó
là lý do mà có nhiều trường hợp mà một kiểm thử viên hộp đen viết rất nhiều test case để kiểm tra một thứ gì đó mà đáng lẽ có thể chỉ cần kiểm tra bằng một test case duy nhất, hoặc là trường hợp một số phần chương trình không được kiểm tra chút nào
Do vậy kiểm thử hộp đen có ưu điểm của “một sự đánh giá khách quan”, mặt khác
nó lại có nhược điểm của thăm dò mù
1.3.2 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ử logic, là kỹ thuật kiểm thử cho phép kiểm tra cấu trúc bên trong của chương trình
Kiểm thử hộp trắng có ưu và nhược điểm sau:
• Ưu điểm: kiểm thử hộp trắng có ưu điểm kiểm thử được rõ ràng cấu trúc bên trong của ứng dụng, không phải kiểm thử mò không có chủ đích
• Nhược điểm: Chính vì tính kiểm thử được rõ ràng nên chỉ phát hiện được những lỗi thông thường, khó có thể phát hiện được lỗi tiềm ẩn
1.3.3 Kiểm thử hộp xám (Grey Box Testing)
Trang 14nhưng để thiết kế ca kiểm thử theo hướng người sử dụng, hoặc có ca kiểm thử như của hộp đen.
• Ưu điểm: Ưu điểm của Kiểm thử hộp xám được quyết định dựa vào sự kết hợp các ưu điểm của kiểm thử hộp đen và kiểm thử hộp trắng
• Nhược điểm: nhược điểm của Kiểm thử hộp xám được quyết định dựa vào sự kết hợp các nhược điểm của kiểm thử hộp đen và kiểm thử hộp trắng
1.4 CÁC MỨC KIỂM THỬ
Mức kiểm thử được hiểu là giai đoạn kiểm thử gắn liền với hoạt động của qui trình kiểm thử (và liên quan chặt chẽ tới qui trình sản xuất của một phần mềm)
Số lượng mức kiểm thử thường cố định ở 4 mức với các khái niệm:
• Kiểm thử đơn vị (Unit Test)
• Kiểm thử tích hợp (Integration Test)
• Kiểm thử hệ thống (System Test)
Kiểm thử chấp nhận (Acceptance Test)
Kiểm thử đơn vị
Kiểm thử tích hợp
Kiểm thử hệ thống
Kiểm thử chấp nhận
Trang 15Hình 1.2 Sơ đồ các mức kiểm thử [3]
Trang 161.4.1 Kiểm thử đơn vị (Unit Test)
Đơn vị: Là thành phần nhỏ nhất của phần mềm có thể kiểm thử được Ví dụ: Các hàm, lớp, thủ tục, phương thức Đơn vị thường có kích thước nhỏ, chức năng hoạt động đơn giản, không gây nhiều khó khăn trong việc kiểm thử, ghi nhận và phân tích kết quả
do đó nếu phát hiện lỗi việc tìm kiếm nguyên nhân và sửa lỗi cũng đơn giản và tốn ít chi phí hơn
Mục đích: Đảm bảo chức năng của đơn vị hoạt động đúng theo mong muốn
Người thực hiện: Do việc kiểm thử đơn vị đòi hỏi phải kiểm tra từng nhánh lệnh, nên đòi hỏi người kiểm thử có kiến thức về lập trình cũng như về thiết kế của hệ thống nên người thực hiện thường là lập trình viên
1.4.2 Kiểm thử tích hợp (Integration Test)
Kiểm thử tích hợp là kiểm thử sự kết hợp giữa các đơn vị của một chương trình và kiểm thử như một chương trình đã hoàn chỉnh
Mục đích: Phát hiện lỗi giao tiếp xảy ra giữa các đơn vị cũng như lỗi của bản thân từng đơn vị( nếu có)
Người thực hiện: thường là lập trình viên
1.4.3 Kiểm thử hệ thống (System Test)
Kiểm thử hệ thống bắt đầu khi tất cả các đơn vị của hệ thống được tích hợp thành công Đây là công đoạn kiểm thử tốn nhiều công sức và thời gian hơn cả Và đặc biệt, công đoạn này thường đòi hỏi được thực hiện bởi một nhóm nhân viên tách biệt với nhóm phát triển có chuyên môn và kinh nghiệp kiểm thử
Kiểm thử hệ thống gồm nhiều loại kiểm thử khác nhau, trong số đó, các mục tiêu kiểm thử quan trọng nhất là:
• Kiểm thử chức năng: Việc kiểm thử chức năng chú trọng đến 2 thành phần chính làkiểm thử giao diện người dùng và kiểm thử luồng nghiệp vụ
• Kiểm thử giao diện người dùng: là việc kiểm tra các tương tác của người dùng vớiphần mềm Mục tiêu của kiểm thử giao diện là để đảm bảo rằng giao diện người dùng cung cấp cho người sử dụng cách truy cập và sử dụng các chức năng hệ thống một cách thích hợp Ngoài ra, kiểm thử giao diện còn để đảm bảo rằng các đối tượng trên giao diện giống như thiếu kế và phù hợp với tổ chức hoặc chuyên ngành
• Kiểm thử luồng nghiệp vụ: là kiểm tra các yêu cầu chức năng và nghiệp vụ của hệ
Trang 17thống bao gồm các hoạt động để kiểm tra tính đúng đắn của dữ liệu, qui trình, báo cáo và việc thực hiện đúng những qui tắc nghiệp vụ Kiểu kiểm thử này dựa vào kỹ thuật kiểm thử hộp đen, tức là kiểm tra ứng dụng và các xử lý bên trong ứng dụng bằng cách tương tác với ứng dụng thông qua giao diện người sử dụng và phân tích các kết quả hoặc đầu ra.
• Kiểm thử hiệu năng: Mục đích của kiểm thử hiệu năng là kiểm tra các yêu cầu vềhiệu năng có đạt được hay không theo những điều kiện sau:
- Với khối lượng dữ liệu bình thường đã biết trước
- Với khối lượng dữ liệu xấu đã biết trước
• Kiểm thử an toàn thông tin: tập trung vào 2 lĩnh vực bảo mật chính
- Bảo mật ở mực ứng dụng: bao gồm truy cập dữ liệu và các chức năng nghiệp vụ
- Bảo mật ở mức hệ thống: bao gồm truy cập vào hệ thống hoặc truy cập từ xa
Mục đích: Kiểm tra xem hệ thống được làm ra có thỏa mãn yêu cầu hay không về nhiều khía cạnh: hoạt động, độ tin cậy, hiệu năng hệ thống
Người thực hiện: Nhóm nhân viên kiểm thử
1.4.4 Kiểm thử chấp nhận (Acceptance Test)
Mục đích: Kiểm thử chấp nhận còn gọi là kiểm thử nghiệm thu nhằm mục đích chứng minh phần mềm thỏa mãn tất cả yêu cầu của khách hàng
Người thực hiện: Khách hàng
Có 2 phương pháp kiểm thử chấp nhận: kiểm thử alpha và kiểm thử bêta
Kiểm thử alpha: Người dùng kiểm thử phần mềm ngay tại nơi phát triển phần mềm dưới sự hỗ trợ của nhân viên kiểm thử, nhân viên kiểm thử sẽ ghi nhận các lỗi hoặc phản hồi của khách hàng và báo lại với đơn vị phát triển phần mềm để lên kế hoạch sửa chữa Kiểm thử bêta: Phần mềm sẽ được gửi tới cho người dùng để kiểm thử trong môi trường thực, lỗi hoặc phản hồi cũng sẽ gửi lại cho đơn vị phát triển phần mềm để lên kế hoạch sửa chữa
1.5 KẾT LUẬN
Trong chương 1 của khóa luận đã trình bày được các vấn đề cơ bản của kiểm thử phần mềm Trong chương 2 của khóa luận sẽ trình bày về kiểm thử tự động, giới thiệu tổng quan về công cụ Selenium và đi sâu vào giới thiệu kiến trúc và hướng dẫn cài đặt 3 thành phần cơ bản là Selenium IDE, Selenium RC và Selenium WebDriver
Trang 182.1.1 Khái niệm kiểm thử tự động
Kiểm thử tự động là quá trình kiểm tra hệ thống với dữ liệu đầu vào và dữ liệu đầu
ra được xác định một cách tự động để thực thi các test case mà không cần hoặc cần ít tới
sự can thiệp của con người
Đối với kiểm thử tự động thì dữ liệu được từ file input đầu vào (excel, csv ) nhập vào ứng dụng, sau đó đọc file và kiểm tra sự giống và khác nhau giữa kết quả thực tế với kết quả mong đợi, từ đó xuất ra file output (excel, csv ) báo cáo kết quả thực hiện
2.1.2 Qui trình kiểm thử tự động
Qui trình kiểm thử tự động gồm 4 bước:
• Bước 1: Dùng công cụ kiểm thử để ghi lại các thao tác lên phần mềm cần kiểm tra
và tự động sinh ra test script
• Bước 2: Chỉnh sửa để kịch bản kiểm thử để thực hiện theo đúng yêu cầu
• Bước 3: Chạy kịch bản kiểm thử và giám sát hoạt động kiểm tra phần mềm được kiểm thử
• Bước 4: Báo kết quả sau khi thực hiện kiểm thử tự động Sau đó bổ sung chỉnh sửa những sai sót
2.1.3 Ưu và nhược điểm của kiểm thử tự động.
Ưu điểm của kiểm thử tự động:
- Kiểm thử tự động có độ bao phủ lớn, và độ chính xác cao
- Cần ít nhân lực trong quá trình kiểm thử
- Chu kỳ kiểm thử diễn ra trong thời gian ngắn
- Giúp người kiểm thử tránh việc kiểm thử lặp đi lặp lại các bước nhàm chán
- Hiệu năng của kiểm thử các lớp vượt xa tầm với của kiểm thử thủ công
Trang 19Tuy nhiên kiểm thử tự động cũng có các nhược điểm sau:
- Chi phí cao cho việc chuyển giao công nghệ và đào tạo nhân viên
- Tốn chi phí và thời gian cho việc tạo các kịch bản kiểm thử và bảo trì các kịch bản kiểm thử
- Giai đoạn chuẩn bị kiểm thử yêu cầu nhiều nhân lực
2.1.4 Khi nào nên kiểm thử tự động
Lý do thường xuyên nhất dẫn đến quyết định sử dụng kiểm thử tự động là thường xuyên phải thực thi một số lượng test case lớn phải trong một khoảng thời gian ngắn Từ khi DEV đưa ra bản thiết kế mới cho tới khi phiên bản mới tới tay khách hàng chỉ từ 1 đến 2 ngày Trong thời gian ngắn ngủi như vậy chính là lúc lý tưởng để sử dụng kiểm thử
tự động
- Xây dựng một bộ kiểm thử tự động cho những chức năng chính, mỗi khi có bản thiết kế mới Đây là công việc rất thường xuyên trước khi thực hiện kiểm thử tự động
- Khi muốn thực thi performance test hay load test
- Khi số lượng đầu vào của 1 test case quá nhiều (như ví dụ 50 bộ dữ liệu test), cũng nên xem xét khả năng thực hiện kiểm thử tự động
2.2 CÔNG CỤ SELENIUM
2.2.1 Giới thiệu chung về Selenium
Selenium (thường được viết tắt là SE) là một phần mềm mã nguồn mở, được phát triển bởi Jason Huggins, sau đó được tiếp tục bởi nhóm ThoughtWorks vào năm 2004 Selenium là một công cụ hỗ trợ kiểm tra tự động cho các ứng dụng chạy trên nền web.[4]Selenium hỗ trợ kiểm tra hầu hết trên các trình duyệt phổ biến hiện nay như Firefox, Internet Explorer, Chrome, Safari, cũng như các hệ điều hành chủ yếu như Windows, Linux, Mac, Selenium hỗ trợ một số lớn các ngôn ngữ lập trình như C#, Java, Perl, PHP, Python, Ruby,… Không những vậy, Selenium có thể kết hợp thêm với một số công cụ khác như Bromien, Junit, Nunit
Trang 202.2.2 Thành phần của Selenium
Selenium gồm một bộ công cụ hỗ trợ kiểm tra tự động các ứng dụng web để đảm bảo chất lượng của các ứng dụng web, Selenium gồm có các thành phần sau:
Hình 2.1 Thành phần của Selenium.[5]
Selenium-IDE: là một công cụ cho phép ghi (record) và phát lại (playback) một test
script Nó được thực hiện như là một Firefox Add-On Selenium IDE cho phép export ra kịch bản đã thu dưới nhiều loại ngôn ngữ lập trình khác nhau như Java, Php, C#, Ruby, Perl hay Python.[4]
Selenium-RC, Selenium WebDriver : Cả hai thành phần Selenium này đềucung
cấp thư viện cho mỗi ngôn ngữ được hỗ trợ: Html, Java, C #, Perl, Php, Python, và Ruby.[5] Kiến trúc của Selenium WebDriver đơn giản hơn so với Selenium RC Selenium WebDriver làm việc trực tiếp với trình duyệt ở mức độ hệ điều hành trong khi Selenium RC làm việc với trình duyệt thông qua một hệ thống Server ảo – Selenium Remote Control (RC) Server
Selenium-Grid: Là một hệ thống hỗ trợ người dùng thực thi test script trên nhiều
trình duyệt một cách song song mà không cần phải chỉnh sửa test script.[4]
2.2.3 Giới thiệu về Selenium IDE và môi trường cài đặt
a Giới thiệu về Selenium IDE
Trước đây người ta gọi Selenium IDE là Selenium Recorder Selenium IDE ban đầu
SeleniumSuite
Selenium RC
Selenium WebDriver
Selenium GridSelenim
IDE
Trang 21Selenium IDE cho phép người dùng thực thi những công việc sau đây:
• Ghi (Record) những thao tác của người dùng khi sử dụng trình duyệt Firefox Record những hành động trên Firefox khá đơn giản, người dùng chỉ cần nhấn nút Record trên Selenium IDE là chương trình sẽ ghi lại các thao tác đã tương tác với Web trên Firefox Người dùng có thể sửa lại command hoặc target ngay trên Selenium IDE, sau đó lưu test case (chức năng save) để tái sử dụng lần sau
• Chạy lại những script đã ghi được
• Chuyển đổi script đã ghi thành các ngôn ngữ lập trình khác Selenium IDE còn có chức năng Export Chức năng này sẽ giúp cho người dùng export code dưới dạng nhiều ngôn ngữ khác nhau như Python, Java, C#, Ruby…Nếu đã export thì không thể import trở lại để playback trên Selenium IDE mà phải dùng nó trong một framework khác
b Môi trường cài đặt Selenium IDE trên trình duyệt Fire Fox
Trước khi cài đặt Selenium IDE, người dùng cần kiểm tra xem đã cài đặt selenium IDE trước đó hay chưa bằng cách vào trình duyệt Firefox, click vào “Tool” trên thanh Menu Bar, khi thanh trỏ sổ xuống mà không thấy có biểu tượng Selenium IDE thì khi đó
sẽ thực hiện các thao tác cài đặt sau:
Bước 1: Vào trang http://www.seleniumhq.org/download/ tại đây người dùng cần click vào phiên bản Selenium IDE cần download
Bước 2: Khởi động lại trình duyệt Firefox
Bước 3: Để chạy Selenium IDE, chỉ cần chọn nó từ menu Tools của Firefox Nó sẽ
mở ra như sau với một cửa sổ kịch bản phần mềm biên tập rỗng
Trang 22Hình 2.1 Giao diện Selenium IDE
a. Giải thích một số ký hiệu cơ bản trên giao diện của Selenium IDE:
Trang 23
Hình 2.3 Giao diện vùng làm việc
Hình 2.4 Các thanh công cụ của Selenium
URL của ứng dụng web
Nơi thực hiện sự kiện
Và lỗi cảnh báo Danh sách các Actions trong Test
Thể hiện dòng lệnh Bao gồm kết quả mong đợi
Test trong web based Testrunner
Những lệnh thực hiện Điều khiển tốc độ test Ghi hoạt động Test
Trang 24• Base URL: Lưu homepage của ứng dụng web
• Test case: Liệt kê các test case có trong test suite
•
• Speed Control: Điều chỉnh tốc độ khi chạy Test case
• Run All: Chạy tất cả các Test case Khi có nhiều trường hợp thử nghiệm được nạp
• Run: Chạy từng test case, khi chỉ có duy nhất một thử nghiệm được nạp
• Pause/Resume: Tạm ngưng/Tiếp tục thực thi test case đang chạy
• Step: Thực thi từng bước một trong test case Chỉ có tác dụng khi test case đang tạm ngưng
• Apply Rollup Rules: Chức năng đặc biệt cho phép nhóm nhiều action nhỏ thành một action lớn
• Record: Dùng để thu lại các Test case thông qua các thao tác hành động của người dùng lên trình duyệt
• Table/Source: Danh sách các action trong test case
• Command: Danh sách các action mà Selenium IDE đang hỗ trợ
• Target: Định nghĩa control mà chúng ta đang tương tác
• Value: Dữ liệu test
• Log: Thông tin về action đang được thực thi
• Reference: Hướng dẫn sử dụng action đang được chọn
• UI-Element and Rollup: Được sử dụng ở mức advance, khi người dùng tự thiết kế các
Trang 25b. Chức năng của Selenium IDE:
• Thực hiện chế độ ghi: Selenium IDE hỗ trợ thu lại kịch bản thử nghiệm bằng cách ghi lại những hành động của người dùng khi duyệt các trang web trong trình duyệt.Bắt đầu thực hiện chế độ ghi bằng cách nhấp vào "Selenium IDE" trong Tools Menu trên trình duyệt Firefox
Giao diện Selenium IDE hiện ra như hình 2.1
• Di chuyển chuột qua nút “Recording” để kiểm tra trạng thái ghi Nút “Recording” luôn trong trạng thái sẵn sàng ghi Giờ người dùng bắt đầu ghi hành động của mình trong trình duyệt Firefox
Hình 2.5 Hình ảnh nút ghi Recording
• Lưu test case
Sau khi thực hiện ghi test case, người dùng cần phải lưu test case lại bằng cách : vào File / Save test case
Trang 26Hình 2.6 Hình ảnh lưu test case
• Chạy các test case đã được lưu
-Chạy 1 test case : chọn test case muốn chạy, click vào nút Run để chạy nó
-Pause/Resumer : Nút Pause được dùng để tạm ngưng 1 test case khi nó đang chạy, để tiếp tục chạy test case click chọn Resumer
• Chèn lệnh:
-Chèn vào bảng: Trong ô test case, click chuột trái tại vị trí muốn chèn lệnh và chọn Insert command Selenium IDE sẽ thêm một dòng trắng phía trước dòng được chọn Nhập lệnh vào ô command, kết quả mong muốn vào ô target, giá trị đầu vào vào ô value
-Chèn vào mã nguồn: Chọn vị trí trong test case mà bạn muốn chèn lệnh Trong ô test case, chuột trái vào vị trí muốn chèn lệnh Vào tag HTML, cần tạo 3 dòng chứa lệnh bao gồm tham số đầu tiên (nếu lệnh yêu cầu có tham số), tham số thứ hai (nếu có) Lưu test case trước khi chọn lại table view
-Chèn comment: Các comment có thể được thêm vào cho test case dễ hiểu hơn Những comment được bỏ qua khi chạy test case Comment có thể được sử dụng để thêm vào các khoảng trống dọc (một hoặc nhiều dòng trắng) vào các test case của chúng ta, khi
Trang 27chúng ta tạo ra các comment trắng Một lệnh trắng sẽ tạo ra 1 lỗi khi thực thi còn một comment trắng thì không tạo ra lỗi khi thực thi.
• Chỉnh sửa qua giao diện: Chọn dòng cần chỉnh sửa và chỉnh sửa nó bằng các trường Command, Target, và Value
• Chỉnh sửa qua mã nguồn: Vào mã nguồn, chỉnh sửa trực tiếp vào dòng comment hay lệnh muốn chỉnh sửa
• Export test case
Chức năng Export dùng để phát sinh ra code ở nhiều ngôn ngữ khác nhau như Python, Java, C#, Ruby
Trang 282.2.4 Giới thiệu về Selenium RC, Selenium Webdriver và môi trường cài đặt
a Giới thiệu về Selenium RC, Selenium WebDriver
Với Selenium IDE, chúng ta có thể tạo được các test case ở mức đơn giản với Record và Playback Bằng cách sử dụng thêm các add-in bên ngoài, chúng ta có thể tiến hơn một bước trong việc sử dụng cấu trúc điều khiển để test case linh động hơn Tuy nhiên các add- in không thực sự mạnh trong điều khiển workflow của test case Để bù đắp việc này, Selenium cung cấp cho chúng ta hai loại thư viện để sử dụng mã nguồn của Selenium là Selenium RC và Selenium WebDriver
Cả Selenium RC và Selenium WebDriver đều là công cụ phổ biến hỗ trợ kiểm thử tự động ứng dụng web Người dùng có thể phát triển các bài test tự động trong các ngôn ngữ lập trình như C#, Java, Python, Php, Perl và Ruby…
Selenium WebDriver có thể coi là phiên bản kế tiếp của Selenium RC, nó mang đến
một giao diện lập trình đơn giản hơn và giải quyết một số hạn chế của Selenium RC Bên
cạnh đó Selenium WebDriver không phải không có yếu điểm Vì vậy khóa luận sẽ giới thiệu cả 2 thành phần Selenium RC và Selenium WebDriver để đánh giá và so sánh kiến trúc của cả 2 thành phần
• Selenium RC