Trang Chủ

Kiểm thử tự động cùng Robot Framework dành cho tester

I. Giới thiệu

1. Tổng quan về Robot Framework

Robot Framework là một testing framework. Nó cung cấp mọi thứ cần thiết để xây dựng và phát triển một kịch bản kiểm thử, gồm điều kiện đầu vào/kết thúc, báo cáo kết quả, … Điểm hấp dẫn của Robot Framework với các tester chính là chúng ta không cần quan tâm đến các thuật toán lập trình cơ bản nhất. Mọi thứ chúng ta cần làm chính là viết ra một kịch bản kiểm thử dựa trên các từ khóa (keyword) mà thôi.

Cụ thể hơn, Robot Framework là:

Các tính năng nổi bật của Robot Framework:

2. Các thư viện hỗ trợ trong Robot Framework

Robot Framework có rất nhiều thư viện hỗ trợ cho việc kiểm thử tự động, có thể tham khảo các thư viện dành cho Robot Framwwork tại http://robotframework.org/#test-libraries .

Tuy nhiên, trong nội dung bài viết này, chúng tôi sẽ tập trung giới thiệu 2 thư viện phổ biến nhất đó là Selenium2Library và Calculator Library.

2.1 Selenium2Library

Để chạy các testcase bằng cách sử dụng Selenium2Library, trước tiên bạn cần:

  1. Cài đặt Selenium2Library,
  2. Import Selenium2Library vào các testsuite Robot.
  3. Dùng từ khóa Open Browser để bật trình duyệt muốn dùng kiểm thử.

Tại sao nên sử dụng thư viện Selenium2Library?

Selenium2Library là ngôn ngữ rất sát với ngôn ngữ thực tế của người dùng, bạn mong muốn action gì bạn chỉ cần gõ từ khóa tương ứng.

Ví dụ:

Tìm hiểu thêm tại:

2.2 CalculatorLibrary

Tiếp theo ta sẽ tìm hiểu về một thư viện được có sẵn trong Robot Framework, một thư viện về tính toán đơn giản, nó chỉ chứa logic nghiệp vụ chứ không bao gồm phần UI.

Chúng ta cùng đi qua một ví dụ về CalculatorLibrary và cùng run một test case đơn giản để có thể hiểu hơn về Robot Framework.

Bạn có thể tải bản demo tại đây: https://bitbucket.org/robotframework/robotdemo/downloads.

Ví dụ:

Ví dụ trên bao gồm 5 Testcases: Trong đó có 4 TCs ví dụ trường hợp PASSED, và 1 TC ví dụ về trường hợp FAILED:

Các keyword thì khá đơn giản và dễ hiều nên mình không giải thích gì thêm. Bây giờ chúng ta sẽ chạy thử 5 TCs này bằng Terminal trên Linux như sau:

  1. Download thư viện và có sẵn tại: https://bitbucket.org/robotframework/robotdemo/downloads.
  2. Mở terminal và trỏ đến folder chứa file vừa download.
  3. Run Test case “keyword_driven.robot” bằng command sau: $ robot keyword_driven.robot.

Kết quả là 4 TCs Pass và 1 TC Failed.

Kết luận: Đối với Robot Framework chúng ta không cần phải biết lập trình để viết testcase và script như những công cụ khác. Đối với những yêu cầu đơn giản và nhanh chóng thì Robot Framework là một sự lựa chọn phù hợp.

II. Cài đặt

Phần này sẽ hướng dẫn cách cài đặt RF cùng với Selenium trên Linux và Windows.

1. Cài đặt Robot Framework

Bước 1. Cài đặt Python.

Trước hết, vì Robot Framework là một nền tảng kiểm thử dựa trên nền tảng Python, nên trước tiên cần cài đặt Python (nên cài Python 2.5 hoặc mới hơn – khuyến cáo cài đặt Python 2.7).

Linux: Python thường đi kèm với cài đặt Ubuntu/Linux. Để kiểm tra xem Python đã cài đặt chưa, cũng như phiên bản của nó, dùng câu lệnh sau trên Terminal (có thể dùng phím tắt Ctrl+Alt+T để bật Terminal: $ python –version. Nếu Python đã được cài đặt, bạn sẽ nhìn thấy phiên bản của nó, chẳng hạn Python 2.7.6.

Windows: Tương tự như trên Linux, bạn hãy bật cmd lên và kiểm tra xem python đã được cài đặt chưa bằng lệnh: python –version. Nếu chưa, đi đến https://www.python.org/ và tải phiên bản Python tương ứng và cài đặt nó.

Tham gia ngay sự kiện Machine Learning – Công nghệ của Tương lai!

Bước 2. Cài đặt PIP (Python Package Manager).

Linux: PIP là một package manager cho việc thiết lập các gói Python. Để cài đặt PIP, dùng câu lệnh sau:

$ wget https://bootstrap.pypa.io/get-pip.py

$ sudo python get-pip.py

Windows: PIP đã được cài đặt nếu bạn đang dùng phiên bản Python 2 >=2.7.9 hoặc Python 3 >=3.4 tải xuống từ https://www.python.org/, tuy nhiên bạn sẽ cần nâng cấp PIP bằng lệnh sau:

python -m pip install -U pip

Bước 3. Cài đặt gói Robot Framework bằng cách sử dụng PIP.

Linux: Dùng câu lệnh sau để cài đặt Robot Framework:

$ sudo pip install robotframework

Phiên bản mới nhất của Robot Framework sẽ được cài tự động. Nếu muốn cài một phiên bản cụ thể, chỉ việc thêm vào, chẳng hạn:

$ sudo pip install robotframework==2.8.4

Sau khi cài đặt hoàn tất, dùng câu lệnh sau để xem việc cài đặt đã thành công chưa: $ pybot –version. Bạn sẽ nhìn thấy thông tin phiên bản Robot Framework nếu thiết lập thành công.

Windows: Tại cửa sổ Command promt, chuyển tới thư mục cài đặt Python và dùng lệnh sau để cài đặt RF:

pip install robotframework

Sau khi cài đặt thành công, dùng pybot –version để kiểm tra:

2. Cài đặt Selenium2Library

Để làm việc với Webdriver (Selenium2) và Robot Framework, bạn cần cài đặt Selenium2Library bằng cách sử dụng PIP:

Linux: Dùng câu lệnh sau: $ sudo pip install robotframework-selenium2library

Câu lệnh này sẽ tự động cài các dependency của nó, gồm decorator, và các gói Selenium. Ngay sau khi hoàn tất cài đặt, dùng câu lệnh $ python để chuyển đến cửa sổ của python:

Ở cửa sổ này, gõ câu lệnh sau để import Selenium2 Library: >> import Selenium2Library.

Nếu không thấy lỗi nào bắn ra nghĩa là thư viện Selenium2 đã được cài thành công. Nếu muốn thoát khỏi cửa sổ Python, dùng lệnh exit().

Windows: Tại cửa sổ Command promt, dùng lệnh: pip install robotframework-selenium2library. Sau khi cài đặt thành công sẽ có thông báo như sau:

3. Cài đặt RIDE (Standalone RobotFramework Test Data Editor)

RIDE là một IDE để xây dựng kiểm thử bằng cách sử dụng Robot Framework. Ngoài RIDE ra, bạn có thể thay thế bằng SublimeText, IntelliJ hay Eclipse, … Vì RIDE được phát triển bằng cách sử dụng wxPython nên bạn cần cài bộ tool wxPython 2.8 có hỗ trợ unicode để chạy RIDE. Cụ thể như sau:

Linux: Dùng câu lệnh sau để cài wxPython:

$ sudo apt-get install python-wxgtk2.8

$ sudo apt-get install python-wxversion

Tiếp theo, dùng câu lệnh sau để cài RIDE:

$ sudo pip install robotframework-ride

Để xác minh xem việc cài đặt đã OK chưa, chạy câu lệnh sau: $ ride.py. Ứng dụng RIDE sẽ bật lên như sau:

Windows:

III. Cách bắt phần tử giao diện

1. Tổng quan XPath

  1. Parent Node: node trên trực tiếp của node hiện hành.
  2. Child Node: tập node trực tiếp của node hiện hành cấp thấp hơn.
  3. Sibling: node ngang hàng hay cùng cha với node hiện hành.
  4. Ancestors: tất cả node con bên trên node hiện hành cùng nhánh.
  5. Descendants: tất cả node con bên dưới của node hiện hành cùng nhánh.
Tham gia ngay sự kiện Machine Learning – Công nghệ của Tương lai!

Cú pháp của XPath:

Biểu thức

Định nghĩa

tênNode

Chọn tất cả các node con của tênNode.

/

Chọn tất cả các node tính từ root.

//

Chọn tất cả node tính từ node hiện hành.

.

Chọn node hiện hành.

..

Chọn node cha của node hiện hành.

Các phép toán được sử dụng trong XPath:

2. Cách bắt XPath bằng Firebug và FirePath

Firebug và FirePath là 2 add-ons hỗ trợ cho việc bắt XPath nhanh và dễ dàng hơn trên Firefox browser.

Cài đặt Firebug và FirePath:

  1. Trên Firefox browser, chọn icon [Open Menu] -> Add-ons.
  2. Tìm và cài đặt Firebug, FirePath.

Sau khi cài đặt thành công, Firebug và FirePath xuất hiện trong mục Extensions và các icon của chúng sẽ xuất hiện trên thanh công cụ của Firefox.

Sử dụng Firebug và FirePath:

Lưu ý:

Axis

Định nghĩa

ancestor

Chọn tất cả các node trên của node hiện hành.

ancestor-or-self

Chọn tất cả các node trên của node hiện hành và chính nó.

attribute

Chọn tất cả các thuộc tính của node hiện hành.

child

Chọn node con của node hiện hành.

descendant

Chọn tất cả các node dưới của node hiện hành.

descendant-or-self

Chọn tất cả các node dưới của node hiện hành và chính nó.

following

Chọn tất cả các node sau khi tag đóng của node hiện hành.

following-sibling

Chọn tất cả các node ngang cấp sau khi tag đóng của node hiện hành.

namespace

Chọn tất cả namespace của node hiện hành.

parent

Chọn tất cả node cha của node hiện hành.

preceding

Chọn tất cả các thành phần trước khi bắt đầu tag mở của node hiện hành.

preceding-sibling

Chọn tất cả các node ngang hàng trước khi bắt đầu tag mở của node hiện hành.

self

Chọn node hiện hành.

Ví dụ:

Vd1: ancestor

  1. Hiển thị tất cả các thẻ cha có chứa thẻ div id=<”identifier-shown”>, ko bao gồm thẻ div id=<”identifer-shown”> được inspect từ trang Login Gmail.

  1. Nếu chỉ muốn hiển thị thẻ cha được chỉ định.

Vd2: ancestor-or-self

Hiển thị các thẻ cha và cả thẻ div id=<”identifier-shown”>, có bao gồm thẻ div id=”<identifier-shown>” được inspect từ trang Login Gmail.

Vd3: attribute

Chọn tất cả các attribute hiện hành của nút Next ở trang Login Gmail.

Vd4: child

Chọn tất cả các thẻ con của thẻ div class=”input-wrapper focused”.

Vd5: descendant

Chọn tất cả các thẻ con và cháu của thẻ div id=”input-wrapper focused”, ko bao gồm thẻ div id=”input-wrapper focused”.

Vd6: descendant-or-self

Chọn tất cả các thẻ con và cháu của thẻ div id=”input-wrapper focused”, bao gồm cả thẻ div id=”input-wrapper focused”.

Vd7: following

  1. Hiển thị tất cả các thẻ sau thẻ đóng của thẻ div class=”identifier-wrapper focused”.

  1. Hiển thị 1 thẻ sau thẻ đóng của thẻ div class=”identifier-wrapper focused”.

Vd8: following-sibling

Hiển thị các thẻ sibling sau thẻ đóng của thẻ div class=”input-wrapper focused”.

Vd9: parent

Chọn tất cả thẻ cha của thẻ div class=”input-wrapper focused”.

Vd10: preceding

Tham gia ngay sự kiện Machine Learning – Công nghệ của Tương lai!

Chọn tất cả các thẻ trước thẻ input id=”next”, ngoại trừ các ancestor và attribute.

Vd11: contains()

Chọn tất cả các phần tử có chứa text là “Create”.

IV. Demo

Ngữ cảnh: Đăng nhập vào trang http://www.chatwork.com/ thành công.

Các bước thực hiện:

Bước 1. Tạo một Project mới.

Bước 2. Tạo Interface.

ii. Đặt tên “Interface”.

iii. Nhấp phải chọn thư mục Interface –> New Resource.

iv. Nhấp phải chọn Interface resource –> New Scalar.

Bước 3. Tạo New Action.

iii. Tương tự như Interface, tạo New Source cho Action bằng cách nhấp phải chọn “Action”.

iv. Thêm New User Keyword.

v. Thêm Selenium2Library cho mỗi action.

vi. Import Interface của page tương ứng vào bằng cách bấm Resource và trỏ đến thư mục chứa Interface.

vii. Tạo các bước thực thi kiểm thử:

Bước 4. Tạo Testsuite.

ii. Thêm Library và Resource.

Bước 5. Tạo Testcase.

Bước 6. Thực thi testsuite.

Tham gia ngay sự kiện Machine Learning – Công nghệ của Tương lai!

Bước 7. Kiểm tra kết quả.

V. Tham khảo

ITZone via Viblo

 

Chia sẻ bài viết ngay