Đăng ký Đăng nhập
Trang chủ Nghiên cứu ứng dụng phương pháp và công cụ kiểm thử phần mềm tự động...

Tài liệu Nghiên cứu ứng dụng phương pháp và công cụ kiểm thử phần mềm tự động

.PDF
65
3
119

Mô tả:

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI --------------------------------------- TÔ THỊ NGA NGHIÊN CỨU - ỨNG DỤNG PHƯƠNG PHÁP VÀ CÔNG CỤ KIỂM THỬ PHẦN MỀM TỰ ĐỘNG Chuyên ngành : Công nghệ thông tin LUẬN VĂN THẠC SĨ KỸ THUẬT NGÀNH CÔNG NGHỆ THÔNG TIN NGƯỜI HƯỚNG DẪN KHOA HỌC TS. NGUYỄN THANH HÙNG Hà Nội – 2017 1 LỜI CAM ĐOAN Tôi tên là: Tô Thị Nga, học viên lớp 2015B CNTT – Trường Đại học Bách Khoa Hà Nội. Tôi xin cam đoan toàn bộ nội dung của luận văn do tôi tự học tập, nghiên cứu trên Internet, sách báo, các tài liệu trong và ngoài nước có liên quan. Không sao chép hay sử dụng bài làm của bất kỳ ai khác, mọi tài liệu đều được trích dẫn cụ thể. Tôi xin chịu hoàn toàn trách nhiệm về lời cam đoan của mình trước Quý Thầy Cô, Khoa và Nhà trường. Hà Nội, ngày 22 tháng 11 năm 2017 Người cam đoan Tô Thị Nga 2 LỜI CẢM ƠN Lời đầu tiên tôi xin chân thành cảm ơn TS. Nguyễn Thanh Hùng – Bộ môn Công nghệ phần mềm - Viện Công nghệ thông tin và truyền thông - Đại học Bách khoa Hà Nội người đã hướng dẫn vô cùng tận tình, tâm huyết để tôi có thể hoàn thành luận văn này. Tôi cũng chân thành cảm ơn các thầy cô trong bộ môn Công nghệ thông tin đã tận tình chỉ bảo và giúp đỡ tôi trong suốt thời gian học và trong quá trình thực hiện luận văn này. Và cuối cùng tôi xin cảm ơn tất cả gia đình, bạn bè, những người đã sát cánh cùng chia sẻ với tôi những lúc khó khăn giúp tôi có động lực để hoàn thành tốt luận văn này. Học viên Tô Thị Nga 3 MỤC LỤC LỜI CAM ĐOAN .......................................................................................................2 LỜI CẢM ƠN .............................................................................................................3 DANH MỤC KÝ HIỆU CHỮ VIẾT TẮT .................................................................8 DANH MỤC BẢNG VẼ ...........................................................................................9 DANH MỤC HÌNH VẼ ............................................................................................10 PHẦN MỞ ĐẦU .......................................................................................................10 PHẦN NỘI DUNG ...................................................................................................12 CHƯƠNG I : TÌM HIỂU TỔNG QUAN VỀ KIỂM THỬ TỰ ĐỘNG VÀ CÔNG CỤ TỰ ĐỘNG ..........................................................................................................12 1. Ý nghĩa, khái niệm kiểm thử tự động phần mềm .....................................12 1.1. Kiểm thử tự động phần mềm là gì............................................................12 1.2. Tại sao cần phải kiểm thử tự động phần mềm .........................................12 2. Quy trình kiểm thử tự động phần mềm ....................................................13 2.1. Mô hình chung của kiểm thử tự động phần mềm ....................................13 3. Một số công cụ kiểm thử phần mềm tự động ..............................................15 3.1. Nghiên cứu công cụ kiểm thử tự động QuickTest Professional .................15 3.1.1. Loại phần mềm hỗ trợ ..............................................................................15 3.1.2. Các thành phần quan trọng của QTP........................................................15 3.1.3. Ưu , nhược điểm của QTP........................................................................16 3.2. Nghiên cứu công cụ kiểm thử hiệu năng..................................................17 3.2.1. Khái quát về kiểm thử hiệu năng .............................................................17 3.2.2. Nghiên cứu về công cụ Load Runner .......................................................17 4 4. Nghiên cứu công cụ Selenium .................................................................18 4.1. Tóm tắt lịch sử Selenium .........................................................................18 4.2. Đặc điểm của Selenium ............................................................................18 4.3. Cấu trúc Selenium ....................................................................................19 4.3.1. Selenium IDE (Integrated Development Environment) ...........................19 4.3.2. Selenium Gird ..........................................................................................20 4.3.3. Selenium RC ............................................................................................21 4.3.4. Selenium WebDriver ................................................................................22 4.4. Ưu, nhược điểm của Selenium .................................................................23 4.4.1. Ưu điểm ....................................................................................................23 4.4.2. Nhược điểm ..............................................................................................24 5. Chi tiết về Selenium Webdriver ..............................................................24 5.1. Tổng quan về đối tượng UI (Locators) ...................................................24 5.2. Cơ chế các script được viết ra bằng Selenium Webdriver .......................27 5.3. Các thư viện cần thiết để chạy SeleniumWebDriver ..................................28 5.3.3. Các hàm xử lý chung trong SeleniumWebDriver ....................................29 6.Kết luận chương ..............................................................................................30 CHƯƠNG II . TỰ ĐỘNG HÓA KỊCH BẢN KIỂM THỬ SỬ DỤNG SELENIUM …………………………………………………………………………….31 BÀI TOÁN ĐẶT RA .............................................................................................31 1. Ý tưởng bài toán: ......................................................................................31 2. Phân tích yêu cầu......................................................................................32 2.1. Yêu cầu đặc tả .............................................................................................32 2.2. Biểu đồ Usecace ..........................................................................................33 5 2.2.1. Đặc tả Usecase Import file Test Case ......................................................34 2.2.2. Đặc tả Usecase Import file Config ...........................................................35 2.2.3. Đặc tả Usecase Chạy kịch bản kiểm thử ..................................................35 2.2.4. Đặc tả Usecase Dừng chạy kịch bản kiểm thử .........................................36 2.2.5. Đặc tả Usecase Quản lý Test Case import ...............................................37 2.2.6. Đặc tả Usecase Xóa TestCase ..................................................................38 2.2.7. Đặc tả Usecase Quản lý Test Result .......................................................38 2.3.Biểu đồ hoạt động.........................................................................................39 3. Triển khai vấn đề ......................................................................................40 3.1. Tạo Project sử dụng thư viện Maven .......................................................40 3.2. Tạo Page Object Model (POM) ...............................................................41 3.2.1. Page Object làgì? ......................................................................................41 3.3. Cấu trúc project ........................................................................................42 4.Chuẩn bị môi trường kiểm thử ........................................................................42 5.Chuẩn bị dữ liệu kiểm thử ...............................................................................44 6.Tạo file Cấu hình .............................................................................................46 7. Kết luận chương.............................................................................................47 CHƯƠNG III: TRIỂN KHAI VÀ KIỂM THỬ HỆ THỐNG ...................................48 1. Cài đặt triển khai hệ thống .............................................................................48 2. Kết quả...........................................................................................................52 2.1. Giao diện của công cụ kiểm thử .................................................................52 2.2. Các tính năng hiển thị trên công cụ .............................................................53 2.3. Xuất kết quả kiểm tra ..................................................................................54 3. Kiểm thử phần mềm .......................................................................................55 6 3.1. Lên kế hoạch kiểm thử ...............................................................................55 3.2. Thiết kế kịch bản kiểm thử công cụ ............................................................56 3.2.1. Kiểm thử giao diện ...................................................................................56 3.2.2. Kiểm thử chức năng .................................................................................56 4. Áp dụng kiểm thử ..........................................................................................59 5. Kết luận chương .............................................................................................60 CHƯƠNG IV: ĐÁNH GIÁ KẾT QUẢ ....................................................................62 1. Đánh giá kết quả .............................................................................................62 2. Hướng phát triển .............................................................................................63 KẾT LUẬN ...............................................................................................................64 TÀI LIỆU THAM KHẢO .........................................................................................65 7 DANH MỤC KÝ HIỆU CHỮ VIẾT TẮT Chữ viết tắt Chữ viết đầy đủ Công nghệ thông tin CNTT QuickTest Professional QTP OR Object Repository Integrated Development Environment IDE RC Remote Control UI User Interface WAUT Web Application Under Test HTML (Hyper Text Markup Ngôn ngữ đánh dấu siêu văn bản Language) TDD Test-Driven Development ATDD Acceptance Test-Driven Development BDD Behaviour DrivenDevelopment POM Page Object Model 8 DANH MỤC BẢNG VẼ Tên bảng Bảng 1 : Mô hình chung của kiểm thử tự động phần mềm Trang 9 Bảng 2 : Các bước thực hiện kiểm thử tự động 11 Bảng 3 : Các thành phần của Load Runner 15 Bảng 4 : Thư viện cần thiết để chạy Selenium WebDriver 34 Bảng 5 : Locate element sử dụng WebDriver 34 Bảng 6 : Các hàm thường sử dụng trong Selenium Webdriver 35 Bảng 7 : Đặc tả Usecase Import file Test Case 40 Bảng 8 : Đặc tả Usecase Import file Config 41 Bảng 9 : Đặc tả Usecase Chạy kịch bản kiểm thử 42 Bảng 10 : Đặc tả Usecase Dừng chạy kịch bản kiểm thử 42 Bảng 11 : Đặc tả Usecase Quản lý Test Case import 44 Bảng 12 : Đặc tả Usecase Xóa TestCase 44 Bảng 13 : Đặc tả Usecase Quản lý Test Result 51 Bảng 14 : Test case chức năng Login 51 Bảng 15 : Test case chức năng Đăng ký 52 Bảng 16 : Test case chức năng Mua hàng online 57 Bảng 17 : Kết quả chạy kiểm thử export ra excel 53 Bảng 18 : Test Case kiểm thử chức năng phần mềm 55 Bảng 19 : Test Case kiểm thử chức năng phần mềm 57 Bảng 20 : Bảng kết quả kiểm thử phần mềm 58 9 DANH MỤC HÌNH Hình 1.4.1. Sơ đồ cầu trúc Selenium ........................................................................ 18 Hình 1.4.2 : Kiến trúc Selenium IDE ...................................................................... 19 Hình 1.4.3. Tương tác của Selenium RC đến máy chủ ........................................... 21 Hình 1.4.4. Tương tác của Selenium Webdriver ..................................................... 22 Hình 1.4.5. Xác định phần tử Web theo ID ............................................................. 24 Hình 1.4.6. Xác định phần tử Web theo Name ....................................................... 24 Hình 1.4.7. Xác định phần tử Web theo LinkText ................................................... 25 Hình 1.4.8. Xác định phần tử Web theo TagName ................................................... 25 Hình 1.4.9. Xác định phần tử Web theo ClassName .............................................. 26 Hình 1.4.10. Xác định phần tử Web theo CSS ........................................................ 26 Hình 2.1. Mô hình ý tưởng của phần mềm ............................................................. 30 Hình 2.2.1. Usecase tổng quan cho hệ thống............................................................ 32 Hình 2.2.2. Biểu đồ hoạt động cho flow kiểm thử website dựa theo kịch bản ......... 38 Hình 2.3.1. Cấu trúc POM ........................................................................................ 39 Hình 2.3.3. Cấu trúc Project ..................................................................................... 42 Hình 2.4.1. Màn hình đăng ký.................................................................................. 42 Hình 2.4.2. Màn hình Login tài khoản học viên ...................................................... 43 Hình 2.4.3. Luồng kiểm thử nghiệp vụ đặt hàng trên website tiki.......................... 43 Hình 2.5.1. File cấu hình ......................................................................................... 45 Hình 3.2.1. Giao diện phần mềm ............................................................................. 51 Hình 3.2.2. Kết quả export ra html .......................................................................... 54 10 PHẦN MỞ ĐẦU Thế giới CNTT đang trong giai đoạn bùng nổ phát triển, các công ty phát triển phần mềm muốn hòa nhập cùng xu hướng này cần phát triển phần mềm đáp ứng nhu cầu ngày càng cao của người sử dụng, ngoài ra các công ty phần mềm cũng cần phát triển mô hình kinh doanh theo quy trình chuẩn. Do đó, kiểm thử phần mềm và quy trình phần mềm chuẩn là xu hướng phát triển mới hiện nay. Để tạo ra sản phẩm công nghệ thông tin hay phần mềm có chất lượng thì hoạt động kiểm thử phần mềm đóng vai trò rất quan trọng, trong khi đó hoạt động này lại tiêu tốn và chiếm tỷ trọng khá lớn công sức và thời gian trong một dự án. Qua thực tế cho thấy, có rất nhiều công cụ trong việc kiểm thử tự động phần mềm đáp ứng được việc giảm nhân lực, giảm thời gian, hạn chế sai sót. Tuy nhiên , vẫn cần phải thao tác từng testcase với việc xây dựng kịch bản bởi script và hầu như việc đó luôn đòi hỏi người kiểm thử phải có khả năng về lập trình. Đề tài “NGHIÊN CỨU - ỨNG DỤNG PHƯƠNG PHÁP VÀ CÔNG CỤ KIỂM THỬ PHẦN MỀM TỰ ĐỘNG” nhằm đưa ra cái nhìn tổng quan về lĩnh vực kiểm thử tự động, giới thiệu về một số loại công cụ kiểm thử. Và ứng dụng Selenium Webdriver để xây dựng một phần mềm kiểm thửtự động website đáp ứng được nhu cầu của người dùng, đảm bảo được tính chính xác của công cụ kiểm thử và đặc biệt có thể áp dụng cho những người không có nhiều kiến thức về lập trình. Nội dung luận văn bao gồm : Chương 1 : Tìm hiểu tổng quan về kiểm thử tự động và công cụ tự động Chương 2 : Tự động hóa kịch bản kiểm thử sử dụng Selenium Chương 3 : Triển khai và kiểm thử hệ thống Chương 4 : Đánh giá kết quả 11 PHẦN NỘI DUNG CHƯƠNG I : TÌM HIỂU TỔNG QUAN VỀ KIỂM THỬ TỰ ĐỘNG VÀ CÔNG CỤ TỰ ĐỘNG 1. Ý nghĩa, khái niệm kiểm thử tự động phần mềm 1.1. Kiểm thử tự động phần mềm là gì Kiểm thử tự động phần mềm là thực hiện kiểm thử phần mềm bằng một chương trình đặc biệt với rất ít hoặc không có sự tương tác của con người.Đó là quá trình thực hiện một cách tự động các bước trong một kịch bản kiểm thử . Công cụ kiểm thử tự động có thể lấy dự liệu từ file bên ngoài (excel, csv, …) nhập vào ứng dụng, so sánh kết quả mong đợi (từ excel, csv) với kết quả thực tế và xuất ra báo cáo kết quả kiểm thử.. Nó giúp các kỹ sư kiểm thử (người kiểm thử) không phải lặp đi lặp lại các bước nhàm chán 1.2. Tại sao cần phải kiểm thử tự động phần mềm Kiểm thử phần mềm tự động với mục đích :  Giảm bớt công sức và thời gian thực hiện quá trình kiểm thử  Tăng độ tin cậy.  Giảm sự nhàm chán cho con người.  Rèn luyện kỹ năng lập trình cho kiểm thử viên.  Giảm chi phí cho tổng quá trình kiểm thử. Khi nào cần kiểm thử tự động phần mềm?  Không đủ tài nguyên: o Những trường hợp kiểm thử cần thực hiện nhiều lần, thường xuyên phải thực hện regression test, một số lượng testcase lớn cần thực hiện trong một thời gian ngắn . o Kiểm thử cần thực hiện ở nhiều môi trường khác nhau . o Những project có tính ổn định, đặc điểm kĩ thuật được xác định trước, test màn hình chức năng không thay đổi trong tương lai. o Những trường họp kiểm thử xác nhận hoạt động cơ bản (di chuyển giữa các màn hình). 12 o Kiểm tra sự kết hợp của nhiều giá trị đầu vào ở một bước nào đó. o Kiểm tra nhiều màn hình của dữ liệu đầu vào.  Kiểm tra hồi quy: Nâng cấp phần mềm, kiểm tra lại các tính năng đã chạy tốt và những tính năng đã sửa. Tuy nhiên, việc này khó đảm bảo về mặt thời gian.  Kiểm tra khả năng vận hành phần mềm trong môi trường đặc biệt: o Đo tốc độ trung bình xử lý một yêu cầu của Web server. o Xác định số yêu cầu tối đa được xử lý bởi Web Server. o Xác định cấu hình máy thấp nhất mà phần mềm vẫn có thể hoạt động tốt 2. Quy trình kiểm thử tự động phần mềm 2.1. Mô hình chung của kiểm thử tự động phần mềm Kiểm thử tự động phần mềm bao gồm một chuỗi các quá trình, các hoạt động, thao tác được quy tụ với nhau để thực hiện phần mềm cần kiểm thử và ghi lại kết quả kiểm thử. Specification Test data generator Source code Test manager Test data Ocracle Dynamic analyser Program being tested Test result Test predictions Execution report File comprator Simulator Report generator Bảng 1 :Mô hình chung của kiểm thử tự động phần mềm 13 Test results report Trong đó, các công cụ được dùng để tự động hóa quy trình kiểm thử trong mô hình kiểm thử thực hiện các chức năng:  Test Manager: quản lý việc thực hiện các kiểm thử của chương trình, theo dõi dữ liệu kiểm thử, kết quả mong đợi và các chức năng, tiện ích của chương trình được kiểm thử.  Test data generator: sinh dữ liệu kiểm thử cho chương trình .  Oracle: tạo các phán đoán của kết quả mong đợi. Chú ý, ở đây không phải là cơ sở dữ liệu .  Oracle File comparator: Đối chiếu kết quả kiểm thử chương trình với kết quả kiểm thử trước đó và ghi lại sự khác nhau vào tài liệu.  Report generator: cung cấp các mẫu báo cáo và các tiện ích cho kết quả kiểm thử .  Dynamic analyzer: thêm mã cho chương trình để tính lượng thời gian mỗi lệnh được thực hiện.  Simulator: mô phỏng môi trường kiểm thử cho sản phẩ m phần mềm. 2.2. Quy trình kiểm thử tự động Bảng dưới đây mô tả các bước của quá trình kiểm thử tự động STT 1 Bước thực hiện Tạo kịch bản kiểm thử Mô tả Giai đoạn này 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 các kịch bản kiểm thử 2 Chỉnh sửa kịch bản kiểm thử Chỉnh sửa kịch bản kiểm thử thực hiện kiểm tra theo đúng yêu cầu đặt ra . Cụ thể, là làm theo các trường hợp kiểm thử cần thực hiện 14 3 Chạy kịch bản kiểm thử Chạy kịch bản kiểm thử để kiểm tra phần mềm có đưa ra đúng như kết quả mong muốn không Đánh giá kết quả 4 Đánh giá kết quả sau khi chạy kịch bản kiểm thử Bảng 2 : Các bước thực hiện kiểm thử tự động 3. Một số công cụ kiểm thử phần mềm tự động 3.1. Nghiên cứu công cụ kiểm thử tự động chức năng bằng QuickTest Professional Quick Test Professional là công cụ kiểm thử dùng để kiểm tra chức năng (functional test) và cho phép thực hiện kiểm tra hồi qui (regression test) một cách tự động. Đây cũng là một công cụ ứng dụng phương pháp Keywork-driven – một kỹ thuật scripting trong kiểm thử tự động hiện đại cho phép kiểm thử viên bổ sung testcase bằng cách tạo file mô tả cho nó mà không cần chinh sửa hay bổ sung bất cứ script nào. 3.1.1. Loại phần mềm hỗ trợ QTP hỗ trợ nhiều loại phần mềm:  Ứng dụng windowns chuẩn/win 32.  Ứng dụng web theo chuẩn HTML/XML chạy trên nhiều trình duyệt.  Sử dụng Visual basic, hỗ trợ Unicode.  Một số chương trình khác đòi hỏi cài đặt thêm các thư viện. 3.1.2. Các thành phần quan trọng của QTP Action Giống như hàm hoặc thủ tục trong các ngôn ngữ lập trình khác, Action ghi lại các bước thực hiện kiểm thử tự động và nó có thể được sử dụng lại nhiều lần. Trong một test script có thể có nhiều Action. Data table 15 Nơi lưu dữ liệu phục vụ cho kiểm thử tự động. Một test script sẽ có một Data Table được dùng chung cho tất cả các Action. Bên cạnh đó, mỗi Action cũng có một Data Table cho riêng mình. Object Repository (OR) Cấu trúc theo dạng cây, mô tả các đối tượng trong phần mềm được kiểm tra. Đây được xem là cầu nối để test script tương tác với phần mềm được kiểm tra. Khi ra lệnh cho QTP ghi lại các thao tác người dùng lên phần mềm thì trong OR sẽ tự động phát sinh thành phần đại diện cho những đối tượng trên phần mềm vừa được thao tác. OR có thể tổ chức thành 2 loại, một loại dùng chung cho nhiều test script, loại khác dùng theo từng Action. Để xem OR, chọn menu Tools > Object Repository. Checkpoint Có thể hiểu là nơi kiểm tra trong test script, khi chạy nó sẽ thực hiện so sánh kết quả thực tế khi kiểm tra phần mềm với kết quả mong đợi. Sau khi tiến hành so sánh QTP sẽ tự động ghi lại kết quả vào Test Results (nơi lưu kết quả khi chạy test script). 3.1.3. Ưu , nhược điểm của QTP Ưu điểm  Dễ sử dụng, bảo trì, tạo test script nhanh, cung cấp dữ liệu kiểm tra rõ ràng và dễ hiểu.  Hỗ trợ làm việc theo nhóm thông qua sự chia sẻ thư viện và thống nhất quản lý object repository.  Thực hiện kiểm thử tự động nhiều trình duyệt cùng một lúc.  Quản lý các điều kiện kiểm thử, xử lý ngoại lệ, cho phép kiểm thử hướng dữ liệu tốt. Nhược điểm  QTP không thể nhận ra các đối tượng đã được người dùng tùy chỉnh và một số đối tượng phức tạp khác.  QTP chỉ chạy trên môi trường window . 16  QTP mất phí nên công cụ này không được sử dụng rộng rãi. 3.2. Nghiên cứu công cụ kiểm thử hiệu năng 3.2.1. Khái quát về kiểm thử hiệu năng Performance Testing là một loại kiểm thử nhằm xác định mức độ đáp ứng, băng thông, độ tin cậy hoặc khả năng mở rộng của hệ thống dưới một khối lượng làm việc truy cập nhất định. Performance Testing thường được sử dụng để: ● Đánh giá mức độ sẵn sàng của sản phẩm. ● Đánh giá dựa vào các tiêu chí hiệu suất. ● So sánh giữa các đặc tính hiệu suất của đa hệ thống hoặc cấu hình hệ thống. ● Tìm ra nguồn gốc của các vấn đề về hiệu suất. ● Hỗ trợ điều chỉnh hệ thống. ● Tìm các mức độ băng thông. 3.2.2. Nghiên cứu về công cụ Load Runner Đặc điểm LoadRunner giả lập nhiều người dùng ảo thực hiện các giao dịch cùng một lúc. Sau đó LoadRunner giám sát các thông số xử lý của phần mềm được kiểm tra. Kết quả thống kê sẽ được lưu lại và cho phép kiểm thử viên thực hiện phân tích. Chức năng Thành phần Virtual User Tự động tạo ra VuGen script để lưu lại các thao tác người Generator dùng tương tác lên phần mềm. VuGen script này còn được xem là hoạt động của một người ảo mà LoadRunner giả lập. Controller Tổ chức, điều chỉnh, quản lý và giám sát hoạt động kiểm tra tải. Thành phần này có chức năng tạo ra những tình huống (scenario) kiểm tra. Load Generator Cho phép giả lập hàng ngày người dùng, hoạt động của 17 từng người sẽ được thực hiện theo VuGen script. Kết quả thực hiện sẽ được thông báo cho Controller. Analysis Cung cấp việc xem, phân tích và so sánh các kết quả Launcher Nơi tập trung tất cả các thành phần của LoadRunner cho người dùng . Bảng 3 : Các thành phần của Load Runner 4. 4.1. Nghiên cứu công cụ Selenium Tóm tắt lịch sử Selenium Selenium được đưa vào sử dụng lần đầu tiên vào năm 2004 khi Jason Huggins đã thử nghiệm một ứng dụng nội bộ tại ThoughtWorks. Anh ta đã phát triển thư viện Javascript mà có thể điều chỉnh tương tác với các trang, cho phép anh ta chạy tự động đối với nhiều trình duyệt. Thư viện đó cuối cùng trở thành Selenium core, nằm dưới mọi chức năng của của Selenium Remote Control và selenium IDE. Năm 2006, một kỹ sư tài năng tại Google tên là Simon Stewart bắt đầu công việc trên một dự án mà cậu ta gọi là WebDriver. Cho đến năm 2008, Seleium đã trở thành cộng đồng lớn và hỗ trợ thương mại. 4.2. Đặc điểm của Selenium Selenium là bộ công cụ mã nguồn mở, mạnh mẽ, hỗ trợ các ứng dụng trên nền web, nhiều platform và các trình duyệt phổ biến. Nó 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. Bộ công cụ này rất linh hoạt cho phép lựa chọn các yếu tố giao diện hay so sánh kết quả thí nghiệm dự kiến với thực tiễn. 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, Safari,.. cũng như các hệ điều hành chủ yếu như Windows, Linux , Mac ,.. và hỗ trợ một số lớn các ngôn ngữ lập trình như C# , Java , Perl , PHP , Python, Ruby... Selenium có thể kết hợp thêm với một số công cụ khác như Bromien , Junit nhưng với người dùng thông thường chỉ cần chạy tự động mà không cần cài thêm các công cụ bổ trợ. 18 4.3. Cấu trúc Selenium Về cấu trúc thì Selenium có 4 phần  Selenium IDE  Selenium RC (Selenium 1 – Selenium Remote Control)  Selenium Gird  Selenium WebDriver (Selenium 2) Selenium Suite Selenium IDE Selenium RC WebDriver Selenium Grid Selenium 2 Hình 1.4.1. Sơ đồ cầu trúc Selenium 4.3.1. Selenium IDE (Integrated Development Environment) 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 Fire-fox. Nó là cách tiện lợi nhất để xây dựng các ca kiếm thử, gồm các phần tử giao diện giúp chúng ta có thể lựa chọn thể hiện các thao tác, không chỉ tiết kiệm thời gian mà còn là cách thông minh để hiểu kịch bản Selenium. Bộ công cụ này cung cấp chức năng “thu và chạy lại” Record and Playback. Nhờ đó người kiểm thử có thể nhanh chóng tạo một bộ 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 một tập những câu lệnh “Selenese” ( ngôn ngữ kịch bản được phát triển cho Selenium IDE và Selenium Core – có dạng bản HTML ) . 19 Sau đó chạy lại các câu lệnh này để kiểm tra. Chức năng năng này rất hữu dụng , cho phép tiết kiệm thời gian viết kịch bản kiểm tra. Selenium IDE cho phép lưu kịch bản đã thu dưới nhiều loại ngôn ngữ lập trình. Selenium IDE có kiến trúc gồm Browser và Web Server như hình: Test script containing selenium commands Brower Web Server Hình 1.4.2. Kiến trúc Selenium IDE 4.3.2. Selenium Gird Selenium Grid cho phép các giải pháp Selenium RC để kiểm tra trên quy mô lớn và dành cho việc kiểm thử và phải chạy trong nhiều môi trường. Selenium Grid cho phép chạy các trường hợp kiểm tra song song, tức là các trường hợp kiểm tra khác nhau có thể chạy tại một thời điểm trên các máy từ xa khác nhau. Điều này có hai lợi thế. Thứ nhất, trường hợp có bộ dữ liệu kiểm tra lớn hoặc bộ dữ liệu kiểm tra chạy chậm, tacó thể tăng hiệu suất nó đáng kể bằng cách sử dụng Selenium Grid tới việc phân chia các trường hợp kiểm tra để chạy các trường hợp kiểm tra khác nhau tại một thời điểm và trên nhiều máy khác nhau. Như vậy, nếu chạy các trường hợp kiểm tra trên nhiều môi trường, ta có thể hỗ trợ các máy từ xa khác nhau và thực hiện chúng tại một thời điểm. Trong mỗi trường hợp Selenium Grid cải thiện được nhiều thời gian mà nó phải chạy cho các 20
- Xem thêm -

Tài liệu liên quan