As variáveis desempenham um papel crucial no Robot Framework, permitindo armazenar e manipular dados de forma flexível durante a execução dos testes. Com o uso de variáveis, é possível criar testes mais dinâmicos e reutilizáveis, adaptando-se a diferentes cenários e facilitando a manutenção dos cenários de teste. Neste tópico, exploraremos em detalhes o uso e a sintaxe das variáveis no Robot Framework.


Tipos de Variáveis

No Robot Framework, existem três tipos principais de variáveis: 
  • Escalares
  • Listas
  • Dicionários

Vamos ver em detalhes cada uma delas.

Escalares

As variáveis escalares, representadas pela sintaxe "${var_name}", são usadas para armazenar valores simples, como números (integers ou floats) e strings.

Vamos criar alguns scripts com esses tipos de variáveis:

  • Tipo String
Quando um valor é atribuído a uma variável sem o uso explícito da construção ${}, o Robot Framework assume automaticamente que esse valor deve ser tratado como uma string. Isso significa que o valor será interpretado como texto literal, independentemente de ser um número, ou qualquer outro tipo de dado.

Essa abordagem é adotada para simplificar a sintaxe e facilitar a escrita dos testes. Em vez de exigir a especificação do tipo de cada valor atribuído a uma variável, o Robot Framework assume o padrão de string, a menos que seja indicado o contrário. 

Exemplo:

*** Test Cases ***
Escalar tipo String
    [Tags]  string

    ${string}   Set Variable  Hello, World!
    ${type}  Evaluate    type($string)
    Log To Console    ${\n}Tipo da variável é ${type}

No terminal execute o comando  "robot -i string ." para executar o script.

==============================================================================
Robot-Courses.Módulo 2.Tópico 2 - Variáveis.Tópico 2.0 - Tipos De Variáveis   
==============================================================================
Escalar tipo String                                                   ..
A variável é do tipo class 'str'
Escalar tipo String                                                   | PASS |
------------------------------------------------------------------------------

  • Tipo Inteiro
Como dito anteriormente, as variáveis fora do formato ${} são tratadas como strings por padrão. Porém, o Robot Framework também possui uma capacidade interna de interpretar automaticamente os valores literais e atribuí-los aos tipos adequados a partir do momento que são construídas usando ${}.

Quando definimos uma variável usando a sintaxe ${42}, o valor 42 é considerado um literal inteiro, não uma string, permitindo que você realize operações e comparações numéricas com ele.

Exemplos:

*** Test Cases ***
Escalar tipo Integer
    [Tags]  integer

    ${integer}  Set Variable  ${42}
    ${type}  Evaluate    type($integer)
    Log To Console    ${\n}A variável é do tipo ${type}

No terminal execute o comando  "robot -i integer ." para executar o script.

==============================================================================
Robot-Courses.Módulo 2.Tópico 2 - Variáveis.Tópico 2.0 - Tipos De Variáveis   
==============================================================================
Escalar tipo Integer                                                  ..
A variável é do tipo class 'int'
Escalar tipo Integer                                                  | PASS |
------------------------------------------------------------------------------

Abaixo, um exemplo simples de uma operação usando uma escalar Integer:
       
*** Test Cases ***
Operações com tipo Integer
    [Tags]  op_int

    ${result}  Evaluate    ${42} + 8
    Log To Console    ${\n}O resultado é igual a ${result}
    Should Be Equal As Numbers    ${result}    50

No terminal execute o comando  "robot -i op_int ." para executar o script.

*** Test Cases ***
==============================================================================
Robot-Courses.Módulo 2.Tópico 2 - Variáveis.Tópico 2.0 - Tipos De Variáveis   
==============================================================================
Operações com tipo Integer                                            .
O resultado é igual a 50
Operações com tipo Integer                                            | PASS |
------------------------------------------------------------------------------

  • Tipo Float
O Robot Framework trata as variáveis escalares do tipo Float da mesma forma que as escalares do tipo integer. Ou seja, ao definir uma variável no formato ${x.y}, onde x.y é um valor numérico decimal, o Robot Framework reconhece esse valor como um literal float. E permite que realizemos operações e comparações numéricas com números decimais sem a necessidade de conversões explícitas.
*** Test Cases ***
Escalar tipo Float
    [Tags]  float

    ${float}   Set Variable  ${2.15}
    ${type}  Evaluate    type($float)
    Log To Console    ${\n}A variável é do tipo ${type}

No terminal execute o comando  "robot -i float ." para executar o script.

==============================================================================
Robot-Courses.Módulo 2.Tópico 2 - Variáveis.Tópico 2.0 - Tipos De Variáveis   
==============================================================================
Escalar tipo Float                                                    ..
A variável é do tipo class 'float'
Escalar tipo Float                                                    | PASS |
------------------------------------------------------------------------------

Abaixo, um exemplo simples de operações com uma escalar Float:

*** Test Cases ***
Operações com tipo Float
    [Tags]  op_float

    ${result}  Evaluate    ${2.15} * 5
    Log To Console    ${\n}O resultado é igual a ${result}
    Should Be Equal As Numbers    ${result}    10.75

No terminal execute o comando  "robot -i op_float ." para executar o script.

==============================================================================
Robot-Courses.Módulo 2.Tópico 2 - Variáveis.Tópico 2.0 - Tipos De Variáveis   
==============================================================================
Operações com tipo Float                                              .
O resultado é igual a 10.75
Operações com tipo Float                                              | PASS |
------------------------------------------------------------------------------

Listas

As variáveis de lista são usadas para armazenar coleções de valores, permitindo a manipulação de conjuntos de dados relacionados. Com as variáveis de lista, é possível adicionar, remover e acessar elementos individualmente, além de realizar operações como ordenação e filtragem.

*** Test Cases ***
Lista
    [Tags]  list

    @{list_1}  Evaluate     ['Robot', 'Course', 2023]
    ${type}  Evaluate    type($list_1)
    Log To Console   ${\n}A variável é do tipo ${type}
    Log To Console   O valor da posição 2 da lista é ${list_1}[2]

No terminal execute o comando  "robot -i list ." para executar o script.

==============================================================================
Robot-Courses.Módulo 2.Tópico 2 - Variáveis.Tópico 2.0 - Tipos De Variáveis   
==============================================================================
Lista                                                                 ..
A variável é do tipo <class 'list'>
.O valor da posição 2 da lista é 2023
Lista                                                                 | PASS |
------------------------------------------------------------------------------

Dicionários

As variáveis de dicionário são usadas para armazenar pares de chave-valor, permitindo a associação de valores a chaves únicas. Os dicionários fornecem uma maneira conveniente de organizar e acessar dados de forma estruturada, usando as chaves para recuperar os valores correspondentes.

*** Test Cases ***
Dicionários
    [Tags]  dict

    &{dictionary_1}  Evaluate  {'name': 'Robot', 'lastname':'Framework', 'year': '2023'}
    ${type}  Evaluate    type($dictionary_1)
    Log To Console   ${\n}A variável é do tipo ${type}
    Log to Console   O valor da chabe year é ${dictionary_1}[year]

No terminal execute o comando  "robot -i dict ." para executar o script.

==============================================================================
Robot-Courses.Módulo 2.Tópico 2 - Variáveis.Tópico 2.0 - Tipos De Variáveis   
==============================================================================
Dicionários                                                           ..
A variável é do tipo <class 'robot.utils.dotdict.DotDict'>
.O valor da chabe year é 2023
Dicionários                                                           | PASS |
------------------------------------------------------------------------------

Convenções: Booleanos, Nulos e Vazios

  • ${EMPTY}: Essa variável representa uma string vazia. É comumente usada para indicar que uma variável não possui um valor definido ou está vazia.
  • ${None}: Essa variável representa um valor nulo, equivalente a None em Python. É frequentemente usado para indicar a ausência de um valor válido. Por exemplo, ao obter um valor de uma fonte externa, como um banco de dados, se não houver um valor válido, pode-se atribuir ${None} à variável.
  • ${TRUE} e ${FALSE}: Essas variáveis representam valores booleanos True e False, respectivamente. São usadas para expressar condições ou estados lógicos. ${TRUE} é usado quando uma condição é verdadeira ou um estado é verdadeiro, enquanto ${FALSE} é usado quando uma condição é falsa ou um estado é falso. Elas podem ser usadas em comparações, condições de fluxo de controle e expressões booleanas.

É importante lembrar que ${EMPTY}, ${None}, ${TRUE} e ${FALSE} são apenas convenções de nomenclatura. Elas não são variáveis especiais ou predefinidas do framework, mas podem ser definidas pelo usuário para melhorar a legibilidade e expressividade dos testes. 

---

No próximo tópico, iremos abordar o Escopo e Prioridade de Variáveis.