Utilizando Gherkin com Robot Framework

O universo da Qualidade de Software é repleto de controvérsias. Podemos dizer que uma das grandes controvérsias atualmente, além do uso do BDD, é, sem dúvida, a utilização do Cucumber em projetos de automação, seja para Front Web, Front Mobile, API ou qualquer outro tipo de aplicação.

Porém, para alegria de uns e tristeza de outros, o Robot Framework não oferece suporte ao Cucumber. Isso significa que os arquivos “.feature“, comumente utilizados em frameworks que possuem suporte ao Cucumber (como o Cypress, por exemplo), não são suportados no Robot Framework. Ainda assim, é possível utilizar o Gherkin para a construção dos cenários, e é isso que veremos neste post.

IMPORTANTE!

Não vou abordar se é ou não uma boa prática a adoção do Gherkin/Cucumber nos projetos de automação. Apesar de não existir um consenso sobre o tema na comunidade, e eu ter a minha opinião a respeito, a ideia é ajudar aqueles que usam o Gherkin a deixar seus projetos mais legíveis e mais organizados. Beleza?

Entendido isso, bora lá!

Robot Framework e o Gherkin

Desde a versão 2.1.1, o Robot Framework oferece suporte para o Gherkin, mas em inglês. Sendo assim, era necessário utilizar os prefixos “Given, When, Then, And e But” para usar esse estilo de escrita. A partir da versão 6.0, os prefixos ganharam traduções para diversas línguas, incluindo o nosso querido pt_BR… \o/

A atualização foi extremamente bem-vinda, já que, com ela, a necessidade da criação de User Keywords que pudessem fazer o papel dos prefixos em português deixa de existir. Além disso, não veremos mais steps como “Given que eu esteja logado“, porque é feio demais, né!?

Nos tópicos abaixo, veremos a forma nativa de usar o Gherkin em pt_BR e, em seguida, vamos aprender como criar uma User Keyword que simula o mesmo comportamento nativo.

Utilização Nativa

Para que tenhamos acesso aos prefixos em português (conforme a imagem abaixo), basta adicionar no início do seu arquivo de suíte o comando “Language: Brazilian Portuguese“.

Utilização Nativa

Para que tenhamos acesso aos prefixos em português (conforme a imagem abaixo), basta adicionar no início do seu arquivo de suíte o comando “Language: Brazilian Portuguese“.

Independente do idioma, o Robot Framework irá ignorar os prefixos da execução e considerar apenas as keywords que serão utilizadas juntamente com os prefixos.Veja no exemplo abaixo:

Neste exemplo, foram criados arquivos para armazenar as ações que serão utilizadas para os prefixos Dado, Quando e Então. A ideia é modularizar, fazendo com que as mesmas ações possam ser utilizadas sem problemas em outros cenários ou em outras suítes.

Vale relembrar que essa configuração possibilitará apenas o uso dos prefixos Dado, Quando, Então, E e Mas. O uso de contexto e esquema de cenários, por exemplo, não é suportado. O Robot Framework tem outras formas de lidar com essas necessidades.

Utilização de User Keywords

Como dito anteriormente, as versões anteriores a 6.0 não possuem tradução desses prefixos, então, mas podemos criar User Keywords que atuarão de forma similar às traduções realizadas de forma nativa.

Veja o exemplo abaixo:

Neste exemplo, foi criado um arquivo utilitário chamado “gherkin_prefix.resource” que ficará responsável por receber os comportamentos e executá-los através da keyword “Run Keyword” da biblioteca BuiltIn. Sendo assim, os prefixos não serão ignorados durante a execução, ao contrário do que ocorre na forma nativa.

Conclusão

Como mencionei no início deste post, há quem ame e quem odeie utilizar o Gherkin nas automações. Não vou aplaudir nem criticar quem utiliza, se funciona para você e sua equipe, está ótimo. No entanto, ao utilizar, procure sempre pela simplicidade, de modo que você consiga manter seu projeto legível e, principalmente, mantendo a manutenibilidade. Evite criar cenários que descrevam passos do seu teste e procure descrever o comportamento que será realizado. Isso evitará que você deixe seus cenários com aspecto poluído.

E lembre-se, uma vez que você adota o Gherkin para a sua automação, inevitavelmente está criando uma nova camada de abstração. Sendo assim, deixe que as regras, variáveis e controles fiquem nas camadas abaixo. Isso também ajudará a manter o código mais limpo.

Veja o código no GitHub

Adquira a camisa “O Gherkin” na Robot Store

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *