Skip to content

Latest commit

 

History

History
494 lines (333 loc) · 14.5 KB

02 - Comandos do Appium.md

File metadata and controls

494 lines (333 loc) · 14.5 KB

Observações

  • Nesse tópico os argumentos obrigatórios das ações são mostrados em negrito.

  • Todas as palavras-chave listadas nesta página são encontradas no pacote org.getopentest.appium, então, será necessário prefixar os nomes das ações com este nome de pacote ao chamá-los. Por exemplo, para chamar a ação Tap, basta usar a sintaxe:

    - description: Toque no botão submit
    action: org.getopentest.appium.Tap
    args:
        locator: { id: submit }
  • Se você tem alguma familiaridade básica com a linguagem Java e gostaria de saber mais sobre a implementação de uma determinada palavra-chave, basta olhar o código-fonte.

Elementos de UI da tela

Como a grande parte das palavras-chave do Appium atua em um elemento específico da UI, esses elementos precisam ser identificados através um argumento localizador (locator). Os argumentos do locator são simplesmente objetos que devem conter as informações necessárias para identificar um elemento da interface do usuário usando um dos seguintes métodos suportados pelo Appium: id, css, name, class, tag, text, linkText, partialLinkText ou xpath.

Alguns exemplos de locators:

locator: {id: element1}
locator: {name: name1}
locator: {class: class1}
locator: {xpath: "//android.widget.TextView[@text='Submit']"}

E alguns locators específicos para visualizações da web:

locator: {css: #container div.class1}
locator: {linkText: Submit the form}
locator: {partialLinkText: Submit}
locator: {tag: button}

OBS: Na maioria dos casos, os valores especificados nos argumentos do locator não precisam ser colocados entre aspas duplas (graças ao formato YAML). No entanto, a maioria dos xPaths devem ser colocados entre aspas duplas porque contêm os caracteres especiais como colchetes, que em YAML são caracteres especiais.

Argumentos de palavra-chave relacionados a ações de deslizamento na tela

Ao realizar testes de apps, é muito comum a necessidade de executar um ou mais gestos rolagem para encontrar um determinado elemento de interface do aplicativo que está sendo testado. O OpenTest torna esses testes simples, através de determinadas palavras-chave para realizar a rolagem sempre que necessário. Todas as ações de teste que precisam interagir com um elemento da UI possuem esse recurso.

Os seguintes argumentos de ações de teste estão disponíveis para utilização com as ações do Appium no OpenTest:

Argumento Função
swipe A direção para simular uma ação de deslizar. Os valores válidos são: up (cima), down (baixo), left (esquerda), right (direita) e none (nenhum). Por padrão seu valor é definido como none, ou seja, não irá realizar nenhum deslize. Observe que o valor para cima significa que precisamos deslizar para cima no conteiner de scrool, ou seja, irá "descer" a tela da aplicação.
swipeContainer O locator do elemento da UI no qual o gesto de deslizar será executado. Todos os cálculos de coordenadas serão realizados em relação à posição e tamanho deste elemento de conteiner, ou seja, se um determinado elemento inicia apartir da metade da tela, e é utilizada essa função para deslizar do início do elemento até a metade dele, então, será feito um deslize de metade da tela até um quarto dela. Por padrão seu valor é definido como none, ou seja, não irá realizar nenhum deslize.
swipeDurationMs Esse argumento define a duração do gesto de deslizar, em milissegundos. Por padrão cada ação de deslizamento irá durar 1000 millisegundos (1 segundo), mas através desse argumento é possível alterar isso.
maxSwipes Esse argumento define o número máximo de gestos de deslize permitidos em busca por um elemento da UI antes o OpenTest falhar o teste por não encontra-lo. Por padrão seu valor é definido como 20, ou seja irá deslizar até 20 vezes para buscar um determinado elemento.
swipeOffsetTop Define a porcentagem da altura do conteiner do scroll até onde será feita ação de deslizar ou de onde ela irá começa, indo sempre do canto superior para o inferior. Ou seja, se por passada a porcentagem 0,5 para o argumento a ação irá realizar uma ação de deslizar até encontrar o meio do elemento. Por padrão cada ação esse argumento irá realizar o deslizamento de : 0,1 (10%) quando um conteiner scroll e 0,2 (20%) caso contrário.
swipeOffsetLeft A porcentagem da largura do conteiner de scroll em que o gesto de deslizar começará ou terminará. Esse argumento irá realizar um deslize iniciando do lado direito do conteiner. Por padrão cada ação esse argumento irá realizar o deslizamento de : 0,1 (10%) quando um conteiner scroll.
swipeOffsetRight A porcentagem da largura do conteiner de scroll em que o gesto de deslizar começará ou terminará. Esse argumento irá realizar um deslize iniciando do lado esquerdo do conteiner. Por padrão cada ação esse argumento irá realizar o deslizamento de : 0,1 (10%) quando um conteiner scroll.
swipeMaxEdgeCheckRetries Define o número máximo de vezes que o Appium irá verificar se o teste chegou até o final da página após a aplicação de um deslize. Normalmente, só é necessária uma uma única verificação, mas em alguns cenários (beeem específicos) uma tela pode crescer mais após a exibição do final da tela, fazendo mais elementos serem exibidos, o tamanho da barra de rolagem aumentar e tornar o fim da página mais distante (carregamento dinâmico), portanto, precisamos verificar várias vezes para garantir que chegamos ao final da página. Por padrão irá realizar apenas 1 verificação.

Exemplo 1:

- description: Encontra "product1" deslizando para baixo e tocando nele
  action: org.getopentest.appium.Tap
  args:
    locator: { id: product1 }
    swipe: down

Exemplo 2:

- description: |
    Encontra "product1" deslizando para baixo no scroll do elemento
    "products" e valida se ele contém a palavra "Gillette"
  action: org.getopentest.appium.AssertElementText
  args:
    locator: { id: product1 }
    textContains: Gillette
    swipe: down
    swipeContainer: { id: products }
    swipeOffsetTop: 0.3

Palavras-chave

AssertElementChecked

Verifica se um checkbox está marcado no momento.

Argumentos:

Argumento Função Obrigatório
locator O locator do elemento na UI. Sim
swipe + Esta é uma ação habilitada para o deslize na tela, que oferece suporte a todos os Argumentos de palavra-chave relacionados a ações de deslizamento na tela. Não

Exemplo:

- description: Verifica ser o checkbox "Accept" está marcado
  action: org.getopentest.appium.AssertElementChecked
  args:
    locator: { id: accept }

AssertElementEnabled

Verifica se um elemento de UI está habilitado/ativado no momento.

Argumentos:

Argumento Função Obrigatório
locator O locator do elemento na UI. Sim
swipe + Esta é uma ação habilitada para o deslize na tela, que oferece suporte a todos os Argumentos de palavra-chave relacionados a ações de deslizamento na tela. Não

Exemplo:

- description: Verifica se o botão submit está habilitado
  action: org.getopentest.appium.AssertElementEnabled
  args:
    locator: { id: submit }

AssertElementNotChecked

Verifica se um checkbox não está marcado no momento.

Argumentos:

Argumento Função Obrigatório
locator O locator do elemento na UI. Sim
swipe + Esta é uma ação habilitada para o deslize na tela, que oferece suporte a todos os Argumentos de palavra-chave relacionados a ações de deslizamento na tela. Não

Exemplo:

- description: Verifica ser o checkbox "Accept" não está marcado
  action: org.getopentest.appium.AssertElementNotChecked
  args:
    locator: { id: accept }

AssertElementNotEnabled

Verifica se um elemento de UI está desabilitado no momento.

Argumentos:

Argumento Função Obrigatório
locator O locator do elemento na UI. Sim
swipe + Esta é uma ação habilitada para o deslize na tela, que oferece suporte a todos os Argumentos de palavra-chave relacionados a ações de deslizamento na tela. Não

Exemplo:

- description: Verifica se o botão submit está desabilitado
  action: org.getopentest.appium.AssertElementNotEnabled
  args:
    locator: { id: submit }

AssertElementNotVisible

Verifica se um elemento de UI não está visível (está invisível) ou não está presente no DOM.

Argumentos:

Argumento Função Obrigatório
locator O locator do elemento na UI. Sim
swipe + Esta é uma ação habilitada para o deslize na tela, que oferece suporte a todos os Argumentos de palavra-chave relacionados a ações de deslizamento na tela. Não

Exemplo:

- description: Verifica se o botão submit não está visível
  action: org.getopentest.appium.AssertElementNotVisible
  args:
    locator: { id: submit }

AssertElementText

Valida o conteúdo do texto de um elemento da UI.

Argumentos:

Argumento Função Obrigatório
locator O locator do elemento na UI. Sim
text O texto exato que é esperado encontrar no elemento da UI. Exatamente um dos argumentos text ou textContains deve ser fornecido. Não
textContains Uma substring que é esperada estar presente em qualquer parte de um texto em um elemento do UI. Não
caseInsensitive Especifica se as operações de comparação de texto serão realizadas sem distinção entre maiúsculas e minúsculas. Por padrão ela é definida como false. Não
swipe + Esta é uma ação habilitada para o deslize na tela, que oferece suporte a todos os Argumentos de palavra-chave relacionados a ações de deslizamento na tela. Não

Exemplo:

AssertElementVisible

Verifica se um elemento de UI está visível na tela.

Argumentos:

Argumento Função Obrigatório
locator O locator do elemento na UI. Sim
swipe + Esta é uma ação habilitada para o deslize na tela, que oferece suporte a todos os Argumentos de palavra-chave relacionados a ações de deslizamento na tela. Não

Exemplo:

- description: Verifica se o botão submit está visível
  action: org.getopentest.appium.AssertElementVisible
  args:
    locator: { id: submit }

CloseApp

Fecha o aplicativo. Usa internamente o método AppiumDriver.closeApp().

Argumentos:

Nenhum argumento é necessário.

Exemplo:

- description: Fecha a aplicação
  action: org.getopentest.appium.CloseApp