Hướng dẫn Selenium cung cấp các khái niệm cơ bản và nâng cao về Selenium. Hướng dẫn về Selenium của chúng tôi được thiết kế cho người mới bắt đầu và các chuyên gia.
Selenium là một trong những bộ thử nghiệm tự động hóa giao diện người dùng (User Interface) mã nguồn mở được sử dụng rộng rãi nhất.
Các bài viết liên quan:
Hướng dẫn về Selenium của chúng tôi bao gồm tất cả các chủ đề của Selenium như Tính năng, Selenium vs QTP, Bộ công cụ Selenium, Selenium IDE, Chiến lược định vị Selenium IDE, Selenium WebDriver, Tính năng WebDriver, WebDriver vs RC, Cài đặt WebDriver, v.v.
Selenium là gì ?
Selenium là một trong những bộ thử nghiệm tự động hóa giao diện người dùng (User Interface) mã nguồn mở được sử dụng rộng rãi nhất, ban đầu nó được phát triển bởi Jason Huggins vào năm 2004 như một công cụ nội bộ tại Thought Works. Selenium hỗ trợ tự động hóa trên các trình duyệt, nền tảng và ngôn ngữ lập trình khác nhau.
Selenium có thể dễ dàng triển khai trên các nền tảng như Windows, Linux, Solaris và Macintosh. Hơn nữa, nó hỗ trợ OS (Hệ điều hành) cho các ứng dụng di động như iOS, windows mobile và android.
Các bài viết cùng chủ đề:
- Phân biệt Selenium với QTP
- Bộ công cụ Selenium – Selenium Tool Suite
- Môi trường phát triển tích hợp Selenium (IDE)
- Selenium IDE- Cách Testing cơ bản cho website
- So sánh Selenium WebDriver và Selenium RC
- Selenium IDE- xác định phần tử html cho testing website
- Selenium IDE- Lệnh (Selenese)
- Cách tạo test case thủ công sử dụng Selenium IDE
- Selenium IDE- Tesing chức năng Login website
- Xác định element html trong Selenium sử dụng CSS selector
- Chọn đối tượng html trong Selenium webdriver
- Selenium WebDriver- hướng dẫn testing trên trình duyệt web
- Selenium WebDriver – tạo một test case đầu tiên
- Selenium WebDriver- Các bước cài đặt
- Xác định element html trong Selenium webdriver sử dụng XPath
- Selenium WebDriver sử lý Drag và Drop
- Xử lý checkbox trong selenium webdriver
- Selenium WebDriver- Xử lý trình đơn DropDown trong html
- Selenium webdriver – Xử lý các nút Radio
Selenium hỗ trợ nhiều ngôn ngữ lập trình khác nhau thông qua việc sử dụng các trình điều khiển dành riêng cho từng ngôn ngữ. Các ngôn ngữ được Selenium hỗ trợ bao gồm C #, Java, Perl, PHP, Python và Ruby. Hiện tại, trình điều khiển Web của Selenium phổ biến nhất với Java và C #. Các tập lệnh kiểm tra Selenium có thể được mã hóa bằng bất kỳ ngôn ngữ lập trình nào được hỗ trợ và có thể chạy trực tiếp trong hầu hết các trình duyệt web hiện đại. Các trình duyệt được Selenium hỗ trợ bao gồm Internet Explorer, Mozilla Firefox, Google Chrome và Safari.
Selenium có thể được sử dụng để tự động hóa các bài kiểm tra chức năng và có thể được tích hợp với các công cụ kiểm tra tự động hóa như Maven , Jenkins và Docker để đạt được kiểm tra liên tục. Nó cũng có thể được tích hợp với các công cụ như TestNG , & JUnit để quản lý các trường hợp thử nghiệm và tạo báo cáo.
Thuật ngữ cơ bản về Selenium
Trước khi tiếp tục với hướng dẫn này, trước tiên chúng ta hãy hiểu một số khái niệm chính liên quan đến kiểm thử Tự động hóa một ứng dụng.
Với nhu cầu ngày càng tăng về các sản phẩm phần mềm hiệu quả, mọi nhóm phát triển phần mềm cần phải thực hiện một loạt các thử nghiệm trước khi tung sản phẩm cuối cùng ra thị trường. Các kỹ sư kiểm thử luôn cố gắng tìm ra các lỗi hoặc lỗi trước khi sản phẩm phần mềm được phát hành, tuy nhiên phần mềm được phân phối luôn có lỗi. Ngay cả với các quy trình kiểm tra thủ công tốt nhất, luôn có khả năng sản phẩm phần mềm cuối cùng bị lỗi hoặc không thể đáp ứng yêu cầu của người dùng cuối. Kiểm thử tự động hóa là cách tốt nhất để tăng hiệu lực, hiệu quả và phạm vi kiểm thử phần mềm của bạn.
Kiểm tra tự động hóa
Kiểm thử tự động hóa sử dụng các công cụ chuyên dụng để tự động hóa việc thực thi các trường hợp kiểm thử được thiết kế thủ công mà không cần bất kỳ sự can thiệp nào của con người. Các công cụ kiểm tra tự động hóa có thể truy cập dữ liệu kiểm tra, kiểm soát việc thực hiện các kiểm tra và so sánh kết quả thực tế với kết quả mong đợi. Do đó, tạo ra các báo cáo kiểm tra chi tiết của hệ thống được kiểm tra.
Kiểm thử tự động bao gồm cả kiểm tra chức năng và hiệu suất trên một ứng dụng.
- Tự động hóa chức năng được sử dụng để tự động hóa các trường hợp kiểm thử chức năng. Ví dụ, các bài kiểm tra hồi quy, có tính chất lặp lại, được tự động hóa.
- Tự động hóa hiệu suất được sử dụng để tự động hóa các trường hợp kiểm tra hiệu suất phi chức năng. Ví dụ: đo thời gian phản hồi của ứng dụng khi tải đáng kể (giả sử 100 người dùng).
Các công cụ kiểm tra tự động hóa được sử dụng để tự động hóa chức năng:
- Quick Test Professional do HP cung cấp.
- Rational Robot do IBM cung cấp.
- Giao diện người dùng được mã hóa, do Microsoft cung cấp.
- Selenium, mã nguồn mở.
- Auto It, mã nguồn mở.
Các công cụ kiểm tra tự động hóa được sử dụng để tự động hóa phi chức năng:
- Load Runner, do HP cung cấp.
- JMeter, do Apache cung cấp.
- Burp Suite, được cung cấp bởi PortSwigger.
- Acunetix, được cung cấp bởi Acunetix.
Vòng đời kiểm tra tự động hóa
Tại sao nên kiểm tra tự động
Kiểm thử tự động hóa có những lợi thế cụ thể để cải thiện hiệu quả lâu dài của bất kỳ phần mềm nào. Các lợi ích chính của tự động hóa kiểm tra là:
- Kiểm thử tự động từ lâu đã được coi là có lợi cho các tổ chức phần mềm lớn. Mặc dù, nó thường được cho là quá đắt hoặc khó thực hiện đối với các công ty nhỏ hơn.
- Các công cụ kiểm tra tự động có thể được lập trình để xây dựng và thực thi các kịch bản kiểm tra tại một thời điểm cụ thể mà không cần đến bất kỳ sự can thiệp nào của con người.
- Các công cụ kiểm tra tự động có thể phát lại các hành động được ghi trước và xác định trước.
- Kiểm thử tự động hóa hỗ trợ kiểm tra hồi quy thường xuyên.
- Nó cung cấp phản hồi nhanh chóng cho các nhà phát triển.
- Nó cung cấp số lần lặp lại không giới hạn của việc thực thi trường hợp thử nghiệm.
- Nó cung cấp tài liệu có kỷ luật về các trường hợp thử nghiệm.
- Kiểm tra tự động tạo báo cáo lỗi tùy chỉnh.
- Ít bị lỗi hơn so với kiểm tra thủ công.
Kiểm tra tự động hóa cho các ứng dụng web
Nếu chúng ta xem xét các loại ứng dụng phần mềm phổ biến trong bối cảnh thị trường hiện tại, hầu hết các ứng dụng phần mềm được viết dưới dạng ứng dụng dựa trên web để chạy trong trình duyệt internet. Trong thời đại của các quy trình phần mềm có tính tương tác và đáp ứng cao, nơi nhiều tổ chức đang sử dụng một số dạng phương pháp nhanh, tự động hóa kiểm tra thường xuyên trở thành một yêu cầu đối với các dự án phần mềm.
Cách hiệu quả nhất để thực hiện tự động hóa thử nghiệm cho ứng dụng web là áp dụng chiến lược thử nghiệm hình tháp. Chiến lược thử nghiệm hình tháp này bao gồm các thử nghiệm tự động hóa ở ba cấp độ khác nhau. Kiểm thử đơn vị đại diện cho tỷ lệ phần trăm cơ sở và lớn nhất của kim tự tháp tự động hóa kiểm tra này. Tiếp theo là lớp dịch vụ hoặc kiểm tra API. Và cuối cùng, các bài kiểm tra GUI đứng ở trên cùng. Kim tự tháp trông giống như sau:
Các tính năng của Selenium
- Selenium là một Framework kiểm tra web di động và mã nguồn mở.
- Selenium IDE cung cấp tính năng phát lại và ghi lại để tạo các bài kiểm tra mà không cần phải học ngôn ngữ kịch bản kiểm tra.
- Có thể coi đây là nền tảng kiểm thử dựa trên đám mây hàng đầu giúp người kiểm thử ghi lại các thao tác của họ và xuất chúng dưới dạng script có thể tái sử dụng với giao diện đơn giản, dễ hiểu và dễ sử dụng.
- Selenium hỗ trợ nhiều hệ điều hành, trình duyệt và ngôn ngữ lập trình khác nhau. Sau đây là danh sách:
- Ngôn ngữ lập trình: C #, Java, Python, PHP, Ruby, Perl và JavaScript
- Hệ điều hành: Android, iOS, Windows, Linux, Mac, Solaris.
- Trình duyệt: Google Chrome, Mozilla Firefox, Internet Explorer, Edge, Opera, Safari, v.v.
- Nó cũng hỗ trợ thực hiện thử nghiệm song song giúp giảm thời gian và tăng hiệu quả của các thử nghiệm.
- Selenium có thể được tích hợp với các framework như Ant và Maven để biên dịch mã nguồn.
- Selenium cũng có thể được tích hợp với các khuôn khổ thử nghiệm như TestNG để kiểm tra ứng dụng và tạo báo cáo.
- Selenium yêu cầu ít tài nguyên hơn so với các công cụ kiểm tra tự động hóa khác.
- API WebDriver đã được sử dụng trong selen, một trong những sửa đổi quan trọng nhất được thực hiện đối với selen.
- Trình điều khiển web Selenium không yêu cầu cài đặt máy chủ, các tập lệnh thử nghiệm tương tác trực tiếp với trình duyệt.
- Các lệnh của Selenium được phân loại theo các lớp khác nhau giúp dễ hiểu và dễ thực hiện hơn.
- Điều khiển từ xa Selenium (RC) kết hợp với API WebDriver được gọi là Selenium 2.0. Phiên bản này được xây dựng để hỗ trợ các trang web sôi động và Ajax.
Hạn chế của Selenium
- Selenium không hỗ trợ kiểm tra tự động hóa cho các ứng dụng máy tính để bàn.
- Selenium yêu cầu bộ kỹ năng cao để tự động hóa các bài kiểm tra hiệu quả hơn.
- Vì Selenium là phần mềm mã nguồn mở, bạn phải dựa vào các diễn đàn cộng đồng để giải quyết các vấn đề kỹ thuật của mình.
- Chúng tôi không thể thực hiện kiểm tra tự động hóa trên các dịch vụ web như SOAP hoặc REST bằng cách sử dụng Selenium.
- Chúng ta nên biết ít nhất một trong các ngôn ngữ lập trình cần thiếtđể tạo các tập lệnh kiểm tra trong Selenium WebDriver.
- Nó không có Kho lưu trữ đối tượng tích hợp như UTF / QTP để duy trì các đối tượng / phần tử ở vị trí tập trung. Tuy nhiên, chúng ta có thể khắc phục hạn chế này bằng cách sử dụng Mô hình Đối tượng Trang.
- Selenium không có bất kỳ khả năng báo cáo sẵn có nào; bạn phải dựa vào các trình cắm thêm như JUnit và TestNG cho các báo cáo thử nghiệm.
- Không thể thực hiện thử nghiệm trên hình ảnh. Chúng tôi cần tích hợp Selenium với Sikuli để kiểm tra dựa trên hình ảnh.
- Tạo môi trường thử nghiệm trong Selenium mất nhiều thời gian hơn so với các công cụ của nhà cung cấp như UFT, RFT, thử nghiệm Silk, v.v.
- Không ai chịu trách nhiệm về việc sử dụng các tính năng mới; chúng có thể hoạt động bình thường hoặc không.
- Selenium không cung cấp bất kỳ tích hợp công cụ kiểm tra nào cho Quản lý kiểm tra.