Bài viết này mình sẽ chỉ nói nhanh qua nội dung liên quan đến Setting trong Robot Framework. Sẽ có hai phần chính mà bạn cần quan tâm, Setting của Test Suite và Setting của Test Case + Keyword.

  1. Setting của Test Suite
    1. Name
    2. Documentation
    3. Metadata
    4. Tags
    5. Test Template
    6. Test Timeout
  2. Setting của riêng Test Case
    1. Tags
    2. Timeout
    3. Setup và Teardown
    4. Documentation
  3. Setting của Keyword

Setting của Test Suite

Setting của Test Suite sẽ được đặt trong section Settings ở đầu file robot, như đã nêu ở các bài viết trước, cái mà mình muốn đi qua nhanh trong bài viết này là

Ngoài ra các mục khác của Settings như Library, Resource, Variables, Suite Setup, Suite Teardown cũng là Suite Setting nhưng mình sẽ không nói đến ở đây.

Name

Setting Name trong Test Suite Settings sẽ cho phép đặt tên cho Test Suite, thật sự thì tính năng này hơi thừa, vì tên của Test Suite sẽ default là do cách đặt tên file. Tuy nhiên, có thể sử dụng để đặt tên Name để cho Test Suite một cái tên cụ thể hơn.

*** Settings ***
Name    My Test Suite

Tên của Test Suite vốn là tên của file robot theo quy luật snake case, vậy thì khi được đưa vào trong Robot Framework sẽ được chuyển thành dạng Title Case, tức là các từ viết hoa chữ cái đầu và ngăn bằng dấu cách

Một test suite có thể được đặt một thứ tự được thực hiện trong một chuỗi các test suite bằng cách thêm tiền tố là số 01__, 02__, 03__ vào tên file của test suite. Và tiền tố này sẽ không được tính vào tên của test suite. Tức là nếu 01__My Test Suite thì tên của test suite vẫn là My Test Suite, tiền tố 01__ chỉ có tác dụng sắp xếp thứ tự của test suite trong folder

Chúng ta lại không thể thực hiện đặt tiền tố thực hiện test suite với Name để đạt được mục đích tương tự, lý do là vì bản chất các test suite vẫn được thực hiện từ trên xuống nhưng do đã được đặt tên với tiền tố là số, thì các test suite có số thấp hơn sẽ được xếp lên trên.

Tuy nhiên lý do khiến tính năng này vẫn hữu dụng là vì tên suite sẽ xuất hiện trong test log, nếu chúng ta muốn nó có một cái tên mỹ miều thì có thể sử dụng Name để đặt tên.

Documentation

Documentation Setting là một tính năng cho phép đưa ra mô tả cho Test Suite.

*** Settings ***
Documentation    This is a test suite for testing the login page

Đầu tiên, Documentation có thể được thực hiện với các syntax đặc biệt, cấu trúc của nó không bị giới hạn bởi số dòng và số đoạn.

*** Settings ***
Documentation    This is a test suite for testing the login page \nAnd this is the second line of the documentation
...              And this is the third line of the documentation

Tiếp theo, nó cũng có thể có các style về chữ viết như bold, italic

UnformattedFormatted
*bold*bold
_italic_italic
_*bold italic*_bold italic
``code``code
*bold*, then _italic_ and finally ``some code``bold, then italic and finally some code
This is *bold\n

on multiple\n

lines*. | This is bold

on multiple

lines. |

Các URL sẽ tự chuyển thành link trong log

URL trong Documentation
URL trong Documentation

URL trong Documentation

Cụ thể hơn, còn có format để show ảnh và bảng, thì bạn đọc ở đây: Robot Framework User Guide

Metadata

Metadata về cơ bản chỉ là một phương pháp khác để cung cấp thông tin tương tự như documentation, nhưng nó sẽ đi theo hướng key:value để cung cấp một số thông tin mang tính chất dạng như thông số

*** Settings ***
Metadata    Author    Duy Van
...         Version    1.0
...         Date    12/12/2024

Ngoài ra không có ý nghĩa gì hơn.

Tags

Tags là một công cụ rất mạnh, về cơ bản là gán nhãn cho test suite, hay chính xác hơn là gán nhãn cho các test case thuộc suite.

*** Settings ***
Test Tags    smoke    login

Với Test Tags như trên, chúng ta đang đặt cho Test Suite 2 tag là smoke (ám chỉ suite thuộc smoke test), và login (ám chỉ suite test login). Và Test Tags này đúng như tên của nó, là áp Tags cho toàn bộ Test Case thuộc suite, chứ không phải gán tag cho suite.

Cụ thể cách sử dụng Tags này đấy chính là khi chúng ta muốn chạy một số test case cụ thể, chúng ta có thể sử dụng Tags để chọn ra những test case cần chạy. Mình sẽ nói ở bài Test Execution

Test Template

Test Template về cơ bản là biến bài test thành một test data driven, tức là sẽ có một bộ data cần phải chạy test case, thì dùng Test template để thực hiện việc đấy.

Test Case sẽ được chạy lặp lại với từng bộ data. Cụ thể như thế nào thì mình sẽ viết rõ trong bài Data Driven Testing

Test Timeout

Cuối cùng là Test Timeout, tương tự như Tags, đây là set timeout - tức là thời gian tối đa mà một test case được chạy, nếu vượt quá thời gian này thì test case sẽ bị tính fail.

Việc áp dụng Test Timeout có hai lý do:

*** Settings ***
Test Timeout    30s

Chúng ta cũng có thể truyền vào phút 3 minutes, cụ thể cách đặt thời gian thì đọc ở đây Robot Framework User Guide

Nếu Test Case hoàn thành thì sẽ không cần phải đợi hết timeout mà sẽ chuyển sang test case tiếp theo.

Setting của riêng Test Case

Setting của Test Case sẽ có một số được đặt tự động trong Settings, một số cần phải đặt riêng hoặc có thể đặt lại trong Test Case

Tags

Tags trong Test Case sẽ giống như Tags trong Test Suite, nhưng nó sẽ áp dụng cho Test Case, và nó sẽ ghi bổ sung lên Tags được đặt trong Settings của Test Suite.

*** Settings ***
Test Tags    smoke    login

*** Test Cases ***
Test
  [Tags]  main page
  Log   Test

Test case tên Test sẽ có 3 tags là smoke, login, main page, do main page được đặt trong Test Case, nên nó sẽ ghi bổ sung lên Tags của Test Suite.

Nếu viết

*** Settings ***
Test Tags    smoke    login

*** Test Cases ***
Test
  [Tags]  -login
  Log   Test

Thì Test Case Test sẽ không có tag login mà chỉ có smoke do đã sử dụng dấu -

Nên đặt tag một cách đơn giản, chỉ nên bao gồm chữ cái không dấu, số và dấu gạch ngang, hoặc gạch dưới

Timeout

Với Timeout, nó sẽ giống như Timeout trong Test Suite, nhưng nó sẽ áp dụng cho Test Case, và nó sẽ ghi đè lên Timeout được đặt trong Settings của Test Suite.

*** Settings ***
Test Timeout    30s

*** Test Cases ***
Test
  [Timeout]  1m
  Log   Test

Test Case Test sẽ có Timeout là 1 phút, không phải 30s như được đặt trong Test Suite.

Setup và Teardown

Như đã nói trong bài Setup and Teardown, Test Setup và Test Teardown nếu đã được ghi trên Settings, thì với [Setup][Teardown] nó sẽ áp dụng cho Test Case cụ thể nhưng nó sẽ ghi đè lên Setup và Teardown được đặt trong Settings của Test Suite.

*** Settings ***
Test Setup    [Keyword 1]
Test Teardown    [Keyword 2]

*** Test Cases ***
Test
  [Setup]  [Keyword 3]
  Log   Test
  [Teardown]  [Keyword 4]

Bình thường khi viết chúng ta nên đặt [Setup] ở đầu và [Teardown] ở cuối Test Case, và [Setup][Teardown] sẽ ghi đè lên Test SetupTest Teardown.

Documentation

Với Documentation thì riêng, không chung chạ, không đụng hàng. Mỗi Test Case nếu có [Documentation] thì sẽ có Documentation riêng, và Documentation của Test Suite trên Settings sẽ không phải là Documentation của Test Case.

*** Test Cases ***
Test
  [Documentation]  This is a test case for testing the login page
  Log   Test

Setting của Keyword

Chức năng của các setting trong keyword cũng tương tự như trên Test Case, cụ thể, cũng có các setting sau:

Còn riêng hai thằng [Arguments][Return] thì mình đã nói ở bài Keyword, nó cho phép biến Keyword thành như một hàm trong Python, lấy vào các tham số và trả về giá trị.

Nguồn tham khảo