SlideShare uma empresa Scribd logo
1 de 20
Automação de
Testes
Robot Framework
<DEV
TALK>
Mayara
Fernandes
Especialista em Testes de Software
https://www.linkedin.com/in/mayfernandes
Agenda
•Introdução ao Robot
Framework
• O que é
• Sua arquitetura
• Abordagem Keyword-driven
• Estrutura
• Libraries
•Hands-on Web Testing <DEV
TALK>
Introdução ao
Robot
Framework
Conceitos
Framework genérico que permite
automação de qualquer tipo de
sistema (web, API, mobile, desktop,
etc), baseado em keyword-driven
que abstrai a camada de
programação em baixo nível.
<DEV
TALK>
Sobre
• O Robot Framework foi desenvolvido em Python e
inicialmente foi feito para a Nokia.
• É Open Source e Multiplataforma.
• Além de abranger diversos tipos de automações de testes,
ele também automatiza processos (RPA).
• Possui sintaxe de dados tabular fácil de usar e permite que
usuários utilizem e criem bibliotecas em Python (se precisar).
• Não! Você não precisa saber Python para usar, já existem
diversas bibliotecas com keywords prontinhas para você
escrever seus testes!
<DEV
TALK>
Pré-Requisitos
O que preciso saber para usar o Robot Framework?
• Lógica Básica de Programação:
• Variáveis
• Argumentos
• Linha de comando
• Inglês Técnico
O que preciso ter para usar o Robot Framework?
• Python (de preferência 3.x) instalado
• Um editor de código (PyCharm, Visual Code, ATOM, etc)
<DEV
TALK>
Tipos de Testes
• Existem libraries que suportam testes para:
• Web
• API
• Mobile
• GUI
• Estilos de testes:
• Keyword-driven (formato procedural)
• Data-driven (tabelas de dados)
• Gherkin (BDD)
• Executado por linha de comando.
• Possível executar em Docker, Jenkins, Cross-Browser. <DEV
TALK>
Arquitetura
<DEV
TALK>
A abordagem keyword-driven
• É uma abordagem de testes automatizados baseada em
ação.
• As palavras-chaves (ou keywords) são em alto nível,
praticamente em linguagem nativa, que representa uma
ação do usuário.
• Encapsula a implementação (baixo nível) do teste.
• Bom para testadores não técnicos.
• Boa Reutilização.
• Fácil aprendizado.
• Fácil escrita e leitura dos testes.
<DEV
TALK>
A abordagem keyword-driven
Exemplo: Abrir uma página web
Implementação (Python com Selenium WebDriver):
Keyword (RobotFramework com SeleniumLibrary):
def setUp(self):
self.driver = webdriver.Firefox()
self.driver.implicitly_wait(20)
self.base_url = "https://www.facebook.com/"
self.verificationErrors = []
self.accept_next_alert = True
Open Browser https://www.facebook.com/ firefox
<DEV
TALK>
Introdução ao
Robot
Framework
Estrutura
Arquivos Base
<DEV
TALK>
Seções
*** Settings ***
Na seção Settings podemos informar documentação (Documentation), as
bibliotecas (Library), os scripts de baixo nível (Resources), setup/teardown da
suíte e dos testes e timeout para os testes.
*** Variables ***
Com o nome já diz, é nesta seção que iremos declarar variáveis e definir os
valores default.
Exemplo: ${URL} http://www.google.com.br
*** Test Case ***
Nessa seção escrevemos os casos de teste em linguagem natural, em keywords.
Exemplo:
Validar login válido
Acessar homepage
Informar usuário "MayFernandes"
Informar senha "12345"
Submeter login
*** Keywords ***
A seção Keywords é onde implementamos os passos (keywords) escritas na
seção Test Case. Exemplo:
Informar usuário "${NOME_USUARIO}"
Input Text ${CAMPO_USUARIO} ${NOME_USUARIO}
<DEV
TALK>
Libraries
• Standard Libraries (nativas)
• BuiltIn
• OperatingSystem
• Process
• Collections
• DateTime
• String
• External Libraries (bibliotecas open source)
• AppiumLibrary (testes mobile com Appium)
• SeleniumLibrary (testes web com Selenium)
• RequestsLibrary (testes de API)
• SikuliLibrary (testes de GUI com reconhecimento de imagens)
• DatabaseLibrary (banco de dados)
• Crie suas próprias bibliotecas (Python)
<DEV
TALK>
Keywords
Library SeleniumLibrary
Keyword Parâmetros O que ela faz
Open Browser url, browser=firefox [...] Abre uma nova instância do navegador para a url
informada. O argumento browser especifica qual
navegador irá usar.
Click Element localizador Clica no elemento identificado pelo localizador.
Close Browser - Fecha o browser atual.
Element Text
Should Be
localizador, texto esperado
[...]
Verifica se esse localizador de elementos contém
exatamente o texto esperado.
Wait Until Element
Is Visible
localizador, timeout=None Espera até que o elemento do localizador esteja
visível. Falha se o timeout expirar antes que o
elemento esteja visível.
<DEV
TALK>
Comandos de Execução
Comando O que faz
robot meuDiretorioDeTestes
Roda todas as suítes contidas dentro do
meuDiretorioDeTestes
robot meusTestes.robot Roda apenas a suíte meusTestes
robot -t “Cenário 01: Pesquisar Produtos”
meusTestes.robot
Roda somente o teste chamado “Cenário 01: Pesquisar
Produtos” da suíte meusTestes
robot -i “smoke tests” meusTestes.robot
Roda somente os testes que tiverem a TAG “smoke tests”
da suíte meusTestes
robot -v BROWSER:ie meusTestes.robot
Roda a suíte meusTestes porém trocando o valor da variável
BROWSER
robot -L trace meusTestes.robot
Roda a suíte meusTestes em modo de LOG LEVEL = TRACE
(INFO, DEBUG)
robot --help
Digite esse comando para ver todos os possíveis parâmetros
de execução e a explicação de cada um. <DEV
TALK>
Introdução ao
Robot
Framework
Hands-on Web Testing!
Referências
• Site Oficial: http://robotframework.org/
• Blog Brasileiro: http://robotizandotestes.blogspot.com.br/
• Slides Inglês Introdução:
https://www.slideshare.net/pekkaklarck/robot-framework-
introduction
• Doc. da SeleniumLibrary:
http://robotframework.org/SeleniumLibrary/SeleniumLibrary
.html
• Slack Global: https://robotframework-slack-
invite.herokuapp.com/
• Telegram Brasil: https://t.me/joinchat/Q5qH9xePmaaSC5hh
• Exemplos: https://github.com/mayribeirofernandes/testesro
botframework <DEV
TALK>
Obrigada!
<DEV
TALK>

Mais conteúdo relacionado

Mais procurados

Testando API REST - Parte 1
Testando API REST - Parte 1Testando API REST - Parte 1
Testando API REST - Parte 1alinebiath
 
API 101 - Understanding APIs
API 101 - Understanding APIsAPI 101 - Understanding APIs
API 101 - Understanding APIs3scale
 
API Testing Using REST Assured with TestNG
API Testing Using REST Assured with TestNGAPI Testing Using REST Assured with TestNG
API Testing Using REST Assured with TestNGSiddharth Sharma
 
6 Traits of a Successful Test Automation Architecture
6 Traits of a Successful Test Automation Architecture6 Traits of a Successful Test Automation Architecture
6 Traits of a Successful Test Automation ArchitectureErdem YILDIRIM
 
Tackle-test: An Automatic Unit-level Test Case Generator
Tackle-test: An Automatic Unit-level Test Case GeneratorTackle-test: An Automatic Unit-level Test Case Generator
Tackle-test: An Automatic Unit-level Test Case GeneratorKonveyor Community
 
What Makes a Great Open API?
What Makes a Great Open API?What Makes a Great Open API?
What Makes a Great Open API?John Musser
 
Selenium Maven With Eclipse | Edureka
Selenium Maven With Eclipse | EdurekaSelenium Maven With Eclipse | Edureka
Selenium Maven With Eclipse | EdurekaEdureka!
 
Selenium Page Object Model Using Page Factory | Selenium Tutorial For Beginne...
Selenium Page Object Model Using Page Factory | Selenium Tutorial For Beginne...Selenium Page Object Model Using Page Factory | Selenium Tutorial For Beginne...
Selenium Page Object Model Using Page Factory | Selenium Tutorial For Beginne...Edureka!
 
TDC2015: Testes em APIs REST com Rest-Assured
TDC2015: Testes em APIs REST com Rest-AssuredTDC2015: Testes em APIs REST com Rest-Assured
TDC2015: Testes em APIs REST com Rest-AssuredJúlio de Lima
 
Automated Web Testing Using Selenium
Automated Web Testing Using SeleniumAutomated Web Testing Using Selenium
Automated Web Testing Using SeleniumWeifeng Zhang
 
Testes de ponta a ponta
Testes de ponta a pontaTestes de ponta a ponta
Testes de ponta a pontaElias Nogueira
 
Reasons To Automate API Testing Process
Reasons To Automate API Testing ProcessReasons To Automate API Testing Process
Reasons To Automate API Testing ProcessQASource
 
Continuous Delivery with AWS Lambda - AWS April 2016 Webinar Series
Continuous Delivery with AWS Lambda - AWS April 2016 Webinar SeriesContinuous Delivery with AWS Lambda - AWS April 2016 Webinar Series
Continuous Delivery with AWS Lambda - AWS April 2016 Webinar SeriesAmazon Web Services
 

Mais procurados (20)

Automation With A Tool Demo
Automation With A Tool DemoAutomation With A Tool Demo
Automation With A Tool Demo
 
Testando API REST - Parte 1
Testando API REST - Parte 1Testando API REST - Parte 1
Testando API REST - Parte 1
 
API 101 - Understanding APIs
API 101 - Understanding APIsAPI 101 - Understanding APIs
API 101 - Understanding APIs
 
Rest assured
Rest assuredRest assured
Rest assured
 
API Testing Using REST Assured with TestNG
API Testing Using REST Assured with TestNGAPI Testing Using REST Assured with TestNG
API Testing Using REST Assured with TestNG
 
6 Traits of a Successful Test Automation Architecture
6 Traits of a Successful Test Automation Architecture6 Traits of a Successful Test Automation Architecture
6 Traits of a Successful Test Automation Architecture
 
Browser_Stack_Intro
Browser_Stack_IntroBrowser_Stack_Intro
Browser_Stack_Intro
 
Robot framework
Robot frameworkRobot framework
Robot framework
 
Tackle-test: An Automatic Unit-level Test Case Generator
Tackle-test: An Automatic Unit-level Test Case GeneratorTackle-test: An Automatic Unit-level Test Case Generator
Tackle-test: An Automatic Unit-level Test Case Generator
 
Kotlin coroutines
Kotlin coroutinesKotlin coroutines
Kotlin coroutines
 
What Makes a Great Open API?
What Makes a Great Open API?What Makes a Great Open API?
What Makes a Great Open API?
 
Selenium Maven With Eclipse | Edureka
Selenium Maven With Eclipse | EdurekaSelenium Maven With Eclipse | Edureka
Selenium Maven With Eclipse | Edureka
 
Selenium Page Object Model Using Page Factory | Selenium Tutorial For Beginne...
Selenium Page Object Model Using Page Factory | Selenium Tutorial For Beginne...Selenium Page Object Model Using Page Factory | Selenium Tutorial For Beginne...
Selenium Page Object Model Using Page Factory | Selenium Tutorial For Beginne...
 
TDC2015: Testes em APIs REST com Rest-Assured
TDC2015: Testes em APIs REST com Rest-AssuredTDC2015: Testes em APIs REST com Rest-Assured
TDC2015: Testes em APIs REST com Rest-Assured
 
Robot Framework
Robot FrameworkRobot Framework
Robot Framework
 
Automated Web Testing Using Selenium
Automated Web Testing Using SeleniumAutomated Web Testing Using Selenium
Automated Web Testing Using Selenium
 
Testes de ponta a ponta
Testes de ponta a pontaTestes de ponta a ponta
Testes de ponta a ponta
 
Reasons To Automate API Testing Process
Reasons To Automate API Testing ProcessReasons To Automate API Testing Process
Reasons To Automate API Testing Process
 
API Testing for everyone.pptx
API Testing for everyone.pptxAPI Testing for everyone.pptx
API Testing for everyone.pptx
 
Continuous Delivery with AWS Lambda - AWS April 2016 Webinar Series
Continuous Delivery with AWS Lambda - AWS April 2016 Webinar SeriesContinuous Delivery with AWS Lambda - AWS April 2016 Webinar Series
Continuous Delivery with AWS Lambda - AWS April 2016 Webinar Series
 

Semelhante a Automação de testes com Robot Framework

Curso Treinamento Automação de testes com Selenium Qualister
Curso Treinamento Automação de testes com Selenium QualisterCurso Treinamento Automação de testes com Selenium Qualister
Curso Treinamento Automação de testes com Selenium QualisterQualister
 
Curso treinamento automação de testes com selenium
Curso treinamento automação de testes com seleniumCurso treinamento automação de testes com selenium
Curso treinamento automação de testes com seleniumCristiano Caetano
 
Desenvolvimento web com python e django
Desenvolvimento web com python e djangoDesenvolvimento web com python e django
Desenvolvimento web com python e djangoIgor Sobreira
 
Java Web Dev Introdução
Java Web Dev IntroduçãoJava Web Dev Introdução
Java Web Dev IntroduçãoMarcio Marinho
 
Zend Framework Estrutura e TDD
Zend Framework Estrutura e TDDZend Framework Estrutura e TDD
Zend Framework Estrutura e TDDPHP Day Curitiba
 
Introdução a testes de software utilizando selenium
Introdução a testes de software utilizando seleniumIntrodução a testes de software utilizando selenium
Introdução a testes de software utilizando seleniumSandy Maciel
 
Testes automatizados.pptx
Testes automatizados.pptxTestes automatizados.pptx
Testes automatizados.pptxCarlos Gonzaga
 
Slide Aula - Curso CakePHP
Slide Aula - Curso CakePHPSlide Aula - Curso CakePHP
Slide Aula - Curso CakePHPRangel Javier
 
Diapositivos práticos - Integração de Sistemas.pdf
Diapositivos práticos - Integração de Sistemas.pdfDiapositivos práticos - Integração de Sistemas.pdf
Diapositivos práticos - Integração de Sistemas.pdfJ0071
 
Técnicas e recursos para desenvolvimento Web em cenários de grande escala
Técnicas e recursos para desenvolvimento Web em cenários de grande escalaTécnicas e recursos para desenvolvimento Web em cenários de grande escala
Técnicas e recursos para desenvolvimento Web em cenários de grande escalaAlexandre Tarifa
 
Projetos Java com Maven
Projetos Java com MavenProjetos Java com Maven
Projetos Java com MavenEdgar Dantas
 
Caipira agil automacao front end selenium
Caipira agil automacao front end seleniumCaipira agil automacao front end selenium
Caipira agil automacao front end seleniumQualister
 
Servidor de Aplicação Web: CherryPy - Python
Servidor de Aplicação  Web: CherryPy - PythonServidor de Aplicação  Web: CherryPy - Python
Servidor de Aplicação Web: CherryPy - Pythonantonio sérgio nogueira
 
Seminário: JavaScript
Seminário: JavaScriptSeminário: JavaScript
Seminário: JavaScriptIvna Valença
 

Semelhante a Automação de testes com Robot Framework (20)

Curso Treinamento Automação de testes com Selenium Qualister
Curso Treinamento Automação de testes com Selenium QualisterCurso Treinamento Automação de testes com Selenium Qualister
Curso Treinamento Automação de testes com Selenium Qualister
 
Curso treinamento automação de testes com selenium
Curso treinamento automação de testes com seleniumCurso treinamento automação de testes com selenium
Curso treinamento automação de testes com selenium
 
Desenvolvimento web com python e django
Desenvolvimento web com python e djangoDesenvolvimento web com python e django
Desenvolvimento web com python e django
 
Maven 2
Maven 2Maven 2
Maven 2
 
Java Web Dev Introdução
Java Web Dev IntroduçãoJava Web Dev Introdução
Java Web Dev Introdução
 
Zend Framework Estrutura e TDD
Zend Framework Estrutura e TDDZend Framework Estrutura e TDD
Zend Framework Estrutura e TDD
 
Apresentação maven
Apresentação mavenApresentação maven
Apresentação maven
 
Introdução a testes de software utilizando selenium
Introdução a testes de software utilizando seleniumIntrodução a testes de software utilizando selenium
Introdução a testes de software utilizando selenium
 
Testes automatizados.pptx
Testes automatizados.pptxTestes automatizados.pptx
Testes automatizados.pptx
 
Slide Aula - Curso CakePHP
Slide Aula - Curso CakePHPSlide Aula - Curso CakePHP
Slide Aula - Curso CakePHP
 
Diapositivos práticos - Integração de Sistemas.pdf
Diapositivos práticos - Integração de Sistemas.pdfDiapositivos práticos - Integração de Sistemas.pdf
Diapositivos práticos - Integração de Sistemas.pdf
 
Apache maven
Apache mavenApache maven
Apache maven
 
Técnicas e recursos para desenvolvimento Web em cenários de grande escala
Técnicas e recursos para desenvolvimento Web em cenários de grande escalaTécnicas e recursos para desenvolvimento Web em cenários de grande escala
Técnicas e recursos para desenvolvimento Web em cenários de grande escala
 
De 0 a DevOps
De 0 a DevOpsDe 0 a DevOps
De 0 a DevOps
 
Java Seminar
Java SeminarJava Seminar
Java Seminar
 
Projetos Java com Maven
Projetos Java com MavenProjetos Java com Maven
Projetos Java com Maven
 
Caipira agil automacao front end selenium
Caipira agil automacao front end seleniumCaipira agil automacao front end selenium
Caipira agil automacao front end selenium
 
Servidor de Aplicação Web: CherryPy - Python
Servidor de Aplicação  Web: CherryPy - PythonServidor de Aplicação  Web: CherryPy - Python
Servidor de Aplicação Web: CherryPy - Python
 
Seminário: JavaScript
Seminário: JavaScriptSeminário: JavaScript
Seminário: JavaScript
 
Introdução a Frameworks
Introdução a FrameworksIntrodução a Frameworks
Introdução a Frameworks
 

Automação de testes com Robot Framework

  • 2. Mayara Fernandes Especialista em Testes de Software https://www.linkedin.com/in/mayfernandes
  • 3. Agenda •Introdução ao Robot Framework • O que é • Sua arquitetura • Abordagem Keyword-driven • Estrutura • Libraries •Hands-on Web Testing <DEV TALK>
  • 5. Framework genérico que permite automação de qualquer tipo de sistema (web, API, mobile, desktop, etc), baseado em keyword-driven que abstrai a camada de programação em baixo nível. <DEV TALK>
  • 6. Sobre • O Robot Framework foi desenvolvido em Python e inicialmente foi feito para a Nokia. • É Open Source e Multiplataforma. • Além de abranger diversos tipos de automações de testes, ele também automatiza processos (RPA). • Possui sintaxe de dados tabular fácil de usar e permite que usuários utilizem e criem bibliotecas em Python (se precisar). • Não! Você não precisa saber Python para usar, já existem diversas bibliotecas com keywords prontinhas para você escrever seus testes! <DEV TALK>
  • 7. Pré-Requisitos O que preciso saber para usar o Robot Framework? • Lógica Básica de Programação: • Variáveis • Argumentos • Linha de comando • Inglês Técnico O que preciso ter para usar o Robot Framework? • Python (de preferência 3.x) instalado • Um editor de código (PyCharm, Visual Code, ATOM, etc) <DEV TALK>
  • 8. Tipos de Testes • Existem libraries que suportam testes para: • Web • API • Mobile • GUI • Estilos de testes: • Keyword-driven (formato procedural) • Data-driven (tabelas de dados) • Gherkin (BDD) • Executado por linha de comando. • Possível executar em Docker, Jenkins, Cross-Browser. <DEV TALK>
  • 10. A abordagem keyword-driven • É uma abordagem de testes automatizados baseada em ação. • As palavras-chaves (ou keywords) são em alto nível, praticamente em linguagem nativa, que representa uma ação do usuário. • Encapsula a implementação (baixo nível) do teste. • Bom para testadores não técnicos. • Boa Reutilização. • Fácil aprendizado. • Fácil escrita e leitura dos testes. <DEV TALK>
  • 11. A abordagem keyword-driven Exemplo: Abrir uma página web Implementação (Python com Selenium WebDriver): Keyword (RobotFramework com SeleniumLibrary): def setUp(self): self.driver = webdriver.Firefox() self.driver.implicitly_wait(20) self.base_url = "https://www.facebook.com/" self.verificationErrors = [] self.accept_next_alert = True Open Browser https://www.facebook.com/ firefox <DEV TALK>
  • 14. Seções *** Settings *** Na seção Settings podemos informar documentação (Documentation), as bibliotecas (Library), os scripts de baixo nível (Resources), setup/teardown da suíte e dos testes e timeout para os testes. *** Variables *** Com o nome já diz, é nesta seção que iremos declarar variáveis e definir os valores default. Exemplo: ${URL} http://www.google.com.br *** Test Case *** Nessa seção escrevemos os casos de teste em linguagem natural, em keywords. Exemplo: Validar login válido Acessar homepage Informar usuário "MayFernandes" Informar senha "12345" Submeter login *** Keywords *** A seção Keywords é onde implementamos os passos (keywords) escritas na seção Test Case. Exemplo: Informar usuário "${NOME_USUARIO}" Input Text ${CAMPO_USUARIO} ${NOME_USUARIO} <DEV TALK>
  • 15. Libraries • Standard Libraries (nativas) • BuiltIn • OperatingSystem • Process • Collections • DateTime • String • External Libraries (bibliotecas open source) • AppiumLibrary (testes mobile com Appium) • SeleniumLibrary (testes web com Selenium) • RequestsLibrary (testes de API) • SikuliLibrary (testes de GUI com reconhecimento de imagens) • DatabaseLibrary (banco de dados) • Crie suas próprias bibliotecas (Python) <DEV TALK>
  • 16. Keywords Library SeleniumLibrary Keyword Parâmetros O que ela faz Open Browser url, browser=firefox [...] Abre uma nova instância do navegador para a url informada. O argumento browser especifica qual navegador irá usar. Click Element localizador Clica no elemento identificado pelo localizador. Close Browser - Fecha o browser atual. Element Text Should Be localizador, texto esperado [...] Verifica se esse localizador de elementos contém exatamente o texto esperado. Wait Until Element Is Visible localizador, timeout=None Espera até que o elemento do localizador esteja visível. Falha se o timeout expirar antes que o elemento esteja visível. <DEV TALK>
  • 17. Comandos de Execução Comando O que faz robot meuDiretorioDeTestes Roda todas as suítes contidas dentro do meuDiretorioDeTestes robot meusTestes.robot Roda apenas a suíte meusTestes robot -t “Cenário 01: Pesquisar Produtos” meusTestes.robot Roda somente o teste chamado “Cenário 01: Pesquisar Produtos” da suíte meusTestes robot -i “smoke tests” meusTestes.robot Roda somente os testes que tiverem a TAG “smoke tests” da suíte meusTestes robot -v BROWSER:ie meusTestes.robot Roda a suíte meusTestes porém trocando o valor da variável BROWSER robot -L trace meusTestes.robot Roda a suíte meusTestes em modo de LOG LEVEL = TRACE (INFO, DEBUG) robot --help Digite esse comando para ver todos os possíveis parâmetros de execução e a explicação de cada um. <DEV TALK>
  • 19. Referências • Site Oficial: http://robotframework.org/ • Blog Brasileiro: http://robotizandotestes.blogspot.com.br/ • Slides Inglês Introdução: https://www.slideshare.net/pekkaklarck/robot-framework- introduction • Doc. da SeleniumLibrary: http://robotframework.org/SeleniumLibrary/SeleniumLibrary .html • Slack Global: https://robotframework-slack- invite.herokuapp.com/ • Telegram Brasil: https://t.me/joinchat/Q5qH9xePmaaSC5hh • Exemplos: https://github.com/mayribeirofernandes/testesro botframework <DEV TALK>