Home » None » Hướng áp dụng Selenium vào Septeni-technology

Hướng áp dụng Selenium vào Septeni-technology

Trong bài viết này, tôi xin chia sẻ về việc sử dụng SELENIUM ở SEPTENI-TECHNOLOGY hiện nay:

1. Tại sao sử dụng SELENIUM?

Công ty chúng tôi (Septeni Technology) được thành lập từ năm 2013, từ lúc thành lập ban lãnh đạo công ty đã đưa ra mục tiêu “tự động hóa kiểm thử phần mềm” nằm trong kế hoạch “Triển khai CI – Continuous Integration toàn công ty”.

Ban đầu, chúng tôi có nghiên cứu và đưa ra định hướng sử dụng công cụ SELENIUM làm nền tảng cho việc tự động hóa, bởi về các ưu điểm của SELENIUM thì:

  • Selenium có thể ghi lại thao tác của người dùng khi tương tác trên web và giúp người dùng có thể playback lại dễ dàng trên các trình duyệt khác nhau.
  • Selenium giúp tương tác nhanh chóng với các thành phần web.
  • Selenium là công cụ kiểm thử tự động mã nguồn mở phổ biến nhất tại thời điểm bấy giờ; ngoài ra nó còn hỗ trợ hầu hết các ngôn ngữ lập trình như Java, JavaScript, PHP, Ruby, C++,…
  • Selenium hỗ trợ chạy hàng loạt các case cùng 1 lúc, giúp tối giản các quá trình thao tác bằng tay.
  • Đặc biệt, Selenium có thể dễ dàng kết nối với Jenkins (Công cụ hỗ trợ cho CI) để chạy tự động các cases và report kết quả cho người dùng.
Về hiện trạng công ty:
  • Công ty chúng tôi phát triển hầu hết các ứng dụng dựa trên nền tảng web, do đó việc sử dụng công cụ tự động trên nền tảng web là điều cần làm.
  • Công ty sử dụng Jenkins làm công cụ hỗ trợ triển khai mô hình CI.
  • Sản phẩm phần mềm được phát triển dựa trên các ngôn ngữ như: PHP, Javascript, ruby on rails, SCALA, …
Dựa vào những phân tích trên, việc ứng dụng SELENIUM đã được đưa ra. Tuy nhiên, khi chúng tôi nghiên cứu SELENIUM gặp một số khó khăn như:
  • Thời điểm đó, các dự án phải phát triển nhanh để triển khai và bàn giao cho khách hàng (công ty mẹ) nên việc manual testing vẫn được đặt lên hàng đầu.
  • Các SQAs ở công ty hầu hết đều không có sự hiểu biết về SELENIUM và các ngôn ngữ lập trình.
Vì vậy mà tốc độ nghiên cứu thời gian đầu SELENIUM khá chậm.

2. Sử dụng SELENIUM IDE

SELENIUM IDE (IDE) cũng được đặt ra làm mục tiêu nghiên cứu đầu tiên, vì:
1
  • IDE hỗ trợ “Record” dễ dàng các thao tác người dùng, giao diện đơn giản và dễ hiểu.
2
  • Người dùng có thể chỉnh sửa trực tiếp các dòng lệnh trên giao diện IDE. IDE cũng hiển thị phần hướng dẫn ngay bên dưới để người dùng có thể tham khảo nhanh chóng, cùng danh sách gợi nhớ vô cùng tiện lợi.
3
  • IDE cung cấp một tập hợp các câu lệnh khá đầy đủ giúp người dùng dễ dàng tìm kiếm và sử dụng linh hoạt cho script của mình (bạn có thể tham khảo tại http://release.seleniumhq.org/selenium-core/1.0.1/reference.html). IDE là mã nguồn mở, do đó các câu lệnh được cộng đồng mở rộng và cập nhật thường xuyên, vì vậy mà việc sử dụng các câu lệnh trên IDE sẽ ngày càng phong phú.
  • Ngoài ra, IDE giúp những bạn có sự hiểu biết về ngôn ngữ lập trình có thể tùy biến các câu lệnh hoặc thêm vào các câu lệnh của mình, bằng cách cung cấp sự hỗ trợ extension.
4
  • Công ty chúng tôi cũng đã tận dụng điều này để đưa vào các dòng lệnh, mã nguồn để xử lý các thao tác không thể thực hiện được bằng các câu lệnh có sẵn và các thao tác phức tạp.
5
  • Hay bạn có thể download các extension từ cộng đồng để đưa vào các vòng lặp (loop) các lệnh lựa chọn (if-else) cho chính IDE
6
  • IDE cũng hỗ trợ việc gói các cases vào chạy cùng 1 lúc (test suite), giúp việc thao tác chạy tay giảm đi đáng kể.
7
  • IDE có thể playback trên các trình duyệt khác nhau, bằng cách chạy các câu lệnh.
  • Đặc biệt, khi chúng tôi nghiên cứu để tận dụng IDE vào Jenkins và chúng tôi đã có được một kết quả đáng kể. IDE scripts đã được chạy một cách tự động, hoàn toàn không cần thao tác tay để chạy các test suites và đưa ra report dễ nhìn và chọn lọc.
8

3. Chuyển sang SELENIUM WEBDRIVER (WEBDRIVER)

Tuy IDE khá tốt và dễ dàng để sử dụng, nhưng nó chỉ hỗ trợ người dùng thao tác các cases trên client và không hỗ trợ việc kế nối với database server; đặc biệt rất khó để tùy chỉnh các dữ liệu kiểm thử đầu vào, vì vậy mà việc áp dụng IDE chỉ giúp chúng tôi hoàn thành được một số test cases đơn giản.

Chúng tôi dựa vào tình hình thực tế công ty bấy giờ, ban lãnh đạo cũng mong muốn đẩy mạnh tự động hóa kiểm thử lên một bước mới, giảm việc manual testing đi để nâng cao chất lượng sản phẩm. Chúng tôi đã bắt tay vào nghiên cứu và 1 quyết định được đưa ra là “cần phải áp dụng selenium webdriver”

~ continue ~