Giới thiệu về Selenium
GIỚI THIỆU VỀ SELENIUM Kiểm thử tự động cho ứng dụng web Hiện nay, có nhiều phần mềm ứng dụng được viết như phần mềm ứng dụng cơ bản để chạy trên trình duyệt internet. Sự hiệu quả của việc thử nghiệm những ứng dụng này làm thay rộng rãi trong công ty hoặc tổ chức. Trong sự tương tác cao và ...
GIỚI THIỆU VỀ SELENIUM
Kiểm thử tự động cho ứng dụng web Hiện nay, có nhiều phần mềm ứng dụng được viết như phần mềm ứng dụng cơ bản để chạy trên trình duyệt internet. Sự hiệu quả của việc thử nghiệm những ứng dụng này làm thay rộng rãi trong công ty hoặc tổ chức. Trong sự tương tác cao và quy trình phần mềm đáp ứng, nơi mà nhiều tổ chức đang sử dụng một số phương pháp Agile, kiểm thử tự động thường xuyên trở thành yêu cầu đối với dự án phần mềm. Kiểm thửu tự động thường xuyên là câu hỏi. Kiểm thử tự động có nghĩa là sử dụng 1 công cụ phần mềm chạy thử nghiệp lặp đi lặp lại để kiểm tra. Đối với kiểm thử hồi quy này cung cấp phản hồi từ hệ thống. Có rất nhiều lời khuyên dành cho kiểm thử tự động. Hầu hết đều liên quan đến tính lặp lại của việc kiểm thử và tốc độ mà các ca kiểm thử được thực thi. Có một số trong thương mại và công cụ mã nguồn mở sẵn sàng trợ giúp người phát triển của kiểm thử tự động. Selenium có thể là giải pháp mã nguồn mở được sử dụng rộng rãi nhất. Hướng dẫn sử dụng này sẽ hỗ trợ cả người mới và người dùng selenium đã có kinh nghiệm trong việc học hiệu quả kỹ thuật sử dụng , xây dựng kiểm thử tự động cho ứng dụng web. Hướng dẫn sử dụng này giới thiệu về Selenium, hướng dẫn về các tính năng của nó, trình bày các phương pháp hay nhất được sử dụng phổ biến tại cồng đồng Selenium. Như vậy thông tin kỹ thuật trên cấu trúc bên trong của Selenium và gợi ý sử dụng selenium được cung cấp. Kiểm thử tự động có lợi thế đặc biệt dành cho việc nâng cao hiệu quả dài hạn trong quy trình kiểm thử của nhóm phần mềm. Kiểm thử tự động hỗ trợ:
- Kiểm thử hồi quy thường xuyên
- Phản hồi nhanh tới người phát triển
- Hầu như không giới hạn việc lặp lại của việc thực thi ca kiểm thử
- Hỗ trợ phương pháp luận về Agile và phát triển cực đoan.
- Tài liệu kỷ luật của ca kiểm thử (Disciplined documentation of test cases)
- Tùy chỉnh nhược điểm của báo cáo
- Tìm nhược điểm bị bỏ qua do kiểm thử thủ công Nên tự động hay thủ công? Tự động có phải là luôn luôn có lợi? Khi nào nên quyết định thực hiện kiểm tra tự động? Không phải lúc nào cũng thuận lợi để tự động kiểm tra các trường hợp. Có nhiều khi việc kiểm thử thông công sẽ phù hợp hơn. Ví dụ: Nếu giao diện người dùng của ứng dụng sẽ thay đổi đáng kể trong tương lai gần. Vì vậy, những thứ đơn giản không đủ thời gian để xây dựng kiểm thử tự động. Đối với kỳ hạn ngắn, thì kiểm thử thủ công có lẽ hiệu quả hơ nhiều. Nếu như ứng dụng có hạn chót rất chặt chẽ, thì hiện tại kiểm thử tự động là chưa sẵn sàng được và nó bắt buộc rằng việc kiểm thử phải xong trong khung thời gian định sẵn thì kiểm thử thủ công là giải pháp tốt nhất. Giới thiệu về Selenium Selenium là một bộ trong các công cụ phần mềm khác nhau với sự tiếp cận khác nhau để hỗ trợ kiểm thử tự động. Hầu hết kỹ sư selenium QA đều tập trung trong 1 hoặc 2 công cụ mà đáp ứng nhiều nhất cái mà dự án của họ cần; tuy nhiên việc học tất cả các công cụ sẽ cho họ nhiều lựa chọn khác nhau để tiếp cận với những vấn đề kiểm thử tự động khác nhau. Toàn bộ kết quả của tất cả công cụ trong bộ tập hợp phong phú của các chức năng kiểm thử cụ thể sẽ cần thiết cho việc kiểm thử của tất cả các loại ứng dụng web. Sự vận hành đó có độ linh hoạt cao, cho phép có nhiều tùy chọn dành cho việc định vị các phần tử UI và so sánh kết quả mong muốn với kết quả thực tế. Một trong những chức năng chính của Selenium là hỗ trợ cho việc thực thi kiểm thử trên nhiều nền tảng trình duyệt. Tóm tắt lịch sử của 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. Là một chàng trai thông minh, anh ta nhận ra rằng có nhiều thời gian sử dụng tốt hơn là thao tác thủ công với các trường hợp kiểm tra như mọi thay đổi anh ta đã từng làm. 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. Selenium đã RC phá vỡ bởi vì không một sản phẩm nào cho phép bạn điều khiển trình duyệt từ một ngôn ngữ bạn lựa chọn. Khi Selenium đã trở thành một công cụ mạnh, nó không phải là không có hạn chế của nó. Bởi vì động cơ tự động dựa trên Javascrip cơ bản của nó và các trình duyệt hạn chế về bảo mật áp dụng cho Javascript, những thứ khác nhau trở thành không thể làm được. Để làm cho mọi việc tồi tệ hơn, webapps trở nên mạnh mẽ theo thời gian. Sử dụng tất cả loại tính năng đặc biệt cho trình duyệt mới cung cấp và làm cho chúng ngày càng hạn chế rủi ro. 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. Google từ lâu đã là người dùng tiềm năng của Selenium,, nhưng người kiểm thử phải làm việc xung quanh giới hạn của sản phẩm. Simon muốn một công cụ kiểm thử mà có thể giao tiếp với trình duyệt sử dụng ‘native’ phương thức dành cho trình duyệt và hệ điều hành. Do đó tránh được các hạn chế của môi trường sandboxed Javascript. Dự án WebDriver bắt đầu với mục đích giải quyết điểm ‘pain’ của Selenium. Cho đến năm 2008, Thế vận hộ Bắc Kinh đánh dấu sự trở lại của Trung Quốc như là sức mạnh toàn cầu. Khoản thế chấp nhà ở lớn ở Hoa Kỳ gây ra cuộc suy thoái kinh tế tồi tệ nhất kể từ cuộc Đại Khủng Hoảng. Nhưng lịch sử quan trọng nhất của năm đó là sự hợp nhất của Selenium và WebDriver. Seleium đã trở thành cộng đồng lớn và hỗ trợ thương mại. Nhưng WebDriver rõ rang là công cụ của tương lai. Sự kết hợp của hai công cụ cung cấp việc tập hợp các tính năng phổ biến dành cho tất cả người dùng và mang lại một số ý tưởng sáng chói trong kiểm thử tự động dưới một mái nhà. Có lẽ lời giải thích tốt nhất dành cho Selenium và WebDriver là sáp nhập các chi tiết bởi Simon Stewart. Người sáng lập của WebDriver trong việc gửi email tới cộng đồng WebDriver và Selenium ngày 6/8/2009. “ Tại sao phải cần sáp nhập 2 công cụ? Một phần vì WebDriver giải quyết một số thiếu sót trong Selenium, một phần bởi vì Selenium giải quyết một số thiếu sót trong WebDriver. một phần bởi vì các nhà đóng gsp Selenium chính và tôi cảm thấy đó là cách tốt nhất để cung cấp cho người dùng khuôn khổ tốt nhât” Bộ công cụ Selenium Selenium bao gồm nhiều công cụ phần mềm. Mỗi công cụ đều có tính năng riêng biệt
Selenium2 (aka. Selenium WebDriver) Selenium 2 là một định hướng tương lai của dự án và những bổ sung mới nhất tới bộ công cụ Selenium. Công cụ tự động hóa mới này cung cấp tất cả loại tính năng tuyệt vời, mở rộng nhiều tính kết hợp và định hướng đối tượng API cũng như trả lời cho những câu hỏi của việc thực hiện trước đây. Như bạn đã dọc ở phần Tóm tắt lịch sửu Selenium , cả hai Selenium và WebDriver, nhà phát triển cũng khẳng định rằng cả hai công cụ này có lợi thế nhất định và sự sáp nhập cả hai công cụ sẽ tạo nên một bộ công cụ tự động hóa mạnh mẽ. Selenium 2.0 là kết quả của nỗ lực đó. Nó hỗ trợ API WebDriver và công nghệ cơ bản, cùng với selenium 1 bên dưới API WebDriver dành cho sự linh hoạt tối đa trong việc chuyển các lần kiểm tra của bạn. Ngoài ra, Selenium 2 cũng chạy giao diện Selenium RC của Selenium 1 để tạo tương thích ngược. Selenium1 (aka. Selenium RC or Remote Control) Như bạn đã đọc ở phần Brief History of the Selenium Project, Selenium RC đã là Selenium chính trong một thời gian dài, trước đó WebDriver/ Selenium sáp nhập tạo ra selenium 2. Đây là điểm mới nhất, tạo nên bọ công cụ mạnh mẽ hơn. Hiện nay, Selenium 1 bị phản đối và không được hỗ trợ tích cực (Chủ yếu ở chế độ bảo trì). Selenium IDE Selenium IDE (Integrated Development Environment) là công cụ mẫu cho việc xây dựng kịch bản kiểm thử. Nó là một plugin của Firefox và cung cấp một giao diện dễ sử dụng cho sự phát triển kiểm thử tự động. Selenium IDE có tính năng ghi âm, ghi lại hoạt động người dùng, những gì họ thực hiện, sau đó xuất chúng dưới dạng dưới dạng một tập lên trong một hoặc nhiều ngôn ngữ chương trình sẽ thực thi sau. Note: Mặc dù Selenium IDE có tính năng “Save” cho phép người dùng lưu giữ lần kiểm tra trong một đinh dạng bảng để import vào sau và thực thi. Nó không phải được thiết kế để chạy cho lần kiểm tra của bạn đạt yêu cầu mà nó được xây dựng tất cả lần kiểm tra tự động hóa mà bạn sẽ phải làm. Đặc biệt, Selenium IDE không cung cấp sự lặp lại hoặc câu lệnh có điều kiện cho tập lệnh kiểm tra . Vào thời điểm viết chúng thì không có kế hoạch thêm điều đó. Lý do là một phần kỹ thuật hoặc một phần cơ bản dựa trên các nhà phát triển Selenium khuyến khích thực tiễn tốt nhất trong tự động hóa thử nghiệm, điều mà luôn luôn đòi hỏi một số lượng chương trình. Selenium IDE chỉ đơn giản là một công cụ tạo mẫu nhanh chóng. Các nhà phát triển Selenium đề nghị cho nghiêm trọng , tự động kiểm tra mạnh mẽ Selenium 2 hoặc Selenium 1 trong nhiều ngôn ngữ lập trình hỗ trợ nhiều. Selenium – Grid 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 bạn 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ể chyaj 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, nếu bạn có bộ dữ liệu kiểm tra lớn hoặc bộ dữ liệu kiểm tra chạy chậm, bạn có thể tang 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 bạn chạy các trường hợp kiểm tra của bạn trên nhiều môi trường, bạn 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 trường hợp kiểm tra bằng cách sử dụng tiến trình song song. **Choosing Your Selenium Tool ** Nhiều người đã bắt đầu với Selenium IDE. Nếu bạn thực sự không có kinh nghiệm với các chương trình hoặc ngôn ngữ kịch bản, bạn có thể sử dụng Selenium IDE để làm quen với câu lệnh Selenium. Sử dụng IDE bạn có thể tạo nhanh chóng một trường hơp kiểm tra đơn giản, đôi khi trong vài giây. Tuy nhiên, chúng tôi không khuyên bạn nên làm tát cả các trường hợp kiểm tra tự động với Selenium IDE. Để đạt hiệu quả sử dụng Selenium bạn sẽ cần xây dựng và chạy thử nghiệm các trường hợp kiểm tra của bạn với Selenium 2 hoặc Selenium kết hợp với một trong ngôn ngữ lập trình được hỗ trợ. Công cụ bạn chọn sẽ phụ thuộc vào bạn. Trong thời gian viết Selenium, các nhà phát triển có kế hoạch sẽ để Selenium – WebDriver API trở thành hướng tương lai của Selenium. Selenium 1 cung cấp sự tương thích ngược. Như vậy, cả hai đều có cả ưu và nhược điểm được thảo luận trong các chương tương ứng của tài liệu này. Tuy nhiên đối với người đang áp dụng Selenium lần đầu, bạn sẽ muốn sử dụng selenium 2 vì đây là phần selenium sẽ tiếp tục được hỗ trợ trong tương lai.