Học Selenium Online (Bài 01) - Cách tạo TestScript kiểm thử tự động

Thứ Tư, 10 Tháng Giêng 2018 lúc 10:12 SA

Với mục đích giúp những người kiểm thử có được cái nhìn về một trong những công cụ kiểm thử tự động phổ biến nhất ngày nay - SELENIUM. Chúng tôi quyết định lập một topic về Selenium cùng các bài giảng online qua đó giúp các Manual Tester định hình cũng như có hướng phát triển nghề nghiệp trong tương lai.

1. Selenium là gì?

Selenium là một phần mềm mã nguồn mở hiện đang được sở hữu và phát triển bởi Google giúp việc thi hành các hành động trên trang web một cách tự động thông qua các Script điều khiển (có thể viết bằng rất nhiều các ngôn ngữ lập trình khác nhau như: Java, C#, Python, PHP, JavaScript v.v...). 

Khi sử dụng Selenium, chúng ta có thể thực hiện Script trên nhiều trình duyệt khác nhau qua đó tăng hiệu suất kiểm thử cũng như giảm chi phí khi thực hiện Manual.


2. Thành phần của Selenium

Selenium là một bộ phần mềm, có 4 phần:

  1. Selenium IDE
  2. Selenium Remote Control (Selenium 1)
  3. Web Driver
  4. Selenium Grid


2.1. Selenium IDE

Là một Plugin được thiết kế để chạy riêng trên Firefox bởi một kỹ sư người Nhật tên là Shinaya Kasatani. Viết kịch bản Selenium IDE khá đơn giản (đơn giản nhất so với các thành phần còn lại) và đặc biệt Selenium IDE có khả năng Record (ghi lại) và Play (phát) lại những hoạt động từ người dùng. Dựa vào các kịch bản của Selenium IDE, người dùng cũng có thể dễ dàng chuyển đổi (Export) sang các kịch bản của Selenium Webdriver sử dụng các ngôn ngữ C#, Java.

2.2. Selenium Remote Control 

Được tạo ra bởi 1 kỹ sư phần mềm đến từ ThoughtWork tên là Paul Hammant. Đó là một máy chủ hoạt động như một HTTP Proxy  cho phép người sử dụng tạo các TestScript bằng các ngôn ngữ lập trình và thực hiện Script trên nhiều Browser.

2.3. Selenium Web Driver

Là công cụ được tạo ra bởi Simon Stewat vào năm 2006. Khác biệt hoàn toàn so với Selenium RC, Web Driver có thể giao tiếp trực tiếp với các trình duyệt Web và tương tác để thực hiện Automation.

2.4. Selenium Grid

Được phát triển bởi Patrick Lightbody mới mục đích ban đầu nhằm giảm thiểu thời gian thực hiện kiểm thử càng nhiều càng tốt. Nó có khả năng chụp ảnh các màn hình của trình duyệt trong các giai đoạn quan trọng, cũng như gửi các lệnh Selenium cho các máy khác nhau cùng thực hiện một lúc.


3. Để phát triển được các Script dùng Selenium Webdriver cần những gì?

  • Một máy tính đã cài sẵn môi trường phát triển Java (JRE, JDK) và một bộ IDE để soạn thảo code (Eclipse, Netbean v.v...)
  • Cần phải biết cơ bản về Java (Lý thuyết lập trình hướng đối tượng, biến, toán tử, các cấu trúc điều kiện, cấu trúc lặp v.v...).
  • Một TestFramework để tổ chức Script kiểm thử (TestNG, JUnit)
  • Các Driver tương ứng với các trình duyệt (ChromeDriver, Firfox Driver v.v...).
  • Thư viện Selenium Webdriver cho Java (Tải trên trang Seleniumhq.org).

(Bạn có thể click vào đây để xem Video hướng dẫn để thiết lập môi trường phát triển TestScript cho Selenium Webdriver).


4. Viết TestScript kiểm thử tự động trong Selenium Web Driver như thế nào?

Theo phương pháp tiếp cận truyền thống, TestScript sẽ được viết theo TestCase (Khác với phát triển TestScript trên Agile Scrum sủ dụng BDD và Cucumber). Việc phát triển các TestScript thực chất là quá trình sử dụng các lệnh của công cụ điều khiển Webdriver làm thay các công việc của người kiểm thử với tốc độ nhanh hơn rất nhiều và có độ chuẩn xác cao.

  • Để Selenium Webdriver có thể mô phỏng được hành động của người kiểm thử như Click chuột, điền một giá trị nào đó vào control Input hay thực hiện một thao tác kéo thả chuột trên một phần tử nào đó của trang web, người viết Script cần phải xác định được vị trí của Element trên trang web mà nó sẽ tương tác thông qua các kỹ thuật như: HTML Attribue, CSSSelector hay XPATH
  • Sau khi xác định được vị trí của các phần tử, người viết Script kiểm thử cần phải xác định và viết lệnh thực hiện các hành động với Slement đó (thông qua các bộ lệnh API được viết và cung cấp bởi WebDriver.
  • Sau khi hoàn thành tất cả các hành động (giống như thực hiện với Manual Testing), chúng ta sẽ viết lệnh kiểm tra xem trang web có thực hiện đúng hay không. Chúng ta thường sử dụng điều này với một Framwork như TestNG, JUnit

Để hiểu hơn về cách tạo TestScript chúng ta cùng xem một ví dụ đơn giản như sau:

Yêu cầu: Viêt kịch bản kiểm thử chức năng tìm kiếm dữ liệu trong một trang Web.

Thực hiện:

  1. Xác định các đặc điểm của các Element SearchInput, nút bấm "Tìm kiếm" bằng các phương pháp khả dụng.
  2. Sử dụng lệnh gửi dữ liệu SendKeys kèm theo dữ liệu để input vào control Search Input. Sau đó gọi sự kiện Click() trên button "Tìm kiếm" để gọi chứng năng hoạt động.
  3. Viết câu lệnh kiểm tra với từng trường hợp Test.

Trong bài trên, chúng ta đã từng bước tìm hiểu về bộ công cụ Selenium, trong bài tiếp theo chúng ta sẽ tiếp tục tìm hiểu về cách sử dụng Selenium IDE để viết Script thực hiện kiểm thử tự động cho ứng dụng Web.


CÁC BÀI LIÊN QUAN

HỌC Ở TESTMASTER NHƯ NÀO?

  • Tham gia học trên lớp
    Mỗi khóa học, học viên sẽ học tập trung trên lớp dưới sự hướng dẫn của các chuyên gia trong lĩnh vực kiểm thử đến từ FPT Software
  • Tự học lại trên giáo trình điện tử
    Mỗi bài học sẽ có giáo trình điện tử để học viên có thể học lại bất cứ khi nào, bất cứ nơi đâu
  • Tham gia làm dự án thực tế
    Sau khi trang bị đầy đủ các kiến thức, học viên được tham gia vào các dự án thực tế để tích lũy kinh nghiệm làm việc
  • Cấp chứng chỉ & đi làm
    Kết thúc khóa học, học viên sẽ được đánh giá cấp chứng chỉ và hỗ trợ việc làm. Hỗ trợ thực tập, làm đồ án cho sinh viên