Чем можно заменить аннотацию @BeforeTest в Robot Framework - Selenium Library?

Мне нужно выполнить какое-то ключевое слово перед каждым тестом. Предположим, у меня есть файл .robot, в котором есть 4 тестовых примера, и мне нужно запустить ключевое слово 4 раза, прежде чем выполнять эти 4 тестовых примера. В TestNG мы можем использовать аннотацию @BeforeTest. Я хотел бы знать, что можно использовать для этого из Robot Framework?

Спасибо.

Blibli Automation Journey - Как захватить сетевой трафик с помощью утилиты HAR в Selenium 4
Blibli Automation Journey - Как захватить сетевой трафик с помощью утилиты HAR в Selenium 4
Если вы являетесь веб-разработчиком или тестировщиком, вы можете быть знакомы с Selenium, популярным инструментом для автоматизации работы...
2
0
885
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Ключевые слова Test Setup, Test Teardown, Test Timeout могут использоваться для указания функции, которая должна вызываться перед каждым тестовым примером.
- Test Setup будет действовать как @Before/@BeforeMethod в Junit / Testng соответственно
- Test Teardown будет действовать как @After/@AfterMethod в JUnit / Testng
- [Setup] Keyword - будет использоваться, если вы хотите выполнить @BeforeTest только для этого тестового примера. Пожалуйста, обратитесь к примеру ниже.

*** Settings ***
Library         OperatingSystem
Suite Setup     This Is Suite Startup Keyword
Suite Teardown  This Is Suite TearDown Keyword
Test Setup      This Is Before Test
Test Teardown   This Is After Test

*** Keywords ***
This Is Suite Startup Keyword
    Log To Console      This Is Suite Startup Keyword

This Is Suite TearDown Keyword

    Log To Console      This Is Suite TearDown Keyword

This Is Before Test
    Log To Console      This Is Before Test

This Is After Test
    Log To Console      This Is After Test

This Is Special Execution Case
    Log To Console      This Is Special Execution Case


*** Test Cases ***
Test Case One
    [setup]             This Is Special Execution Case
    Log To Console      This Is My Test Case 1

Test Case Two
    Log To Console      This Is My Test Case 2

Test Case Three
    Log To Console      This Is My Test Case 3

Для получения дополнительной информации см. Раздел Руководство пользователя Robot Framework Файлы инициализации и 2.4.5 Установка и удаление пакета Suite.

Пожалуйста, расширите свой образец настройками Test Setup и уровень корпуса [Setup] уровня набора - они являются аналогами аннотации TestNG @beforeTest. Suite Setup на самом деле является аннотацией @beforeSuite.

Todor Minakov 11.12.2018 11:01

Хорошее предложение, обновленный пример.

Yash Jagdale 11.12.2018 11:07

Вы можете использовать настройку Robotframework Test Setup, чтобы определить ключевое слово, которое будет запускаться перед каждым случаем в наборе. Если вы хотите указать настройку для конкретного случая, это нормально для [Setup] - и, если он установлен, он переопределит настройку, установленную на уровне набора:

*** Settings ***
Test Setup      Log    this is ran for every case

*** Test Cases ***
Case 1
    Do Something

Case 2
    [Setup]    Log    Custom case setup
    Do Something Else

Case 3
    Do The Third Thing

Когда выполняются случаи 1 и 3, перед их выполнением вы увидите сообщение «это выполняется для каждого случая», но не для случая 2 - он имеет переопределенную настройку, и вы увидите его сообщение («Пользовательский случай настраивать")

Ответ принят как подходящий

Ниже приведены ключевые слова во фреймворке роботов в качестве замены для хуков выполнения.

┌────────────────┬───────────────────────┐
│ Robot Keyword  │ TestNG Execution Hook │
├────────────────┼───────────────────────┤
│ Test Setup     │ @BeforeTest           │
│ Test Teardown  │ @AfterTest            │
│ Suite Setup    │ @BeforeSuite          │
│ Suite Teardown │ @AfterSuite           │
└────────────────┴───────────────────────┘

Другие вопросы по теме